Pipelines
This repository has three CI/CD pipelines:
- Build and Test — builds the solution and runs all tests on every push and pull request.
- Build & Push Docker — builds and pushes multi-arch Docker images for the API, Portal, and Admin to the GitHub Container Registry (GHCR) on every push to
main. - SonarCloud — runs static code analysis and reports code quality, security hotspots, and coverage to SonarCloud on every push and pull request.
Required Repository Secrets
Go to Settings → Secrets and variables → Actions → New repository secret and add:
| Secret | Value |
|---|---|
GHCR_USERNAME |
Your GitHub username |
GHCR_TOKEN |
A Personal Access Token with write:packages scope (see below) |
SONAR_TOKEN |
A SonarCloud token for the MadWorldEU_Byakko project (see below) |
Generating a GHCR_TOKEN
- Go to GitHub → Settings → Developer settings → Personal access tokens → Tokens (classic)
- Click Generate new token (classic)
- Give it a descriptive name (e.g.
Byakko GHCR Push) - Set an expiration date
- Select the following scope:
write:packages— uploads packages to GitHub Package Registry (includesread:packages)
- Click Generate token
- Copy the token immediately — it won't be shown again
- Paste it as the value of the
GHCR_TOKENsecret in the repository settings
Generating a SONAR_TOKEN
- Go to sonarcloud.io and open the
MadWorldEU_Byakkoproject - Navigate to Administration → Analysis Method
- Turn off Automatic Analysis — this is required when using GitHub Actions, as both cannot run simultaneously
- Click With GitHub Actions to reveal the token
- Copy the token shown on that page
- Paste it as the value of the
SONAR_TOKENsecret in the repository settings
First-time: Linking Images to the Repository
After the pipeline runs for the first time, each image is created as a private package under the MadWorldEU organisation. Do the following once per image to connect it to this repository:
- Go to github.com/orgs/MadWorldEU/packages (or your profile → Packages if using a personal account)
- Click the package (e.g.
byakko-api) - Click Package settings (bottom-right)
- Under Connect repository, search for and select
MadWorldEU/Byakko - Optionally change Package visibility to
Publicif the image should be publicly pullable - Repeat for
byakko-portalandbyakko-admin
Once linked, the packages appear on the repository's main page under Packages.
Published Images
After a successful run the following images are available:
| Image | URL |
|---|---|
| API | ghcr.io/madworldeu/byakko-api:latest |
| Portal | ghcr.io/madworldeu/byakko-portal:latest |
| Admin | ghcr.io/madworldeu/byakko-admin:latest |