This document outlines the process for creating new releases of OneLens Installation Scripts.
The release process is automated through GitHub Actions and follows semantic versioning. There are two ways to trigger a release:
- Git Tags (Recommended): Push a version tag to automatically trigger the release
- Manual Trigger: Use GitHub Actions workflow dispatch for custom releases
We follow Semantic Versioning (SemVer):
- Major (X.0.0): Breaking changes, major feature releases
- Minor (X.Y.0): New features, backward compatible
- Patch (X.Y.Z): Bug fixes, patches
-
Ensure Clean State
git checkout master git pull origin master
-
Create and Push Version Tag
# For version 1.4.0 git tag v1.6.0 git push origin v1.6.0 -
Automatic Process
update-versions.yamlworkflow triggers automatically- Updates chart versions and dependencies
- Commits changes to master branch
- Triggers main CI/CD pipeline
-
Navigate to GitHub Actions
- Go to repository → Actions → "Update Helm Chart Versions"
-
Run Workflow
- Click "Run workflow"
- Enter version number (e.g.,
1.4.0) - Click "Run workflow"
OneLens Agent Chart Updates:
Chart.yaml: Updates version and appVersionChart.lock: Updates dependency versionsvalues.yaml: Updates image tagsversion.md: Adds version entry to changelog
OneLens Deployer Chart Updates:
Chart.yaml: Updates chart version
Docker Image Pipeline:
- Builds multi-architecture Docker images (AMD64/ARM64)
- Runs security vulnerability scanning with Trivy
- Pushes to Amazon ECR Public registry
- Tags with version number
Helm Chart Pipeline:
- Packages both charts (onelens-agent, onelensdeployer)
- Updates Helm repository index
- Publishes to GitHub Pages
- Validates chart integrity
Chart Validation:
- Downloads published charts
- Runs
helm lintvalidation - Verifies chart structure and dependencies
graph LR
A[Git Tag] --> B[Update Versions]
B --> C[Commit Changes]
C --> D[Trigger Build]
D --> E[Docker Build]
D --> F[Helm Package]
E --> G[Security Scan]
G --> H[Push Images]
F --> I[Publish Charts]
H --> J[Validate]
I --> J
J --> K[Release Complete]
Typical Timeline:
- Version Update: ~2 minutes
- Docker Build & Scan: ~5-8 minutes
- Helm Package & Publish: ~3-5 minutes
- Total: ~10-15 minutes
- All tests passing on master branch
- Documentation updated
- Breaking changes documented
- Version number decided (following SemVer)
- Tag created/pushed or manual workflow triggered
- Monitor GitHub Actions for successful completion
- Verify Docker images published to ECR
- Verify Helm charts available in repository
- Update release notes on GitHub
- Announce release (if major/minor)
- Update dependent projects if needed
- Test installation with new version
- All Docker images are scanned for CRITICAL and HIGH vulnerabilities
- Release fails if vulnerabilities are found
- Can be bypassed only with manual approval for urgent fixes
- Only maintainers can push tags
- Manual triggers restricted to master branch
- AWS ECR access through OIDC (no long-lived credentials)
Build Fails Due to Vulnerabilities:
# Check vulnerability report in GitHub Actions artifacts
# Either fix vulnerabilities or use emergency override:
# GitHub Actions → Run workflow → Check "Skip vulnerability check"Helm Chart Validation Fails:
# Usually due to:
# - Syntax errors in Chart.yaml
# - Missing dependencies
# - Invalid version formatVersion Update Fails:
# Check if:
# - Tag format is correct (v1.2.3)
# - No conflicts in master branch
# - yq syntax is validHotfix Release:
- Create hotfix branch from master
- Apply minimal fix
- Merge to master
- Create patch version tag immediately
Rollback Release:
- Create new tag with previous version
- Previous charts remain available in Helm repo
- Users can downgrade manually if needed
For release-related issues:
- Check GitHub Actions logs
- Review workflow files in
.github/workflows/ - Contact maintainers for access issues
- Open issue for process improvements
All version history is tracked in:
- OneLens Agent Versions
- GitHub Releases
- Git tags in repository