https://github.com/slauger/container-gitops-pipeline
Reusable GitHub Actions workflows for container-based GitOps pipelines
https://github.com/slauger/container-gitops-pipeline
argocd ci-cd docker github-actions gitops helm kubernetes semantic-release
Last synced: about 2 months ago
JSON representation
Reusable GitHub Actions workflows for container-based GitOps pipelines
- Host: GitHub
- URL: https://github.com/slauger/container-gitops-pipeline
- Owner: slauger
- Created: 2026-02-07T19:24:52.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2026-04-13T22:47:09.000Z (3 months ago)
- Last Synced: 2026-04-14T00:34:33.631Z (3 months ago)
- Topics: argocd, ci-cd, docker, github-actions, gitops, helm, kubernetes, semantic-release
- Language: Dockerfile
- Homepage: https://slauger.github.io/container-gitops-pipeline
- Size: 140 KB
- Stars: 0
- Watchers: 0
- Forks: 1
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 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](https://github.com/semantic-release/semantic-release)
- 🖥️ **Multi-Architecture** - Native amd64 and arm64 builds via GitHub runners (no QEMU)
- 🔄 **GitOps Ready** - Works with [gitops-image-replacer](https://github.com/slauger/gitops-image-replacer) for Docker images and [gitops-replacer](https://github.com/slauger/gitops-replacer) for Helm charts
- 📦 **OCI Registry** - Push Docker images and Helm charts to any OCI-compliant registry
- ⚡ **Zero Config** - Sensible defaults, no `.releaserc.json` required
- 📌 **Pinned Dependencies** - All tools versioned and managed via Renovate
### Docker Image Versioning
```mermaid
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
```mermaid
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
```mermaid
flowchart LR
subgraph Artifacts
image["Docker Image
:2.1.0"]
chart["Helm Chart
1.5.3"]
end
subgraph GitOps["GitOps Repository"]
values["values.yaml
image: :2.1.0"]
appCR["Application CR
chart: 1.5.3"]
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: Docker Images
Add `.github/workflows/build.yaml` to your repository:
```yaml
name: Build
on:
push:
branches: [main, develop]
jobs:
build:
uses: slauger/container-gitops-pipeline/.github/workflows/docker-build.yaml@v1
with:
image_name: my-app
secrets: inherit
```
## Quick Start: Helm Charts
Add `.github/workflows/build.yaml` to your repository:
```yaml
name: Build
on:
push:
branches: [main, develop]
jobs:
build:
uses: slauger/container-gitops-pipeline/.github/workflows/helm-oci.yaml@v1
with:
chart_path: '.'
secrets: inherit
```
## Documentation
| Guide | Description |
|-------|-------------|
| [Docker Build](https://slauger.github.io/container-gitops-pipeline/docker-build/) | Build and push container images |
| [Helm OCI](https://slauger.github.io/container-gitops-pipeline/helm-oci/) | Package and push Helm charts |
| [Multi-Architecture](https://slauger.github.io/container-gitops-pipeline/multi-arch/) | Native amd64 and arm64 builds |
| [Configuration](https://slauger.github.io/container-gitops-pipeline/configuration/) | All workflow inputs and outputs |
## License
MIT