Container GitOps Pipeline
Reusable GitHub Actions workflows for container-based GitOps pipelines. Build Docker images and Helm charts with semantic versioning, multi-arch support, and automated GitOps deployment.
Features
- 🏷️ Semantic Versioning - Automated releases with semantic-release
- 🖥️ Multi-Architecture - Native amd64 and arm64 builds via GitHub runners (no QEMU)
- 🔄 GitOps Ready - Works with gitops-image-replacer for Docker images and gitops-replacer for Helm charts
- 📦 OCI Registry - Push Docker images and Helm charts to any OCI-compliant registry
- ⚡ Zero Config - Sensible defaults, no
.releaserc.jsonrequired - 📌 Pinned Dependencies - All tools versioned and managed via Renovate
How it works
Docker Image Versioning
flowchart LR
subgraph Branches
feature["feature/*"]
develop["develop"]
main["main"]
end
subgraph Tags
sha[":abc1234"]
semver[":1.2.3"]
minor[":1.2"]
latest[":latest"]
end
feature --> sha
develop --> sha
main -->|"release"| semver
main -->|"release"| minor
main -->|"release"| latest
classDef shaStyle fill:#1e88e5,stroke:#1565c0,color:#fff
classDef semverStyle fill:#43a047,stroke:#2e7d32,color:#fff
classDef latestStyle fill:#fb8c00,stroke:#ef6c00,color:#fff
class sha shaStyle
class semver,minor semverStyle
class latest latestStyle
Helm Chart Versioning
flowchart LR
subgraph Branches
feature["feature/*"]
develop["develop"]
main["main"]
end
subgraph Versions
pre["0.0.0-abc1234"]
semver["1.2.3"]
end
feature --> pre
develop --> pre
main -->|"release"| semver
classDef preStyle fill:#7b1fa2,stroke:#6a1b9a,color:#fff
classDef semverStyle fill:#43a047,stroke:#2e7d32,color:#fff
class pre preStyle
class semver semverStyle
GitOps Deployment
flowchart LR
subgraph Artifacts
image["Docker Image<br/>:2.1.0"]
chart["Helm Chart<br/>1.5.3"]
end
subgraph GitOps["GitOps Repository"]
values["values.yaml<br/><i>image: :2.1.0</i>"]
appCR["Application CR<br/><i>chart: 1.5.3</i>"]
end
subgraph Cluster["Kubernetes"]
argocd["ArgoCD"]
app["Deployment"]
end
image -->|"gitops-image-replacer"| values
chart -->|"gitops-replacer"| appCR
values --> argocd
appCR --> argocd
argocd -->|"sync"| app
classDef artifactStyle fill:#1e88e5,stroke:#1565c0,color:#fff
classDef gitopsStyle fill:#fb8c00,stroke:#ef6c00,color:#fff
classDef clusterStyle fill:#43a047,stroke:#2e7d32,color:#fff
class image,chart artifactStyle
class values,appCR gitopsStyle
class argocd,app clusterStyle
Quick Start
Add .github/workflows/build.yaml to your repository:
That's it! Your images/charts will automatically build and push on every commit.
Next Steps
- Docker Build - Build and push container images
- Helm OCI - Package and push Helm charts
- Multi-Architecture - Native amd64 and arm64 builds
- Configuration - All workflow inputs and outputs