--- tags: - note/permanent - devops/cicd relates-to: creation-date: 2024-04-09 09:46 modification-date: Tuesday 9th April 2024 09:49:48 --- # Git CI/CD ## Compass > [!multi-column] > >> [!info]+ Comes from >> Somewhere > >> [!success]+ Similar to >> Something > >> [!danger]+ Competes with >> Something > >> [!seealso]+ Leads to >> Somewhere ## Core In a trunk based UE game development environment, here's a list of the basic actions taken to make the game go through the whole CI/CD process. ### CI - MANUAL: create a branch from `main` to code something - MANUAL: commit and push to this branch - AUTO: labelling with either ```feat, chore, docs, fix, refactor, or test.``` - AUTO: can also be additionally `skip-ci` and/or `code-review`. If labelled as `code-review`, let it sit. - AUTO: if not `skip-ci`, build the game, run the game (null hypothesis test) - AUTO: run basic pre-package tests (unit/functional). - AUTO: on success, create a PR. - AUTO: otherwise, merge to `main` and delete current branch - METRIC: This should take minutes max. ### CD - AUTO/MANUAL: on PR merge, if the PR is `feat`, bump the minor version tag. if the PR is `fix` or `chore`, bump the patch version. If `skip-ci`, stop there. - AUTO: build, cook, stage, package and archive the game (development) - AUTO: run tests on package (acceptance, E2E) - AUTO: on success upload the result to a running build release. - METRIC: This should take minutes max. - NIGHTLY/MANUAL: either each night or on manual workflow trigger, make a complete build. - AUTO: build the game, run the game. - AUTO: run all pre-package tests. - AUTO: build, cook, stage, package and archive the game (production) - AUTO: run all package tests. - AUTO: create a unique release with a release note and checkboxes. - AUTO: publish on steam (or other). --- # References