diff options
Diffstat (limited to '.github/workflows/ci.yml')
-rw-r--r-- | .github/workflows/ci.yml | 66 |
1 files changed, 38 insertions, 28 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9034936..8353c96 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,6 +1,12 @@ name: Rust CI checks on: push: + pull_request: + +env: + CARGO_TERM_COLOR: always +# Make sure CI fails on all warnings, including Clippy lints + RUSTFLAGS: "-Dwarnings" jobs: lint: @@ -8,9 +14,9 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - rust: - - stable - - 1.61.0 + feature: + - actix4,warp,axum + - actix3 steps: - uses: actions/checkout@v2 - name: Install Rust stable toolchain @@ -18,51 +24,55 @@ jobs: with: toolchain: stable components: rustfmt, clippy - - name: Check Rust formatting - uses: actions-rs/cargo@v1 - with: - command: fmt - args: --all -- --check - - name: Check clippy - uses: actions-rs/clippy-check@v1 - with: - token: ${{ secrets.GITHUB_TOKEN }} - args: --all-targets -- -D warnings + - name: Run formatting + run: cargo fmt --all --check + - name: Run Clippy + run: cargo clippy --all-targets -F "${{ matrix.feature }}" test: name: Run tests runs-on: ubuntu-latest strategy: matrix: + # NOTE: this crate's MSRC if 1.63 + # However, many of the web frameworks that + # this provides support for have greater/missing MSRVs. + # We attempt to test the MSRV here if it is known. rust: - stable - - 1.61.0 + - 1.63.0 feature: - "" - actix4 - actix3 - warp - axum + + # test frameworks for specific MSRVs (where known) + include: + # axum 0.8 has a MSRV of 1.75.0 + - rust: 1.75.0 + feature: axum + + # exclude frameworks that have a different/unknown MSRV exclude: - - rust: 1.61.0 + - rust: 1.63.0 + feature: axum + # actix does not seem to actually adhere + # to its MSRV -- it states 1.75 but has a dependency `zerofrom` + # that requires Rust 1.81. We'll punt on testing it + - rust: 1.63.0 feature: actix4 - - rust: 1.61.0 + - rust: 1.63.0 feature: actix3 - - rust: 1.61.0 + # warp does not list an MSRV + # see: https://github.com/seanmonstar/warp/issues/1077 + - rust: 1.63.0 feature: warp - - rust: 1.61.0 - feature: axum steps: - - uses: actions/checkout@v2 - - uses: actions/cache@v2 - with: - path: | - ~/.cargo/registry - ~/.cargo/git - target - key: ${{ runner.os }}-cargo-test-${{ hashFiles('Cargo.toml') }} + - uses: actions/checkout@v4 - name: Install Rust stable toolchain - uses: dtolnay/rust-toolchain@master + uses: dtolnay/rust-toolchain@stable with: toolchain: ${{ matrix.rust }} - name: Run test ${{ matrix.feature }} |