diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5aa58b1d4..3371a72b1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,9 +1,9 @@ name: CI on: push: - branches: [ "master", "v0.7.x", "v0.8.x" ] + branches: ["master", "v0.7.x", "v0.8.x"] pull_request: - branches: [ "master", "v0.7.x", "v0.8.x" ] + branches: ["master", "v0.7.x", "v0.8.x"] env: CARGO_TERM_COLOR: always RUST_BACKTRACE: full @@ -21,40 +21,40 @@ jobs: matrix: os: ["ubuntu-latest", "macos-latest", "windows-latest"] steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable - - name: Install Cargo-hack - run: cargo install --debug cargo-hack - - name: Check all features - run: cargo hack check --feature-powerset - - name: Tests - run: cargo test --all-features - - name: Tests release build - run: cargo test --release --all-features + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + - name: Install Cargo-hack + run: cargo install --debug cargo-hack + - name: Check all features + run: cargo hack check --feature-powerset + - name: Tests + run: cargo test --all-features + - name: Tests release build + run: cargo test --release --all-features TestPoll: runs-on: ubuntu-latest timeout-minutes: 10 env: RUSTFLAGS: "--cfg mio_unsupported_force_poll_poll" steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable - - name: Tests - run: cargo test --all-features - - name: Tests release build - run: cargo test --release --all-features + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + - name: Tests + run: cargo test --all-features + - name: Tests release build + run: cargo test --release --all-features TestWakerPipe: runs-on: ubuntu-latest timeout-minutes: 10 env: RUSTFLAGS: "--cfg mio_unsupported_force_waker_pipe" steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable - - name: Tests - run: cargo test --all-features - - name: Tests release build - run: cargo test --release --all-features + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + - name: Tests + run: cargo test --all-features + - name: Tests release build + run: cargo test --release --all-features MinimalVersions: runs-on: ${{ matrix.os }} timeout-minutes: 10 @@ -63,12 +63,12 @@ jobs: matrix: os: ["ubuntu-latest", "macos-latest", "windows-latest"] steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@nightly - - name: Install minimal verions - run: cargo update -Zminimal-versions - - name: Tests - run: cargo test --all-features + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@nightly + - name: Install minimal verions + run: cargo update -Zminimal-versions + - name: Tests + run: cargo test --all-features MSRV: runs-on: ${{ matrix.os }} timeout-minutes: 10 @@ -77,64 +77,64 @@ jobs: matrix: os: ["ubuntu-latest", "macos-latest", "windows-latest"] steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@master - with: - toolchain: 1.74.0 - - name: Check - # We only run check allowing us to use newer features in tests. - run: cargo check --all-features + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@master + with: + toolchain: 1.74.0 + - name: Check + # We only run check allowing us to use newer features in tests. + run: cargo check --all-features Nightly: runs-on: ubuntu-latest timeout-minutes: 10 steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@nightly - - name: Tests - run: cargo test --all-features + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@nightly + - name: Tests + run: cargo test --all-features Clippy: runs-on: ubuntu-latest timeout-minutes: 10 steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable - with: - components: clippy - - name: Clippy - run: cargo clippy --all-targets --all-features -- --allow clippy::mixed-attributes-style --allow clippy::unused-io-amount -D warnings + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + with: + components: clippy + - name: Clippy + run: cargo clippy --all-targets --all-features -- --allow clippy::mixed-attributes-style --allow clippy::unused-io-amount -D warnings Docs: runs-on: ubuntu-latest timeout-minutes: 10 steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable - - name: Check docs - run: RUSTDOCFLAGS="-D warnings" cargo doc --no-deps --all-features + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + - name: Check docs + run: RUSTDOCFLAGS="-D warnings" cargo doc --no-deps --all-features Rustfmt: runs-on: ubuntu-latest timeout-minutes: 10 steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable - with: - components: rustfmt - - name: Check formatting - # FIXME: for some reason this doesn't actually check all files. - # So instead we run `rustfmt` directly on each file. - #cargo fmt --all -- --check - run: find src tests examples -type f -iname "*.rs" | xargs rustfmt --check + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + with: + components: rustfmt + - name: Check formatting + # FIXME: for some reason this doesn't actually check all files. + # So instead we run `rustfmt` directly on each file. + #cargo fmt --all -- --check + run: find src tests examples -type f -iname "*.rs" | xargs rustfmt --check CheckTargets: runs-on: ubuntu-latest timeout-minutes: 10 steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable - - name: Install all targets - run: make install_targets - - name: Install Cargo-hack - run: cargo install --debug cargo-hack - - name: Check all targets - run: make check_all_targets + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + - name: Install all targets + run: make install_targets + - name: Install Cargo-hack + run: cargo install --debug cargo-hack + - name: Check all targets + run: make check_all_targets CheckTier3Targets: name: Check runs-on: ubuntu-latest @@ -142,15 +142,27 @@ jobs: strategy: fail-fast: false matrix: - target: ["aarch64-apple-ios", "aarch64-apple-tvos", "aarch64-unknown-openbsd", "arm64_32-apple-watchos", "armv7-sony-vita-newlibeabihf", "sparcv9-sun-solaris", "x86_64-pc-solaris", "x86_64-unknown-dragonfly", "x86_64-unknown-openbsd"] + target: + [ + "aarch64-apple-ios", + "aarch64-apple-visionos", + "aarch64-apple-tvos", + "aarch64-unknown-openbsd", + "arm64_32-apple-watchos", + "armv7-sony-vita-newlibeabihf", + "sparcv9-sun-solaris", + "x86_64-pc-solaris", + "x86_64-unknown-dragonfly", + "x86_64-unknown-openbsd", + ] steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@nightly - with: - components: rust-src - - uses: taiki-e/install-action@cargo-hack - - name: Run check - run: cargo hack check -Z build-std=std,panic_abort --feature-powerset --target ${{ matrix.target }} + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@nightly + with: + components: rust-src + - uses: taiki-e/install-action@cargo-hack + - name: Run check + run: cargo hack check -Z build-std=std,panic_abort --feature-powerset --target ${{ matrix.target }} Sanitizer: runs-on: ubuntu-latest timeout-minutes: 10 @@ -159,12 +171,12 @@ jobs: matrix: sanitizer: [address, leak, memory, thread] steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@nightly - - name: Add rust source - run: rustup component add rust-src - - name: Run tests with sanitizer - run: make test_sanitizer SAN=${{ matrix.sanitizer }} + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@nightly + - name: Add rust source + run: rustup component add rust-src + - name: Run tests with sanitizer + run: make test_sanitizer SAN=${{ matrix.sanitizer }} # Single job required to merge the pr. Passed: runs-on: ubuntu-latest diff --git a/Makefile b/Makefile index 85de1ee74..31c3c089b 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ # Targets available via Rustup that are supported. -TARGETS ?= aarch64-apple-darwin aarch64-apple-ios aarch64-linux-android arm-linux-androideabi i686-unknown-linux-gnu wasm32-wasi x86_64-apple-darwin x86_64-apple-ios x86_64-pc-windows-gnu x86_64-pc-windows-msvc x86_64-unknown-freebsd x86_64-unknown-illumos x86_64-unknown-linux-gnu x86_64-unknown-linux-musl x86_64-unknown-netbsd x86_64-unknown-redox +TARGETS ?= aarch64-apple-darwin aarch64-apple-ios aarch64-apple-visionos aarch64-linux-android arm-linux-androideabi i686-unknown-linux-gnu wasm32-wasi x86_64-apple-darwin x86_64-apple-ios x86_64-pc-windows-gnu x86_64-pc-windows-msvc x86_64-unknown-freebsd x86_64-unknown-illumos x86_64-unknown-linux-gnu x86_64-unknown-linux-musl x86_64-unknown-netbsd x86_64-unknown-redox # Example value: `nightly-x86_64-apple-darwin`. RUSTUP_TOOLCHAIN ?= $(shell rustup show active-toolchain | cut -d' ' -f1) # Architecture target. Example value: `x86_64-apple-darwin`.