# Copyright 2019-2023 Tauri Programme within The Commons Conservancy # SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: MIT name: integration tests on: workflow_dispatch: push: branches: - v1 - v2 paths: - '.github/workflows/integration-tests.yml' - 'plugins/updater/src/**' pull_request: branches: - v1 - v2 paths: - '.github/workflows/integration-tests.yml' - 'plugins/updater/src/**' permissions: contents: read env: CARGO_PROFILE_DEV_DEBUG: 0 # no debuginfo: faster builds and a much smaller target dir to cache jobs: run-integration-tests: runs-on: ${{ matrix.platform }} strategy: fail-fast: false matrix: platform: [ubuntu-22.04, macos-latest, windows-latest] steps: - uses: actions/checkout@v7 with: fetch-depth: 0 - name: install stable uses: dtolnay/rust-toolchain@stable - name: install Linux dependencies if: matrix.platform == 'ubuntu-22.04' run: | sudo apt-get update sudo apt-get install -y webkit2gtk-4.0 libwebkit2gtk-4.1-dev libayatana-appindicator3-dev libfuse2 - uses: Swatinem/rust-cache@v2 with: # Only `v2`/`v3` write to the cache: an entry saved from a pull request lives on its # merge ref, where nothing else can restore it, and every write evicts an entry # that other runs would have hit (10 GB repository limit, LRU eviction). save-if: ${{ github.ref == 'refs/heads/v2' || github.ref == 'refs/heads/v3' }} - name: install Tauri CLI # `--debug --target-dir target`: a dev-profile build in the workspace target dir reuses # the cached dependencies (shared with the test build below) instead of a from-scratch # release build in a temporary dir. `--locked` keeps the dependency versions stable # between runs, so the cached artifacts stay valid. run: cargo install tauri-cli --git https://github.com/tauri-apps/tauri --branch dev --locked --debug --target-dir target - name: run integration tests run: cargo test --test '*' -- --ignored