Skip to content

Continuous integration #2022

Continuous integration

Continuous integration #2022

Workflow file for this run

name: Continuous integration
env:
VERSION_FEATURES: "v1 v3 v4 v5 v6 v7 v8"
DEP_FEATURES: "slog serde arbitrary borsh zerocopy bytemuck"
on:
pull_request:
push:
branches:
- main
schedule:
- cron: '0 0 * * *'
jobs:
os_tests:
name: "Tests / OS: ${{ matrix.os }} - ${{ matrix.channel }}-${{ matrix.rust_target }}"
runs-on: ${{ matrix.os }}
env:
RUSTFLAGS: "--cfg uuid_unstable"
RUSTDOCFLAGS: "--cfg uuid_unstable"
strategy:
matrix:
exclude:
- os: macos-latest
rust_target: x86_64-gnu
- os: macos-latest
rust_target: x86_64-msvc
- os: windows-latest
rust_target: x86_64-apple-darwin
- os: ubuntu-latest
rust_target: x86_64-msvc
- os: ubuntu-latest
rust_target: x86_64-apple-darwin
channel:
- stable
- beta
- nightly
os:
- macos-latest
- ubuntu-latest
- windows-latest
rust_target:
- x86_64-gnu
- x86_64-msvc
- x86_64-apple-darwin
steps:
- name: Checkout repository
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab
- name: Install Rust Toolchain
run: rustup default ${{ matrix.channel }}-${{ matrix.rust_target }}
- name: Install cargo-hack
run: cargo install cargo-hack
- name: Docs
run: cargo test --all-features --doc
- name: Examples
run: cargo test --all-features --examples
- name: Each version feature
run: cargo hack test --lib --each-feature
- name: All features
run: cargo hack test --lib --all-features
stable:
name: Tests / Stable
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab
- name: All features
run: cargo test --all-features
msrv:
name: Build / MSRV
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab
- name: Install Rust toolchain
run: rustup update 1.60.0
- name: Version features
run: cargo +1.60.0 build --manifest-path tests/smoke-test/Cargo.toml
examples:
name: Tests / Examples
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab
- name: Examples
run: cargo test --manifest-path examples/Cargo.toml
wasm_bindgen:
name: Tests / WebAssembly (wasm-bindgen)
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab
- name: Install
run: curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
- name: Default features
run: wasm-pack test --node
- name: Version features
run: wasm-pack test --node -- --features "$VERSION_FEATURES $DEP_FEATURES js"
- name: Fast RNG
run: wasm-pack test --node -- --features "js v4 fast-rng"
wasi:
name: Tests / WebAssembly (WASI)
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab
- name: Install Wasmtime
run: curl https://wasmtime.dev/install.sh -sSf | bash
- name: Add Wasmtime to path
run: echo "$HOME/.wasmtime/bin" >> $GITHUB_PATH
- name: Install wasm32-wasi target
run: rustup target add wasm32-wasi
- name: Default features
run: cargo test --target wasm32-wasi
- name: Version features
run: cargo test --target wasm32-wasi --features "$VERSION_FEATURES $DEP_FEATURES"
- name: Fast RNG
run: cargo test --target wasm32-wasi --features "v4 fast-rng"
miri:
name: Tests / Miri
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab
- name: Install Miri
run: |
rustup toolchain install nightly --component miri
cargo +nightly miri setup
- name: Default features
run: cargo +nightly miri test --lib --all-features
- name: BE
run: cargo +nightly miri test --target s390x-unknown-linux-gnu --lib --all-features
clippy:
name: Build / Clippy
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab
- name: Install Clippy
run: |
rustup update beta
rustup component add clippy --toolchain beta
- name: Default features
run: cargo +beta clippy --all-features
embedded:
name: Build / Embedded
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab
- name: Install Rust toolchain
run: rustup update nightly && rustup target add --toolchain nightly thumbv6m-none-eabi
- name: No features
run: cargo +nightly build -Z avoid-dev-deps --target thumbv6m-none-eabi --no-default-features
- name: Version features
run: cargo +nightly build -Z avoid-dev-deps --target thumbv6m-none-eabi --no-default-features --features "v1 v3 v5 v6 serde"
nodeps:
name: Build / No deps
runs-on: ubuntu-latest
env:
RUSTFLAGS: "--cfg uuid_unstable"
steps:
- name: Checkout sources
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab
- name: Install Rust toolchain
run: rustup update nightly && rustup default nightly
- name: Install cargo-hack
run: cargo install cargo-hack
- name: Powerset
run: cargo hack check --each-feature -Z avoid-dev-deps