5.8 KiB
5.8 KiB
StellaOps Release Process
This document describes the release process for StellaOps suite and module releases.
Overview
StellaOps uses automated CI/CD pipelines for releases:
| Release Type | Workflow | Trigger |
|---|---|---|
| Module | .gitea/workflows/module-publish.yml |
Tag or manual dispatch |
| Suite | .gitea/workflows/release-suite.yml |
Tag or manual dispatch |
Module Release Process
Prerequisites
- All tests passing on main branch
- CHANGELOG.md updated with changes
- Version bumped in module's
version.txt(if applicable) - Breaking changes documented
Steps
Option A: Tag-based Release
# Create and push tag
git tag module-authority-v1.2.3
git push origin module-authority-v1.2.3
The pipeline will automatically:
- Parse module name and version from tag
- Build the module
- Publish NuGet package to Gitea registry
- Build and push container image (if applicable)
Option B: Manual Dispatch
- Navigate to Actions > Module Publish
- Click Run workflow
- Select:
- Module: e.g.,
Authority - Version: e.g.,
1.2.3 - Publish NuGet:
true - Publish Container:
true
- Module: e.g.,
- Click Run
Artifacts Published
| Artifact | Location |
|---|---|
| NuGet | git.stella-ops.org/api/packages/stella-ops.org/nuget/index.json |
| Container | git.stella-ops.org/stella-ops.org/{module}:{version} |
Suite Release Process
Prerequisites
- All module versions finalized
- Integration tests passing
- Security scan completed
- CHANGELOG.md updated
- Compatibility matrix documented
- Codename selected (see codenames.md)
Pre-Release Checklist
- [ ] All P1 issues resolved
- [ ] Performance benchmarks meet SLOs
- [ ] Documentation updated
- [ ] Migration guide prepared
- [ ] Release notes drafted
- [ ] Security advisory review complete
- [ ] Air-gap bundle tested
- [ ] Helm chart validated
Steps
Option A: Tag-based Release
# Create and push tag
git tag suite-2026.04-nova
git push origin suite-2026.04-nova
Option B: Manual Dispatch
- Navigate to Actions > Suite Release
- Click Run workflow
- Fill in:
- Version: e.g.,
2026.04 - Codename: e.g.,
Nova - Channel:
edge,stable, orlts - Skip tests:
false(default) - Dry run:
falsefor actual release
- Version: e.g.,
- Click Run
Pipeline Stages
validate → test-gate → build-modules → build-containers
↘ ↓
build-cli → build-helm → release-manifest → create-release → summary
- Validate - Check version format, resolve inputs
- Test Gate - Run unit, architecture, and contract tests
- Build Modules - Build all 9 modules (matrix)
- Build Containers - Push container images (9 modules)
- Build CLI - Build for 5 platforms
- Build Helm - Package Helm chart
- Release Manifest - Generate
suite-{version}.yaml - Create Release - Create Gitea release with artifacts
- Summary - Generate summary report
Artifacts Published
| Artifact | Files |
|---|---|
| Container images | 9 modules × 3 tags (version, channel, latest) |
| CLI binaries | 5 platforms (linux-x64, linux-arm64, win-x64, osx-x64, osx-arm64) |
| Helm chart | stellaops-{version}.tgz |
| Release manifest | suite-{version}.yaml |
| Checksums | SHA256SUMS-{version}.txt |
Release Channels
Edge
- Pre-release builds
- May contain experimental features
- Not recommended for production
- Triggered by:
channel: edgeor tag without-stable/-lts
Stable
- Production-ready releases
- Thoroughly tested
- 9 months of support (feature releases)
- Triggered by:
channel: stable
LTS (Long Term Support)
- April releases only (XX.04)
- 5 years of security updates
- 3 years of standard support
- Triggered by:
channel: lts
Rollback Procedures
Container Rollback
# Pull previous version
docker pull git.stella-ops.org/stella-ops.org/authority:2025.10
# Update deployment
kubectl set image deployment/authority authority=git.stella-ops.org/stella-ops.org/authority:2025.10
Helm Rollback
# List releases
helm history stellaops
# Rollback to previous revision
helm rollback stellaops 1
Database Rollback
- Stop all services
- Restore database from backup
- Deploy previous version
- Verify data integrity
Important: Always test rollback procedures in staging before production.
Hotfix Process
For critical security fixes:
-
Create hotfix branch from release tag
git checkout -b hotfix/2026.04.1 suite-2026.04 -
Apply fix and test
-
Tag hotfix release
git tag suite-2026.04.1 git push origin suite-2026.04.1 -
Cherry-pick fix to main branch
Post-Release Tasks
- Verify artifacts in registry
- Update documentation site
- Send release announcement
- Update compatibility matrix
- Monitor for issues (24-48 hours)
- Update roadmap
Troubleshooting
Build Failures
- Check test results in artifacts
- Review workflow logs
- Verify secrets are configured (GITEA_TOKEN)
Push Failures
- Verify registry authentication
- Check network connectivity
- Ensure no conflicting tags exist
Common Issues
| Issue | Resolution |
|---|---|
| Tag already exists | Delete tag and recreate, or use next version |
| NuGet push fails | Check package already exists, use --skip-duplicate |
| Container push fails | Verify registry login, check image size limits |