CI/CD Pipeline
Our project uses GitHub Actions for Continuous Integration and Continuous Deployment (CI/CD). We have three main workflows:
Docker Build and Test Pipeline
Documentation Deployment Pipeline
Container Registry Deployment Pipeline
Docker Build and Test Pipeline
This pipeline handles testing and building of our Docker containers to ensure code quality and build integrity.
Workflow Triggers
Push events to any branch
Tag pushes with ‘v*’ prefix
Excludes documentation and markdown files
Key Steps
Test Client Web
Runs on Node.js 20
Executes npm tests
Skips if commit message contains ‘WIP’/’wip’
Docker Build
Builds all service containers
Sets up environment variables
Verifies build integrity
Does not deploy containers
Documentation Deployment
Automatically builds and deploys documentation to GitHub Pages.
Workflow Triggers
Push events to master branch
Ignores changes in client and server directories
Key Steps
Build Documentation
Uses Sphinx with Read the Docs theme
Includes support for Mermaid diagrams
Generates HTML documentation
Deploy to GitHub Pages
Publishes to gh-Pages branch
Uses GitHub token for authentication
Forces clean deployment
Container Registry Deployment
This pipeline handles the deployment of Docker images to our container registry.
Workflow Triggers
Push events to main branch
Manual workflow dispatch
Key Steps
Login to Container Registry
Authenticates with container registry credentials
Sets up Docker buildx
Build and Push Images
Builds optimized production images
Tags images with appropriate versions
Pushes images to container registry
Access Points
Documentation:
https://asm-studios.github.io/AREA/
Container Registry:
registry.digitalocean.com/area