GitHub Releases with Git Flow + Build Flavors

This document explains how our GitHub Releases system integrates with the Git Flow + Build Flavors approach for automated beta and production releases.

πŸ—οΈ Release Workflow Overview

We now have two separate GitHub Actions workflows for different types of releases:

1. Beta Releases (CD-deploy-beta-releases.yml)

2. Production Releases (CD-deploy-github-releases.yml)

πŸ”„ Git Flow Integration

This system perfectly integrates with our Git Flow branching strategy:

Development Flow

develop branch β†’ feature/hotfix branches β†’ develop
                     ↓
               release/1.2.0 branch
                     ↓
              main branch (production)

Release Tagging Strategy

1. Create release branch: release/1.2.0
2. Tag beta releases: v1.2.0-beta1, v1.2.0-beta2, v1.2.0-beta3
3. Merge to main and tag production: v1.2.0

πŸ“± Build Flavors Integration

Each workflow uses our build flavors system:

Beta Releases

Production Releases

πŸš€ How to Create Releases

Creating a Beta Release

  1. Prepare Release Branch:
    git checkout develop
    git pull origin develop
    git checkout -b release/1.2.0
    
  2. Update Version (if needed):
    # Update pubspec.yaml version to 1.2.0+X
    # Commit version changes
    git add pubspec.yaml
    git commit -m "chore: bump version to 1.2.0 for release"
    
  3. Create Beta Tags:
    # Create and push beta tags
    git tag v1.2.0-beta1
    git push origin v1.2.0-beta1
       
    # After fixes/changes
    git tag v1.2.0-beta2
    git push origin v1.2.0-beta2
    
  4. Automated Beta Build: GitHub Actions automatically:
    • Builds beta flavors for Android and iOS
    • Creates GitHub prerelease with beta APKs
    • Includes comprehensive beta testing instructions

Creating a Production Release

  1. Finalize Release Branch:
    # After beta testing is complete
    git checkout release/1.2.0
    # Make final adjustments if needed
    
  2. Merge to Main:
    git checkout main
    git merge release/1.2.0
    
  3. Create Production Tag:
    git tag v1.2.0
    git push origin v1.2.0
    
  4. Automated Production Build: GitHub Actions automatically:
    • Builds production flavors for Android and iOS
    • Creates GitHub stable release with production APKs
    • Includes official release documentation

Post-Release Cleanup

# Merge release back to develop
git checkout develop
git merge release/1.2.0

# Clean up release branch
git branch -d release/1.2.0
git push origin --delete release/1.2.0

πŸ“¦ Release Artifacts

Beta Release Artifacts

Production Release Artifacts

πŸ” Quality Assurance

Both workflows include comprehensive quality checks:

Automated Validation

Release Type Validation

πŸ“– Release Documentation

Beta Releases Include

Production Releases Include

πŸ› οΈ Maintenance and Troubleshooting

Common Issues

Version Mismatch Error:

Build Flavor Errors:

Entitlements Validation Failure:

Artifact Path Issues:

Workflow Monitoring

Monitor releases in:

πŸ”„ Future Enhancements

Potential improvements to consider: