Skip to content

feat: migrate to weaveworks org and implement release-please workflow #208

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jul 7, 2025

Conversation

casibbald
Copy link
Collaborator

feat: Migrate to Weaveworks org and implement modern release-please workflow

🚀 GitOpsSet Controller Migration & Modernization

This PR brings the GitOpsSet Controller back to good standing under the Weaveworks organization with a modern, automated release workflow.

Migration from gitops-tools to weaveworks

  • Go Module: Updated from github.com/gitops-tools/gitopssets-controller to github.com/weaveworks/gitopssets-controller
  • All Imports: Updated 40+ Go files with new import paths
  • PROJECT File: Updated repository references
  • Kustomize Config: Fixed image registry paths to use ghcr.io/weaveworks/gitopssets-controller
  • Tests: All existing tests pass with new module path

🔄 Modern Release-Please Workflow

  • Automated Releases: No more manual tagging! Uses conventional commits to trigger releases
  • Semantic Versioning: Automatically calculates next version (patch/minor/major) based on commit types
  • GitHub Releases: Automatically creates releases with changelogs
  • Container Images: Publishes to ghcr.io/weaveworks/gitopssets-controller with proper tags
  • Helm Charts: Publishes to ghcr.io/weaveworks/charts using Azure Helm action

🎯 How It Works

  1. Merge conventional commits to main → Release-please analyzes changes
  2. If release needed → Creates release PR with changelog and version bump
  3. Merge release PR → Automatically creates GitHub release and publishes artifacts

📦 What Gets Published

  • Container image: ghcr.io/weaveworks/gitopssets-controller:vX.Y.Z
  • Container image: ghcr.io/weaveworks/gitopssets-controller:latest (for main branch)
  • Helm chart: ghcr.io/weaveworks/charts/gitopssets-controller:X.Y.Z
  • GitHub release with artifacts and changelog

🧪 Testing & Validation

  • ✅ All existing tests pass
  • ✅ Build process works correctly
  • ✅ Helm chart generation works with helmify
  • ✅ Go module resolution works
  • ✅ Docker image builds successfully

📋 Conventional Commit Examples

feat: add new matrix generator support     → Minor version bump
fix: resolve controller memory leak        → Patch version bump  
feat!: breaking API changes               → Major version bump
docs: update README                       → No version bump
chore: update dependencies                 → No version bump

🔧 Technical Details

  • Release-Please Config: Added .release-please-config.json for Go project configuration
  • CI/CD Pipeline: Updated workflow to use Azure Helm action for reliability
  • Image Registry: All images now publish to ghcr.io/weaveworks/ namespace
  • Helm Charts: Generated via helmify and published to GHCR
  • Version Management: Automatic semantic versioning based on conventional commits

🚀 Benefits

  • Zero Manual Tagging: Releases are triggered by conventional commits
  • Consistent Versioning: Semantic versioning enforced automatically
  • Professional Releases: Automatic changelog generation and GitHub releases
  • Reduced Errors: No more manual version management mistakes
  • Better Documentation: Auto-generated changelogs from commit messages

This modernizes our release process and ensures consistent, automated releases based on conventional commits. The project is now ready for professional, automated releases under the Weaveworks organization!

- Update Go module path from gitops-tools to weaveworks organization
- Fix all import statements across the codebase (40+ files)
- Update PROJECT file and Kustomize configs for correct image registry
- Implement modern release-please workflow for automated releases
- Add Azure Helm action for reliable Helm chart publishing
- Configure automatic container image and Helm chart publishing to ghcr.io
- Add release-please configuration for conventional commit-based releases
- Remove manual tagging requirement - releases now triggered by conventional commits
@casibbald casibbald merged commit 2958668 into main Jul 7, 2025
5 checks passed
@casibbald casibbald deleted the feat/migrate-to-weaveworks-release-please branch July 7, 2025 18:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant