0015. CI on GitHub Actions: static analysis, GitHub Pages demo, Docker Hub images
Generated from front/docs/adr/0015-ci-github-actions-pages-and-docker-images.md
- Status: Accepted (retroactive)
- Date: 2021-09-20 (Actions after restart); 2022-04-21 (Docker images)
Context and Problem Statement
Section titled “Context and Problem Statement”The front needs a public demo, PR checks and a deployable artefact for customer installations (docker-compose stacks with the API and admin).
Considered Options
Section titled “Considered Options”- Travis CI was tried on day one (
d4ef64a9) and replaced by GitHub Actions + Codecov the same day (80fbb3e9).
Decision Outcome
Section titled “Decision Outcome”GitHub Actions workflows in front/.github/workflows/:
node.js.yml“static analysis”: ESLint (--max-warnings 25) andtsc --noEmiton push and PRs. Unit tests (Jest, added 2021-10-21) are not run in CI.pages.yml: onmain, builds withVITE_APP_ROUTING_TYPE=HashRouteragainst the stage API and deploysdist/to thegh-pagesbranch; notifies Mattermost.docker_build.yml(on release) anddocker_build_develop.yml(onmain, since 2024-02-28): multi-arch (QEMU/Buildx) imagesescolalms/demo:<tag>/:devpushed to Docker Hub, plus Sentry release (0012).
Consequences
Section titled “Consequences”- Good: every merge to
mainproduces a live demo and adevimage. - Bad: no automated tests gate merges; the
e2e updatecommits only bump versions. - Inferred: these per-repo workflows must be re-scoped (paths filters) in the monorepo; a 0100+ ADR should cover that.
Evidence
Section titled “Evidence”221062c32021-03-09 “tests ci”;d4ef64a9“travis”;80fbb3e9“codecov action” - removesfront/.travis.ymle5de8ed62021-09-20 “github files (#23)” -front/.github/workflows/node.js.yml,pages.yml910e4ae62021-10-21 “jest”;901a82d0“Working tests”299745e22022-04-21 “Create docker_build.yml”7b361bdf2024-02-28 “Build dev image (#437)” -front/.github/workflows/docker_build_develop.yml