mirror of
https://github.com/tokio-rs/tokio.git
synced 2026-08-27 00:00:12 +02:00
chore: make it easier to pin Rust versions in CI (#4448)
When backporting patches to LTS branches, we often run into CI failures due to changes in rust. Newer rust versions add more lints, which break CI. We really don't want to also have to backport patches that fix CI, so instead, LTS branches should pin the stable rust version in CI (e.g. #4434). This PR restructures the CI config files to make it a bit easier to set a specific rust version in CI.
This commit is contained in:
@@ -4,6 +4,9 @@ jobs:
|
|||||||
machine:
|
machine:
|
||||||
image: ubuntu-2004:202101-01
|
image: ubuntu-2004:202101-01
|
||||||
resource_class: arm.medium
|
resource_class: arm.medium
|
||||||
|
environment:
|
||||||
|
# Change to pin rust versino
|
||||||
|
RUST_STABLE: stable
|
||||||
steps:
|
steps:
|
||||||
- checkout
|
- checkout
|
||||||
- run:
|
- run:
|
||||||
@@ -11,7 +14,7 @@ jobs:
|
|||||||
command: |
|
command: |
|
||||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs -o rustup.sh
|
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs -o rustup.sh
|
||||||
chmod +x rustup.sh
|
chmod +x rustup.sh
|
||||||
./rustup.sh -y
|
./rustup.sh -y --default-toolchain $RUST_STABLE
|
||||||
source "$HOME"/.cargo/env
|
source "$HOME"/.cargo/env
|
||||||
# Only run Tokio tests
|
# Only run Tokio tests
|
||||||
- run: cargo test --all-features -p tokio
|
- run: cargo test --all-features -p tokio
|
||||||
|
|||||||
+5
-3
@@ -1,6 +1,8 @@
|
|||||||
freebsd_instance:
|
freebsd_instance:
|
||||||
image: freebsd-12-2-release-amd64
|
image: freebsd-12-2-release-amd64
|
||||||
env:
|
env:
|
||||||
|
RUST_STABLE: stable
|
||||||
|
RUST_NIGHTLY: nightly-2022-01-12
|
||||||
RUSTFLAGS: -D warnings
|
RUSTFLAGS: -D warnings
|
||||||
|
|
||||||
# Test FreeBSD in a full VM on cirrus-ci.com. Test the i686 target too, in the
|
# Test FreeBSD in a full VM on cirrus-ci.com. Test the i686 target too, in the
|
||||||
@@ -12,7 +14,7 @@ task:
|
|||||||
setup_script:
|
setup_script:
|
||||||
- pkg install -y bash curl
|
- pkg install -y bash curl
|
||||||
- curl https://sh.rustup.rs -sSf --output rustup.sh
|
- curl https://sh.rustup.rs -sSf --output rustup.sh
|
||||||
- sh rustup.sh -y --profile minimal --default-toolchain stable
|
- sh rustup.sh -y --profile minimal --default-toolchain $RUST_STABLE
|
||||||
- . $HOME/.cargo/env
|
- . $HOME/.cargo/env
|
||||||
- |
|
- |
|
||||||
echo "~~~~ rustc --version ~~~~"
|
echo "~~~~ rustc --version ~~~~"
|
||||||
@@ -29,7 +31,7 @@ task:
|
|||||||
setup_script:
|
setup_script:
|
||||||
- pkg install -y bash curl
|
- pkg install -y bash curl
|
||||||
- curl https://sh.rustup.rs -sSf --output rustup.sh
|
- curl https://sh.rustup.rs -sSf --output rustup.sh
|
||||||
- sh rustup.sh -y --profile minimal --default-toolchain nightly-2022-01-12
|
- sh rustup.sh -y --profile minimal --default-toolchain $RUST_NIGHTLY
|
||||||
- . $HOME/.cargo/env
|
- . $HOME/.cargo/env
|
||||||
- |
|
- |
|
||||||
echo "~~~~ rustc --version ~~~~"
|
echo "~~~~ rustc --version ~~~~"
|
||||||
@@ -43,7 +45,7 @@ task:
|
|||||||
setup_script:
|
setup_script:
|
||||||
- pkg install -y bash curl
|
- pkg install -y bash curl
|
||||||
- curl https://sh.rustup.rs -sSf --output rustup.sh
|
- curl https://sh.rustup.rs -sSf --output rustup.sh
|
||||||
- sh rustup.sh -y --profile minimal --default-toolchain stable
|
- sh rustup.sh -y --profile minimal --default-toolchain $RUST_STABLE
|
||||||
- . $HOME/.cargo/env
|
- . $HOME/.cargo/env
|
||||||
- rustup target add i686-unknown-freebsd
|
- rustup target add i686-unknown-freebsd
|
||||||
- |
|
- |
|
||||||
|
|||||||
+79
-46
@@ -9,8 +9,11 @@ name: CI
|
|||||||
env:
|
env:
|
||||||
RUSTFLAGS: -Dwarnings
|
RUSTFLAGS: -Dwarnings
|
||||||
RUST_BACKTRACE: 1
|
RUST_BACKTRACE: 1
|
||||||
nightly: nightly-2022-01-12
|
# Change to specific Rust release to pin
|
||||||
minrust: 1.46
|
rust_stable: stable
|
||||||
|
rust_nightly: nightly-2022-01-12
|
||||||
|
rust_clippy: 1.52.0
|
||||||
|
rust_min: 1.46.0
|
||||||
|
|
||||||
defaults:
|
defaults:
|
||||||
run:
|
run:
|
||||||
@@ -51,6 +54,11 @@ jobs:
|
|||||||
- macos-latest
|
- macos-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
|
- name: Install Rust ${{ env.rust_stable }}
|
||||||
|
uses: actions-rs/toolchain@v1
|
||||||
|
with:
|
||||||
|
toolchain: ${{ env.rust_stable }}
|
||||||
|
override: true
|
||||||
- name: Install Rust
|
- name: Install Rust
|
||||||
run: rustup update stable
|
run: rustup update stable
|
||||||
- uses: Swatinem/rust-cache@v1
|
- uses: Swatinem/rust-cache@v1
|
||||||
@@ -96,8 +104,11 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- name: Install Rust
|
- name: Install Rust ${{ env.rust_stable }}
|
||||||
run: rustup update stable
|
uses: actions-rs/toolchain@v1
|
||||||
|
with:
|
||||||
|
toolchain: ${{ env.rust_stable }}
|
||||||
|
override: true
|
||||||
- uses: Swatinem/rust-cache@v1
|
- uses: Swatinem/rust-cache@v1
|
||||||
- name: Enable parking_lot send_guard feature
|
- name: Enable parking_lot send_guard feature
|
||||||
# Inserts the line "plsend = ["parking_lot/send_guard"]" right after [features]
|
# Inserts the line "plsend = ["parking_lot/send_guard"]" right after [features]
|
||||||
@@ -110,8 +121,11 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- name: Install Rust
|
- name: Install Rust ${{ env.rust_stable }}
|
||||||
run: rustup update stable
|
uses: actions-rs/toolchain@v1
|
||||||
|
with:
|
||||||
|
toolchain: ${{ env.rust_stable }}
|
||||||
|
override: true
|
||||||
- uses: Swatinem/rust-cache@v1
|
- uses: Swatinem/rust-cache@v1
|
||||||
|
|
||||||
- name: Install Valgrind
|
- name: Install Valgrind
|
||||||
@@ -148,10 +162,12 @@ jobs:
|
|||||||
- macos-latest
|
- macos-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- name: Install Rust
|
- name: Install Rust ${{ env.rust_stable }}
|
||||||
run: rustup update stable
|
uses: actions-rs/toolchain@v1
|
||||||
|
with:
|
||||||
|
toolchain: ${{ env.rust_stable }}
|
||||||
|
override: true
|
||||||
- uses: Swatinem/rust-cache@v1
|
- uses: Swatinem/rust-cache@v1
|
||||||
|
|
||||||
# Run `tokio` with "unstable" cfg flag.
|
# Run `tokio` with "unstable" cfg flag.
|
||||||
- name: test tokio full --cfg unstable
|
- name: test tokio full --cfg unstable
|
||||||
run: cargo test --all-features
|
run: cargo test --all-features
|
||||||
@@ -164,29 +180,29 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- uses: actions-rs/toolchain@v1
|
- name: Install Rust ${{ env.rust_nightly }}
|
||||||
|
uses: actions-rs/toolchain@v1
|
||||||
with:
|
with:
|
||||||
toolchain: ${{ env.nightly }}
|
toolchain: ${{ env.rust_nightly }}
|
||||||
|
components: miri
|
||||||
override: true
|
override: true
|
||||||
- uses: Swatinem/rust-cache@v1
|
- uses: Swatinem/rust-cache@v1
|
||||||
- name: Install Miri
|
- name: miri
|
||||||
run: |
|
run: |
|
||||||
set -e
|
set -e
|
||||||
rustup component add miri
|
rm -rf tests
|
||||||
cargo miri setup
|
cargo miri test --features rt,rt-multi-thread,sync task
|
||||||
rm -rf tokio/tests
|
|
||||||
|
|
||||||
- name: miri
|
|
||||||
run: cargo miri test --features rt,rt-multi-thread,sync task
|
|
||||||
working-directory: tokio
|
working-directory: tokio
|
||||||
|
|
||||||
san:
|
san:
|
||||||
name: san
|
name: san
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- uses: actions-rs/toolchain@v1
|
- name: Install Rust ${{ env.rust_nightly }}
|
||||||
|
uses: actions-rs/toolchain@v1
|
||||||
with:
|
with:
|
||||||
toolchain: ${{ env.nightly }}
|
toolchain: ${{ env.rust_nightly }}
|
||||||
override: true
|
override: true
|
||||||
- uses: Swatinem/rust-cache@v1
|
- uses: Swatinem/rust-cache@v1
|
||||||
- name: asan
|
- name: asan
|
||||||
@@ -209,9 +225,10 @@ jobs:
|
|||||||
- arm-linux-androideabi
|
- arm-linux-androideabi
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- uses: actions-rs/toolchain@v1
|
- name: Install Rust ${{ env.rust_stable }}
|
||||||
|
uses: actions-rs/toolchain@v1
|
||||||
with:
|
with:
|
||||||
toolchain: stable
|
toolchain: ${{ env.rust_stable }}
|
||||||
target: ${{ matrix.target }}
|
target: ${{ matrix.target }}
|
||||||
override: true
|
override: true
|
||||||
- uses: Swatinem/rust-cache@v1
|
- uses: Swatinem/rust-cache@v1
|
||||||
@@ -226,17 +243,17 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- uses: actions-rs/toolchain@v1
|
- name: Install Rust ${{ env.rust_nightly }}
|
||||||
|
uses: actions-rs/toolchain@v1
|
||||||
with:
|
with:
|
||||||
toolchain: ${{ env.nightly }}
|
toolchain: ${{ env.rust_nightly }}
|
||||||
|
target: ${{ matrix.target }}
|
||||||
override: true
|
override: true
|
||||||
- uses: Swatinem/rust-cache@v1
|
- uses: Swatinem/rust-cache@v1
|
||||||
- name: Install cargo-hack
|
- name: Install cargo-hack
|
||||||
run: cargo install cargo-hack
|
run: cargo install cargo-hack
|
||||||
|
|
||||||
- name: check --each-feature
|
- name: check --each-feature
|
||||||
run: cargo hack check --all --each-feature -Z avoid-dev-deps
|
run: cargo hack check --all --each-feature -Z avoid-dev-deps
|
||||||
|
|
||||||
# Try with unstable feature flags
|
# Try with unstable feature flags
|
||||||
- name: check --each-feature --unstable
|
- name: check --each-feature --unstable
|
||||||
run: cargo hack check --all --each-feature -Z avoid-dev-deps
|
run: cargo hack check --all --each-feature -Z avoid-dev-deps
|
||||||
@@ -248,9 +265,10 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- uses: actions-rs/toolchain@v1
|
- name: Install Rust ${{ env.rust_min }}
|
||||||
|
uses: actions-rs/toolchain@v1
|
||||||
with:
|
with:
|
||||||
toolchain: ${{ env.minrust }}
|
toolchain: ${{ env.rust_min }}
|
||||||
override: true
|
override: true
|
||||||
- uses: Swatinem/rust-cache@v1
|
- uses: Swatinem/rust-cache@v1
|
||||||
- name: "test --workspace --all-features"
|
- name: "test --workspace --all-features"
|
||||||
@@ -261,9 +279,10 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- uses: actions-rs/toolchain@v1
|
- name: Install Rust ${{ env.rust_nightly }}
|
||||||
|
uses: actions-rs/toolchain@v1
|
||||||
with:
|
with:
|
||||||
toolchain: ${{ env.nightly }}
|
toolchain: ${{ env.rust_nightly }}
|
||||||
override: true
|
override: true
|
||||||
- uses: Swatinem/rust-cache@v1
|
- uses: Swatinem/rust-cache@v1
|
||||||
- name: Install cargo-hack
|
- name: Install cargo-hack
|
||||||
@@ -292,10 +311,13 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- name: Install Rust
|
- name: Install Rust ${{ env.rust_stable }}
|
||||||
run: rustup update stable
|
uses: actions-rs/toolchain@v1
|
||||||
|
with:
|
||||||
|
toolchain: ${{ env.rust_stable }}
|
||||||
|
override: true
|
||||||
|
components: rustfmt
|
||||||
- uses: Swatinem/rust-cache@v1
|
- uses: Swatinem/rust-cache@v1
|
||||||
|
|
||||||
# Check fmt
|
# Check fmt
|
||||||
- name: "rustfmt --check"
|
- name: "rustfmt --check"
|
||||||
# Workaround for rust-lang/cargo#7732
|
# Workaround for rust-lang/cargo#7732
|
||||||
@@ -310,12 +332,13 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- name: Install Rust
|
- name: Install Rust ${{ env.rust_clippy }}
|
||||||
run: rustup update 1.57 && rustup default 1.57
|
uses: actions-rs/toolchain@v1
|
||||||
|
with:
|
||||||
|
toolchain: ${{ env.rust_clippy }}
|
||||||
|
override: true
|
||||||
|
components: clippy
|
||||||
- uses: Swatinem/rust-cache@v1
|
- uses: Swatinem/rust-cache@v1
|
||||||
- name: Install clippy
|
|
||||||
run: rustup component add clippy
|
|
||||||
|
|
||||||
# Run clippy
|
# Run clippy
|
||||||
- name: "clippy --all"
|
- name: "clippy --all"
|
||||||
run: cargo clippy --all --tests --all-features
|
run: cargo clippy --all --tests --all-features
|
||||||
@@ -325,9 +348,10 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- uses: actions-rs/toolchain@v1
|
- name: Install Rust ${{ env.rust_nightly }}
|
||||||
|
uses: actions-rs/toolchain@v1
|
||||||
with:
|
with:
|
||||||
toolchain: ${{ env.nightly }}
|
toolchain: ${{ env.rust_nightly }}
|
||||||
override: true
|
override: true
|
||||||
- uses: Swatinem/rust-cache@v1
|
- uses: Swatinem/rust-cache@v1
|
||||||
- name: "doc --lib --all-features"
|
- name: "doc --lib --all-features"
|
||||||
@@ -341,8 +365,11 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- name: Install Rust
|
- name: Install Rust ${{ env.rust_stable }}
|
||||||
run: rustup update stable
|
uses: actions-rs/toolchain@v1
|
||||||
|
with:
|
||||||
|
toolchain: ${{ env.rust_stable }}
|
||||||
|
override: true
|
||||||
- uses: Swatinem/rust-cache@v1
|
- uses: Swatinem/rust-cache@v1
|
||||||
- name: build --cfg loom
|
- name: build --cfg loom
|
||||||
run: cargo test --no-run --lib --features full
|
run: cargo test --no-run --lib --features full
|
||||||
@@ -373,8 +400,11 @@ jobs:
|
|||||||
- macos-latest
|
- macos-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- name: Install Rust
|
- name: Install Rust ${{ env.rust_stable }}
|
||||||
run: rustup update stable
|
uses: actions-rs/toolchain@v1
|
||||||
|
with:
|
||||||
|
toolchain: ${{ env.rust_stable }}
|
||||||
|
override: true
|
||||||
- uses: Swatinem/rust-cache@v1
|
- uses: Swatinem/rust-cache@v1
|
||||||
- name: Test hyper
|
- name: Test hyper
|
||||||
run: |
|
run: |
|
||||||
@@ -398,8 +428,11 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- name: Install Rust
|
- name: Install Rust ${{ env.rust_stable }}
|
||||||
run: rustup update stable
|
uses: actions-rs/toolchain@v1
|
||||||
|
with:
|
||||||
|
toolchain: ${{ env.rust_stable }}
|
||||||
|
override: true
|
||||||
- uses: Swatinem/rust-cache@v1
|
- uses: Swatinem/rust-cache@v1
|
||||||
- name: Install wasm-pack
|
- name: Install wasm-pack
|
||||||
run: curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
|
run: curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
|
||||||
|
|||||||
@@ -10,6 +10,8 @@ name: Loom
|
|||||||
env:
|
env:
|
||||||
RUSTFLAGS: -Dwarnings
|
RUSTFLAGS: -Dwarnings
|
||||||
RUST_BACKTRACE: 1
|
RUST_BACKTRACE: 1
|
||||||
|
# Change to specific Rust release to pin
|
||||||
|
rust_stable: stable
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
loom:
|
loom:
|
||||||
@@ -28,8 +30,11 @@ jobs:
|
|||||||
- time::driver
|
- time::driver
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- name: Install Rust
|
- name: Install Rust ${{ env.rust_stable }}
|
||||||
run: rustup update stable
|
uses: actions-rs/toolchain@v1
|
||||||
|
with:
|
||||||
|
toolchain: ${{ env.rust_stable }}
|
||||||
|
override: true
|
||||||
- uses: Swatinem/rust-cache@v1
|
- uses: Swatinem/rust-cache@v1
|
||||||
- name: loom ${{ matrix.scope }}
|
- name: loom ${{ matrix.scope }}
|
||||||
run: cargo test --lib --release --features full -- --nocapture $SCOPE
|
run: cargo test --lib --release --features full -- --nocapture $SCOPE
|
||||||
|
|||||||
@@ -5,6 +5,12 @@ on:
|
|||||||
branches:
|
branches:
|
||||||
- master
|
- master
|
||||||
|
|
||||||
|
env:
|
||||||
|
RUSTFLAGS: -Dwarnings
|
||||||
|
RUST_BACKTRACE: 1
|
||||||
|
# Change to specific Rust release to pin
|
||||||
|
rust_stable: stable
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
stess-test:
|
stess-test:
|
||||||
name: Stress Test
|
name: Stress Test
|
||||||
@@ -15,8 +21,11 @@ jobs:
|
|||||||
- simple_echo_tcp
|
- simple_echo_tcp
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- name: Install Rust
|
- name: Install Rust ${{ env.rust_stable }}
|
||||||
run: rustup update stable
|
uses: actions-rs/toolchain@v1
|
||||||
|
with:
|
||||||
|
toolchain: ${{ env.rust_stable }}
|
||||||
|
override: true
|
||||||
- uses: Swatinem/rust-cache@v1
|
- uses: Swatinem/rust-cache@v1
|
||||||
- name: Install Valgrind
|
- name: Install Valgrind
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
Reference in New Issue
Block a user