name: CI on: pull_request: branches: [main] push: branches: [main] jobs: check-fuzz: name: Check fuzz targets runs-on: ubuntu-latest steps: - uses: actions/checkout@master - uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: nightly override: true - name: Check fuzz targets run: | cargo check --manifest-path fuzz/Cargo.toml build: runs-on: ubuntu-latest strategy: matrix: target: - x86_64-unknown-linux-gnu - thumbv7em-none-eabi steps: - name: Checkout repository uses: actions/checkout@v2 - name: Install Rust toolchain run: | rustup show rustup target add ${{ matrix.target }} - name: Install build dependencies run: > sudo apt-get update -y -qq && sudo apt-get install -y -qq llvm libc6-dev-i386 libclang-dev - uses: fiam/arm-none-eabi-gcc@v1 with: release: "9-2020-q2" - name: Build run: cargo build --verbose --target ${{ matrix.target }} - name: Check all targets without default features run: cargo check --all-targets --no-default-features if: matrix.target == 'x86_64-unknown-linux-gnu' - name: Check all targets with default features run: cargo check --all-targets if: matrix.target == 'x86_64-unknown-linux-gnu' - name: Check all features and targets run: cargo check --all-features --all-targets if: matrix.target == 'x86_64-unknown-linux-gnu' - name: Run tests run: cargo test --verbose --features dispatch if: matrix.target == 'x86_64-unknown-linux-gnu' - name: Check formatting run: cargo fmt -- --check if: matrix.target == 'x86_64-unknown-linux-gnu' - name: Check clippy lints run: cargo clippy --all-features --all-targets -- --deny warnings if: matrix.target == 'x86_64-unknown-linux-gnu' - name: Check documentation run: RUSTDOCFLAGS="-D warnings" cargo doc --no-deps if: matrix.target == 'x86_64-unknown-linux-gnu'