diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml new file mode 100644 index 000000000..2cd3ba5d7 --- /dev/null +++ b/.github/workflows/rust.yml @@ -0,0 +1,29 @@ +name: Rust + +on: + push: + branches: [master] + pull_request: + branches: [master] + merge_group: + +env: + CARGO_TERM_COLOR: always + +jobs: + build-nightly: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/cache@v2 + with: + path: | + ~/.cargo/registry + ~/.cargo/git + target + key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} + + - name: Check fmt + run: cargo fmt -- --check + - name: Build + run: ./ci.sh diff --git a/Cargo.toml b/Cargo.toml index 3bdeb0cfb..a307a6cc3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -26,3 +26,9 @@ futures = { version = "0.3.17", default-features = false, features = ["async-awa embedded-hal-1 = { package = "embedded-hal", version = "1.0.0-alpha.9" } num_enum = { version = "0.5.7", default-features = false } + +[patch.crates-io] +embassy-time = { git = "https://github.com/embassy-rs/embassy", rev = "e3f8020c3bdf726dfa451b5b190f27191507a18f" } +embassy-futures = { git = "https://github.com/embassy-rs/embassy", rev = "e3f8020c3bdf726dfa451b5b190f27191507a18f" } +embassy-sync = { git = "https://github.com/embassy-rs/embassy", rev = "e3f8020c3bdf726dfa451b5b190f27191507a18f" } +embassy-net-driver-channel = { git = "https://github.com/embassy-rs/embassy", rev = "e3f8020c3bdf726dfa451b5b190f27191507a18f" } diff --git a/ci.sh b/ci.sh new file mode 100755 index 000000000..1b33564fb --- /dev/null +++ b/ci.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +set -euxo pipefail + +# build examples +#================== + +(cd examples/rpi-pico-w; WIFI_NETWORK=foo WIFI_PASSWORD=bar cargo build --release) + + +# build with log/defmt combinations +#===================================== + +cargo build --target thumbv6m-none-eabi --features '' +cargo build --target thumbv6m-none-eabi --features 'log' +cargo build --target thumbv6m-none-eabi --features 'defmt' +cargo build --target thumbv6m-none-eabi --features 'log,firmware-logs' +cargo build --target thumbv6m-none-eabi --features 'defmt,firmware-logs'