eacf41302c
Removed 4 redundant workflow files: - helm-publish.yaml (integrated into release-unified) - helm-release.yaml.old (the auto-version-bump nightmare) - release.yaml (replaced by release-unified) - tag-release.md (old docs, replaced by README.md) Now down to just 3 clean workflows: - release-unified.yaml: Complete release process - quick-fix.yaml: Emergency Docker builds - build-and-push.yaml: Automatic CI for PRs/tags Also updated documentation to reflect the simplified pipeline. Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering>
94 lines
2.7 KiB
Markdown
94 lines
2.7 KiB
Markdown
# CI/CD Pipeline Guide
|
|
|
|
## 🚀 Simplified Pipeline - Only 3 Workflows!
|
|
|
|
### 1️⃣ For Releases → **Unified Release**
|
|
Use this for all version releases:
|
|
1. Go to [Actions → Unified Release](https://github.com/cpfarhood/devcontainer/actions/workflows/release-unified.yaml)
|
|
2. Click "Run workflow"
|
|
3. Either:
|
|
- Enter specific version (e.g., `0.2.1`), OR
|
|
- Choose release type (patch/minor/major) for auto-increment
|
|
4. Click "Run workflow"
|
|
|
|
**This single workflow does EVERYTHING:**
|
|
- ✅ Updates chart version
|
|
- ✅ Creates git tag
|
|
- ✅ Builds Docker image with all proper tags
|
|
- ✅ Publishes Helm chart to GHCR
|
|
- ✅ Creates GitHub Release with changelog
|
|
- ✅ No more `[skip ci]` blocking builds!
|
|
|
|
### 2️⃣ For Quick Fixes → **Quick Fix Build**
|
|
Use this for emergency fixes without version changes:
|
|
1. Go to [Actions → Quick Fix Build](https://github.com/cpfarhood/devcontainer/actions/workflows/quick-fix.yaml)
|
|
2. Click "Run workflow"
|
|
3. Enter tag (default: `latest`)
|
|
4. Click "Run workflow"
|
|
|
|
**Just builds and pushes Docker image** - no version bumps, no releases.
|
|
|
|
### 3️⃣ Automatic CI → **Build and Push**
|
|
Runs automatically on:
|
|
- Pull requests (builds but doesn't push)
|
|
- Tags starting with `v*` (builds and pushes)
|
|
- Manual trigger available
|
|
|
|
## Workflow Files
|
|
|
|
| Workflow | File | Purpose | When to Use |
|
|
|----------|------|---------|-------------|
|
|
| **Unified Release** | `release-unified.yaml` | Full release process | New versions |
|
|
| **Quick Fix Build** | `quick-fix.yaml` | Docker build only | Hotfixes |
|
|
| **Build and Push** | `build-and-push.yaml` | CI/CD automation | PRs & tags |
|
|
|
|
## Examples
|
|
|
|
### Release a new version
|
|
```bash
|
|
# Via GitHub UI (Recommended):
|
|
# Go to Actions → Unified Release → Run workflow
|
|
|
|
# Via GitHub CLI:
|
|
gh workflow run release-unified.yaml -f version=0.2.1
|
|
# OR auto-increment:
|
|
gh workflow run release-unified.yaml -f release_type=patch
|
|
```
|
|
|
|
### Push a quick fix
|
|
```bash
|
|
# Via GitHub UI:
|
|
# Go to Actions → Quick Fix Build → Run workflow
|
|
|
|
# Via GitHub CLI:
|
|
gh workflow run quick-fix.yaml -f tag=hotfix-1
|
|
```
|
|
|
|
### Check workflow status
|
|
```bash
|
|
# List all recent runs
|
|
gh run list --limit 5
|
|
|
|
# Watch a specific workflow
|
|
gh run watch
|
|
```
|
|
|
|
## Version Strategy
|
|
|
|
- **Major** (1.0.0): Breaking changes
|
|
- **Minor** (0.2.0): New features
|
|
- **Patch** (0.2.1): Bug fixes
|
|
|
|
## What We Fixed
|
|
|
|
### Before (Nightmare 😱)
|
|
- Auto-version-bump with `[skip ci]` prevented Docker builds
|
|
- 6+ disconnected workflows
|
|
- Manual tag deletion and re-pushing
|
|
- Version conflicts everywhere
|
|
|
|
### After (Simple! 🎉)
|
|
- **3 total workflows** (down from 6+)
|
|
- **1 button** for complete releases
|
|
- **No more `[skip ci]`** blocking builds
|
|
- **Clear separation** of concerns |