Skip to content

Repository architecture overview

Christyan Santos edited this page May 30, 2021 · 10 revisions

This project use Github Actions to automate your workflow. The concepts of CI/CD are applied, so all change make in the main branch is automatically release and generate a game.exe.

Throughout this session we show each step of the configuration of this repository, see the diagram below for an overview of how this automate it works.

CI/CD diagram overview

continuous integration

(this diagram is also available on Miro for bigger text)

Branches

The fist thing you should know to work on this project is how to configure your branch correctly. Every branches must be liked to an issue, be it a feature or bug. Choose the issue you will work on and create a branch following the pattern {issue type}/#{issue number}-{description}. Sample: feature/#12-add-hello-world.

  • issue type: feature or bugfix

We use auto semantic versioning so the commits should following the patter bellow to closed issue:

Commit message Release type
fix(pencil): stop graphite breaking when too much pressure applied Patch Release
feat(pencil): add 'graphiteWidth' option Minor Feature Release
perf(pencil): remove graphiteWidth option

BREAKING CHANGE: The graphiteWidth option has been removed.
The default graphite width of 10mm is always used for performance reasons.
Major Breaking Release

(go to semantic release for more information)

branch workflow diagram

branch workflow (this diagram is also available on Miro for bigger text)

PS: Remember to always update your preferred branch using rebase method

Pull Request

When you've finished your modifications a Pull Request should be opened, 'cause this repository don't allow commit directly from main branch. The Pr can only be accept if all status checks have been completed.

  • Semantic pull request:✔️ checks if the PR has semantic patterner.
  • Unit test:🧪 will run all unit tests and if any fail will prevent the PR from being completed.
  • Quality Gate:☁️ this step verify the code quality as reliability, security, duplications and maintainability.

Important:❗ It's necessary to put a semantic title and description before closing the PR, because this information is used as release description.

CI/CD

At the end of a pull request is started CI/CD pipeline, which generates the Github release with game.exe.

Clone this wiki locally