embassy/.github/workflows/rust.yml

145 lines
4.2 KiB
YAML

name: Rust
on:
push:
branches: [master]
pull_request:
branches: [master]
env:
CARGO_TERM_COLOR: always
jobs:
ci:
runs-on: ubuntu-latest
strategy:
matrix:
include:
- package: embassy
target: thumbv7em-none-eabi
- package: embassy
target: thumbv7em-none-eabi
features: log,executor-agnostic
- package: embassy
target: thumbv7em-none-eabi
features: defmt
- package: embassy
target: thumbv6m-none-eabi
features: defmt
- package: examples/std
target: x86_64-unknown-linux-gnu
- package: embassy-nrf
target: thumbv7em-none-eabi
features: nrf52805
- package: embassy-nrf
target: thumbv7em-none-eabi
features: nrf52810
- package: embassy-nrf
target: thumbv7em-none-eabi
features: nrf52811
- package: embassy-nrf
target: thumbv7em-none-eabi
features: nrf52820
- package: embassy-nrf
target: thumbv7em-none-eabi
features: nrf52832
- package: embassy-nrf
target: thumbv7em-none-eabi
features: nrf52833
- package: embassy-nrf
target: thumbv7em-none-eabi
features: nrf52840
- package: embassy-nrf
target: thumbv7em-none-eabi
features: nrf52840,log
- package: embassy-nrf
target: thumbv7em-none-eabi
features: nrf52840,defmt
- package: examples/nrf
target: thumbv7em-none-eabi
- package: examples/rp
target: thumbv6m-none-eabi
- package: embassy-stm32
target: thumbv7em-none-eabi
features: stm32f411ce,defmt
- package: embassy-stm32
target: thumbv7em-none-eabi
features: stm32f429zi,log
- package: embassy-stm32
target: thumbv7em-none-eabi
features: stm32h755zi_cm7,defmt
- package: embassy-stm32
target: thumbv7em-none-eabi
features: stm32l476vg,defmt
- package: embassy-stm32
target: thumbv6m-none-eabi
features: stm32l053r8,defmt
- package: examples/stm32f4
target: thumbv7em-none-eabi
- package: examples/stm32l4
target: thumbv7em-none-eabi
- package: examples/stm32h7
target: thumbv7em-none-eabi
- package: examples/stm32l0
target: thumbv6m-none-eabi
- package: examples/stm32wb55
target: thumbv7em-none-eabihf
steps:
- uses: actions/checkout@v2
with:
submodules: true
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
- name: cache
id: cache-target
uses: actions/cache@v2
with:
path: target
key: ${{ runner.os }}-${{ matrix.target }}
# We have to append the "-D warnings" flag to .cargo/config rather than
# using the RUSTFLAGS environment variable because if we set RUSTFLAGS
# cargo will ignore the rustflags config in .cargo/config.
- name: Check
run: |
mkdir -p .cargo
echo -e '[target."cfg(all())"]\nrustflags = ["-D", "warnings"]' >> .cargo/config
cd ${{ matrix.package }} && RUSTFLAGS=-Dwarnings cargo check --features=${{ matrix.features }} --target=${{ matrix.target }}
fmt:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
- name: Check fmt
run: for i in embassy-*; do (cd $i; cargo fmt -- --check); done
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
- name: Test
run: cd embassy && cargo test
metapac_gen:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
submodules: true
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
- name: Generate pregenerated metapac
run: cd stm32-metapac-gen; cargo run --release