Release flow#26
Merged
Merged
Conversation
- Triggers on version tags (v*) - Builds all 6 architectures using existing make release-build - Creates proper tar.gz archives with LICENSE - Generates SHA256 checksums - Creates GitHub release with all artifacts
- Disable Go cache to avoid tar restoration conflicts - Add explicit cache cleaning for fresh builds - Download and verify dependencies explicitly - Ensures clean build environment for releases
- Generate final kubectl-oadp.yaml with real SHA256 checksums - Use Python for readable and maintainable string processing - Include final manifest as release artifact - Update release notes with installation instructions - Ready for krew index submission automation
- Use v0.0.0 as template version placeholder - All URLs now use consistent template version - Add missing windows-arm64 platform (matches workflow builds) - Ready for Python automation to populate real versions and SHA256s
✨ Major improvements:
- Convert oadp.yaml to environment variable template
- Replace complex Python regex with clean envsubst
- Much more readable and maintainable approach
- Robust error handling and validation
- Template uses ${VERSION}, ${LINUX_AMD64_SHA}, etc.
🔧 Technical benefits:
- No more fragile regex string replacement
- Standard environment variable substitution
- Easier to debug and modify
- Less code, more reliable
🎯 Perfect for krew index submission: - Generate oadp.yaml directly (not oadp-final.yaml) - Release artifact is ready to drop into krew index - No renaming needed - matches krew convention exactly - Clean workflow: template → envsubst → oadp.yaml
🐛 Fixes checksum validation errors: - Only create archives for the 6 krew platforms (not ppc64le/s390x) - Fix Windows naming: .exe binary → .tar.gz archive (no .exe in archive name) - Skip non-binary files (kubectl-oadp-design.md) - Explicit platform list ensures exact match with oadp.yaml - Better error handling if binaries missing ✅ Now checksums.txt will have exactly the files the workflow expects
🐛 Resolves tar exit code 2 failures across all workflows: - Disable Go cache in cross-arch build job (cache: false) - Disable Go cache in all test jobs (Linux/macOS/Windows) - Add cache cleaning step for build job - Prevents tar conflicts during cache restoration ✅ No more 'Failed to restore' warnings in CI logs 🚀 More reliable builds across all architectures
kaovilai
reviewed
Jul 17, 2025
🚀 Expand platform coverage for enterprise environments: - Add linux-ppc64le platform to krew manifest - Add linux-s390x platform to krew manifest - Update release workflow to build and package new architectures - Add environment variable extraction for new platform checksums - Update release notes to reflect 8 total platforms ✅ Now supports: - Linux: amd64, arm64, ppc64le, s390x - macOS: amd64, arm64 - Windows: amd64, arm64 🎯 Enables OADP CLI installation on IBM Power and mainframe systems
This was
linked to
issues
Jul 18, 2025
Closed
Closed
kaovilai
approved these changes
Jul 18, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add automated krew manifest generation and release workflow
🎯 What This PR Does
Adds automated release pipeline with krew plugin manifest generation for seamless distribution.
🚀 Key Features
Automated Krew Manifest Generation
oadp.yamlwith environment variable substitutionoadp.yamlfile as release artifactRelease Automation
git tag v0.1.0 && git push origin v0.1.0)Archive Creation Fixes
📦 Release Artifacts
Each release now provides:
oadp.yaml- Final krew manifest ready for index submission🔧 Technical Improvements
🎁 Benefits
Ready for krew index submission - just download
oadp.yamlfrom releases and submit tokubernetes-sigs/krew-index! 🎉📋 Files Added/Modified
.github/workflows/release.yml- New automated release pipelineoadp.yaml- Converted to template for automated generationtests/common.go- Windows compatibility fixes (if needed)🧪 Testing
The workflow has been tested with multiple release cycles and successfully: