Mark Wine as supported #861
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| branches: [ "master", "v0.7.x", "v0.8.x" ] | |
| pull_request: | |
| branches: [ "master", "v0.7.x", "v0.8.x" ] | |
| env: | |
| CARGO_TERM_COLOR: always | |
| RUST_BACKTRACE: full | |
| CI: true | |
| WASMTIME_VERSION: 41.0.3 | |
| permissions: | |
| contents: read # to fetch code (actions/checkout) | |
| jobs: | |
| Test: | |
| runs-on: ${{ matrix.os }} | |
| timeout-minutes: 10 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: ["ubuntu-latest", "macos-latest", "windows-latest"] | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - uses: taiki-e/install-action@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@v7 | |
| - 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@v7 | |
| - 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 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: ["ubuntu-latest", "macos-latest", "windows-latest"] | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - 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 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: ["ubuntu-latest", "macos-latest", "windows-latest"] | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - uses: dtolnay/rust-toolchain@master | |
| with: | |
| toolchain: "1.71" | |
| - name: Check | |
| # We only run check allowing us to use newer features in tests. | |
| run: cargo check --all-features | |
| TestWASI: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - name: Setup `wasmtime` | |
| run: | | |
| curl -OL https://github.com/bytecodealliance/wasmtime/releases/download/v${WASMTIME_VERSION}/wasmtime-v${WASMTIME_VERSION}-x86_64-linux.tar.xz | |
| tar xf wasmtime-v${WASMTIME_VERSION}-x86_64-linux.tar.xz | |
| echo CARGO_TARGET_WASM32_WASIP2_RUNNER="$(pwd)/wasmtime-v${WASMTIME_VERSION}-x86_64-linux/wasmtime run -Sinherit-network" >> $GITHUB_ENV | |
| - name: Install target | |
| run: rustup target add wasm32-wasip2 | |
| - name: Tests | |
| run: cargo test --target wasm32-wasip2 --all-features | |
| Nightly: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - uses: dtolnay/rust-toolchain@nightly | |
| - name: Tests | |
| run: cargo test --all-features | |
| Clippy: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - 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 --allow clippy::needless-lifetimes -D warnings | |
| Docs: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - 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@v7 | |
| - 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 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| target: | |
| - aarch64-apple-darwin | |
| - aarch64-apple-ios | |
| - aarch64-apple-tvos | |
| - aarch64-apple-visionos | |
| - aarch64-apple-watchos | |
| - aarch64-linux-android | |
| - aarch64-unknown-freebsd | |
| - aarch64-unknown-fuchsia | |
| - aarch64-unknown-hermit | |
| - aarch64-unknown-linux-gnu | |
| - aarch64-unknown-linux-musl | |
| - aarch64-unknown-netbsd | |
| - aarch64-unknown-nto-qnx710 | |
| - aarch64-unknown-openbsd | |
| - aarch64-unknown-redox | |
| - arm-linux-androideabi | |
| - arm64_32-apple-watchos | |
| - armv6k-nintendo-3ds | |
| - armv7-sony-vita-newlibeabihf | |
| - i686-unknown-linux-gnu | |
| - i686-unknown-hurd-gnu | |
| # TODO: reenable <https://github.com/tokio-rs/mio/issues/1882>. | |
| #- powerpc64-ibm-aix | |
| - riscv32imc-esp-espidf | |
| - sparcv9-sun-solaris | |
| - wasm32-wasip1 | |
| - x86_64-apple-darwin | |
| - x86_64-apple-ios | |
| - x86_64-pc-nto-qnx710 | |
| - x86_64-pc-solaris | |
| # TODO: solve the following err: | |
| # `Error calling dlltool 'x86_64-w64-mingw32-dlltool'`, build log: | |
| # <https://github.com/tokio-rs/mio/actions/runs/9436499623/job/25991326487?pr=1794>. | |
| #- x86_64-pc-windows-gnu | |
| - x86_64-pc-windows-msvc | |
| - x86_64-unknown-dragonfly | |
| - x86_64-unknown-freebsd | |
| - x86_64-unknown-fuchsia | |
| - x86_64-unknown-haiku | |
| - x86_64-unknown-hermit | |
| - x86_64-unknown-illumos | |
| - x86_64-unknown-linux-gnu | |
| - x86_64-unknown-linux-musl | |
| - x86_64-unknown-netbsd | |
| - x86_64-unknown-openbsd | |
| - x86_64-unknown-redox | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - 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 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| sanitizer: [address, leak, memory, thread] | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - 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 }} | |
| TestFreeBSD: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 30 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - freebsd_version: "14.4" | |
| target: x86_64-unknown-freebsd | |
| arch: x86_64 | |
| - freebsd_version: "15.0" | |
| target: x86_64-unknown-freebsd | |
| arch: x86_64 | |
| - freebsd_version: "14.4" | |
| target: i686-unknown-freebsd | |
| arch: i686 | |
| name: FreeBSD/${{ matrix.arch }} ${{ matrix.freebsd_version }} | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: Start VM | |
| uses: vmactions/freebsd-vm@v1 | |
| with: | |
| release: ${{ matrix.freebsd_version }} | |
| usesh: true | |
| - name: Install dependencies | |
| shell: freebsd {0} | |
| run: | | |
| pkg install -y curl | |
| fetch https://sh.rustup.rs -o rustup.sh | |
| sh rustup.sh -y --profile=minimal | |
| if [ "${{ matrix.target }}" = "i686-unknown-freebsd" ]; then | |
| . $HOME/.cargo/env | |
| rustup target add i686-unknown-freebsd | |
| fi | |
| - name: Tests | |
| shell: freebsd {0} | |
| run: | | |
| . $HOME/.cargo/env | |
| cargo test --target ${{ matrix.target }} --all-features | |
| TestSolaris: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 30 | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: Start VM | |
| uses: vmactions/solaris-vm@v1 | |
| with: | |
| release: "11.4-gcc" | |
| usesh: true | |
| copyback: false | |
| - name: Install dependencies | |
| shell: solaris {0} | |
| run: | | |
| curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs -o rustup.sh | |
| sh rustup.sh -y --profile=minimal | |
| - name: Tests | |
| shell: solaris {0} | |
| run: | | |
| . $HOME/.cargo/env | |
| cargo test --all-features | |
| Wine: | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - name: Install wine | |
| run: | | |
| # https://gitlab.winehq.org/wine/wine/-/wikis/Debian-Ubuntu | |
| wget -O - https://dl.winehq.org/wine-builds/winehq.key | sudo gpg --dearmor -o /etc/apt/keyrings/winehq-archive.key - | |
| sudo dpkg --add-architecture i386 | |
| sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/ubuntu/dists/jammy/winehq-jammy.sources | |
| sudo apt-get update | |
| sudo apt-get install -y winehq-stable wine-binfmt | |
| echo -1 | sudo tee /proc/sys/fs/binfmt_misc/cli # deregister mono handler for PE files | |
| - name: Install linker and libraries | |
| run: | | |
| sudo apt-get install -y gcc-mingw-w64-x86-64 | |
| - name: Install target | |
| run: rustup target add x86_64-pc-windows-gnu | |
| - name: Tests | |
| run: cargo test --all-features --target x86_64-pc-windows-gnu | |
| - name: Tests release build | |
| run: cargo test --release --all-features --target x86_64-pc-windows-gnu | |
| # Single job required to merge the pr. | |
| Passed: | |
| runs-on: ubuntu-latest | |
| needs: | |
| - Test | |
| - TestPoll | |
| - MinimalVersions | |
| - MSRV | |
| - Nightly | |
| - Clippy | |
| - Docs | |
| - Rustfmt | |
| - CheckTargets | |
| - TestFreeBSD | |
| - TestSolaris | |
| steps: | |
| - run: exit 0 |