name: 'real world tests' on: workflow_dispatch: pull_request: push: branches: - dev jobs: v2: permissions: contents: write # required to create new releases strategy: fail-fast: false matrix: include: - platform: 'macos-latest' args: '--verbose --target universal-apple-darwin --debug' - platform: 'macos-latest' args: '--verbose --target aarch64-apple-darwin --debug' - platform: 'macos-latest' args: '--verbose --target x86_64-apple-darwin --debug' - platform: 'ubuntu-22.04' args: '--verbose --debug' - platform: 'windows-latest' args: '--verbose --debug' - platform: 'ubuntu-24.04-arm' args: '--verbose --debug' - platform: 'windows-11-arm' args: '--verbose --debug' - platform: 'ubuntu-latest' args: '--verbose --debug' mobile: 'android' # can't test without an apple account #- platform: 'macos-26' # args: '--verbose --debug' # mobile: 'ios' runs-on: ${{ matrix.platform }} steps: - uses: actions/checkout@v7 # node - name: install pnpm uses: pnpm/action-setup@v6 with: version: 10.x.x - name: setup node uses: actions/setup-node@v6 with: node-version: lts/* - name: install example dependencies run: | echo "skipped" # disabled on desktop to test cli fallback install #cd ./.github/fixtures/example-with-tauri-v2 # pnpm install # rust - name: install Rust stable (desktop) if: matrix.mobile == '' uses: dtolnay/rust-toolchain@stable with: targets: aarch64-apple-darwin,x86_64-apple-darwin - name: install Rust stable (android) if: matrix.mobile == 'android' uses: dtolnay/rust-toolchain@stable with: targets: aarch64-linux-android,armv7-linux-androideabi,i686-linux-android,x86_64-linux-android - name: install Rust stable (ios) if: matrix.mobile == 'ios' uses: dtolnay/rust-toolchain@stable with: targets: aarch64-apple-ios - name: Set up JDK if: matrix.mobile == 'android' uses: actions/setup-java@v5 with: java-version: '21' # Maybe 17 distribution: 'temurin' - name: Setup Android SDK if: matrix.mobile == 'android' uses: android-actions/setup-android@v4 - name: Setup Android NDK if: matrix.mobile == 'android' uses: nttld/setup-ndk@v1 id: setup-ndk with: ndk-version: r29 link-to-sdk: true - uses: maxim-lobanov/setup-xcode@v1 if: matrix.mobile == 'ios' with: xcode-version: 26.1 - name: setup Apple API key if: matrix.mobile == 'ios' run: | APPLE_API_KEY_PATH="$RUNNER_TEMP/AuthKey_${{ secrets.APPLE_API_KEY_ID }}.p8" echo "${{ secrets.APPLE_API_KEY }}" > $APPLE_API_KEY_PATH echo "APPLE_API_KEY_PATH=$APPLE_API_KEY_PATH" >> $GITHUB_ENV echo "API_PRIVATE_KEYS_DIR=$RUNNER_TEMP" >> $GITHUB_ENV - uses: Swatinem/rust-cache@v2 with: cache-on-failure: true workspaces: | ./.github/fixtures/example-with-tauri-v2/src-tauri -> ../../target # system - name: install dependencies (ubuntu only) if: matrix.platform == 'ubuntu-22.04' || matrix.platform == 'ubuntu-24.04-arm' run: | sudo apt-get update sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev xdg-utils - name: init mobile project if: matrix.mobile != '' run: | cd ./.github/fixtures/example-with-tauri-v2 pnpm dlx @tauri-apps/cli ${{ matrix.mobile }} init - name: Preconfigured Tauri Project uses: ./ env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Updater signature is exposed here to make sure it works in PR's TAURI_SIGNING_PRIVATE_KEY: dW50cnVzdGVkIGNvbW1lbnQ6IHJzaWduIGVuY3J5cHRlZCBzZWNyZXQga2V5ClJXUlRZMEl5YTBGV3JiTy9lRDZVd3NkL0RoQ1htZmExNDd3RmJaNmRMT1ZGVjczWTBKZ0FBQkFBQUFBQUFBQUFBQUlBQUFBQWdMekUzVkE4K0tWQ1hjeGt1Vkx2QnRUR3pzQjVuV0ZpM2czWXNkRm9hVUxrVnB6TUN3K1NheHJMREhQbUVWVFZRK3NIL1VsMDBHNW5ET1EzQno0UStSb21nRW4vZlpTaXIwZFh5ZmRlL1lSN0dKcHdyOUVPclVvdzFhVkxDVnZrbHM2T1o4Tk1NWEU9Cg== NDK_HOME: ${{ steps.setup-ndk.outputs.ndk-path }} with: projectPath: ./.github/fixtures/example-with-tauri-v2 tagName: ${{ !github.event.pull_request.head.repo.fork && 'example-with-tauri-v__VERSION__' || '' }} releaseName: 'Release example with preconfigured Tauri app v__VERSION__ for tauri-v2' releaseBody: 'See the assets to download this version and install.' releaseDraft: true args: ${{ matrix.args }} retryAttempts: 1 uploadPlainBinary: true uploadWorkflowArtifacts: true uploadUpdaterSignatures: true mobile: ${{ matrix.mobile }} # workflowArtifactNamePattern: '[name]_${{ github.sha }}_[platform]_[arch]_[bundle]' # releaseAssetNamePattern: '[name]x[version]x[platform]x[arch]x[mode]x[setup]x[ext]'