diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..581075a --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,52 @@ +name: CI + +on: [push, pull_request] + +jobs: + build: + runs-on: ubuntu-latest + + strategy: + matrix: + target: + - thumbv7em-none-eabi + - thumbv6m-none-eabi # like the Cortex-M0+ + - x86_64-unknown-linux-gnu + + env: + CARGO_BUILD_TARGET: ${{ matrix.target }} + + steps: + - name: Install build dependencies + shell: bash + run: | + env && pwd && 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" + - uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: stable + target: ${{ matrix.target }} + override: true + + - uses: actions/checkout@v3 + with: + submodules: true + + - name: Check + run: | + cargo check + cargo check --all-features + + - name: Build + run: cargo build --release --verbose + + - name: Run clippy + if: matrix.target == 'x86_64-unknown-linux-gnu' + run: cargo clippy --workspace --all-features --all-targets -- --deny warnings + + - name: Check code format + if: matrix.target == 'x86_64-unknown-linux-gnu' + run: cargo fmt --all -- --check