From eb092a7b8cdcf16760027522f3ea2e818e138e21 Mon Sep 17 00:00:00 2001 From: Sean McArthur Date: Tue, 17 Nov 2020 11:04:43 -0800 Subject: [PATCH] chore(ci): check all feature combinations in CI --- .github/workflows/CI.yml | 33 ++++++++++++++++++--------------- src/error.rs | 10 +++++----- 2 files changed, 23 insertions(+), 20 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index fa1ec93665..3b428bc7f3 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -9,6 +9,17 @@ env: RUST_BACKTRACE: 1 jobs: + ci-pass: + name: CI is green + runs-on: ubuntu-latest + needs: + - style + - test + - features + - doc + steps: + - run: exit 0 + style: name: Check Style runs-on: ubuntu-latest @@ -82,17 +93,9 @@ jobs: args: --benches ${{ matrix.features }} features: - name: Test Feature ${{ matrix.features }} + name: features needs: [style] - strategy: - matrix: - features: - - "--features __internal_happy_eyeballs_tests" - - "--no-default-features --features tcp" - - "--no-default-features" - runs-on: ubuntu-latest - steps: - name: Checkout uses: actions/checkout@v1 @@ -101,14 +104,14 @@ jobs: uses: actions-rs/toolchain@v1 with: profile: minimal - toolchain: stable + toolchain: nightly override: true - - name: Test - uses: actions-rs/cargo@v1 - with: - command: test - args: ${{ matrix.features }} + - name: Install cargo-hack + run: cargo install cargo-hack + + - name: check --each-feature + run: cargo hack check --each-feature -Z avoid-dev-deps doc: name: Build docs diff --git a/src/error.rs b/src/error.rs index 3bcf2eac2a..30704eee3f 100644 --- a/src/error.rs +++ b/src/error.rs @@ -42,7 +42,7 @@ pub(crate) enum Kind { #[cfg(any(feature = "http1", feature = "http2"))] Accept, /// Error while reading a body from connection. - #[cfg(any(feature = "http1", feature = "http2"))] + #[cfg(any(feature = "http1", feature = "http2", feature = "stream"))] Body, /// Error while writing a body to connection. #[cfg(any(feature = "http1", feature = "http2"))] @@ -225,7 +225,7 @@ impl Error { Error::new(Kind::UnexpectedMessage) } - #[cfg(feature = "http1")] + #[cfg(any(feature = "http1", feature = "http2"))] pub(crate) fn new_io(cause: std::io::Error) -> Error { Error::new(Kind::Io).with(cause) } @@ -249,7 +249,7 @@ impl Error { Error::new(Kind::ChannelClosed) } - #[cfg(any(feature = "http1", feature = "http2"))] + #[cfg(any(feature = "http1", feature = "http2", feature = "stream"))] pub(crate) fn new_body>(cause: E) -> Error { Error::new(Kind::Body).with(cause) } @@ -287,7 +287,7 @@ impl Error { Error::new_user(User::UnsupportedStatusCode) } - #[cfg(feature = "http1")] + #[cfg(any(feature = "http1", feature = "http2"))] pub(crate) fn new_user_absolute_uri_required() -> Error { Error::new_user(User::AbsoluteUriRequired) } @@ -350,7 +350,7 @@ impl Error { Kind::Listen => "error creating server listener", #[cfg(any(feature = "http1", feature = "http2"))] Kind::Accept => "error accepting connection", - #[cfg(any(feature = "http1", feature = "http2"))] + #[cfg(any(feature = "http1", feature = "http2", feature = "stream"))] Kind::Body => "error reading a body from connection", #[cfg(any(feature = "http1", feature = "http2"))] Kind::BodyWrite => "error writing a body to connection",