feat: release automation and documentation#40
feat: release automation and documentation#40shaneutt wants to merge 1 commit intonetworking-incubator:mainfrom
Conversation
There was a problem hiding this comment.
Pull request overview
This pull request adds release automation for the Coraza Kubernetes Operator. It introduces a GitHub Actions workflow that automatically creates draft releases when tags are pushed, determines if releases are pre-releases or stable releases based on version patterns, and generates manifest bundles (CRDs, operator, and samples) as release artifacts. The workflow enforces immutable releases by creating only draft releases that require manual publishing by maintainers.
Changes:
- Added automated release workflow triggered after successful build-test runs on version tags
- Added comprehensive release documentation for maintainers
- Removed CHANGELOG.md in favor of auto-generated release notes
- Added Makefile target to build release manifest bundles
Reviewed changes
Copilot reviewed 6 out of 7 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| .github/workflows/release.yml | New workflow that creates draft GitHub releases with manifest bundles after successful builds on version tags |
| .github/workflows/ci.yml | Updated to trigger build-test workflow on version tags (v*) in addition to main branch and PRs |
| RELEASE.md | New documentation outlining the complete release process for maintainers |
| Makefile | Added release.manifests target to build CRD, operator, and sample manifest bundles |
| DEVELOPMENT.md | Added reference to new RELEASE.md documentation |
| CHANGELOG.md | Removed in favor of auto-generated release notes |
| .gitignore | Updated to ignore dist/ directory and allow RELEASE.md while removing CHANGELOG.md from allowlist |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
2ac2e5e to
978930a
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 6 out of 7 changed files in this pull request and generated 4 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This also adds a RELEASE.md. This also removes CHANGELOG.md in favor of using GitHub's automatically generated changelogs on releases. Signed-off-by: Shane Utt <shaneutt@linux.com>
978930a to
5911445
Compare
This adds a
releaseworkflow to (mostly) automate releases. When tags are pushed, they are identified as to whether they arepre-releaseor a stablereleaseand then bundles and other content are automatically generated.Importantly, this
releaseworkflow only producesdraftreleases so that a maintainer always makes the final decision to publish a release. This is especially important because we enforce immutable releases.A
RELEASE.mddocument is also added, as helpful notes for future maintainers cutting releases.Resolves #23
Testing
I tested this workflow on my fork. You can see the following tests:
mainv0.0.5v0.0.5-rc1v1.0.5-rc1v1.0.5All succeeded, resulting in the correct release workflow:
mainv0.0.5v0.0.5-rc1v1.0.5-rc1stable-releaseforv1.0.5The corresponding draft PRs that were produced can be found here:
pre-releasepre-releasepre-releasestable-releaseEach has been tagged as
pre-releaseor not appropriately by the workflow.