This document describes the automated release process for the Convos iOS app.
make tag-release
make promote-releaseThese commands handle the complete release workflow.
-
Prepare Release:
- Ensure all features are merged to
devbranch - Test dev build on TestFlight (triggered by tagging a commit on the dev branch)
- Decide on version number (semantic versioning)
- Ensure all features are merged to
-
Create Release Tag:
make tag-release
This will:
- Ensure you're on the
devbranch - Update version in Xcode project
- Commit the version change to
dev - Create and push the tag atomically
- Push the
devbranch to origin
- Ensure you're on the
-
Automatic GitHub Actions Process:
- Verifies version in
devbranch matches the tag - Generates AI-powered release notes using Claude
- Creates a GitHub Release with the generated notes
- Triggers dev TestFlight build
- Verifies version in
-
Promote Release to Main:
make promote-release
- Fast-forward merges dev to main
- Ensures the tag exists on both branches
- Triggers prod TestFlight build
The workflow generates customer-friendly release notes using AI:
- Short, concise bullet points (maximum 5)
- User-focused benefits (not technical details)
- Warm, friendly language
- Each point under 15 words
- No technical jargon
These notes are used for:
- GitHub Release descriptions
- App Store Connect submission (via Bitrise)
- TestFlight release notes
- Tag Creation →
make tag-releasecreates tag and triggers GitHub Actions - GitHub Release → Created with AI-generated notes
- Dev TestFlight → Bitrise builds and deploys dev build to TestFlight
- Release Promotion →
make promote-releasefast-forwards main to dev - Prod TestFlight → Bitrise builds and deploys prod build to TestFlight
- App Store Connect → Ready for App Store submission
The automated workflow (auto-release.yml) triggers on semantic version tags (including dev versions) and:
- Triggers on semantic version tags (e.g.,
1.0.1,1.0.0-dev.123456) - AI-powered release notes generation using Anthropic Claude
- Creates GitHub Release with generated notes
- Verifies version consistency between dev branch and tag
- Provides release notes to Bitrise for TestFlight builds
Add these secrets to your GitHub repository:
ANTHROPIC_API_KEY- Your Anthropic API key for generating release notes with ClaudeGITHUB_TOKEN- Automatically provided by GitHub Actions
make setupThis will install all required dependencies and set up the development environment.
-
GitHub CLI not found:
- Install GitHub CLI as shown in setup
- Ensure it's available in PATH
-
Anthropic API errors:
- Check
ANTHROPIC_API_KEYsecret is set - Verify API key has sufficient credits
- Check API rate limits
- Check
-
Version mismatch:
- Ensure Xcode project has consistent
MARKETING_VERSION - Run
make versionto check current version - Use
make tag-releasefor proper versioning
- Ensure Xcode project has consistent
- Check Actions tab for detailed logs
- Look for specific error messages in workflow steps
- Verify repository permissions and secrets
- Use semantic versioning (1.0.0, 1.0.1, 1.1.0, 2.0.0)
- Test dev build on TestFlight (triggered by dev branch merges) before creating release tag
- Test prod build on TestFlight (triggered by
make promote-release) before App Store submission - Review AI-generated notes for accuracy
- Keep release notes user-friendly for customer-facing content
- Use descriptive commit messages for better release notes
For issues with the release process:
- Check the Actions tab logs
- Verify all prerequisites are met
- Ensure secrets are properly configured
- Check GitHub Actions documentation