chore: bump version to 1.2.1 #40
Workflow file for this run
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
| # This is a basic workflow to help you get started with Actions name: 'Tauri Build' | |
| name: "Tauri Build" | |
| # Controls when the action will run. | |
| on: | |
| # Triggers the workflow on tag push only | |
| push: | |
| tags: | |
| - "v*" | |
| # Allows you to run this workflow manually from the Actions tab | |
| workflow_dispatch: | |
| permissions: | |
| contents: write | |
| # A workflow run is made up of one or more jobs that can run sequentially or in parallel | |
| jobs: | |
| build: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| platform: [macos-latest, ubuntu-22.04, windows-latest] | |
| # platform: [ubuntu-22.04] | |
| # platform: [windows-latest] | |
| # The type of runner that the job will run on | |
| runs-on: ${{ matrix.platform }} | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js 22 | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| - name: Cache Node modules | |
| uses: actions/cache@v4 | |
| with: | |
| # npm cache files are stored in ~/.npm | |
| path: ~/.npm | |
| key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} | |
| restore-keys: | | |
| ${{ runner.os }}-node- | |
| - name: Setup Rust toolchain (stable) | |
| uses: dtolnay/rust-toolchain@stable | |
| with: | |
| # Only required targets will be downloaded depending on platform | |
| targets: ${{ matrix.platform == 'macos-latest' && 'aarch64-apple-darwin,x86_64-apple-darwin' || '' }} | |
| # ---------------------------- | |
| # MACOS ONLY FIX | |
| # ---------------------------- | |
| - name: Install macOS dependencies | |
| if: matrix.platform == 'macos-latest' | |
| run: | | |
| brew install gnu-tar coreutils | |
| echo "Homebrew dependencies installed" | |
| # ---------------------------- | |
| # UBUNTU ONLY | |
| # ---------------------------- | |
| - name: Install dependencies (Linux only) | |
| if: matrix.platform == 'ubuntu-22.04' | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y \ | |
| libgtk-3-dev \ | |
| libappindicator3-dev \ | |
| librsvg2-dev \ | |
| patchelf \ | |
| libsoup-3.0 \ | |
| libwebkit2gtk-4.1-dev | |
| - name: Install Node dependencies | |
| run: npm install --force | |
| - name: Run unit tests (Linux only) | |
| if: matrix.platform == 'ubuntu-22.04' | |
| uses: GabrielBB/xvfb-action@v1 | |
| with: | |
| run: npm run test | |
| # ---------------------------- | |
| # BUILD TAURI | |
| # ---------------------------- | |
| # Note: Windows and Linux builds use different updater configurations | |
| # - Windows: updaterJsonPreferNsis=true (for .exe/.msi installers) | |
| # - Linux: updaterJsonPreferNsis=false (for .AppImage/.deb packages) | |
| # This fixes "invalid updater binary format" errors on Linux | |
| - name: Build Tauri app (macOS Universal) | |
| if: matrix.platform == 'macos-latest' | |
| uses: tauri-apps/tauri-action@v0 | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }} | |
| TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }} | |
| CLIENT_ID: ${{ secrets.CLIENT_ID }} | |
| CLIENT_SECRET: ${{ secrets.CLIENT_SECRET }} | |
| with: | |
| tagName: ${{ github.ref_name }} | |
| releaseName: "Release ${{ github.ref_name }}" | |
| releaseBody: "New release" | |
| releaseDraft: false | |
| prerelease: false | |
| includeRelease: true | |
| includeDebug: false | |
| includeUpdaterJson: true | |
| updaterJsonPreferNsis: true | |
| args: --target universal-apple-darwin | |
| - name: Self-sign macOS app | |
| if: matrix.platform == 'macos-latest' | |
| run: | | |
| # Find the app bundle in the release directory | |
| APP_PATH=$(find src-tauri/target/*/release/bundle/macos -name "*.app" -type d | head -1) | |
| if [ -z "$APP_PATH" ]; then | |
| # Try alternative path | |
| APP_PATH=$(find . -path "*/target/*/release/bundle/macos/*.app" -type d | head -1) | |
| fi | |
| if [ -n "$APP_PATH" ]; then | |
| echo "Self-signing app at: $APP_PATH" | |
| codesign --deep --force --verify --verbose --sign - "$APP_PATH" | |
| echo "App signed successfully" | |
| else | |
| echo "App bundle not found, listing directories:" | |
| find src-tauri/target -type d -name "bundle" 2>/dev/null | head -5 | |
| fi | |
| - name: Build Tauri app (Windows) | |
| if: matrix.platform == 'windows-latest' | |
| uses: tauri-apps/tauri-action@v0 | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }} | |
| TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }} | |
| CLIENT_ID: ${{ secrets.CLIENT_ID }} | |
| CLIENT_SECRET: ${{ secrets.CLIENT_SECRET }} | |
| with: | |
| tagName: ${{ github.ref_name }} | |
| releaseName: "Release ${{ github.ref_name }}" | |
| releaseBody: "New release" | |
| releaseDraft: false | |
| prerelease: false | |
| includeRelease: true | |
| includeDebug: false | |
| includeUpdaterJson: true | |
| updaterJsonPreferNsis: true | |
| - name: Build Tauri app (Linux) | |
| if: matrix.platform == 'ubuntu-22.04' | |
| uses: tauri-apps/tauri-action@v0 | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }} | |
| TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }} | |
| CLIENT_ID: ${{ secrets.CLIENT_ID }} | |
| CLIENT_SECRET: ${{ secrets.CLIENT_SECRET }} | |
| with: | |
| tagName: ${{ github.ref_name }} | |
| releaseName: "Release ${{ github.ref_name }}" | |
| releaseBody: "New release" | |
| releaseDraft: false | |
| prerelease: false | |
| includeRelease: true | |
| includeDebug: false | |
| includeUpdaterJson: true | |
| updaterJsonPreferNsis: false |