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.
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.
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
After that, the CI Jenkins sends a message to the integration Deploy Jenkins to deploy the release tag to integration.