Rework of our CI/CD process β
Problem we are trying to solve β
- The current CI/CD process is considered to be complex and not flexible enough
- Some small issues (but with an high impact for our users) wait for a long time before being published in production
- Our current process does not give us enough time to test our changes before publishing them in production
- Too much time elapses between the merge of a PR by the team and their availability on the test environment
Proposed solution β
- 1 environment / branch per feature (or group of features if they are linked, or if they are too small to be considered as a feature)
- At the merge of a PR by the developers on a given feature (or group of features), the environment should be automatically updated
- 1 staging environment (updated after each feature branch merge)
- The staging environment should be used to test the features before publishing them in production
- 1 production environment
- Eventually, 1 pre-production environment (identical to the production environment)
Remarks: β
- We will need to limit the number of concurrent feature development to avoid having too many environments. We will limit the number of concurrent feature development to 4.
Steps to be addressed to implement the new process β
| Tasks | Owner |
|---|---|
| Document the new process | Valentin |
| Setup the new environments | Loic & Mathieu |
| Update accordingly the QA process | Charles |
Technical details β
We intend to deploy 4 sandbox environments:
- sandbox-1
- Linked to the branch sandbox-1 (for each projet)
- sandbox-2
- Linked to the branch sandbox-2 (for each projet)
- sandbox-3
- Linked to the branch sandbox-3 (for each projet)
- sandbox-4
- Linked to the branch sandbox-4 (for each projet)
1 staging environment:
- staging
- Linked to the branch main (for each projet)
1 production environment
- The deployment of the production environment and the staging environment is done manually
- The deployment on the sandbox environments is done automatically