name: tests - rust on: push: branches: - develop pull_request: types: [opened, reopened, synchronize] jobs: ## Run the `taskchampion` crate's tests with various combinations of features. features: strategy: matrix: features: - "" - "server-sync" name: "taskchampion ${{ matrix.features == '' && 'with no features' || format('with features {0}', matrix.features) }}" runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Cache cargo registry uses: actions/cache@v4 with: path: ~/.cargo/registry key: ubuntu-latest-stable-cargo-registry-${{ hashFiles('**/Cargo.lock') }} - name: Cache cargo build uses: actions/cache@v4 with: path: target key: ubuntu-latest-stable-cargo-build-target-${{ hashFiles('**/Cargo.lock') }} - uses: actions-rs/toolchain@v1 with: toolchain: stable override: true - name: test run: cargo test -p taskchampion --no-default-features --features "${{ matrix.features }}" ## Run all TaskChampion crate tests, using both the minimum supported rust version ## and the latest stable Rust. test: strategy: matrix: rust: - "1.70.0" # MSRV - "stable" os: - ubuntu-latest - macOS-latest - windows-latest name: "rust ${{ matrix.rust }} on ${{ matrix.os }}" runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 - name: Cache cargo registry uses: actions/cache@v4 with: path: ~/.cargo/registry key: ${{ runner.os }}-${{ matrix.rust }}-cargo-registry-${{ hashFiles('**/Cargo.lock') }} - name: Cache cargo build uses: actions/cache@v4 with: path: target key: ${{ runner.os }}-${{ matrix.rust }}-cargo-build-target-${{ hashFiles('**/Cargo.lock') }} - uses: actions-rs/toolchain@v1 with: toolchain: "${{ matrix.rust }}" override: true - name: test run: cargo test