Cleanup CI (#141)

* Feature-gate test that depends on non-default features

Makes `cargo check` work without extra flags.

* Don't set doc(html_root_url)

It is no longer recommended:
https://github.com/rust-lang/api-guidelines/pull/230

* Remove documentation URL from Cargo.toml

crates.io will link to the right version on docs.rs automatically.

* Ensure toolchains installed by actions-rs/toolchain are actually used

* Fix missing rustup component in check job

* Raise MSRV to 1.51

Older versions weren't actually working before.

* Only run clippy & rustfmt on stable toolchain

MSRV is checked in test-versions.

* Allow cargo doc to succeed without headers and multipart features

CI will still ensure that intra-doc links that rely on these are not broken.
This commit is contained in:
Jonas Platte 2021-08-07 11:06:42 +02:00 committed by GitHub
parent e13f1da11d
commit 6a042a9b3a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 14 additions and 11 deletions

View File

@ -10,15 +10,14 @@ jobs:
check: check:
# Run `cargo check` first to ensure that the pushed code at least compiles. # Run `cargo check` first to ensure that the pushed code at least compiles.
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy:
matrix:
rust: [stable, 1.40.0]
steps: steps:
- uses: actions/checkout@master - uses: actions/checkout@master
- uses: actions-rs/toolchain@v1 - uses: actions-rs/toolchain@v1
with: with:
toolchain: ${{ matrix.rust }} toolchain: stable
override: true
profile: minimal profile: minimal
components: clippy
- name: Check - name: Check
uses: actions-rs/cargo@v1 uses: actions-rs/cargo@v1
with: with:
@ -37,9 +36,12 @@ jobs:
- uses: actions-rs/toolchain@v1 - uses: actions-rs/toolchain@v1
with: with:
toolchain: stable toolchain: stable
override: true
profile: minimal profile: minimal
- name: cargo doc - name: cargo doc
working-directory: ${{ matrix.subcrate }} working-directory: ${{ matrix.subcrate }}
env:
RUSTDOCFLAGS: "-D broken-intra-doc-links"
run: cargo doc --all-features --no-deps run: cargo doc --all-features --no-deps
cargo-hack: cargo-hack:
@ -49,6 +51,7 @@ jobs:
- uses: actions-rs/toolchain@v1 - uses: actions-rs/toolchain@v1
with: with:
toolchain: stable toolchain: stable
override: true
profile: minimal profile: minimal
- name: Install cargo-hack - name: Install cargo-hack
run: | run: |
@ -63,12 +66,13 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy: strategy:
matrix: matrix:
rust: [stable, beta, nightly, 1.40.0] rust: [stable, beta, nightly, 1.51]
steps: steps:
- uses: actions/checkout@master - uses: actions/checkout@master
- uses: actions-rs/toolchain@v1 - uses: actions-rs/toolchain@v1
with: with:
toolchain: ${{ matrix.rust }} toolchain: ${{ matrix.rust }}
override: true
profile: minimal profile: minimal
- name: Run tests - name: Run tests
uses: actions-rs/cargo@v1 uses: actions-rs/cargo@v1

View File

@ -2,7 +2,6 @@
authors = ["David Pedersen <david.pdrsn@gmail.com>"] authors = ["David Pedersen <david.pdrsn@gmail.com>"]
categories = ["asynchronous", "network-programming", "web-programming"] categories = ["asynchronous", "network-programming", "web-programming"]
description = "Web framework that focuses on ergonomics and modularity" description = "Web framework that focuses on ergonomics and modularity"
documentation = "https://docs.rs/axum/0.1.3"
edition = "2018" edition = "2018"
homepage = "https://github.com/tokio-rs/axum" homepage = "https://github.com/tokio-rs/axum"
keywords = ["http", "web", "framework"] keywords = ["http", "web", "framework"]

View File

@ -664,7 +664,6 @@
//! [examples]: https://github.com/tokio-rs/axum/tree/main/examples //! [examples]: https://github.com/tokio-rs/axum/tree/main/examples
//! [`axum::Server`]: hyper::server::Server //! [`axum::Server`]: hyper::server::Server
#![doc(html_root_url = "https://docs.rs/axum/0.1.3")]
#![warn( #![warn(
clippy::all, clippy::all,
clippy::dbg_macro, clippy::dbg_macro,
@ -699,7 +698,7 @@
missing_debug_implementations, missing_debug_implementations,
missing_docs missing_docs
)] )]
#![deny(unreachable_pub, broken_intra_doc_links, private_in_public)] #![deny(unreachable_pub, private_in_public)]
#![allow(elided_lifetimes_in_paths, clippy::type_complexity)] #![allow(elided_lifetimes_in_paths, clippy::type_complexity)]
#![forbid(unsafe_code)] #![forbid(unsafe_code)]
#![cfg_attr(docsrs, feature(doc_cfg))] #![cfg_attr(docsrs, feature(doc_cfg))]

View File

@ -1,6 +1,5 @@
use crate::{ use crate::{
extract::RequestParts, handler::on, prelude::*, response::IntoResponse, routing::nest, extract::RequestParts, handler::on, prelude::*, routing::nest, routing::MethodFilter, service,
routing::MethodFilter, service,
}; };
use bytes::Bytes; use bytes::Bytes;
use futures_util::future::Ready; use futures_util::future::Ready;
@ -514,8 +513,10 @@ async fn layer_on_whole_router() {
} }
#[tokio::test] #[tokio::test]
#[cfg(feature = "header")]
async fn typed_header() { async fn typed_header() {
use extract::TypedHeader; use crate::{extract::TypedHeader, response::IntoResponse};
async fn handle(TypedHeader(user_agent): TypedHeader<headers::UserAgent>) -> impl IntoResponse { async fn handle(TypedHeader(user_agent): TypedHeader<headers::UserAgent>) -> impl IntoResponse {
user_agent.to_string() user_agent.to_string()
} }