From 7c04bdba13989f6e3256706143fa98b1c69b73e5 Mon Sep 17 00:00:00 2001 From: Scott Mabin Date: Mon, 23 Oct 2023 18:35:49 +0100 Subject: [PATCH] Fix CI, use build instead of check to detect linker errors --- .github/workflows/ci.yml | 123 +++++++++--------------------- esp-wifi/.cargo/config.toml | 7 ++ esp-wifi/Cargo.toml | 1 + esp-wifi/examples/embassy_dhcp.rs | 4 - 4 files changed, 45 insertions(+), 90 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 248df124..f1752b77 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -40,10 +40,10 @@ jobs: - name: check-fmt run: cargo fmt --check - checks-xtensa: + builds: strategy: matrix: - chip: ["esp32", "esp32s2", "esp32s3"] + chip: ["esp32", "esp32s2", "esp32s3", "esp32c2", "esp32c3", "esp32c6"] runs-on: ubuntu-latest steps: @@ -51,91 +51,42 @@ jobs: - uses: esp-rs/xtensa-toolchain@v1.5 with: default: true - buildtargets: ${{ matrix.chip }} ldproxy: false - uses: Swatinem/rust-cache@v1 - - name: check - run: cd examples-${{ matrix.chip }} && cargo check - - name: check (common features) - run: cd examples-${{ matrix.chip }} && cargo check --features=async,wifi,esp-now,embassy-net,log - - name: check (common features + defmt) - run: cd examples-${{ matrix.chip }} && cargo check --no-default-features --features=${{ matrix.chip }},async,wifi,esp-now,embassy-net,defmt - - name: check (dhcp) - run: cd examples-${{ matrix.chip }} && cargo build --release --example=dhcp --features=wifi - - name: check (static_ip) - run: cd examples-${{ matrix.chip }} && cargo build --release --example=static_ip --features=wifi - - name: check (esp_now) - run: cd examples-${{ matrix.chip }} && cargo build --release --example=esp_now --features=esp-now - - name: check (embassy_esp_now) - run: cd examples-${{ matrix.chip }} && cargo build --release --example=embassy_esp_now --features=async,esp-now - - name: check (embassy_esp_now_duplex) - run: cd examples-${{ matrix.chip }} && cargo build --release --example=embassy_esp_now_duplex --features=async,esp-now - - name: check (embassy_dhcp) - run: cd examples-${{ matrix.chip }} && cargo build --release --example=embassy_dhcp --features=async,wifi,embassy-net - - name: check (embassy_access_point) - run: cd examples-${{ matrix.chip }} && cargo build --release --example=embassy_access_point --features=async,wifi,embassy-net + - name: build + run: cd esp-wifi && cargo b${{ matrix.chip }} + - name: build (common features) + run: cd esp-wifi && cargo b${{ matrix.chip }} --features=async,wifi,esp-now,embassy-net,log,${{ matrix.chip }}-hal/embassy-time-timg0 + - name: build (common features + defmt) + run: cd esp-wifi && cargo b${{ matrix.chip }} --no-default-features --features=async,wifi,esp-now,embassy-net,defmt,${{ matrix.chip }}-hal/embassy-time-timg0 + - name: build (dhcp) + run: cd esp-wifi && cargo b${{ matrix.chip }} --release --example=dhcp --features=wifi + - name: build (static_ip) + run: cd esp-wifi && cargo b${{ matrix.chip }} --release --example=static_ip --features=wifi + - name: build (esp_now) + run: cd esp-wifi && cargo b${{ matrix.chip }} --release --example=esp_now --features=esp-now + - name: build (embassy_esp_now) + run: cd esp-wifi && cargo b${{ matrix.chip }} --release --example=embassy_esp_now --features=async,esp-now,${{ matrix.chip }}-hal/embassy-time-timg0 + - name: build (embassy_esp_now_duplex) + run: cd esp-wifi && cargo b${{ matrix.chip }} --release --example=embassy_esp_now_duplex --features=async,esp-now,${{ matrix.chip }}-hal/embassy-time-timg0 + - name: build (embassy_dhcp) + run: cd esp-wifi && cargo b${{ matrix.chip }} --release --example=embassy_dhcp --features=async,wifi,embassy-net,${{ matrix.chip }}-hal/embassy-time-timg0 + - name: build (embassy_access_point) + run: cd esp-wifi && cargo b${{ matrix.chip }} --release --example=embassy_access_point --features=async,wifi,embassy-net,${{ matrix.chip }}-hal/embassy-time-timg0 - - name: check (common features + ble) - if: ${{ matrix.chip == 'esp32' || matrix.chip == 'esp32s3' }} - run: cd examples-${{ matrix.chip }} && cargo check --features=async,wifi,ble,esp-now,embassy-net,log - - name: check (common features + ble + defmt) - if: ${{ matrix.chip == 'esp32' || matrix.chip == 'esp32s3' }} - run: cd examples-${{ matrix.chip }} && cargo check --no-default-features --features=${{ matrix.chip }},async,wifi,ble,esp-now,embassy-net,defmt - - name: check (ble) - if: ${{ matrix.chip == 'esp32' || matrix.chip == 'esp32s3' }} - run: cd examples-${{ matrix.chip }} && cargo build --release --example=ble --features=ble - - name: check (async_ble) - if: ${{ matrix.chip == 'esp32' || matrix.chip == 'esp32s3' }} - run: cd examples-${{ matrix.chip }} && cargo build --release --example=async_ble --features=async,ble - - name: check (coex) - if: ${{ matrix.chip == 'esp32' || matrix.chip == 'esp32s3' }} - run: cd examples-${{ matrix.chip }} && cargo build --release --example=coex --features=wifi,ble,coex - - checks-riscv: - strategy: - matrix: - chip: ["esp32c2", "esp32c3", "esp32c6"] - - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: dtolnay/rust-toolchain@v1 - with: - target: riscv32imc-unknown-none-elf - toolchain: nightly-2023-05-16 - components: rust-src,rustfmt - - uses: Swatinem/rust-cache@v1 - - - name: check - run: cd examples-${{ matrix.chip }} && cargo +nightly-2023-05-16 check - - name: check (common features) - run: cd examples-${{ matrix.chip }} && cargo +nightly-2023-05-16 check --features=async,wifi,esp-now,embassy-net,log - - name: check (common features + defmt) - run: cd examples-${{ matrix.chip }} && cargo +nightly-2023-05-16 check --no-default-features --features=${{ matrix.chip }},async,wifi,esp-now,embassy-net,defmt - - name: check (dhcp) - run: cd examples-${{ matrix.chip }} && cargo +nightly-2023-05-16 build --release --example=dhcp --features=wifi - - name: check (static_ip) - run: cd examples-${{ matrix.chip }} && cargo +nightly-2023-05-16 build --release --example=static_ip --features=wifi - - name: check (esp_now) - run: cd examples-${{ matrix.chip }} && cargo +nightly-2023-05-16 build --release --example=esp_now --features=esp-now - - name: check (embassy_esp_now) - run: cd examples-${{ matrix.chip }} && cargo +nightly-2023-05-16 build --release --example=embassy_esp_now --features=async,esp-now - - name: check (embassy_esp_now_duplex) - run: cd examples-${{ matrix.chip }} && cargo +nightly-2023-05-16 build --release --example=embassy_esp_now_duplex --features=async,esp-now - - name: check (embassy_dhcp) - run: cd examples-${{ matrix.chip }} && cargo +nightly-2023-05-16 build --release --example=embassy_dhcp --features=async,wifi,embassy-net - - name: check (embassy_access_point) - run: cd examples-${{ matrix.chip }} && cargo +nightly-2023-05-16 build --release --example=embassy_access_point --features=async,wifi,embassy-net - - - name: check (common features + ble) - run: cd examples-${{ matrix.chip }} && cargo +nightly-2023-05-16 check --features=async,wifi,ble,esp-now,embassy-net,log - - name: check (common features + ble + defmt) - run: cd examples-${{ matrix.chip }} && cargo +nightly-2023-05-16 check --no-default-features --features=${{ matrix.chip }},async,wifi,ble,esp-now,embassy-net,defmt - - name: check (ble) - run: cd examples-${{ matrix.chip }} && cargo +nightly-2023-05-16 build --release --example=ble --features=ble - - name: check (async_ble) - run: cd examples-${{ matrix.chip }} && cargo +nightly-2023-05-16 build --release --example=async_ble --features=async,ble - - name: check (coex) - if: ${{ matrix.chip == 'esp32c3' }} - run: cd examples-${{ matrix.chip }} && cargo +nightly-2023-05-16 build --release --example=coex --features=wifi,ble,coex + - name: build (common features + ble) + if: ${{ matrix.chip != 'esp32s2' }} + run: cd esp-wifi && cargo b${{ matrix.chip }} --features=async,wifi,ble,esp-now,embassy-net,log,${{ matrix.chip }}-hal/embassy-time-timg0 + - name: build (common features + ble + defmt) + if: ${{ matrix.chip != 'esp32s2' }} + run: cd esp-wifi && cargo b${{ matrix.chip }} --no-default-features --features=async,wifi,ble,esp-now,embassy-net,defmt,${{ matrix.chip }}-hal/embassy-time-timg0 + - name: build (ble) + if: ${{ matrix.chip != 'esp32s2' }} + run: cd esp-wifi && cargo b${{ matrix.chip }} --release --example=ble --features=ble + - name: build (async_ble) + if: ${{ matrix.chip != 'esp32s2' }} + run: cd esp-wifi && cargo b${{ matrix.chip }} --release --example=async_ble --features=async,ble,${{ matrix.chip }}-hal/embassy-time-timg0 + - name: build (coex) + if: ${{ matrix.chip == 'esp32' || matrix.chip == 'esp32s3' || matrix.chip == 'esp32c3' }} + run: cd esp-wifi && cargo b${{ matrix.chip }} --release --example=coex --features=wifi,ble,coex diff --git a/esp-wifi/.cargo/config.toml b/esp-wifi/.cargo/config.toml index 240c651a..48b036f1 100644 --- a/esp-wifi/.cargo/config.toml +++ b/esp-wifi/.cargo/config.toml @@ -6,6 +6,13 @@ esp32c2 = "run --features esp32c2 --target riscv32imc-unknown-none-elf" esp32c3 = "run --features esp32c3 --target riscv32imc-unknown-none-elf" esp32c6 = "run --features esp32c6 --target riscv32imac-unknown-none-elf" +besp32 = "build --features esp32 --target xtensa-esp32-none-elf" +besp32s2 = "build --features esp32s2 --target xtensa-esp32s2-none-elf" +besp32s3 = "build --features esp32s3 --target xtensa-esp32s3-none-elf" +besp32c2 = "build --features esp32c2 --target riscv32imc-unknown-none-elf" +besp32c3 = "build --features esp32c3 --target riscv32imc-unknown-none-elf" +besp32c6 = "build --features esp32c6 --target riscv32imac-unknown-none-elf" + [target.riscv32imc-unknown-none-elf] runner = "espflash flash --monitor" rustflags = [ diff --git a/esp-wifi/Cargo.toml b/esp-wifi/Cargo.toml index 17dfd1a2..039b7add 100644 --- a/esp-wifi/Cargo.toml +++ b/esp-wifi/Cargo.toml @@ -43,6 +43,7 @@ embassy-futures.workspace = true futures-util.workspace = true embassy-net = { workspace = true } embassy-sync.workspace = true +bleps.workspace = true [features] default = [ "utils", "log" ] diff --git a/esp-wifi/examples/embassy_dhcp.rs b/esp-wifi/examples/embassy_dhcp.rs index 40208060..e34eadb9 100644 --- a/esp-wifi/examples/embassy_dhcp.rs +++ b/esp-wifi/examples/embassy_dhcp.rs @@ -90,11 +90,7 @@ async fn connection(mut controller: WifiController<'static>) { println!("Device capabilities: {:?}", controller.get_capabilities()); loop { match esp_wifi::wifi::get_wifi_state() { -<<<<<<< HEAD:examples-esp32c6/examples/embassy_access_point.rs - WifiState::ApStarted => { -======= WifiState::StaConnected => { ->>>>>>> 9f0c5a5 (Unify examples):esp-wifi/examples/embassy_dhcp.rs // wait until we're no longer connected controller.wait_for_event(WifiEvent::StaDisconnected).await; Timer::after(Duration::from_millis(5000)).await