This directory contains all the CI/CD workflows for the project, organized by environment and workflow type.


Workflow Philosophy & Types

Workflows are divided into four main categories, each serving specific purposes and triggered on different branches or events:

Workflow Type Branches / Events Purpose
dev Push to development branch Build and test in the development environment
feat Push or PR to feature branches (excluding main, development, release) Build, test, and lint feature branches; triggered on push and PR affecting specific components
rel Push to release-*.*.* branches Release-specific workflows for building and pushing release Docker images
prod Push to main branch Build, push production Docker images, and deploy to production

Workflow Files Overview

Development Workflows (dev_*.yml)

Triggered on pushes to the development branch, limited to component-specific changes:

File Purpose
dev_docker_backend.yml Build and push the development Docker image for the backend
dev_docker_frontend.yml Build and push the development Docker image for the frontend
dev_docker_grpc.yml Build and push the development Docker image for the gRPC

Feature Branch Workflows (feat_*.yml)

Triggered on push or pull requests from feature branches to development branch:

File Purpose
feat_ci_frontend_push.yml Lint, format check, build, and unit tests frontend on push
feat_ci_backend_push.yml Lint, format check, build, and unit tests backend on push
feat_ci_grpc_push.yml Lint, format check, build, and unit tests gRPC on push
feat_docker_frontend.yml Build frontend Docker image on push (no push)
feat_docker_backend.yml Build backend Docker image on push (no push)
feat_docker_grpc.yml Build gRPC Docker image on push (no push)
feat_ci_frontend_pr.yml Frontend integration tests on PR
feat_ci_backend_pr.yml Backend integration tests on PR
feat_ci_grpc_pr.yml gRPC integration tests on PR

Security and Dynamic Testing Workflows

Triggered on pull requests from feature branches, on push to main, release, or development branches, and scheduled for main branch.

File Purpose
sast_frontend.yml Static Application Security Testing (SAST) with CodeQL, Trivy, and yarn Audit for frontend
sast_backend.yml Static Application Security Testing (SAST) with CodeQL, Trivy, and OWASP Dependency-Check for backend
sast_grpc.yml Static Application Security Testing (SAST) with CodeQL, Trivy, and govulncheck Dependency-Check for gRPC
dast_frontend.yml Dynamic Application Security Testing (DAST) for frontend using OWASP ZAP
dast_backend.yml Dynamic Application Security Testing (DAST) for backend using OWASP ZAP
dast_grpc.yml Dynamic Application Security Testing (DAST) for gRPC using OWASP ZAP
rel_e2e_tests_pr.yml End-to-end tests on PRs for main branch

Development Branch → Release Branches