diff --git a/.github/workflows/artifacts.yml b/.github/workflows/artifacts.yml index 90f03661..f4ac99c5 100644 --- a/.github/workflows/artifacts.yml +++ b/.github/workflows/artifacts.yml @@ -7,48 +7,50 @@ permissions: write-all jobs: build-artifacts: + permissions: + contents: write name: Build strategy: fail-fast: false matrix: include: - - os: macos-latest - target: aarch64-apple-darwin - - os: macos-latest - target: x86_64-apple-darwin - - os: windows-latest - target: x86_64-pc-windows-msvc - - os: ubuntu-20.04 - target: x86_64-unknown-linux-gnu - - runs-on: ${{ matrix.os }} + - platform: 'macos-latest' # for Arm based macs (M1 and above). + args: '--target aarch64-apple-darwin' + - platform: 'macos-latest' # for Intel based macs. + args: '--target x86_64-apple-darwin' + - platform: 'ubuntu-22.04' # for Tauri v1 you could replace this with ubuntu-20.04. + args: '' + - platform: 'windows-latest' + args: '' + runs-on: ${{ matrix.platform }} steps: - - uses: actions/checkout@v3 - - uses: dtolnay/rust-toolchain@stable + - uses: actions/checkout@v4 + - name: setup node + uses: actions/setup-node@v4 with: - targets: ${{ matrix.target }} - - name: Cache Rust - uses: actions/cache@v2 + node-version: lts/* + + - name: install Rust stable + uses: dtolnay/rust-toolchain@stable with: - path: | - ~/.cargo/registry - ~/.cargo/git - ./src-tauri/target - key: "${{ runner.os }}-cargo-${{ hashFiles('src-tauri/Cargo.lock') }}" - - uses: actions/setup-node@v3 - with: - node-version: 20 - cache: 'npm' + # Those targets are only used on macos runners so it's in an `if` to slightly speed up windows and linux builds. + targets: ${{ matrix.platform == 'macos-latest' && 'aarch64-apple-darwin,x86_64-apple-darwin' || '' }} + - name: install dependencies (ubuntu only) - if: matrix.os == 'ubuntu-20.04' + if: matrix.platform == 'ubuntu-22.04' # This must match the platform value defined above. run: | sudo apt-get update - sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev libappindicator3-dev librsvg2-dev patchelf libglib2.0-dev + sudo apt-get install -y libwebkit2gtk-4.0-dev libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf + # webkitgtk 4.0 is for Tauri v1 - webkitgtk 4.1 is for Tauri v2. + # You can remove the one that doesn't apply to your app to speed up the workflow a bit. + - name: Install dependencies run: npm ci + - name: Run tests run: npm test + # Pin dev version to get non-default targets # https://github.com/tauri-apps/tauri-action/issues/356 - uses: tauri-apps/tauri-action@dev