Files
ObsidianHome/07 - GameDevSpace/Processes/Git CICD.md

54 lines
1.8 KiB
Markdown

---
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