Skip to main content
Table of contents

Deployment

The development and deployment pipeline

Our development and deployment pipeline looks like this:

1. Local development

Developers develop the code on their laptop. Most of the time, they use the Development VM for this.

Once the tests pass locally you push the code to GitHub and open a Pull Request. The Pull Request should conform to the guidelines in the styleguides.

2. GitHub Pull Request

Once the Pull Request is opened, a job starts running on Jenkins, our Continuous Integration tool (CI). For a detailed look, you should read about the CI infrastructure.

In most cases the CI job will run 3 different checks on the repo: a Ruby linter, a static security analysis tool, and the unit tests of the repo.

For some applications, Jenkins also runs the end-to-end tests.

All frontend applications and some publishing apps have Heroku Review Apps enabled.

Next, you’ll have to find someone in GOV.UK to review the code. The GDS Way has guidelines on how to review code.

We’ve got guidelines on merging of Pull Requests.

Only when the tests pass and the code has been approved the Pull Request can be merged, since we’ve configured GitHub to prevent merges otherwise.

3. Master

Code that is merged to master is tested again on CI. If the tests on master pass, Jenkins pushes a git tag to GitHub - what we call the “release tag”, which looks something like release_312.

After that, the CI Jenkins sends a message to the integration Deploy Jenkins to deploy the release tag to integration.

4. Deploy to staging and production

👉 Read “Deploy an application to GOV.UK”

This page was last reviewed on 28 August 2019. It needs to be reviewed again on 28 February 2020 by the page owner #govuk-2ndline .
This page was set to be reviewed before 28 February 2020 by the page owner #govuk-2ndline. This might mean the content is out of date.