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