Skip to content

[ignore] Wasm CI testing #145

[ignore] Wasm CI testing

[ignore] Wasm CI testing #145

Workflow file for this run

name: CI
on:
push:
branches: ['main', '0.8.x']
pull_request:
merge_group:
schedule:
- cron: "21 3 * * 5"
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:
# 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 }}
# steps:
# - uses: actions/checkout@v4
# - uses: dtolnay/rust-toolchain@master
# with:
# toolchain: ${{ matrix.rust }}
# - uses: Swatinem/rust-cache@v2
# - run: cargo build --all-targets
# - run: cargo test
# - run: cargo test --manifest-path fuzz/Cargo.toml
# if: ${{ matrix.rust }} == "stable"
# test-aws-lc-rs:
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v4
# - uses: dtolnay/rust-toolchain@stable
# - uses: Swatinem/rust-cache@v2
# # Prevent feature unification from selecting *ring* as the crypto provider
# - run: RUST_BACKTRACE=1 cargo test --manifest-path quinn-proto/Cargo.toml --no-default-features --features rustls-aws-lc-rs
# - run: RUST_BACKTRACE=1 cargo test --manifest-path quinn/Cargo.toml --no-default-features --features rustls-aws-lc-rs,runtime-tokio
# # FIPS
# - run: RUST_BACKTRACE=1 cargo test --manifest-path quinn-proto/Cargo.toml --no-default-features --features rustls-aws-lc-rs-fips
# - run: RUST_BACKTRACE=1 cargo test --manifest-path quinn/Cargo.toml --no-default-features --features rustls-aws-lc-rs-fips,runtime-tokio
wasm_test:
name: test wasm32-unknown-unknown
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v4
- name: Install stable toolchain
uses: dtolnay/rust-toolchain@stable
- name: Install nodejs v20
uses: actions/setup-node@v4
with:
node-version: 20
- name: Add wasm target
run: rustup target add wasm32-unknown-unknown
- name: Install cargo binstall
uses: cargo-bins/cargo-binstall@main
- name: Install wasm-bindgen-test-runner
run: cargo binstall wasm-bindgen-cli --version 0.2.95 --no-confirm
- name: Setup `wasm-tools`
uses: bytecodealliance/actions/wasm-tools/setup@v1
- name: wasm32 build (quinn-proto)
run: cargo test -p quinn-proto --target wasm32-unknown-unknown --no-run
- uses: actions/upload-artifact@v4
with:
path: Cargo.lock
- name: Look at wasm imports
run: wasm-tools print --skeleton ./target/wasm32-unknown-unknown/debug/deps/quinn_proto-*.wasm | grep import
- name: Give me the tree
run: cargo tree -i ring -p quinn-proto --target wasm32-unknown-unknown -e features
- name: wasm32 test (quinn-proto)
run: cargo test -p quinn-proto --target wasm32-unknown-unknown
env:
RUST_BACKTRACE: full
# msrv:
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v4
# - uses: dtolnay/[email protected]
# - uses: Swatinem/rust-cache@v2
# - run: cargo check --lib --all-features -p quinn-udp -p quinn-proto -p quinn
# lint:
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v4
# - uses: dtolnay/rust-toolchain@stable
# with:
# components: rustfmt, clippy
# - uses: Swatinem/rust-cache@v2
# - 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
# # skip FIPS features outside of Linux
# SKIP_FEATURES: ${{ matrix.os != 'ubuntu-latest' && 'rustls-aws-lc-rs-fips,aws-lc-rs-fips' || '' }}
# 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 --skip "${{env.SKIP_FEATURES}}"