Files
orca/mobile/Gemfile
T
Brennan Benson 7b4e10b104 fix(mobile-ios): pin fastlane and gate the Fastfile in CI (#15092)
* fix(mobile-ios): pin fastlane and gate the Fastfile in CI

The ios-distribute job failed on every run from 2026-08-10 to 2026-08-13
because distribute_testflight passed distribute_only without app_platform,
so pilot fell through to an interactive platform prompt on ubuntu. No CI
check loads the Fastfile, so external testers got nothing for six days.

- Pin fastlane 2.238.0 and commit mobile/Gemfile.lock so ios-build (macos)
  and ios-distribute (ubuntu) cannot resolve different versions ~25 minutes
  apart. Fixes the Gemfile comment's dead mobile-build.yml reference.
- Add a Fastfile smoke check (bundle exec fastlane lanes) plus a static
  contract test for the TestFlight lane arguments to Mobile Checks.
- Set reject_build_waiting_for_review so a superseded same-train build in
  beta review stops blocking the submission.

* fix(mobile-ios): install the pinned Gemfile.lock in frozen mode

Without frozen, a lockfile that drifts from the Gemfile is silently
re-resolved per job, which is the version split the pin exists to prevent.

* test(mobile-ios): anchor the TestFlight argument contract against an empty selection

* chore(mobile-ios): canonicalize the lockfile platforms

Bundler's own normalization drops arm64-darwin-25 as redundant with the
versionless arm64-darwin, and the ubuntu runners resolve x86_64-linux-gnu.
2026-08-17 12:03:20 -07:00

13 lines
658 B
Ruby

# Pins fastlane for reproducible iOS releases in CI (see fastlane/Fastfile,
# .github/workflows/mobile-ios-release.yml, and the Fastfile smoke check in
# .github/workflows/mobile.yml). macOS runners ship a fastlane, but pinning here
# keeps the release toolchain stable across runner image bumps.
#
# Why an exact version plus a committed Gemfile.lock: ios-build (macos) and
# ios-distribute (ubuntu) resolve gems ~25 minutes apart, so an unpinned
# fastlane could split a single release across two versions. Bump deliberately
# in a PR so the Fastfile smoke check runs against the new version first.
source "https://rubygems.org"
gem "fastlane", "2.238.0"