This directory contains universal GitHub Actions reusable workflows for CI/CD pipeline orchestration.
| Document | Purpose |
|---|---|
| QUICKSTART.md | 5-minute setup guide |
| WORKFLOWS_README.md | Complete reference documentation |
| USAGE_EXAMPLE.md | Real-world usage examples |
All workflows are reusable (via uses: statement) and support secrets via secrets: inherit.
workflows/
βββ prepare.yml # Extract build info & environment
βββ build.yml # Build Docker image
βββ update-vault.yml # Update vault secrets
βββ deploy.yml # Deploy to ArgoCD/Spinnaker
βββ notify-success.yml # Send success notification
βββ notify-failure.yml # Send failure notification
βββ clean-up-tag.yml # Delete staging tags
βββ cicd-pipeline.yml # Main orchestrator (template)
1. Copy orchestrator to your repository:
# .github/workflows/cicd-pipeline.yml
uses: kumparan/cicd-template/.github/workflows/prepare.yml@main2. Configure secrets in GitHub (9 secrets)
3. Push a tag:
git tag v1.0.0
git push origin v1.0.0For detailed setup, see QUICKSTART.md
- β BACKEND (comment-service, imagor, discovery-service, etc)
- β FRONTEND (kumparan-mobile-app, web-text-editor, etc)
- β DATA (search-service-data, mage-service, etc)
- β QA (karate-graphql, remote-robo, etc)
- β SRE (custom services)
v1.0.0 β Production (kept)
production-* β Production (kept)
staging-* β Staging (auto-deleted)
sre-* β Staging (auto-deleted)
AWS_ACCESS_KEY_ID # AWS access key
AWS_SECRET_ACCESS_KEY # AWS secret key
AWS_ACCOUNT_ID # AWS account number
AWS_DEFAULT_REGION # AWS region (us-east-1)
ARGOCD_USERNAME # ArgoCD user
ARGOCD_PASSWORD # ArgoCD password
VAULT_UPDATE_TOKEN # Vault API token
SLACK_BOT_TOKEN # Slack bot token
SLACK_WEBHOOK_URL # Slack webhook
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Git Tag Push β
β (v1.0.0 | production-* | staging-* | sre-*) β
ββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
ββββββββββββββββ
β prepare.yml β ββ Extract info, determine environment
β β
ββββββββ¬ββββββββ
β outputs: build_tag, environment, service_name
β
βββββββββββ΄βββββββββββββ
βΌ βΌ
ββββββββββββ βββββββββββββββ
βbuild.yml β βupdate-vault β ββ Parallel
ββββββββ¬ββββ ββββββββ¬βββββββ
β β
βββββββββββ¬ββββββββββββ
βΌ
βββββββββββββββ
β deploy.yml β ββ Deploy to ArgoCD/Spinnaker
ββββββββ¬βββββββ
β
ββββββββββββββββ΄βββββββββββββββ
βΌ βΌ
ββββββββββββββββββββ ββββββββββββββββββ
βnotify-success.ymlβ OR βnotify-failure β
βββββββββββ¬βββββββββ ββββββββββ¬βββββββ
β β
βΌ βΌ
[Slack] [Slack]
β
βΌ
ββββββββββββββββ
βclean-up-tag β ββ Delete tag if staging
ββββββββββββββββ
Each reusable workflow is called with uses: and can pass inputs/secrets:
jobs:
my-job:
uses: kumparan/cicd-template/.github/workflows/prepare.yml@main
with:
project: BACKEND
secrets:
VAULT_UPDATE_TOKEN: ${{ secrets.VAULT_UPDATE_TOKEN }}- New to GitHub Actions? Start with QUICKSTART.md
- Need detailed docs? Read WORKFLOWS_README.md
- Want real examples? Check USAGE_EXAMPLE.md
To update these workflows:
- Create a new branch
- Edit workflows in
.github/workflows/ - Test in your repository
- Create Pull Request to
main - Merge (all repos will pick up changes on next deployment)
Questions or issues?
- π¬ Ask in #sre-internal Slack
- π§ Email SRE team
- π Create GitHub issue in cicd-template repo
Latest Update: April 2026
Status: Production Ready β