This directory contains the CI/CD workflows for AI-OpenSOC.
Current Configuration: CI Only (Testing + Building)
The workflows are currently configured for Continuous Integration only - they test your code and build Docker images, but don’t deploy anywhere.
What Runs Automatically
✅ On every push/PR:
- Linting (Python, TypeScript, Dockerfile)
- Unit tests with coverage
- Integration tests
- Security scanning
- Docker image building
- Container vulnerability scanning
✅ Result:
- Tests verify your code works
- Docker images pushed to GitHub Container Registry
- No deployment needed!
Workflows
1. ci-cd.yml - Main Testing Pipeline
- Triggers: Push or PR to main/develop
- Purpose: Test everything and build images
- Deployment: Disabled (testing only)
2. release-please.yml - Automated Release PRs
- Triggers: Push to
main, manual dispatch - Purpose: Read Conventional Commits since the last tag; open or update a release PR that bumps
VERSION,infra/helm/vigil/Chart.yaml(bothappVersionandversion, in lockstep),clients/web/package.json, andclients/web/package-lock.json, and updatesCHANGELOG.md. On merge, push thevX.Y.Ztag and create the GitHub Release. SeeRELEASING.md. - Deployment: None (tagging only — downstream
release.ymlhandles deploys)
3. release.yml - Tag-Triggered Image Build & Publish
- Triggers: Version tags (
v*.*.*) - Purpose: Build and push the
vigil-backendandvigil-daemonimages to GHCR, smoke-test that they start, and annotate the GitHub Release with the image digests. The GitHub Release object itself is created byrelease-please.yml, not this workflow. - Deployment: None — this workflow publishes images only, it does not deploy. (
scripts/deploy_to_vm.shis an unwired manual VM-deploy helper kept for the future; seedocs/DEPLOYMENT_GUIDE.md.)
4. nightly.yml - Scheduled Testing
- Triggers: Daily at 2 AM UTC
- Purpose: Comprehensive testing and security audits
- Deployment: None
No Secrets Required!
Since deployment is disabled, you don’t need to configure:
- ❌ SSH_PRIVATE_KEY
- ❌ VM_HOST variables
- ❌ SLACK_WEBHOOK_URL
- ❌ SENTRY_DSN
The only “secret” used is GITHUB_TOKEN which is automatically provided by GitHub Actions.
Running Your App Manually
After the CI builds your images, you can run them anywhere:
# Pull the built images
docker pull ghcr.io/vigil-soc/vigil-backend:main
docker pull ghcr.io/vigil-soc/vigil-daemon:main
# Run with docker-compose
docker-compose up -d
Future: Enabling Deployment
When you’re ready to auto-deploy, see:
docs/CI_CD_GUIDE.md- Full CI/CD documentationdocs/DEPLOYMENT_GUIDE.md- VM deployment guide
To enable:
- Uncomment the
deploy-stagingjob inci-cd.yml - Add required secrets to GitHub
- Configure your VMs
But for now - pure CI testing works perfectly! ✅