You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This HIP proposes automating significant portions of the Helm release process through GitHub Actions workflows while maintaining human oversight and security. The proposal introduces pull request-based automation for version updates, release candidate generation, documentation synchronization, and cross-repository coordination between helm/helm and helm/helm-www. The automation preserves the current manual review checkpoints while eliminating error-prone repetitive tasks, reducing release cycle time, and improving consistency.
12
+
This HIP proposes automating the Helm release process through GitHub Actions while maintaining human review gates. The automation transforms the current 11-step manual checklist into a three-click process: trigger preparation, publish draft, merge docs PR. All changes flow through pull request reviews, preserving security while eliminating repetitive tasks.
13
13
14
14
## Motivation
15
15
16
-
The current Helm release process, documented in the [Release Checklist](https://github.com/helm/helm-www/blob/main/content/en/docs/community/release_checklist.md), involves 11 manual steps requiring maintainers to:
16
+
The current 11-step [Release Checklist](https://github.com/helm/helm-www/blob/main/content/en/docs/community/release_checklist.md) requires manual coordination across helm/helm and helm/helm-www repositories, leading to human error, time consumption, and documentation delays. This automation preserves human judgment while eliminating repetitive tasks.
17
17
18
-
- Manually edit multiple files across different repositories
19
-
- Coordinate updates between helm/helm and helm/helm-www repositories
20
-
- Perform repetitive version string replacements in test files
21
-
- Manually manage GitHub milestones and releases
22
-
- Switch between multiple repository contexts during a single release
18
+
## Design Principles
23
19
24
-
This manual process introduces several problems:
20
+
-**Human Review Gates**: All changes require PR approval before implementation
21
+
-**Draft Releases**: Created for review before triggering documentation updates
22
+
-**Security Preserved**: Maintains signed commits and GPG signatures
23
+
-**Fallback Ready**: Manual process remains fully functional
25
24
26
-
1.**Human Error**: Manual file editing leads to version mismatches and missed updates
27
-
2.**Time Consumption**: Maintainers spend significant time on repetitive tasks
28
-
3.**Context Switching**: Managing two repositories simultaneously increases cognitive load
29
-
4.**Inconsistency**: Manual processes vary between different release managers
30
-
5.**Bottlenecks**: Only maintainers familiar with the entire process can perform releases
31
-
6.**Delayed Documentation**: Website updates often lag behind releases
32
-
33
-
The existing process works but does not scale efficiently with Helm's release cadence and growing maintainer team.
34
-
35
-
## Rationale
36
-
37
-
### Design Principles
38
-
39
-
1.**Human Review Preserved**: All automation presents changes as pull requests requiring maintainer approval
40
-
2.**Security First**: No bypass of existing security measures (signed commits, GPG signatures)
41
-
3.**Draft Mode**: Automated releases created in draft mode for final human review
42
-
4.**Incremental Adoption**: Can be implemented and rolled out progressively
43
-
5.**Rollback Capability**: Easy to revert to manual process if needed
44
-
45
-
### Alternative Approaches Considered
46
-
47
-
**Full Automation**: Rejected because it removes necessary human judgment for release timing, quality assessment, and community communication.
48
-
49
-
**External Tools**: Considered tools like Release Drafter, but they lack the cross-repository coordination and Helm-specific requirements.
50
-
51
-
**Monolithic Workflow**: Rejected in favor of modular workflows that can be maintained and debugged independently.
3. **Draft Mode**: All releases created in draft mode, requiring manual publication
185
-
4. **Approval Gates**: All changes require PR approval before implementation
186
-
187
-
## How to Teach This
188
-
189
-
### Maintainer Documentation
190
-
191
-
1. Update existing release checklist with automation options
192
-
2. Create troubleshooting guide for automation failures
193
-
3. Document rollback procedures
194
-
4. Provide workflow customization examples
195
-
196
-
### Training Materials
197
-
198
-
1. Video walkthrough of automated release process
199
-
2. Comparison guide: manual vs. automated steps
200
-
3. Emergency procedures documentation
201
-
4. FAQ for common automation issues
202
-
203
-
## Reference Implementation
25
+
## Automation Flow
204
26
205
27
### Workflow Process
206
28
@@ -257,59 +79,37 @@ Example completion status:
257
79
-[ ] GitHub milestone management
258
80
-[ ] Release artifact attachment
259
81
260
-
### Corresponding Helm Workflow Plan
261
-
262
-
**helm/helm repository:**
263
-
- `.github/workflows/prepare-release.yml`- Creates preparation branch and PR with version updates
264
-
- `.github/workflows/trigger-release.yml`- Triggers release creation when prep PR merges
265
-
- `.github/workflows/create-release.yml`- Creates release branch, tag, and draft release
266
-
- `scripts/update-version.sh`- Updates version strings in code and test files
267
-
- `scripts/generate-release-notes.sh`- Generates release notes template from git history
268
-
269
-
**helm/helm-www repository:**
270
-
- `.github/workflows/update-version.yml`- Creates PR to update website configuration
271
-
- `.github/workflows/manual-update-docs.yml`- Manual fallback for docs updates
272
-
273
-
### Key Implementation Details
274
-
275
-
**Cross-repository communication** uses GitHub's `repository_dispatch` event to trigger the helm-www workflow when a helm/helm release is published. This requires a `HELM_RELEASE_TOKEN` secret with cross-repository access.
276
-
277
-
**Version file updates** use sed pattern matching to find and replace version strings across multiple file types, handling both semantic version formats and Go version variables.
278
-
279
-
**Pull request automation** leverages GitHub CLI (`gh`) to create PRs with proper titles and generated content, ensuring all changes go through standard review processes.
280
-
281
-
The implementation handles the three primary release types (major/minor/patch) through a single workflow with input parameters, automatically extracting version information and creating appropriate branch names.
282
-
283
-
## Rejected Ideas
284
-
285
-
### Fully Automated Releases
286
-
287
-
Rejected because release timing requires human judgment based on:
├── update-version.sh # Updates version strings in code and test files
92
+
└── generate-release-notes.sh # Release notes template from git history
93
+
94
+
helm/helm-www/
95
+
└── .github/workflows/
96
+
├── update-version.yml # Creates PR to update website configuration
97
+
└── manual-update-docs.yml # Manual fallback for docs updates
98
+
```
295
99
296
-
### Automatic Backporting
100
+
**Key mechanisms:**
101
+
- Cross-repository communication via `repository_dispatch` events
102
+
- Draft releases created for human review before docs automation triggers
103
+
- Persistent release branches for patch release support
104
+
- All changes flow through pull request reviews
297
105
298
-
Patch release cherry-picking requires human judgment for:
299
-
- Risk assessment of changes
300
-
- Conflict resolution
301
-
- Testing scope determination
106
+
## Security & Compatibility
302
107
303
-
## Open Issues
108
+
**Backwards Compatibility**: Manual process remains fully functional as fallback. No changes to existing release artifacts or tooling.
304
109
305
-
1. **GPG Key Management**: Best practices for storing and rotating signing keys in CI
306
-
2. **Cross-Org Coordination**: Technical approach for coordinating releases with other CNCF projects
307
-
3. **Rollback Testing**: Comprehensive testing scenarios for automation failures
308
-
4. **Metrics Collection**: Tracking automation success rates and time savings
110
+
**Security**: All releases created in draft mode requiring manual publication. GPG signing and commit signing preserved. Cross-repo access via fine-grained Personal Access Token with minimal permissions.
0 commit comments