Changes merged into master should be deployed automatically and tested. Preventative action should be taken to prevent merging changes that could fail continuous integration.
When CI fails it should be classed as a high priority to fix and make it stable again. This is because:
- It may block the flow of the pipeline potentially blocking production releases
- It may prevent other developers from getting accurate feedback from the pipeline for their changes
- Make the team aware of failure e.g. stand-ups, Slack, dashboard, shouting
- Re-run tests to check if it's a flaky test (if it is flaky schedule time to fix it)
- Triage the issue to get an understanding of why it's failing
- Consider backing out the changes if the fix will take a long time
- Write tests to catch the failures earlier in the process
- Fix issues and raise a pull request
It is important to remember how code changes could affect continuous integration.
Any CI changes should be made as early as possible, ideally before raising a pull request.
- Adding/changing environment variables
- Adding a new service
- Adding a new Cloudfoundry service
- Changing the versions of the build tools used
- A Git repository is renamed
- Build scripts added/removed
- Changing the build tools used
- Removing a service
- A change to how the tests run