CI/CD¶
Purpose¶
Explain exactly what runs automatically on every push/PR/tag - not aspirational, the actual current pipeline definitions in this repository.
Two pipelines, two jobs¶
| GitHub Actions | Jenkins | |
|---|---|---|
| File | .github/workflows/ci.yml |
Jenkinsfile |
| Triggers | every push to master/agent/**, every PR into master |
configured on the Jenkins job itself (multibranch pipeline / webhook) - no SCM credentials live in the Jenkinsfile |
| What it does | restore/build/test (backend), lint/build (frontend) - fast PR-time signal | full pipeline: build, dependency/image scan, Docker image, deploy to dev/staging/production |
| Deploys anything? | No | Yes - dev automatically on master, staging/production on a release tag (production behind a manual gate) |
See GitHub Actions and Jenkins for the full detail on each.
Branch/tag → environment mapping (Jenkins)¶
any branch/PR other than master -> build, test, scan, build local Docker images - never pushed, never deployed
master -> all of the above, plus push images, auto-deploy to dev
a pushed tag matching v*.*.* -> all of the above, plus deploy to staging, smoke test,
then a manual approval gate promotes the SAME image to production
Images are built once per commit and promoted unchanged dev → staging → production -
nothing is ever rebuilt for a later environment (VITE_API_URL is baked in as the relative
/api path in every environment; ASPNETCORE_ENVIRONMENT is a runtime env var, not a build arg -
see Docker → Images).
Build/test failure behavior¶
A failing test, a failing lint, or a failing build stops the pipeline at that stage - nothing later (image build, push, or any deploy) ever runs. This is enforced by ordinary CI/CD semantics (a non-zero exit fails the stage, which fails the job), not extra logic.
Documentation build (this portal)¶
A small, separate CI job validates mkdocs build --strict on every push/PR that touches
documentation - see GitHub Actions → Documentation job.
It never touches the backend/frontend jobs.
Pages in this section¶
- GitHub Actions - the fast PR-time signal.
- Jenkins - the full build/scan/deploy pipeline.