Skip to content

TestFlight

TestFlight #3

Workflow file for this run

name: TestFlight
# Manual trigger — you choose when to ship a build to TestFlight.
# Runs on macos-26 (Xcode 26 / iOS 26 SDK), so no local macOS/Xcode is needed.
on:
workflow_dispatch:
jobs:
upload:
name: Archive & upload to TestFlight
runs-on: macos-26
steps:
- uses: actions/checkout@v4
- name: Show toolchain
run: |
xcodebuild -version
xcodebuild -showsdks | grep -i ios || true
- name: Write App Store Connect API key
env:
ASC_KEY_BASE64: ${{ secrets.ASC_KEY_BASE64 }}
run: |
mkdir -p "$RUNNER_TEMP/private_keys"
printf '%s' "$ASC_KEY_BASE64" | openssl base64 -d -A \
> "$RUNNER_TEMP/private_keys/AuthKey.p8"
- name: Archive & upload
env:
ASC_KEY_ID: ${{ secrets.ASC_KEY_ID }}
ASC_ISSUER_ID: ${{ secrets.ASC_ISSUER_ID }}
# Unique, monotonic build number per run so uploads never collide.
BUILD_NUMBER: ${{ github.run_number }}
run: |
export ASC_KEY_PATH="$RUNNER_TEMP/private_keys/AuthKey.p8"
./.codeyam/store/appstore/upload-testflight.sh