Skip to content

chore(deps): update rust crate futures to v0.3.34 (#984) #837

chore(deps): update rust crate futures to v0.3.34 (#984)

chore(deps): update rust crate futures to v0.3.34 (#984) #837

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
workflow_dispatch:
env:
CARGO_TERM_COLOR: always
RUST_BACKTRACE: 1
permissions:
contents: read
jobs:
zizmor:
name: zizmor
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
with:
persist-credentials: false
- uses: zizmorcore/zizmor-action@5f14fd08f7cf1cb1609c1e344975f152c7ee938d # v0.5.6
with:
advanced-security: false
annotations: true
version: v1.24.1
# Code quality checks
quality:
name: Quality Checks
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
with:
persist-credentials: false
- name: Cache dependencies
uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1
- name: Check formatting
run: cargo fmt --all -- --check
- name: Clippy
run: cargo clippy --all-targets --all-features -- -D warnings
- name: Install typos-cli
uses: taiki-e/install-action@51cd0b8c0499559d9a4d75c0f5c67bec3a894ec8 # v2.75.28
with:
tool: typos-cli
- name: Check for typos
run: typos
- name: Install cargo-deny
uses: taiki-e/install-action@51cd0b8c0499559d9a4d75c0f5c67bec3a894ec8 # v2.75.28
with:
tool: cargo-deny
- name: Run cargo-deny
run: cargo deny check
- name: Install cargo-machete
uses: taiki-e/install-action@51cd0b8c0499559d9a4d75c0f5c67bec3a894ec8 # v2.75.28
with:
tool: cargo-machete
- name: Run cargo-machete
run: cargo machete
# Test on multiple platforms with different Rust versions
test:
name: Test ${{ matrix.os }} - ${{ matrix.rust }} ${{ matrix.features != '' && format('({0})', matrix.features) || '' }}
runs-on: ${{ matrix.os }}
needs: quality
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest]
rust: [stable, nightly, 1.88]
include:
# MacOS with fsevent
- os: macos-latest
rust: stable
features: "--no-default-features --features macos_fsevent"
- os: macos-latest
rust: nightly
features: "--no-default-features --features macos_fsevent"
- os: macos-latest
rust: 1.88
features: "--no-default-features --features macos_fsevent"
# MacOS with kqueue
- os: macos-latest
rust: stable
features: "--no-default-features --features macos_kqueue"
- os: macos-latest
rust: nightly
features: "--no-default-features --features macos_kqueue"
- os: macos-latest
rust: 1.88
features: "--no-default-features --features macos_kqueue"
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
with:
persist-credentials: false
- name: Remove rust-toolchain.toml (Unix)
if: runner.os != 'Windows'
run: rm -f rust-toolchain.toml
- name: Remove rust-toolchain.toml (Windows)
if: runner.os == 'Windows'
run: |
if (Test-Path rust-toolchain.toml) {
Remove-Item -Path rust-toolchain.toml
}
- name: Install Rust ${{ matrix.rust }}
run: |
rustup override set ${{ matrix.rust }}
rustup update ${{ matrix.rust }}
- name: Cache dependencies
uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1
- name: Build
run: cargo build --verbose ${{ matrix.features }}
- name: Build examples
run: cargo build --examples --verbose ${{ matrix.features }}
- name: Run tests
run: cargo test --workspace --exclude examples --verbose ${{ matrix.features }}
- name: Run tests with futures
if: matrix.rust == 'stable'
run: cargo test --workspace --exclude examples --verbose ${{ matrix.features }} --features futures
- name: Run tests with tokio
if: matrix.rust == 'stable'
run: cargo test --workspace --exclude examples --verbose ${{ matrix.features }} --features tokio
# Verify automatic backend selection on both supported FreeBSD releases.
freebsd:
name: FreeBSD ${{ matrix.release }} (${{ matrix.backend }}) - ${{ matrix.rust }}
runs-on: ubuntu-latest
needs: quality
strategy:
fail-fast: false
matrix:
rust: [stable, nightly, 1.88]
backend: [kqueue, inotify]
include:
- backend: kqueue
release: "14.4"
- backend: inotify
release: "15.1"
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
with:
persist-credentials: false
- name: Test in FreeBSD VM
uses: vmactions/freebsd-vm@b84ab5559b5a1bb4b8ee2737d2506a16e1737636 # v1.4.8
with:
release: ${{ matrix.release }}
envs: "CARGO_TERM_COLOR RUST_BACKTRACE"
usesh: true
prepare: |
pkg install -y curl
run: |
rm -f rust-toolchain.toml
curl https://sh.rustup.rs -sSf | sh -s -- -y --profile=minimal --default-toolchain ${{ matrix.rust }}
. $HOME/.cargo/env
cargo --version
rustc --version
cargo build --verbose
cargo build --examples --verbose
cargo test --verbose
# Android cross-compilation
android:
name: Android
runs-on: ubuntu-latest
needs: quality
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
with:
persist-credentials: false
- name: Remove rust-toolchain.toml
run: rm -f rust-toolchain.toml
- name: Install Rust
run: |
rustup override set stable
rustup update stable
rustup target add armv7-linux-androideabi aarch64-linux-android
- name: Cache dependencies
uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1
- name: Install cargo-ndk
uses: taiki-e/install-action@51cd0b8c0499559d9a4d75c0f5c67bec3a894ec8 # v2.75.28
with:
tool: cargo-ndk
- name: Build for Android (arm64)
run: cargo ndk --target aarch64-linux-android build --verbose
- name: Build for Android (arm)
run: cargo ndk --target armv7-linux-androideabi build --verbose
# # WebAssembly System Interface (WASI)
# wasi:
# name: WASI
# runs-on: ubuntu-latest
# needs: quality
# steps:
# - uses: actions/checkout@v4
# - name: Remove rust-toolchain.toml
# run: rm -f rust-toolchain.toml
# - name: Install Rust
# run: |
# rustup override set stable
# rustup update stable
# rustup target wasm32-wasip2
# - name: Cache dependencies
# uses: Swatinem/rust-cache@v2
# - name: Build for WASI
# run: cargo build --target wasm32-wasip2 --verbose
# - name: Build examples for WASI
# run: cargo build --examples --target wasm32-wasip2 --verbose