Fix TestFlight group assignment in non-interactive mode

Two changes:

- Pass app_platform:"ios" to upload_to_testflight. In distribute_only mode
  fastlane calls fetch_app_platform, which prompts for input and crashes in
  CI ("Could not retrieve response as fastlane runs in non-interactive mode").

- Drop the iOS "What to Test" changelog. The release notes are already posted
  to Slack by the nightly workflow, so there's no need to also set them on the
  TestFlight build. Removes the releaseNotes input and changelog plumbing.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Eric Bailey
2026-06-17 19:19:49 -05:00
parent cc8162bf11
commit d2c511075a
2 changed files with 3 additions and 13 deletions
+3 -12
View File
@@ -24,11 +24,6 @@ on:
type: boolean
description: Assign the build to the "QA Team" TestFlight group after submitting
default: false
releaseNotes:
type: string
description: Notes to set as the TestFlight "What to Test" changelog
required: false
default: ''
outputs:
package-version:
description: Version from package.json
@@ -216,7 +211,6 @@ jobs:
# eas submit only uploads to App Store Connect; it can't assign a build to a
# TestFlight group. fastlane's distribute_only mode skips the upload and assigns the
# already-submitted build to the group, polling until Apple finishes processing it.
# The "What to Test" changelog is supplied by the caller (e.g. the nightly workflow).
- name: 🧪 Assign build to TestFlight group
if: ${{ inputs.assignTestFlightGroup }}
env:
@@ -225,7 +219,6 @@ jobs:
ASC_KEY_P8_BASE64: ${{ secrets.ASC_KEY_P8_BASE64 }}
APP_VERSION: ${{ steps.get-build-info.outputs.PACKAGE_VERSION }}
BUILD_NUMBER: ${{ steps.ipa-build-number.outputs.build-number }}
RELEASE_NOTES: ${{ inputs.releaseNotes }}
run: |
# Ensure the API key material is removed even if fastlane exits non-zero
# (the step runs under `bash -e`, which would otherwise abort before cleanup).
@@ -239,17 +232,15 @@ jobs:
--arg key "$key_content" \
'{key_id: $key_id, issuer_id: $issuer_id, key: $key, in_house: false}' \
> asc_api_key.json
changelog_args=()
if [ -n "$RELEASE_NOTES" ]; then
changelog_args=(changelog:"$RELEASE_NOTES")
fi
# app_platform is required in non-interactive mode: distribute_only otherwise
# calls fetch_app_platform, which prompts for input and crashes without a TTY.
fastlane run upload_to_testflight \
api_key_path:"$PWD/asc_api_key.json" \
distribute_only:true \
app_platform:"ios" \
app_identifier:"xyz.blueskyweb.app" \
app_version:"$APP_VERSION" \
build_number:"$BUILD_NUMBER" \
"${changelog_args[@]}" \
groups:"QA Team"
- name: 🔔 Notify Slack of Production Build
-1
View File
@@ -78,7 +78,6 @@ jobs:
with:
profile: testflight
assignTestFlightGroup: true
releaseNotes: ${{ needs.prepare.outputs.notes }}
secrets: inherit
android: