Skip to content

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).

  1. Builds the documentation with mkdocs build --strict (a broken link or warning makes the build fail).
  2. On pushes to main, publishes the built site/ folder to GitHub Pages via actions/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.