name: CI permissions: contents: read on: pull_request: paths-ignore: - README.md push: branches: main paths-ignore: - README.md jobs: build: runs-on: ubuntu-latest strategy: matrix: rust: - stable - beta - nightly-2022-01-01 steps: - uses: actions/checkout@629c2de402a417ea7690ca6ce3f33229e27606a5 # v2 - uses: actions-rs/toolchain@63eb9591781c46a70274cb3ebdf190fce92702e8 # v1 with: profile: minimal toolchain: ${{ matrix.rust }} components: rustfmt override: true - run: cargo build --release --workspace test: runs-on: ubuntu-latest strategy: matrix: rust: - stable - beta - nightly-2022-01-01 steps: - uses: actions/checkout@629c2de402a417ea7690ca6ce3f33229e27606a5 # v2 with: submodules: true - uses: actions-rs/toolchain@63eb9591781c46a70274cb3ebdf190fce92702e8 # v1 with: profile: minimal toolchain: ${{ matrix.rust }} components: rustfmt override: true - run: cargo test --workspace -- --nocapture no_std: name: Build for a no_std target runs-on: ubuntu-latest strategy: matrix: rust: - stable - beta - nightly-2022-01-01 steps: - uses: actions/checkout@629c2de402a417ea7690ca6ce3f33229e27606a5 # v2 - uses: actions-rs/toolchain@63eb9591781c46a70274cb3ebdf190fce92702e8 # v1 with: profile: minimal toolchain: ${{ matrix.rust }} components: rustfmt target: thumbv6m-none-eabi override: true - run: cargo build --release --workspace --target thumbv6m-none-eabi msrv: name: Rust ${{matrix.rust}} MSRV runs-on: ubuntu-latest strategy: fail-fast: false matrix: rust: [1.56.0, 1.57.0] steps: - uses: actions/checkout@629c2de402a417ea7690ca6ce3f33229e27606a5 # v2 with: submodules: true - uses: actions-rs/toolchain@63eb9591781c46a70274cb3ebdf190fce92702e8 # v1 with: profile: minimal toolchain: ${{ matrix.rust }} components: rustfmt override: true - run: rustc --version - run: cargo build --release --workspace --all-features formatting: runs-on: ubuntu-latest steps: - uses: actions/checkout@629c2de402a417ea7690ca6ce3f33229e27606a5 # v2 - uses: actions/setup-go@424fc82d43fa5a37540bae62709ddcc23d9520d4 # v2 - run: go get github.com/campoy/embedmd - uses: actions/setup-ruby@b007fae6f1ffbe3a51c00a6df6f5ff01184d5340 # v1 - run: gem install mdl - uses: actions-rs/toolchain@63eb9591781c46a70274cb3ebdf190fce92702e8 # v1 with: profile: minimal toolchain: nightly-2022-01-01 override: true components: rustfmt - run: cargo fmt --all -- --check - run: scripts/check-format.sh clippy: runs-on: ubuntu-latest steps: - uses: actions/checkout@629c2de402a417ea7690ca6ce3f33229e27606a5 # v2 - uses: actions-rs/toolchain@63eb9591781c46a70274cb3ebdf190fce92702e8 # v1 with: profile: minimal toolchain: nightly-2022-01-01 override: true components: rustfmt, clippy - run: cargo clippy --all-features --all-targets - run: git diff --exit-code doc: runs-on: ubuntu-latest steps: - uses: actions/checkout@629c2de402a417ea7690ca6ce3f33229e27606a5 # v2 - uses: actions-rs/toolchain@63eb9591781c46a70274cb3ebdf190fce92702e8 # v1 with: profile: minimal toolchain: stable - run: RUSTDOCFLAGS="-Dwarnings" cargo doc --no-deps --document-private-items udeps: runs-on: ubuntu-latest steps: - uses: actions/checkout@629c2de402a417ea7690ca6ce3f33229e27606a5 # v2 - uses: actions-rs/toolchain@63eb9591781c46a70274cb3ebdf190fce92702e8 # v1 with: profile: minimal toolchain: nightly-2022-01-01 override: true components: rustfmt - uses: actions-rs/install@69ec87709ffb5b19a7b5ddbf610cb221498bb1eb # v0.1.2 with: crate: cargo-udeps use-tool-cache: true version: 0.1.25 - run: cargo udeps deny: runs-on: ubuntu-latest steps: - uses: actions/checkout@629c2de402a417ea7690ca6ce3f33229e27606a5 # v2 - uses: actions-rs/toolchain@63eb9591781c46a70274cb3ebdf190fce92702e8 # v1 with: profile: minimal toolchain: nightly-2022-01-01 override: true components: rustfmt - run: cargo install --locked --version 0.8.5 cargo-deny - run: cargo deny check coverage: runs-on: ubuntu-latest steps: - uses: actions/checkout@629c2de402a417ea7690ca6ce3f33229e27606a5 # v2 with: submodules: true fetch-depth: 0 - uses: actions-rs/toolchain@63eb9591781c46a70274cb3ebdf190fce92702e8 # v1 with: profile: minimal toolchain: nightly-2022-01-01 override: true components: rustfmt - uses: actions-rs/install@69ec87709ffb5b19a7b5ddbf610cb221498bb1eb # v0.1.2 with: crate: cargo-tarpaulin use-tool-cache: true - run: cargo tarpaulin --verbose --ignore-tests --all-features --timeout=600 --out Xml - name: Upload to codecov.io run: | bash <(curl -s https://codecov.io/bash)