diff options
author | David LeGare <legare@google.com> | 2022-03-02 16:21:24 +0000 |
---|---|---|
committer | David LeGare <legare@google.com> | 2022-03-02 16:21:24 +0000 |
commit | 413469211c83cb5d78ff429fd264f9fe14d380d3 (patch) | |
tree | 0ee35a94c440d4b17b59f4adbc625f2cee3fb7f3 /.github | |
parent | 4be8607c6294ac1430edb4a2f42563dae5130239 (diff) | |
download | which-413469211c83cb5d78ff429fd264f9fe14d380d3.tar.gz |
Update which to 4.2.4
Test: cd external/rust/crates && atest --host -c
Change-Id: I152766edfaebfdc6f4c0d3447f873c07ada81ed3
Diffstat (limited to '.github')
-rw-r--r-- | .github/workflows/rust.yml | 98 |
1 files changed, 84 insertions, 14 deletions
diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 5ac490b..dd380d3 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -1,23 +1,93 @@ -name: Rust +name: Main workflow +on: + push: + pull_request: -on: [push, pull_request] +jobs: + # Run the `rustfmt` code formatter + rustfmt: + name: Rustfmt [Formatter] + runs-on: ubuntu-latest + steps: + - name: Setup | Checkout + uses: actions/checkout@v2 -env: - CARGO_TERM_COLOR: always + - name: Setup | Rust + uses: actions-rs/toolchain@v1 + with: + toolchain: stable + override: true + profile: minimal + components: rustfmt -jobs: + - name: Build | Format + run: cargo fmt --all -- --check + + # Run the `clippy` linting tool + clippy: + name: Clippy [Linter] + strategy: + matrix: + os: [ubuntu-latest] + runs-on: ${{ matrix.os }} + steps: + - name: Setup | Checkout + uses: actions/checkout@v2 + + - name: Setup | Rust + uses: actions-rs/toolchain@v1 + with: + toolchain: stable + override: true + profile: minimal + components: clippy + + - name: Build | Lint + uses: actions-rs/cargo@v1 + with: + command: clippy + args: --workspace --all-targets --all-features + + # Ensure that the project could be successfully compiled + cargo_check: + name: Compile + runs-on: ubuntu-latest + steps: + - name: Setup | Checkout + uses: actions/checkout@v2 + + - name: Setup | Rust + uses: actions-rs/toolchain@v1 + with: + toolchain: stable + profile: minimal + override: true + + - name: Build | Check + run: cargo check --workspace + + # Run tests on Linux, macOS, and Windows + # On both Rust stable and Rust nightly test: - name: Build and test + name: Test Suite runs-on: ${{ matrix.os }} + needs: cargo_check # First check then run expansive tests strategy: fail-fast: false matrix: - os: - - ubuntu-latest - - windows-latest - - macos-latest - + os: [ubuntu-latest, windows-latest] + rust: [stable, nightly] steps: - - uses: actions/checkout@v2 - - run: cargo build --verbose - - run: cargo test --verbose + - name: Setup | Checkout + uses: actions/checkout@v2 + + - name: Setup | Rust + uses: actions-rs/toolchain@v1 + with: + toolchain: ${{ matrix.rust }} + profile: minimal + override: true + + # Run the ignored tests that expect the above setup + - name: Build | Test + run: cargo test --workspace --all-features -- -Z unstable-options --include-ignored |