Continuous Integration
Last Updated: October 5th, 2026
To ensure the code quality of the FOV web stack, we use several GitHub Actions workflows and code analysis tools.
This document presents the Continuous Integration (CI) setup used by our repository.
Commit Lint
Verifies that every commit message adheres to our formatting guidelines.
- Triggers: Runs on every push across all branches.
- Runner: GitHub-hosted runners.
- Target: Checks compliance with our commit standard.
- Results:
- Success: Commit messages follow the required format.
- Failure: Commit messages violate the standard and the job fails.
Backend Lint
Performs a backend analysis using ESLint.
- Triggers: Pull requests targeting the
mainbranch. - Runner: GitHub-hosted runners.
- Results: Inline warnings and error notices are added directly to the affected files in the GitHub pull request view.
Backend Tests
Runs all backend tests with coverage.
- Triggers: Pull requests targeting the
mainbranch. - Runner: GitHub-hosted runners.
- Results: Coverage report uploaded as a GitHub artifact.
Angular Tests
Runs all frontend tests with coverage.
- Triggers: Pull requests targeting the
mainbranch. - Runner: GitHub-hosted runners.
- Results: Coverage report uploaded as a GitHub artifact.
Build & Push Images
Builds and publishes Docker container images for both the backend and frontend to GitHub Packages (GHCR) as packages.
- Triggers: Pushes to
mainanddevbranch. - Runner: GitHub-hosted runners.
- Target: Authenticates with GHCR and builds/pushes
fov-backendandfov-frontendimages tagged with the matching branch/reference name (${{ github.ref_name }}). - Results:
- Success: Container images are successfully built, tagged, and published to GitHub Packages.
- Failure: Build errors or authentication/push failures cause the workflow job to fail.
Development Deployment
Deploys the web application to our internal self-hosted test server.
- Triggers: Runs on every push to
dev. - Runner: Self-hosted VM.
- Results: Reports the success state of the deployment.
Production Deployment
Deploys the web application to the public website https://fovapp.live.
- Triggers: Runs on every push to
main. - Runner: Public-hosted VM.
- Results: Reports the success state of the deployment.