Deployment and release process

We follow gitlab process #

  • Please learn / review gitlab flow article
  • Good ideo with git flow and gitlab flow difference

Important points #

  1. Make sure you read and follow contribution guidelines
  2. Use feature branches rather than direct commits on the master branch.
  3. Test all commits, not only ones on the master branch.
  4. Run every test on all commits. (If tests run longer than 5 minutes, they can run in parallel.)
  5. Perform code reviews before merging into the master branch.
  6. Deployments are automatic based on branches or tags.
  7. Tags are set by the user, not by CI.
  8. Production releases are based on tags.
  9. Master branch automatically deployed to development envioroment
  10. Pushed commits are never rebased.
  11. Everyone starts from master and targets master.
  12. Fix bugs in master first and release branches second.
  13. Commit messages reflect intent.

Process from developer view #

  1. Make sure all your tickets and PRs are in properly columns on the project board
  2. Dont forget to address any manual work that needs to be done in order to deploy your changes to production

Process from devops view #

  1. Evaulate a risks and identify any unique or new work for the deploy
  2. Verify with QA to have their agreement for the production deploy
  3. Make sure all tests are passed along with other CI checks (linting, security checks)
  4. If needed, set up a time, make an announcement when deploy will take place
  5. If needed, spin up temporary environment. For example to make database data looks as similar as in production
  6. Gradually deploy production changes: devops -> backend -> frontend