CI/CD¶
Pipelines live under .github/workflows/ at the repository root (GitHub
Actions only scans the repository root's .github/workflows/ folder —
workflow files placed in subdirectories do not run).
ci.yml¶
Triggered on push and pull_request events targeting the main branch.
| Job | What it does |
|---|---|
dashboard |
npm ci → lint → prettier → typecheck → unit tests → npm run build, uploads the build output as an artifact |
backend |
npm ci → npm test (unit + smoke) |
e2e |
Builds the frontend and starts a preview server, installs Playwright Chromium, runs end-to-end scenarios |
docker-build |
Builds the backend and frontend Dockerfiles with docker/build-push-action (not pushed, build verification only) |
k6-smoke |
Starts the backend with test environment variables, installs k6 via grafana/setup-k6-action, runs test/k6/smoke.js |
All jobs are independent and fail on real errors; no job uses
continue-on-error or error suppression.
docs.yml¶
Triggered on the main branch when docs/, mkdocs.yml, or the workflow
file itself change (also runnable manually via workflow_dispatch).
- Builds the documentation with
mkdocs build --strict(a broken link or warning makes the build fail). - On pushes to
main, publishes the builtsite/folder to GitHub Pages viaactions/upload-pages-artifact+actions/deploy-pages.
On pull requests only the build step runs; nothing is published.
Enabling GitHub Pages¶
In the repository settings, Settings → Pages → Build and deployment →
Source must be set to GitHub Actions; otherwise the deploy job
never runs.
Dependabot¶
.github/dependabot.yml scans npm ecosystems for dashboard/,
iqvflex/backend/ and iqvflex/e2e/; docker for both Dockerfiles; and
github-actions for .github/workflows/ — monthly.