name: Rust on: push: branches: [ staging, trying, master ] pull_request: branches: [ master ] env: CARGO_TERM_COLOR: always jobs: all: runs-on: ubuntu-20.04 needs: [build, fmt, test, metapac_gen] steps: - name: Done run: exit 0 build: 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: stm32l072cz,defmt - package: embassy-stm32 target: thumbv7m-none-eabi features: stm32l151cb-a,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/stm32l1 target: thumbv7m-none-eabi - package: examples/stm32wb55 target: thumbv7em-none-eabihf - package: examples/stm32wl55 target: thumbv7em-none-eabihf - package: examples/stm32f0 target: thumbv6m-none-eabi - package: examples/stm32g0 target: thumbv6m-none-eabi - package: examples/wasm target: wasm32-unknown-unknown - package: examples/stm32f1 target: thumbv7m-none-eabi 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: find -name '*.rs' | xargs rustfmt --check --skip-children --unstable-features --edition 2018 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