fix: preserves evaluation results for in-flight tasks during lazy cancellation #2769
Workflow file for this run
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: Rust CI | |
| on: | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| env: | |
| RUST_BACKTRACE: full | |
| CARGO_TERM_COLOR: always | |
| GH_TOKEN: ${{ github.token }} | |
| IN_CI: 1 | |
| jobs: | |
| format: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Update Rust | |
| run: rustup update nightly && rustup default nightly | |
| - name: Install rustfmt | |
| run: rustup component add rustfmt | |
| - name: Check source code formatting | |
| run: cargo --locked fmt -- --check | |
| sort: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Update Rust | |
| run: rustup update stable | |
| - name: Install `cargo-sort` | |
| run: cargo install cargo-sort | |
| - name: Check for sorted `Cargo.toml` | |
| run: cargo --locked sort -w --check | |
| lint: | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, macos-latest, windows-latest] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Update Rust | |
| run: rustup update stable && rustup default stable | |
| - name: Install clippy | |
| run: rustup component add clippy | |
| - name: Check source code for lints | |
| run: cargo --locked clippy --all-features -- --deny warnings | |
| test: | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [windows-latest, macos-latest, ubuntu-latest] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: ./.github/actions/install-shellcheck | |
| - name: Update Rust | |
| run: rustup update stable && rustup default stable | |
| # Disabling cache as the size is now consistently running out of disk for certain actions | |
| # - uses: actions/cache@v4 | |
| # with: | |
| # path: | | |
| # ~/.cargo/bin/ | |
| # ~/.cargo/registry/index/ | |
| # ~/.cargo/registry/cache/ | |
| # ~/.cargo/git/db/ | |
| # target/ | |
| # key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} | |
| - name: Install cargo-nextest | |
| uses: taiki-e/install-action@v2 | |
| with: | |
| tool: nextest | |
| # Normal wdl-doc runs can automatically install Pagefind, but since the tests run in parallel, they | |
| # can step on each other's toes in CI. | |
| - name: Install Pagefind | |
| if: runner.os == 'Linux' | |
| run: npm install -g pagefind | |
| # TODO: nextest doesn't support doc tests yet (https://github.com/nextest-rs/nextest/issues/16) | |
| - name: Run tests | |
| shell: bash | |
| run: cargo nextest run --profile=ci --workspace --locked --all-targets --all-features --no-fail-fast && cargo test --workspace --doc | |
| engine-test: | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [windows-latest, macos-latest, ubuntu-latest] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: ./.github/actions/install-shellcheck | |
| - name: Update Rust | |
| run: rustup update stable && rustup default stable | |
| - uses: actions/cache@v4 | |
| with: | |
| path: | | |
| ~/.cargo/bin/ | |
| ~/.cargo/registry/index/ | |
| ~/.cargo/registry/cache/ | |
| ~/.cargo/git/db/ | |
| target/ | |
| key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} | |
| - name: Install cargo-nextest | |
| uses: taiki-e/install-action@v2 | |
| with: | |
| tool: nextest | |
| # See the `test` job | |
| - name: Install Pagefind | |
| run: npm install -g pagefind | |
| - name: Pull test images | |
| if: runner.os == 'Linux' | |
| run: | | |
| docker pull ubuntu:latest | |
| docker pull ubuntu:focal | |
| docker pull ghcr.io/multiqc/multiqc:v1.31 | |
| docker pull ghcr.io/stjudecloud/util:3.0.1 | |
| docker pull alpine:latest | |
| - name: Run tests | |
| shell: bash | |
| run: | | |
| if [[ "${{ runner.os }}" != "Linux" ]]; then | |
| export RUSTFLAGS="--cfg docker_tests_disabled" | |
| fi | |
| cargo nextest run --profile=ci --ignore-default-filter -E "not (kind(bench))" --locked -p wdl-engine -p sprocket --all-features --no-fail-fast | |
| docs: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: true | |
| - name: Update Rust | |
| run: rustup update stable && rustup default stable | |
| - run: cargo --locked doc | |
| gauntlet: | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [windows-latest, macos-latest, ubuntu-latest] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - run: git config --global core.autocrlf false | |
| - name: Update Rust | |
| run: rustup update stable && rustup default stable | |
| - run: cargo --locked run -p gauntlet --release --bin gauntlet | |
| arena: | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [windows-latest, macos-latest, ubuntu-latest] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: ./.github/actions/install-shellcheck | |
| - run: git config --global core.autocrlf false | |
| - name: Update Rust | |
| run: rustup update stable && rustup default stable | |
| - run: cargo --locked run -p gauntlet --release --bin gauntlet -- --arena | |
| workspace-lints-enabled: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Update Rust | |
| run: rustup update stable && rustup default stable | |
| - run: cargo --locked install cargo-workspace-lints | |
| - run: cargo --locked workspace-lints | |
| deny: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Update Rust | |
| run: rustup update stable && rustup default stable | |
| - run: cargo --locked install cargo-deny | |
| - run: cargo --locked deny check | |
| msrv: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Update Rust | |
| run: rustup update stable && rustup default stable | |
| - name: Install cargo-binstall | |
| run: curl -L --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/cargo-bins/cargo-binstall/main/install-from-binstall-release.sh | bash | |
| - name: Install cargo-msrv | |
| run: cargo --locked binstall -y --version 0.16.0-beta.23 cargo-msrv | |
| - name: Verify the MSRV | |
| working-directory: ./crates/wdl | |
| run: cargo --locked msrv verify --output-format minimal --all-features | |
| udeps: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Update Rust | |
| run: rustup update nightly && rustup default nightly | |
| - name: Install cargo-udeps | |
| run: cargo --locked install cargo-udeps | |
| - name: Ensure no unused dependencies | |
| run: cargo --locked udeps |