feat: improve archive read performance when updating #89
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
| name: Test | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| # Linux runs on all PRs and pushes to main | |
| test-linux: | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup node | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version-file: '.nvmrc' | |
| cache: 'npm' | |
| - name: Install Rust | |
| uses: actions-rust-lang/setup-rust-toolchain@v1.15.2 | |
| with: | |
| components: clippy, rustfmt | |
| - name: Install system dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y \ | |
| libwebkit2gtk-4.1-dev \ | |
| libappindicator3-dev \ | |
| librsvg2-dev \ | |
| patchelf \ | |
| xdg-utils | |
| - name: Install frontend dependencies | |
| # TODO refactor tests so tests on Linux use Chromium | |
| run: | | |
| npm install | |
| npx playwright install --with-deps webkit | |
| - name: Lint and type check | |
| run: npm run check | |
| - name: Run tests | |
| run: npm test | |
| # macOS and Windows only run on pushes to main | |
| test-other: | |
| if: github.event_name == 'push' | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - os: 'mac' | |
| image: 'macos-latest' | |
| - os: 'windows' | |
| image: 'windows-latest' | |
| runs-on: ${{ matrix.image }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup node | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version-file: '.nvmrc' | |
| cache: 'npm' | |
| - name: Install Rust | |
| uses: actions-rust-lang/setup-rust-toolchain@v1.15.2 | |
| with: | |
| components: clippy, rustfmt | |
| - name: Install frontend dependencies | |
| if: matrix.os == 'mac' | |
| run: | | |
| npm install | |
| npx playwright install --with-deps webkit | |
| - name: Install frontend dependencies for Windows | |
| if: matrix.os == 'windows' | |
| run: | | |
| npm install | |
| npx playwright install --with-deps msedge | |
| - name: Run tests | |
| if: matrix.os == 'mac' | |
| run: npm test | |
| # Tauri on Windows uses MS Edge Chromium, so we need a different | |
| # approach to running the tests | |
| - name: Run tests on Windows | |
| if: matrix.os == 'windows' | |
| run: | | |
| cargo test | |
| npm run test:frontend:unit | |
| npx playwright test --project=integration-windows |