name: Rust CI on: push: branches: [ main ] pull_request: branches: [ main ] jobs: format: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: toolchain: stable components: rustfmt - name: Check formatting uses: actions-rs/cargo@v1 with: command: fmt args: --verbose --all -- --check clippy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: toolchain: stable components: clippy - name: Lint the host API. uses: actions-rs/clippy-check@v1 with: token: ${{ secrets.GITHUB_TOKEN }} args: --package=imxrt-rt --tests -- -D warnings tests: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: toolchain: stable target: thumbv7em-none-eabihf - name: Run doc tests uses: actions-rs/cargo@v1 with: command: test args: --doc - name: Run automated tests uses: actions-rs/cargo@v1 with: command: test args: --tests -- --include-ignored - name: Install ARM GCC run: sudo apt-get update && sudo apt-get install -y gcc-arm-none-eabi - name: Check binaries that are linked with GNU's ld env: CARGO_TARGET_THUMBV7EM_NONE_EABIHF_RUSTFLAGS: "-C linker=arm-none-eabi-gcc -C link-arg=-mcpu=cortex-m7 -C link-arg=-mfloat-abi=hard -C link-arg=-mfpu=fpv5-d16 -C link-arg=-nostartfiles" uses: actions-rs/cargo@v1 with: command: test args: --tests -- --ignored boards: runs-on: ubuntu-latest strategy: matrix: board: [ teensy4, imxrt1010evk, imxrt1170evk-cm7 ] steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: toolchain: stable target: thumbv7em-none-eabihf - name: Lint the RTIC example for ${{ matrix.board }} uses: actions-rs/clippy-check@v1 with: token: ${{ secrets.GITHUB_TOKEN }} args: --example=blink-rtic --target=thumbv7em-none-eabihf --features=board/${{ matrix.board }},board/rtic -- -D warnings - name: Lint the blocking example ${{ matrix.board }} uses: actions-rs/clippy-check@v1 with: token: ${{ secrets.GITHUB_TOKEN }} args: --example=blink-blocking --target=thumbv7em-none-eabihf --features=board/${{ matrix.board }} -- -D warnings docs: runs-on: ubuntu-latest env: RUSTDOCFLAGS: -D warnings steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: toolchain: stable - name: Check host documentation uses: actions-rs/cargo@v1 with: command: rustdoc args: --package=imxrt-rt