Continuous integration #207
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
on: | |
pull_request: # Run CI for PRs on any branch | |
merge_group: # Run CI for the GitHub merge queue | |
workflow_dispatch: # Run CI when manually requested | |
schedule: | |
# Run every week at 8am UTC Saturday | |
- cron: '0 8 * * SAT' | |
name: Continuous integration | |
jobs: | |
check: | |
runs-on: ubuntu-latest | |
env: {"RUSTFLAGS": "-D warnings"} | |
strategy: | |
matrix: | |
target: | |
- thumbv6m-none-eabi | |
- thumbv7m-none-eabi | |
toolchain: | |
- stable | |
- nightly | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@master | |
with: | |
targets: ${{ matrix.target }} | |
toolchain: ${{ matrix.toolchain }} | |
- run: cargo check --target=${{ matrix.target }} --example global_alloc | |
- if: ${{ matrix.toolchain == 'nightly' }} | |
run: cargo check --target=${{ matrix.target }} --examples --all-features | |
- uses: imjohnbo/issue-bot@v3 | |
if: | | |
failure() | |
&& github.event_name == 'schedule' | |
with: | |
title: CI Failure | |
labels: ci | |
body: | | |
Scheduled CI run failed. Details: | |
https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }} | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
test: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@master | |
with: | |
targets: thumbv7m-none-eabi | |
toolchain: nightly | |
- name: Install QEMU | |
run: | | |
sudo apt update | |
sudo apt install qemu-system-arm | |
- run: qemu-system-arm --version | |
- run: cargo run --target thumbv7m-none-eabi --example llff_integration_test --all-features | |
- run: cargo run --target thumbv7m-none-eabi --example tlsf_integration_test --all-features | |
clippy: | |
name: Clippy | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@nightly | |
with: | |
components: clippy | |
toolchain: nightly | |
targets: thumbv6m-none-eabi | |
- run: cargo clippy --all-features --examples --target=thumbv6m-none-eabi -- --deny warnings | |
format: | |
name: Format | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@nightly | |
with: | |
components: rustfmt | |
- run: cargo fmt -- --check | |
rustdoc: | |
name: rustdoc | |
runs-on: ubuntu-latest | |
env: {"RUSTDOCFLAGS": "-D warnings"} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@nightly | |
- name: rustdoc | |
run: cargo rustdoc --all-features |