name: Test Rust on: pull_request: branches: [ "main" ] paths: - 'Cargo.toml' - 'Cargo.lock' - 'crates/**' - 'ee/tabby-webserver/**' - '.github/workflows/test-rust.yml' concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.ref_name }} # If this is enabled it will cancel current running and start latest cancel-in-progress: true env: RUST_TOOLCHAIN: 1.73.0 jobs: tests: runs-on: ubuntu-latest env: SCCACHE_GHA_ENABLED: true RUSTC_WRAPPER: sccache CARGO_INCREMENTAL: 0 steps: - uses: actions/checkout@v3 with: submodules: recursive - name: Install Rust uses: actions-rs/toolchain@v1 with: toolchain: ${{ env.RUST_TOOLCHAIN }} - name: Sccache cache uses: mozilla-actions/sccache-action@v0.0.3 with: version: "v0.4.0" - name: Cargo registry cache uses: actions/cache@v3 with: key: cargo-${{ runner.os }}-${{ hashFiles('**/Cargo.toml') }}-${{ github.sha }} restore-keys: | cargo-${{ runner.os }}-${{ hashFiles('**/Cargo.toml') }}- cargo-${{ runner.os }}- path: | ~/.cargo/registry ~/.cargo/git - run: bash ./ci/prepare_build_environment.sh - name: Run unit tests run: cargo test --bin tabby --lib