With --paginate, gh runs the jq aggregation per page and concatenates, so
sort_by | last ran per-page and extra workflow_dispatch runs could push past
per_page=100 and emit two URLs — which would break the curl download.
The artifacts API returns results newest-first, so the most recent marker is
always on page 1. Drop --paginate and take first(non-expired), which emits
exactly one URL (or none) by construction.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
cut -c1-3900 caps each line independently, so a busy nightly window could
still exceed Apple's 4000-char "What to Test" limit (and flood Slack). Use
head -c 3900 to cap the combined changelog stream.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The release notes, commit marker, and Slack alerts are nightly-specific, so
move them out of the build workflows and into nightly-build.yml:
- prepare job reads the previous nightly-build-commit artifact and generates
the shared changelog once
- iOS/Android builds run in parallel, consuming the notes (iOS via a new
releaseNotes input); both expose version/build outputs via workflow_call
- per-platform Slack jobs post the notes with that platform's version
- record job advances the marker only after both builds succeed, so a failed
night's commits roll into the next successful nightly's notes
Also harden the TestFlight key cleanup with a trap ... EXIT so the App Store
Connect private key is removed even if fastlane exits non-zero under bash -e.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Add a scheduled workflow (2:10 AM UTC, after the nightly i18n job) that
builds both platforms via reusable workflow_call triggers:
- Android: testflight-android profile, producing an Internal release
- iOS: testflight profile, then assigns the build to the "QA Team"
TestFlight group via fastlane (distribute_only)
Adds workflow_call triggers + an assignTestFlightGroup input to the iOS
workflow. Assigning to a TestFlight group requires App Store Connect API
key secrets (ASC_KEY_ID, ASC_ISSUER_ID, ASC_KEY_P8_BASE64), which still
need to be added to the repo.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>