4.7 KiB
4.7 KiB
Versioning & Artifact Storage Strategy
Version Format
Tekton Armageddon uses semantic versioning: MAJOR.MINOR.PATCH
- MAJOR: Breaking changes, incompatible API changes
- MINOR: New features, backward-compatible
- PATCH: Bug fixes, content updates, backward-compatible
Current version source: project.godot → config/version
Artifact Types
1. Patch PCK Files
- Purpose: Hot-patch content updates without full client reinstall
- Storage: GitHub Actions artifacts (90 days) + tekton-updates repo
- Naming:
patch.pck(latest), versioned in tekton-updates repo - Integrity: SHA256 checksums generated and stored alongside
2. Platform Builds
- Platforms: Windows, Linux, Android
- Storage: GitHub Actions artifacts (90 days) + GitHub Releases (permanent)
- Naming:
tekton_armageddon_{Platform}_v{VERSION}.{ext} - Trigger: Git tags (
v*.*.*) or manual workflow dispatch - Integrity: SHA256 checksums for each platform build
3. Version Manifest
- File:
assets/data/version.json - Purpose: Client version checking, changelog delivery, patch URLs
- Storage: Embedded in builds + tekton-updates repo
- Integrity: SHA256 checksum
Workflows
Patch Deployment (deploy_patch.yml)
Trigger: Push to patch-release branch or manual dispatch
Process:
- Auto-bump patch version from
project.godot - Extract changelog from
CHANGELOG_DRAFT.md[NEXT] section - Generate
version.jsonwith new release entry - Commit version bump back to repo
- Build
patch.pckfrom changed files - Generate SHA256 checksums
- Upload artifacts to GitHub Actions (90-day retention)
- Push to
tekton-updatespublic repo (latest/folder)
Artifacts:
patch-pck-{SHA}: patch.pck + checksumversion-manifest-{SHA}: version.json + checksum
Platform Builds (build_artifacts.yml)
Trigger: Git tag push (v*.*.*) or manual dispatch with version input
Process:
- Matrix build for Windows, Linux, Android
- Export using Godot export presets
- Generate SHA256 checksums per platform
- Upload artifacts to GitHub Actions (90-day retention)
- Create GitHub Release with all platform builds + checksums
Artifacts:
tekton-{Platform}-v{VERSION}: platform binary + checksum
Artifact Retention
| Artifact Type | Storage Location | Retention | Purpose |
|---|---|---|---|
| Patch PCK | GitHub Actions | 90 days | CI/CD history, rollback |
| Patch PCK | tekton-updates repo | Permanent | Client downloads |
| Platform Builds | GitHub Actions | 90 days | CI/CD history |
| Platform Builds | GitHub Releases | Permanent | Distribution |
| Version Manifest | tekton-updates repo | Permanent | Client version checks |
Checksum Verification
All artifacts include SHA256 checksums for integrity verification:
# Verify patch.pck
sha256sum -c patch.pck.sha256
# Verify platform build
sha256sum -c tekton_armageddon_Windows_v2.3.8.sha256
Version Compatibility
version.json includes minimum_app_version field:
- Clients below this version must reinstall full build
- Clients at or above can use patch system
Changelog Management
Source: CHANGELOG_DRAFT.md
Format:
## [NEXT]
- Feature or fix description
- Another change
## [2.3.7] — 2026-05-15
- Archived release notes
Process:
- Developers add entries under
[NEXT] - CI extracts
[NEXT]entries on patch deployment - CI archives to versioned section
- CI clears
[NEXT]for next cycle
Manual Version Bump
For local testing without CI:
# Update versions but keep changelog
python3 tools/generate_version_json.py --local
# Skip changelog update entirely
python3 tools/generate_version_json.py --skip-changelog
Release Process
Patch Release
- Merge changes to
patch-releasebranch - CI auto-bumps version, builds, deploys
- Clients auto-download on next launch
Full Release
- Tag commit:
git tag v2.4.0 - Push tag:
git push origin v2.4.0 - CI builds all platforms, creates GitHub Release
- Distribute via Steam, Google Play, etc.
Rollback Strategy
Patch Rollback:
- Locate previous patch in GitHub Actions artifacts or tekton-updates repo
- Manually push to
tekton-updates/latest/ - Update
version.jsonto point to previous version
Full Build Rollback:
- Download previous release from GitHub Releases
- Re-tag or create hotfix branch
- Redeploy via standard release process
Future Enhancements
- Automated rollback on failed health checks
- Delta patching for bandwidth optimization
- Multi-region CDN distribution
- Staged rollout (canary deployments)
- Automated compatibility testing matrix