Skip to content

iOS Release

iOS Release #22

Workflow file for this run

name: iOS Release
on:
workflow_dispatch:
inputs:
dry_run:
description: Build and validate release flow without uploading to TestFlight
required: false
default: false
type: boolean
push:
branches:
# Let's manually release.
# - "main"
- "fastlane/**"
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
testflight:
name: Upload to TestFlight
runs-on: macos-latest
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Run sccache-cache
uses: mozilla-actions/sccache-action@v0.0.9
- uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: "26"
- name: Install Prereqs
run: |
brew install swift-protobuf
brew tap tuist/tuist
brew install --formula tuist@4.131.1
- name: Build Logic for Deployment
run: make logic-deploy
env:
SCCACHE_GHA_ENABLED: "true"
RUSTC_WRAPPER: sccache
- name: Generate Xcode Project
run: tuist generate
working-directory: app
- name: Set up Ruby & Bundler
uses: ruby/setup-ruby@v1
with:
bundler-cache: true
env:
BUNDLE_GEMFILE: app/Gemfile
- run: bundle exec fastlane beta dry_run:${{ inputs.dry_run && 'true' || 'false' }}
working-directory: app
env:
MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}
FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD: ${{ secrets.FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD }}
GIT_AUTHORIZATION: ${{ secrets.GIT_AUTHORIZATION }}
APP_STORE_CONNECT_API_KEY_KEY_ID: ${{ secrets.APP_STORE_CONNECT_API_KEY_KEY_ID }}
APP_STORE_CONNECT_API_KEY_KEY: ${{ secrets.APP_STORE_CONNECT_API_KEY_KEY }}
APP_STORE_CONNECT_API_KEY_ISSUER_ID: ${{ secrets.APP_STORE_CONNECT_API_KEY_ISSUER_ID }}