Skip to content

chore(deps): update taiki-e/install-action action to v2.69.14 (#880) #573

chore(deps): update taiki-e/install-action action to v2.69.14 (#880)

chore(deps): update taiki-e/install-action action to v2.69.14 (#880) #573

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
jobs:
# Code quality checks
quality:
name: Quality Checks
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- 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@a164de717a0ee9284c2d9db1c6016a4c339cd333 # v2.69.14
with:
tool: typos-cli
- name: Check for typos
run: typos
- name: Install cargo-deny
uses: taiki-e/install-action@a164de717a0ee9284c2d9db1c6016a4c339cd333 # v2.69.14
with:
tool: cargo-deny
- name: Run cargo-deny
run: cargo deny check
- name: Install cargo-machete
uses: taiki-e/install-action@a164de717a0ee9284c2d9db1c6016a4c339cd333 # v2.69.14
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.85]
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.85
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.85
features: "--no-default-features --features macos_kqueue"
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- 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
- name: Build examples
run: cargo build --examples --verbose
- name: Run tests
run: cargo test --verbose
- name: Run tests with futures
if: matrix.rust == 'stable'
run: cargo test --verbose --features futures
- name: Run tests with tokio
if: matrix.rust == 'stable'
run: cargo test --verbose --features tokio
# Android cross-compilation
android:
name: Android
runs-on: ubuntu-latest
needs: quality
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- 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@a164de717a0ee9284c2d9db1c6016a4c339cd333 # v2.69.14
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