feat: implement API version negotiation for QS API #36
Workflow file for this run
This file contains 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
# SPDX-FileCopyrightText: 2025 Phoenix R&D GmbH <[email protected]> | |
# | |
# SPDX-License-Identifier: AGPL-3.0-or-later | |
name: Build macOS app | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
on: | |
pull_request: | |
branches: ["main"] | |
jobs: | |
macos-build: | |
runs-on: macos-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
with: | |
lfs: true | |
- name: Set up Just | |
uses: extractions/setup-just@v2 | |
- name: Set up Ruby | |
uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: '3.3' | |
- name: Set up Flutter FVM | |
uses: kuhnroyal/flutter-fvm-config-action/setup@v3 | |
with: | |
path: 'app/.fvmrc' | |
- name: Set up Rust toolchain | |
uses: dtolnay/rust-toolchain@stable | |
- name: Set up macOS CI | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: just setup-macos-ci | |
- name: Integrate bridge | |
run: just frb-integrate | |
- name: Generate Dart files | |
run: just generate-dart-files | |
- name: Test flutter | |
run: just test-flutter | |
- name: Upload golden failures | |
if: failure() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: golden-failures | |
path: app/test/**/failures/* | |
- name: Detect if PR is from a fork | |
id: detect_fork | |
shell: bash | |
run: | | |
if [ "${{ github.event.pull_request.head.repo.full_name }}" = "${{ github.repository }}" ]; then | |
echo "is_fork=false" >> $GITHUB_OUTPUT | |
else | |
echo "is_fork=true" >> $GITHUB_OUTPUT | |
fi | |
- name: Build macOS app | |
if: ${{ steps.detect_fork.outputs.is_fork == 'true' }} | |
run: | | |
cd app && fastlane mac build_macos | |
- name: Build and sign macOS app | |
if: ${{ steps.detect_fork.outputs.is_fork == 'false' }} | |
env: | |
APP_STORE_KEY_ID: ${{ secrets.APP_STORE_KEY_ID }} | |
APP_STORE_ISSUER_ID: ${{ secrets.APP_STORE_ISSUER_ID }} | |
APP_STORE_KEY_P8_BASE64: ${{ secrets.APP_STORE_KEY_P8_BASE64 }} | |
APPLE_ID: ${{ secrets.APPLE_ID }} | |
TEAM_ID: ${{ secrets.TEAM_ID }} | |
MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }} | |
MATCH_GIT_URL: ${{ secrets.MATCH_GIT_URL }} | |
MATCH_GIT_BASIC_AUTHORIZATION: ${{ secrets.MATCH_GIT_BASIC_AUTHORIZATION }} | |
run: | | |
cd app && fastlane mac beta_macos --verbose |