name: CI Checks on: [push, pull_request] env: CARGO_TERM_COLOR: always jobs: building: name: Building continue-on-error: ${{ matrix.experimental || false }} strategy: matrix: # All generated code should be running on stable now rust: [nightly, stable] include: # Nightly is only for reference and allowed to fail - rust: nightly experimental: true os: # Check compilation works on common OSes # (i.e. no path issues) - ubuntu-latest - macOS-latest - windows-latest runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v3 - uses: dtolnay/rust-toolchain@master with: toolchain: ${{ matrix.rust }} target: thumbv6m-none-eabi - run: cargo install flip-link - run: cargo build --all - run: cargo build --all --release linting: name: Linting runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 with: submodules: true - uses: dtolnay/rust-toolchain@stable with: components: clippy target: thumbv6m-none-eabi - run: cargo clippy --all-features -- --deny=warnings formatting: name: Formatting runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 with: submodules: true - uses: dtolnay/rust-toolchain@stable with: components: rustfmt target: thumbv6m-none-eabi - run: cargo fmt -- --check