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

View file

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

View file

@ -664,7 +664,6 @@
//! [examples]: https://github.com/tokio-rs/axum/tree/main/examples
//! [`axum::Server`]: hyper::server::Server
#![doc(html_root_url = "https://docs.rs/axum/0.1.3")]
#![warn(
clippy::all,
clippy::dbg_macro,
@ -699,7 +698,7 @@
missing_debug_implementations,
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)]
#![forbid(unsafe_code)]
#![cfg_attr(docsrs, feature(doc_cfg))]

View file

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