Skip to content

[Draft] Add Fastlane release workflows for iOS and Android - #61

Draft
IanDBird wants to merge 1 commit into
mainfrom
ian/fastlane-release
Draft

[Draft] Add Fastlane release workflows for iOS and Android#61
IanDBird wants to merge 1 commit into
mainfrom
ian/fastlane-release

Conversation

@IanDBird

@IanDBird IanDBird commented Feb 23, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Adds a GitHub Actions workflow (release-app.yml) triggered by app/v* tags that builds and deploys both iOS and Android in parallel
  • iOS: Fastlane Match for code signing, build_app for archiving, upload_to_testflight for deployment
  • Android: Gradle builds a signed AAB (signing config from env vars), Fastlane Supply uploads to Google Play internal testing
  • Updates existing SDK publish workflows to use sdk/v* tag prefix to avoid conflicts
  • Adds shared Xcode scheme and aligns iOS bundle ID to ai.anam.lab.client
  • Includes infrastructure runbook (docs/RELEASE_SETUP.md) with step-by-step setup for Apple Developer, Google Play, and GitHub Secrets

New files

File Purpose
Gemfile + Gemfile.lock Fastlane Ruby dependency (pinned)
fastlane/Fastfile iOS beta and Android internal lanes
fastlane/Appfile App identifiers for both platforms
fastlane/Matchfile iOS certificate repo configuration
.github/workflows/release-app.yml Combined release workflow
apps/ios/App.xcodeproj/xcshareddata/xcschemes/App.xcscheme Shared Xcode scheme for CI
docs/RELEASE_SETUP.md Infrastructure team runbook (11 GitHub Secrets)

Tag conventions

Tag pattern Triggers
app/v1.0.0 App release (iOS + Android in parallel)
sdk/v1.0.0 SDK publish to Maven Central

Prerequisites before first run

See docs/RELEASE_SETUP.md for full setup. In short:

  1. Configure 11 GitHub Secrets (6 iOS + 5 Android)
  2. Run fastlane match appstore once from a Mac to initialize certificates
  3. First Android AAB must be uploaded manually to Play Console (see bootstrap instructions in RELEASING.md)

Test plan

  • Verify ./gradlew :apps:android:assembleDebug still works locally without env vars
  • Verify Xcode builds locally with automatic signing after bundle ID change
  • Configure GitHub Secrets and push app/v0.1.0 tag to trigger first run
  • Verify AAB artifact is downloadable from workflow run
  • Verify iOS build completes and uploads to TestFlight
  • Push sdk/v* tag and verify only SDK workflows trigger

🤖 Generated with Claude Code


Summary by cubic

Adds a GitHub Actions workflow to release the iOS and Android apps via Fastlane when tagging app/v*. Switches SDK workflows to sdk/v* and adds Fastlane configs, signing setup, and docs.

  • New Features

    • New release-app.yml builds iOS and Android in parallel; uploads to TestFlight and Google Play internal.
    • Validates semver from tag; build number comes from the workflow run; uploads .ipa/.aab artifacts.
    • iOS: Fastlane Match for signing; shared Xcode scheme; bundle ID set to ai.anam.lab.client.
    • Android: env-based release signing; Gradle builds signed AAB; Fastlane Supply upload.
  • Migration

    • Configure required GitHub Secrets for iOS and Android (see docs/RELEASE_SETUP.md).
    • Run fastlane match appstore once on a Mac to initialize certificates.
    • Manually upload the first Android AAB in Play Console; future app/v* tags publish automatically.
    • Use sdk/v* for SDK releases; use app/v* for app releases.

Written for commit 3190656. Summary will update on new commits.

…d (Google Play)

Add GitHub Actions workflow triggered by `app/v*` tags that builds and
deploys both platforms in parallel. iOS uses Fastlane Match for signing
and uploads to TestFlight; Android builds a signed AAB via Gradle and
uploads to Google Play internal testing via Fastlane Supply.

- Add Fastlane setup (Gemfile, Fastfile, Appfile, Matchfile)
- Add release-app.yml workflow with version validation, concurrency
  control, and artifact uploads for both platforms
- Add release signing config to Android build.gradle.kts (env var based,
  inactive locally)
- Align iOS bundle ID to ai.anam.lab.client and add shared Xcode scheme
- Update SDK publish workflows to use sdk/v* tag prefix
- Add infrastructure runbook (docs/RELEASE_SETUP.md)
- Update README and RELEASING.md with new conventions
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant