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