iOS Release #22
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 }} |