# Copyright 2019-2024 Tauri Programme within The Commons Conservancy # SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: MIT name: test `@tauri-apps/cli` on: push: branches: - dev pull_request: paths: - '.github/workflows/test-cli-js.yml' - 'packages/cli/**' # currently` @tauri-apps/cli` only tests the template - 'crates/tauri-cli/templates/app/**' env: RUST_BACKTRACE: 1 CARGO_PROFILE_DEV_DEBUG: 0 # This would add unnecessary bloat to the target folder, decreasing cache efficiency. concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true permissions: contents: read jobs: test: runs-on: ${{ matrix.platform }} strategy: fail-fast: false matrix: platform: [ubuntu-latest, macos-latest, windows-latest] steps: - uses: actions/checkout@v7 - name: install Rust 1.90 # the MSRV, so this job restores the `tauri-cli` cache entry saved by test-cli-rs uses: dtolnay/rust-toolchain@1.90 - run: npm i -g --force corepack - name: setup node uses: actions/setup-node@v7 with: node-version: 'lts/*' cache: 'pnpm' - name: install Linux dependencies if: matrix.platform == 'ubuntu-latest' run: | sudo apt-get update sudo apt-get install -y webkit2gtk-4.1 libayatana-appindicator3-dev librsvg2-dev - uses: Swatinem/rust-cache@v2 with: # Restore-only: test-cli-rs saves this entry on `dev`; see test-cli-rs.yml. shared-key: tauri-cli save-if: false - name: test timeout-minutes: 30 # The template test exercises the CLI, not its release profile. A debug build reuses # the cached dependencies instead of a from-scratch LTO build (5-8 minutes per platform). run: | cd ./packages/cli pnpm i --frozen-lockfile pnpm build:debug pnpm test