Hotfix deployment

Preparation and merge:

  • Start on production branch and create new branch from it (e.g. branch hotfix-20200615)
  • Cherry pick commits from master branch (git cherry-pick {commitId})
  • picking commits from MRs / branches that have not been merged into master creates differences between master and production that will be annoying in the next release
  • optionally check git log history and diff (e.g. git diff origin/production)
  • add new hotfix section to changelog
  • there might be other merge conflicts in the changelog -> fix them manually (maybe change auto merge for the changelog in the future?) and commit
  • the hotfix branch can be pushed to run the pipeline and to check if the tests are ok

to merge:

  • either switch back to production branch and merge hotfix branch into it
  • or create an MR in gitlab, target it towards production (defaults to master) and click merge (needs another approver)

Check

  • Do we need database changes?
  • Do we need to restart any services that are not automatically restarted?
  • Note that: all services run in docker container in dev environment but on bare machine on production

Afterwards

  • merge your changes back into the master branch: git checkout master; git merge production (don't forget to update your local branch before)
  • possibly, you get conflicts here to be solved. It is important to do that now and not at the next release, so the person doing the next release is not annoyed :-)
  • make the changelog nice again and commit it into the merge commit: git commit --amend