Overview
The current release process creates tagged releases with downloadable assets but may not properly update the GitHub Pages deployment to reflect the latest release version. We need to ensure that when releases are created, the web build deployed to GitHub Pages is also updated to match the released version.
Current State Analysis
✅ Working Release Pipeline
- Integrated Workflow: Single CI/CD handles building, versioning, and releasing
- Automatic Versioning: Patch increments (v1.1.1 → v1.1.2) based on commits
- Multi-Platform Builds: Linux, Windows, Android, Web built in parallel
- Release Creation: Automated GitHub releases with downloadable archives
✅ Working GitHub Pages Deployment
❓ Potential Issue: Version Synchronization
Current Web Deployment Trigger:
# From .github/workflows/ci-cd.yml
- name: Deploy to GitHub Pages
uses: actions/deploy-pages@v4
if: github.ref == 'refs/heads/main' # Only deploys on main branch pushes
Release Process Trigger:
# Auto-version runs after successful builds
auto-version:
if: github.ref == 'refs/heads/main' && github.event_name == 'push'
needs: [export-linux, export-windows, export-web, export-android]
# Release creation uses the new tag
create-release:
if: (startsWith(github.ref, 'refs/tags/v')) || (needs.auto-version.outputs.new_tag != '')
Potential Gap:
- GitHub Pages deploys during initial main branch push
- Auto-versioning creates new tag and release
- Risk: Pages deployment may not reflect the final tagged version
Investigation Required
Timing Analysis
Current Workflow Flow
Push to Main → [Build All Platforms] → [Deploy to Pages] → [Auto-Version] → [Create Release]
↑
This timing may be the issue
Desired Workflow Flow
Push to Main → [Build All Platforms] → [Auto-Version] → [Deploy Latest to Pages] → [Create Release]
↑
Deploy versioned build to Pages
Requirements
Core Synchronization
Version-Aware Pages Deployment
Consistent User Experience
Release Process Integration
Advanced Features
Version Information Display
Deployment Verification
Technical Implementation
Option 1: Sequential Deployment (RECOMMENDED)
Modify CI/CD Workflow Order:
jobs:
# ... existing build jobs ...
auto-version:
# ... existing auto-version job ...
deploy-pages:
name: Deploy to GitHub Pages
runs-on: ubuntu-22.04
if: github.ref == 'refs/heads/main'
needs: [export-web, auto-version] # Wait for versioning
permissions:
contents: read
pages: write
id-token: write
steps:
- name: Download Web Build
uses: actions/download-artifact@v4
with:
name: web
path: ./web-build
- name: Setup Pages
uses: actions/configure-pages@v4
- name: Upload to GitHub Pages
uses: actions/upload-pages-artifact@v3
with:
path: ./web-build
- name: Deploy to GitHub Pages
uses: actions/deploy-pages@v4
create-release:
needs: [export-linux, export-windows, export-web, export-android, auto-version, deploy-pages]
# ... existing release job ...
Option 2: Conditional Deployment
Deploy Only When Version Changes:
deploy-pages:
name: Deploy to GitHub Pages
if: |
github.ref == 'refs/heads/main' &&
(needs.auto-version.outputs.new_tag != '' || github.event_name == 'release')
needs: [export-web, auto-version]
Option 3: Dual Deployment Strategy
Immediate + Release Deployment:
# Keep existing immediate deployment for development
deploy-pages-dev:
name: Deploy to Pages (Development)
if: github.ref == 'refs/heads/main' && needs.auto-version.outputs.new_tag == ''
# Add release deployment for tagged versions
deploy-pages-release:
name: Deploy to Pages (Release)
if: needs.auto-version.outputs.new_tag != ''
needs: [export-web, auto-version]
Investigation Tasks
Phase 1: Current State Analysis (HIGH PRIORITY)
Phase 2: Implementation Planning (MEDIUM PRIORITY)
Phase 3: Enhanced Integration (LOW PRIORITY)
Success Criteria
Phase 1 Success
Phase 2 Success
Long-term Success
Risk Assessment
Low Risk
- Current Functionality: Existing Pages deployment and releases work independently
- Gradual Implementation: Can test and validate changes incrementally
- Rollback Capability: Easy to revert workflow changes if issues occur
Medium Risk
- Deployment Timing: Changes might affect release creation timing
- Cache Issues: Pages cache might not properly invalidate with new deployments
- User Experience: Brief inconsistency during deployment transitions
Mitigation Strategies
- Thorough Testing: Validate workflow changes on non-production branches
- Monitoring: Track deployment success and timing
- User Communication: Clear documentation of any temporary inconsistencies
- Fallback Plan: Maintain ability to manually deploy Pages if automated process fails
Dependencies
Internal Dependencies
- Working Release Pipeline: Current auto-versioning and release creation
- GitHub Pages Setup: Existing Pages deployment configuration
- Web Build Quality: Stable, deployable web exports from Godot
External Dependencies
- GitHub Actions: Pages deployment actions and permissions
- GitHub Pages Service: Reliable Pages hosting and deployment
- Godot Web Export: Stable web build generation
Expected Benefits
User Experience
- ✅ Consistent Versions: Online play matches downloadable releases
- ✅ Latest Features: Web app always has newest functionality
- ✅ Clear Information: Version display helps users understand what they're playing
- ✅ Reliable Access: Guaranteed deployment of working versions
Development Workflow
- ✅ Automated Process: No manual Pages deployment required
- ✅ Quality Assurance: Pages deployment tied to successful release process
- ✅ Version Control: Clear tracking of what version is deployed where
- ✅ Professional Standards: Coordinated release process across all platforms
Priority: Medium (quality of life improvement)
Complexity: Low-Medium (workflow configuration changes)
Impact: Ensures consistent user experience across web and download platforms
Next Steps: Start with Phase 1 investigation to understand current timing and identify any existing gaps.
Overview
The current release process creates tagged releases with downloadable assets but may not properly update the GitHub Pages deployment to reflect the latest release version. We need to ensure that when releases are created, the web build deployed to GitHub Pages is also updated to match the released version.
Current State Analysis
✅ Working Release Pipeline
✅ Working GitHub Pages Deployment
❓ Potential Issue: Version Synchronization
Current Web Deployment Trigger:
Release Process Trigger:
Potential Gap:
Investigation Required
Timing Analysis
Current Workflow Flow
Desired Workflow Flow
Requirements
Core Synchronization
Version-Aware Pages Deployment
Consistent User Experience
Release Process Integration
Advanced Features
Version Information Display
Deployment Verification
Technical Implementation
Option 1: Sequential Deployment (RECOMMENDED)
Modify CI/CD Workflow Order:
Option 2: Conditional Deployment
Deploy Only When Version Changes:
Option 3: Dual Deployment Strategy
Immediate + Release Deployment:
Investigation Tasks
Phase 1: Current State Analysis (HIGH PRIORITY)
Phase 2: Implementation Planning (MEDIUM PRIORITY)
Phase 3: Enhanced Integration (LOW PRIORITY)
Success Criteria
Phase 1 Success
Phase 2 Success
Long-term Success
Risk Assessment
Low Risk
Medium Risk
Mitigation Strategies
Dependencies
Internal Dependencies
External Dependencies
Expected Benefits
User Experience
Development Workflow
Priority: Medium (quality of life improvement)
Complexity: Low-Medium (workflow configuration changes)
Impact: Ensures consistent user experience across web and download platforms
Next Steps: Start with Phase 1 investigation to understand current timing and identify any existing gaps.