summaryrefslogtreecommitdiff
path: root/.github/workflows/ci.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/ci.yml')
-rw-r--r--.github/workflows/ci.yml66
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 }}