59 lines
1.6 KiB
YAML
59 lines
1.6 KiB
YAML
name: Rust
|
|
|
|
on:
|
|
push:
|
|
branches: [ master ]
|
|
pull_request:
|
|
branches: [ master ]
|
|
|
|
env:
|
|
CARGO_TERM_COLOR: always
|
|
|
|
permissions: read-all
|
|
|
|
jobs:
|
|
test:
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
rust: [stable, beta, nightly]
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- name: Install Rust
|
|
run: rustup update ${{ matrix.rust }} && rustup default ${{ matrix.rust }}
|
|
- name: Run Tests
|
|
run: cargo test --verbose
|
|
- run: cargo build --all --all-features --all-targets
|
|
- name: Catch missing feature flags
|
|
if: startsWith(matrix.rust, 'nightly')
|
|
run: cargo check -Z features=dev_dep
|
|
- name: Install cargo-hack
|
|
uses: taiki-e/install-action@cargo-hack
|
|
- run: rustup target add thumbv7m-none-eabi
|
|
- name: Ensure we don't depend on libstd
|
|
run: cargo hack build --target thumbv7m-none-eabi --no-dev-deps --no-default-features
|
|
|
|
msrv:
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
version: [1.38.0]
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- name: Install Rust
|
|
run: rustup update ${{ matrix.version }} && rustup default ${{ matrix.version }}
|
|
- run: cargo build --all --all-features --all-targets
|
|
|
|
miri:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- name: Install Rust
|
|
run: rustup toolchain install nightly --component miri && rustup default nightly
|
|
- run: cargo miri test
|
|
env:
|
|
MIRIFLAGS: -Zmiri-strict-provenance -Zmiri-symbolic-alignment-check -Zmiri-disable-isolation -Zmiri-ignore-leaks
|
|
RUSTFLAGS: ${{ env.RUSTFLAGS }} -Z randomize-layout
|