diff --git a/.cirrus.yml b/.cirrus.yml deleted file mode 100644 index bcafac2f3..000000000 --- a/.cirrus.yml +++ /dev/null @@ -1,71 +0,0 @@ -only_if: $CIRRUS_TAG == '' && ($CIRRUS_PR != '' || $CIRRUS_BRANCH == 'master' || $CIRRUS_BRANCH =~ 'tokio-.*') -auto_cancellation: $CIRRUS_BRANCH != 'master' && $CIRRUS_BRANCH !=~ 'tokio-.*' -freebsd_instance: - image_family: freebsd-14-3 -env: - RUST_STABLE: stable - RUST_NIGHTLY: nightly-2025-10-12 - RUSTFLAGS: -D warnings - # This excludes unstable features like io_uring, which require '--cfg tokio_unstable'. - TOKIO_STABLE_FEATURES: full,test-util - -# Test FreeBSD in a full VM on cirrus-ci.com. Test the i686 target too, in the -# same VM. The binary will be built in 32-bit mode, but will execute on a -# 64-bit kernel and in a 64-bit environment. Our tests don't execute any of -# the system's binaries, so the environment shouldn't matter. -task: - name: FreeBSD 64-bit - setup_script: - - pkg install -y bash - - curl https://sh.rustup.rs -sSf --output rustup.sh - - sh rustup.sh -y --profile minimal --default-toolchain $RUST_STABLE - - . $HOME/.cargo/env - - | - echo "~~~~ rustc --version ~~~~" - rustc --version - test_script: - - . $HOME/.cargo/env - - cargo test --workspace --features $TOKIO_STABLE_FEATURES - # Free the disk space before the next build, - # otherwise cirrus-ci complains about "No space left on device". - - cargo clean - # Enable all unstable features except `taskdump`, which is Linux-only. - - | - RUSTFLAGS="$RUSTFLAGS --cfg tokio_unstable" \ - RUSTDOCFLAGS="$RUSTDOCFLAGS --cfg tokio_unstable" \ - cargo test \ - --features $TOKIO_STABLE_FEATURES,io-uring,tracing - -task: - name: FreeBSD docs - env: - RUSTFLAGS: --cfg docsrs --cfg tokio_unstable - RUSTDOCFLAGS: --cfg docsrs --cfg tokio_unstable -Dwarnings - setup_script: - - pkg install -y bash - - curl https://sh.rustup.rs -sSf --output rustup.sh - - sh rustup.sh -y --profile minimal --default-toolchain $RUST_NIGHTLY - - . $HOME/.cargo/env - - | - echo "~~~~ rustc --version ~~~~" - rustc --version - test_script: - - . $HOME/.cargo/env - # We use `--features $TOKIO_STABLE_FEATURES,io-uring,tracing` instead of - # `--all-features` to exclude `taskdump`, which is Linux-only. - - cargo doc --lib --no-deps --features $TOKIO_STABLE_FEATURES,io-uring,tracing --document-private-items - -task: - name: FreeBSD 32-bit - setup_script: - - pkg install -y bash - - curl https://sh.rustup.rs -sSf --output rustup.sh - - sh rustup.sh -y --profile minimal --default-toolchain $RUST_STABLE - - . $HOME/.cargo/env - - rustup target add i686-unknown-freebsd - - | - echo "~~~~ rustc --version ~~~~" - rustc --version - test_script: - - . $HOME/.cargo/env - - cargo test --workspace --features $TOKIO_STABLE_FEATURES --target i686-unknown-freebsd diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 72bb4b45b..696e6f16a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1292,3 +1292,74 @@ jobs: uses: ./.github/workflows/uring-kernel-version-test.yml with: kernel_version: ${{ matrix.kernel_version }} + + freebsd-x86_64: + name: FreeBSD x86_64 + needs: basics + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v6 + - name: Test in FreeBSD + uses: vmactions/freebsd-vm@v1 + with: + release: '14.4' + envs: "TOKIO_STABLE_FEATURES RUSTFLAGS" + prepare: | + pkg install -y curl + curl https://sh.rustup.rs -sSf --output rustup.sh + sh rustup.sh -y --profile minimal --default-toolchain ${{ env.rust_stable }} + run: | + . $HOME/.cargo/env + cargo test --workspace --features $TOKIO_STABLE_FEATURES + # Enable all unstable features except `io_uring` and `taskdump`, + # which are Linux-only features. + RUSTFLAGS="$RUSTFLAGS --cfg tokio_unstable" \ + cargo test \ + --features $TOKIO_STABLE_FEATURES,tracing + + freebsd-docs: + name: FreeBSD docs + needs: basics + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v6 + - name: Test in FreeBSD + uses: vmactions/freebsd-vm@v1 + env: + RUSTFLAGS: --cfg docsrs --cfg tokio_unstable + RUSTDOCFLAGS: --cfg docsrs --cfg tokio_unstable -Dwarnings + with: + release: '14.4' + envs: "TOKIO_STABLE_FEATURES RUSTDOCFLAGS RUSTFLAGS" + prepare: | + pkg install -y curl + curl https://sh.rustup.rs -sSf --output rustup.sh + sh rustup.sh -y --profile minimal --default-toolchain ${{ env.rust_nightly }} + run: | + . $HOME/.cargo/env + # We use `--features $TOKIO_STABLE_FEATURES,io-uring,tracing` instead of + # `--all-features` to exclude `taskdump` and `io_uring`, which are Linux-only + # features. + cargo doc --lib --no-deps --features $TOKIO_STABLE_FEATURES,tracing \ + --document-private-items + + freebsd-i686: + name: FreeBSD i686 + needs: basics + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v6 + - name: Test in FreeBSD + uses: vmactions/freebsd-vm@v1 + with: + release: '14.4' + envs: "TOKIO_STABLE_FEATURES RUSTFLAGS" + prepare: | + pkg install -y curl + curl https://sh.rustup.rs -sSf --output rustup.sh + sh rustup.sh -y --profile minimal --default-toolchain ${{ env.rust_stable }} + run: | + . $HOME/.cargo/env + rustup target add i686-unknown-freebsd + cargo test --workspace --features $TOKIO_STABLE_FEATURES \ + --target i686-unknown-freebsd