diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a4372ea7..a5292ea1 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -39,72 +39,76 @@ jobs: - name: Fmt run: cargo fmt --all -- --files-with-diff --check - build-macos: + build: name: MacOS Bundle runs-on: macos-latest if: startsWith(github.event.ref, 'refs/tags/v') permissions: contents: write + strategy: + fail-fast: false + matrix: + include: + - platform: 'macos-latest' + args: '--target aarch64-apple-darwin' + - platform: 'macos-latest' + args: '--target x86_64-apple-darwin' + - platform: 'ubuntu-22.04' + args: '' + - platform: 'windows-latest' + args: '' steps: - name: Checkout uses: actions/checkout@v4 + - name: Get release + id: get_release + uses: actions/github-script@v6 + with: + script: | + const tag = process.env.GITHUB_REF.split('/').pop(); + const release = await github.rest.repos.getReleaseByTag({ + owner: context.repo.owner, + repo: context.repo.repo, + tag: tag, + }); + return release.data.id; + + - name: Ubuntu dependencies + if: matrix.platform == 'ubuntu-22.04' + run: sudo apt-get install -y libgtk-3-dev libjavascriptcoregtk-4.1-dev libwebkit2gtk-4.1-dev + + - name: Windows dependencies + if: matrix.platform == 'windows-latest' + run: | + choco install nasm + echo "C:\Program Files\NASM" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append + - name: Install pnpm uses: pnpm/action-setup@v4 - - name: Install + - name: Frontend dependencies run: pnpm install - name: Save API key to file + if: matrix.platform == 'macos-latest' run: | mkdir -p ~/private_keys echo -n '${{ secrets.APPLE_API_SECRET_KEY }}' > ~/private_keys/AuthKey_${{ secrets.APPLE_API_KEY_ID }}.p8 - - uses: tauri-apps/tauri-action@v0 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }} - APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }} - APPLE_API_ISSUER: ${{ secrets.APPLE_API_ISSUER }} - APPLE_API_KEY: ${{ secrets.APPLE_API_KEY_ID }} - APPLE_API_KEY_PATH: ~/private_keys/AuthKey_${{ secrets.APPLE_API_KEY_ID }}.p8 - CI: true - with: - tagName: app-v__VERSION__ # the action automatically replaces \_\_VERSION\_\_ with the app version. - releaseName: 'App v__VERSION__' - releaseBody: 'See the assets to download this version and install.' - releaseDraft: true - prerelease: false - args: ${{ matrix.args }} - - build-windows: - name: Windows Bundle - runs-on: windows-latest - permissions: - contents: write - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Install nasm + - name: Apple signing variables + if: matrix.platform == 'macos-latest' run: | - choco install nasm - echo "C:\Program Files\NASM" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append - - - name: Install pnpm - uses: pnpm/action-setup@v4 - - - name: Install - run: pnpm install + echo "APPLE_CERTIFICATE=${{ secrets.APPLE_CERTIFICATE }}" >> $GITHUB_ENV + echo "APPLE_CERTIFICATE_PASSWORD=${{ secrets.APPLE_CERTIFICATE_PASSWORD }}" >> $GITHUB_ENV + echo "APPLE_API_ISSUER=${{ secrets.APPLE_API_ISSUER }}" >> $GITHUB_ENV + echo "APPLE_API_KEY=${{ secrets.APPLE_API_KEY_ID }}" >> $GITHUB_ENV + echo "APPLE_API_KEY_PATH=~/private_keys/AuthKey_${{ secrets.APPLE_API_KEY_ID }}.p8" >> $GITHUB_ENV - uses: tauri-apps/tauri-action@v0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} CI: true with: - tagName: app-v__VERSION__ # the action automatically replaces \_\_VERSION\_\_ with the app version. - releaseName: 'App v__VERSION__' - releaseBody: 'See the assets to download this version and install.' - releaseDraft: true - prerelease: false + releaseId: ${{ steps.get_release.outputs.result }} args: ${{ matrix.args }}