SOP: CI/CD & Automation (GitHub Actions)
1. Overview​
We aim to automate the deployment pipeline to reduce human error. Currently, we operate in a hybrid mode (Scripted + Manual), moving towards full CI/CD.
2. The "Git-Update-All" Script​
The git-update-all.sh script in the root is the Fleet Synchronizer.
- Purpose: Updates the parent pointer for all submodules.
- When to run: After you have pushed changes to a client submodule (e.g.,
clients/client-a). - Effect: Ensures the "Fleet Controller" knows that
client-ahas moved to a new commit.
3. Workflow Standard​
3.1. Making Changes​
- Enter client directory:
cd clients/client-a - Make changes (edit
compose.yaml). - Commit and Push inside the submodule:
git add .
git commit -m "feat: upgrade nginx"
git push origin main - Return to root:
cd ../.. - Sync the Fleet:
./git-update-all.sh
4. Future Automation (Roadmap)​
- Linting: Actions to run
ansible-lintandtflinton PRs. - Drift Detection: Scheduled jobs to check if live infrastructure matches Terraform state.