Add fastlane + GitHub Actions release automation - #6
Merged
Merged
Conversation
Automates the three release steps documented in RELEASING.md via fastlane lanes, each with a matching workflow_dispatch workflow: - cut_release: branch from main and bump MARKETING_VERSION - beta: sign via match, auto-bump the build number, archive, upload to TestFlight, and enable the build for the internal "Testers" group. Fails fast if MARKETING_VERSION is already released (closed train). - publish: tag, create the GitHub release, and open a back-merge PR Signing uses fastlane match (certs in a private repo, fetched read-only on CI via an SSH deploy key). Secrets and the Team ID are injected via the protected `release` environment and repo variables — nothing sensitive is committed. fastlane is pinned to 2.237.0. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Automates the release process from
RELEASING.mdwith fastlane + GitHub Actions. Each step is a fastlane lane plus aworkflow_dispatchworkflow.What's included
cut_release(Cut Release workflow) — branchrelease/<version>frommainand bumpMARKETING_VERSION.beta(Release workflow) — sign via match, auto-bump the build number, archive, upload to TestFlight, and enable the build for the internal Testers group. Fails fast ifMARKETING_VERSIONis already released (closed TestFlight train).publish(Publish Release workflow) — tagv<version>, create the GitHub release, and open a back-merge PR tomain.Signing & secrets
releaseenvironment (required reviewer). The Team ID is a repo variable, read from env / gitignoredLocal.xcconfig.Access control
release,publish) run in thereleaseenvironment (approval gate) and are guarded byif: github.actor == 'adborbas'.Validation
2.237.0.Note
MARKETING_VERSIONbump is intentionally not in this PR — start the next version viacut_releaseafter merge.release/publishCI paths (runner + deploy-key transport) run for the first time only after merge, sinceworkflow_dispatchworkflows must be on the default branch.🤖 Generated with Claude Code