2. Move CI/CD Pipelines to Gitlab

Date: 2019-10-09

Status

Accepted

Context

Our current CI/CD pipelines are implemented in Jenkins. We would like to decommission our Jenkins server by the end of this year. We have implemented CI/CD pipelines using Gitlab in other projects, including basket, nucleus and the snippets-service.

Decision

We will move our existing CI/CD pipeline implementation from Jenkins to Gitlab.

Consequences

We will continue to use www-config to version control our Kubernetes yaml files, but we will replace the use of git-sync-operator and its branch with self-managed instances of gitlab runner executing jobs defined in a new .gitlab-ci.yml file leveraging what we have learned implementing similar solutions in nucleus-config, basket-config, and snippets-config. We will also eliminate our last dependency on Deis Workflow, which we have been using for dynamic demo deployments based on the branch name, in favor of a fixed number of pre-configured demo deployments, potentially supplemented by Heroku Review Apps.