Production-grade, vetted GitHub Actions workflows for Kubernetes GitOps infrastructure.
- ๐ณ Docker: Build, scan, sign, and push with multi-platform support
- ๐ Security: Trivy, Gitleaks, SBOM generation, Cosign signing
- โธ๏ธ Kubernetes: Helm lint, test, publish & Kyverno policy testing
- ๐๏ธ Infrastructure: Terraform validate, plan, and apply workflows
- ๐ GitOps: ArgoCD sync and automated manifest updates
- ๐ฆ Supply Chain: SBOM, provenance, and vulnerability tracking
- ๐ Auto-Updates: Renovate-powered SHA-pinned action updates
- ๐งช Testing: Node.js/TypeScript testing with coverage (coming soon)
| Workflow | Description | Status |
|---|---|---|
docker-build-push.yml |
Build, scan, sign & push Docker images | โ Ready |
| Workflow | Description | Status |
|---|---|---|
trivy-scan.yml |
Comprehensive vulnerability scanning | โ Ready |
gitleaks-scan.yml |
Secret detection and prevention | โ Ready |
sbom-generate.yml |
Generate Software Bill of Materials | โ Ready |
| Workflow | Description | Status |
|---|---|---|
helm-lint.yml |
Helm chart linting, validation & kubeconform | โ Ready |
helm-test.yml |
Helm unittest execution with JUnit reports | โ Ready |
helm-publish.yml |
Package & publish charts to OCI registries | โ Ready |
kyverno-test.yml |
Kyverno policy testing with Chainsaw | โ Ready |
| Workflow | Description | Status |
|---|---|---|
terraform-validate.yml |
Terraform validation, formatting & security scanning | โ Ready |
terraform-plan.yml |
Terraform plan with cost estimation & PR comments | โ Ready |
terraform-apply.yml |
Terraform apply with state backup & approval gates | โ Ready |
| Workflow | Description | Status |
|---|---|---|
gitops-update-manifests.yml |
Update Kubernetes manifests (image tags, Helm values) | โ Ready |
argocd-sync.yml |
ArgoCD application sync with health checks | โ Ready |
| Action | Description | Status |
|---|---|---|
setup-node-pnpm |
Setup Node.js with pnpm and caching | โ Ready |
setup-kubernetes-tools |
Install kubectl, Helm, ArgoCD, Cosign | โ Ready |
- GitHub repository with Actions enabled
- Docker images hosted on GitHub Container Registry (ghcr.io)
- Repository secrets configured (if needed)
# .github/workflows/ci.yml
name: CI Pipeline
on:
push:
branches: [main]
pull_request:
jobs:
build:
uses: samuelho-dev/git-flow/.github/workflows/docker-build-push.yml@v1
with:
context: .
dockerfile: ./Dockerfile
image: my-app
platforms: linux/amd64,linux/arm64
scan: true
sign: true
sbom: true
secrets: inheritjobs:
scan-code:
uses: samuelho-dev/git-flow/.github/workflows/trivy-scan.yml@v1
with:
scan-type: fs
scan-ref: .
severity: HIGH,CRITICAL
scan-secrets:
uses: samuelho-dev/git-flow/.github/workflows/gitleaks-scan.yml@v1
with:
fail-on-findings: truejobs:
sbom:
uses: samuelho-dev/git-flow/.github/workflows/sbom-generate.yml@v1
with:
target-type: directory
target: .
format: spdx-json
scan-sbom: true- Usage Guide - Detailed usage instructions for all workflows
- Examples - Complete workflow examples and patterns
- Migration Guide - Migrate from inline commands to reusable workflows
This repository uses Renovate to automatically update GitHub Actions. To enable Renovate in your consuming repository:
{
"extends": [
"config:recommended",
"helpers:pinGitHubActionDigests"
],
"packageRules": [
{
"matchManagers": ["github-actions"],
"automerge": true,
"automergeType": "pr"
}
]
}We use semantic versioning with git tags:
@v1- Latest stable v1.x.x (automatically updates to new minor/patch versions)@v1.0.0- Specific version (pinned, no automatic updates)@abc123- Specific commit SHA (maximum stability)
Recommendation: Use @v1 for latest features and security updates.
All actions are SHA-pinned for security:
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2Renovate automatically updates these SHAs when new versions are released.
Workflows never log secrets. Use GitHub Secrets or OIDC for authentication:
jobs:
build:
uses: samuelho-dev/git-flow/.github/workflows/docker-build-push.yml@v1
secrets:
registry-username: ${{ secrets.DOCKER_USERNAME }}
registry-password: ${{ secrets.DOCKER_TOKEN }}- SBOM: Software Bill of Materials generated for all images
- Signing: Cosign keyless OIDC signing
- Scanning: Trivy vulnerability scanning
- Provenance: BuildKit provenance attestation
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-workflow) - Commit your changes (
git commit -m 'Add amazing workflow') - Push to the branch (
git push origin feature/amazing-workflow) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- All actions curated from awesome-actions
- Built for Kubernetes GitOps with ArgoCD
- Inspired by CNCF project workflows
- Issues: GitHub Issues
- Discussions: GitHub Discussions
Made with โค๏ธ by Samuel Ho
๐ค Powered by awesome-actions