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

1.8 KiB

tags, relates-to, creation-date, modification-date
tags relates-to creation-date modification-date
note/permanent
devops/cicd
2024-04-09 09:46 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