mirror of
https://github.com/n0-computer/noq.git
synced 2026-09-22 19:24:08 +00:00
175 lines
5.1 KiB
YAML
175 lines
5.1 KiB
YAML
name: CI
|
|
|
|
on:
|
|
push:
|
|
branches: ['0.10.x', '0.11.x']
|
|
pull_request:
|
|
|
|
jobs:
|
|
test-freebsd:
|
|
# see https://github.com/actions/runner/issues/385
|
|
# use https://github.com/vmactions/freebsd-vm for now
|
|
name: test on freebsd
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: test on freebsd
|
|
uses: vmactions/freebsd-vm@v1
|
|
with:
|
|
usesh: true
|
|
mem: 4096
|
|
copyback: false
|
|
prepare: |
|
|
pkg install -y curl
|
|
curl https://sh.rustup.rs -sSf --output rustup.sh
|
|
sh rustup.sh -y --profile minimal --default-toolchain stable
|
|
echo "~~~~ rustc --version ~~~~"
|
|
$HOME/.cargo/bin/rustc --version
|
|
echo "~~~~ freebsd-version ~~~~"
|
|
freebsd-version
|
|
run: $HOME/.cargo/bin/cargo build --all-targets && $HOME/.cargo/bin/cargo test && $HOME/.cargo/bin/cargo test --manifest-path fuzz/Cargo.toml
|
|
test:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [ubuntu-latest, macos-latest, windows-latest]
|
|
rust: [stable, beta]
|
|
exclude:
|
|
- os: macos-latest
|
|
rust: beta
|
|
- os: windows-latest
|
|
rust: beta
|
|
|
|
runs-on: ${{ matrix.os }}
|
|
|
|
env:
|
|
RUSTC_WRAPPER: "sccache"
|
|
SCCACHE_GHA_ENABLED: "on"
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: mozilla-actions/sccache-action@v0.0.4
|
|
- uses: dtolnay/rust-toolchain@master
|
|
with:
|
|
toolchain: ${{ matrix.rust }}
|
|
- run: cargo build --all-targets
|
|
- run: cargo test
|
|
- run: cargo test --manifest-path fuzz/Cargo.toml
|
|
if: ${{ matrix.rust }} == "stable"
|
|
|
|
msrv:
|
|
runs-on: ubuntu-latest
|
|
env:
|
|
RUSTC_WRAPPER: "sccache"
|
|
SCCACHE_GHA_ENABLED: "on"
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: mozilla-actions/sccache-action@v0.0.4
|
|
- uses: dtolnay/rust-toolchain@1.70.0
|
|
- run: cargo check --lib --all-features -p iroh-quinn-udp -p iroh-quinn-proto -p iroh-quinn
|
|
|
|
lint:
|
|
runs-on: ubuntu-latest
|
|
env:
|
|
RUSTC_WRAPPER: "sccache"
|
|
SCCACHE_GHA_ENABLED: "on"
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: mozilla-actions/sccache-action@v0.0.4
|
|
- uses: dtolnay/rust-toolchain@stable
|
|
with:
|
|
components: rustfmt, clippy
|
|
- run: cargo fmt --all -- --check
|
|
- run: cargo check --manifest-path quinn/Cargo.toml --all-targets --no-default-features
|
|
- run: cargo clippy --all-targets -- -D warnings
|
|
- uses: dtolnay/rust-toolchain@stable
|
|
with:
|
|
components: clippy
|
|
- name: doc
|
|
run: cargo doc --no-deps --document-private-items
|
|
env:
|
|
RUSTDOCFLAGS: -Dwarnings
|
|
- name: lint fuzz
|
|
run: |
|
|
cd fuzz
|
|
cargo clippy -- -D warnings
|
|
|
|
audit:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: EmbarkStudios/cargo-deny-action@v2
|
|
|
|
test-android:
|
|
runs-on: ubuntu-latest
|
|
|
|
strategy:
|
|
matrix:
|
|
include:
|
|
- target: x86_64-linux-android
|
|
emulator-arch: x86_64
|
|
# Note that x86_64 image is only available for API 21+. See
|
|
# https://github.com/ReactiveCircus/android-emulator-runner?tab=readme-ov-file#configurations.
|
|
api-level: 26
|
|
- target: i686-linux-android
|
|
emulator-arch: x86
|
|
api-level: 26
|
|
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Install JDK
|
|
uses: actions/setup-java@v4
|
|
with:
|
|
distribution: 'zulu'
|
|
java-version: '21'
|
|
|
|
- name: Install Android SDK
|
|
uses: android-actions/setup-android@v3
|
|
|
|
- name: Install Android NDK
|
|
run: sdkmanager --install "ndk;25.2.9519653"
|
|
|
|
- name: Install Rust
|
|
uses: dtolnay/rust-toolchain@stable
|
|
with:
|
|
toolchain: stable
|
|
target: ${{ matrix.target }}
|
|
|
|
- uses: Swatinem/rust-cache@v2
|
|
|
|
- name: Install cargo-ndk
|
|
run: cargo install cargo-ndk
|
|
|
|
- name: Build unit tests for Android
|
|
run: cargo ndk -t ${{ matrix.target }} test --no-run
|
|
|
|
- name: Enable KVM group perms
|
|
run: |
|
|
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
|
|
sudo udevadm control --reload-rules
|
|
sudo udevadm trigger --name-match=kvm
|
|
|
|
- name: Set up Android Emulator and run tests
|
|
env:
|
|
TARGET: ${{ matrix.target }}
|
|
uses: reactivecircus/android-emulator-runner@v2
|
|
with:
|
|
api-level: ${{ matrix.api-level }}
|
|
arch: ${{ matrix.emulator-arch }}
|
|
script: .github/workflows/rust-android-run-tests-on-emulator.sh
|
|
|
|
features:
|
|
strategy:
|
|
matrix:
|
|
os: [ubuntu-latest, macos-latest, windows-latest]
|
|
runs-on: ${{ matrix.os }}
|
|
env:
|
|
RUSTFLAGS: -Dwarnings
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: dtolnay/rust-toolchain@stable
|
|
- uses: taiki-e/install-action@cargo-hack
|
|
- run: cargo hack check --feature-powerset --optional-deps --no-dev-deps --ignore-unknown-features --ignore-private --group-features runtime-async-std,async-io,async-std --group-features runtime-smol,async-io,smol
|