From 6518f3ce9f58250d1159d13cb3a0cb8ba24889ef Mon Sep 17 00:00:00 2001 From: Jesse Braham Date: Wed, 13 Dec 2023 09:26:30 -0800 Subject: [PATCH 01/11] WIP --- .github/workflows/ci.yml | 108 +++++++++++++++++++++++---------------- 1 file changed, 64 insertions(+), 44 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6419a76..258c03b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -6,15 +6,13 @@ on: pull_request: paths-ignore: - "**/README.md" - schedule: - - cron: "50 7 * * *" workflow_dispatch: env: CARGO_TERM_COLOR: always GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - SSID: SSID - PASSWORD: PASSWORD + SSID: "" + PASSWORD: "" # Cancel any currently running workflows from the same PR, branch, or # tag when a new workflow is triggered. @@ -25,57 +23,79 @@ concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} jobs: - rust-checks: - name: cargo ${{ matrix.action.command }} - ${{ matrix.board }} (alloc=${{ matrix.alloc }} wifi=${{ matrix.wifi }} logging=${{ matrix.logging }}) + verify: runs-on: ubuntu-latest + strategy: fail-fast: false matrix: - board: ["esp32", "esp32c2", "esp32c3", "esp32c6", "esp32h2", "esp32s2", "esp32s3"] - alloc: ["true", "false"] - logging: ["true", "false"] - wifi: ["true", "false"] - action: - - command: build - args: --release - - command: fmt - args: -- --check - - command: clippy - args: --no-deps -- -D warnings -A dead_code -A clippy::empty_loop + chip: [ + "esp32", + "esp32c2", + "esp32c3", + "esp32c6", + # "esp32h2", + "esp32s2", + "esp32s3", + ] + steps: - uses: actions/checkout@v4 with: - path: /home/runner/work/esp-template/esp-template/github-esp-template - - name: Setup | Rust - if: matrix.board != 'esp32' && matrix.board != 'esp32s2' && matrix.board != 'esp32s3' - uses: dtolnay/rust-toolchain@v1 - with: - target: riscv32imc-unknown-none-elf - toolchain: nightly - components: clippy, rustfmt, rust-src - - name: Setup | Rust - if: matrix.board == 'esp32' || matrix.board == 'esp32s2' || matrix.board == 'esp32s3' + path: "/home/runner/work/esp-template/esp-template/esp-template-gh" + + # Rust toolchain for Xtensa: + - if: matrix.chip == 'esp32' || matrix.chip == 'esp32s2' || matrix.chip == 'esp32s3' uses: esp-rs/xtensa-toolchain@v1.5 with: default: true - buildtargets: ${{ matrix.board }} + buildtargets: ${{ matrix.chip }} ldproxy: false + + # Rust toolchain for RISC-V: + - if: matrix.chip != 'esp32' && matrix.chip != 'esp32s2' && matrix.chip != 'esp32s3' + uses: dtolnay/rust-toolchain@nightly + with: + target: riscv32imac-unknown-none-elf + components: clippy,rustfmt,rust-src + - uses: Swatinem/rust-cache@v2 - - name: Setup | cargo-generate (binaries) - id: binaries - continue-on-error: true + + - name: install cargo-generate (binary) + id: binary run: | - sudo curl -L "https://github.com/cargo-generate/cargo-generate/releases/latest/download/cargo-generate-$(git ls-remote --refs --sort="version:refname" --tags "https://github.com/cargo-generate/cargo-generate" | cut -d/ -f3- | tail -n1)-x86_64-unknown-linux-gnu.tar.gz" -o "/home/runner/.cargo/bin/cargo-generate.tar.gz" - tar xf "/home/runner/.cargo/bin/cargo-generate.tar.gz" -C /home/runner/.cargo/bin - chmod u+x /home/runner/.cargo/bin/cargo-generate - - name: Setup | cargo-generate (cargo) - if: steps.binaries.outcome != 'success' + VERSION="$(git ls-remote --refs --sort="version:refname" --tags "https://github.com/cargo-generate/cargo-generate" | cut -d/ -f3- | tail -n1)" + sudo curl \ + -L "https://github.com/cargo-generate/cargo-generate/releases/latest/download/cargo-generate-$VERSION-x86_64-unknown-linux-gnu.tar.gz" \ + -o "/home/runner/.cargo/bin/cargo-generate.tar.gz" + tar xf "/home/runner/.cargo/bin/cargo-generate.tar.gz" -C "/home/runner/.cargo/bin/" + chmod u+x "/home/runner/.cargo/bin/cargo-generate" + + - name: install cargo-generate (source) + if: steps.binary.outcome != 'success' run: cargo install cargo-generate - - name: Generate - if: matrix.board == 'esp32h2' - run: cargo generate --path /home/runner/work/esp-template/esp-template/github-esp-template --allow-commands --name test --vcs none --silent -d mcu=${{ matrix.board }} -d advanced=true -d devcontainer=false -d wokwi=false -d alloc=${{ matrix.alloc }} -d ci=false -d logging=${{ matrix.logging }} - - name: Generate - if: matrix.board != 'esp32h2' - run: cargo generate --path /home/runner/work/esp-template/esp-template/github-esp-template --allow-commands --name test --vcs none --silent -d mcu=${{ matrix.board }} -d advanced=true -d devcontainer=false -d wokwi=false -d alloc=${{ matrix.alloc }} -d wifi=${{ matrix.wifi }} -d ci=false -d logging=${{ matrix.logging }} - - name: cargo ${{ matrix.action.command }} - run: cd test; cargo ${{ matrix.action.command }} ${{ matrix.action.args }} + + - name: generate and check + run: | + function generate() { + cargo generate \ + --path "/home/runner/work/esp-template/esp-template/esp-template-gh" \ + --allow-commands --silent --vcs=none --name=test \ + -d advanced=true -d ci=false -d devcontainer=false -d wokwi=false \ + -d mcu="${{ matrix.chip }}" \ + "$@" + } + + function check() { + generate "$@" + pushd test/ + cargo build --release + popd + rm -rf test/ + } + + # no alloc, no logging, no wifi: + check "-d" "alloc=false" "-d" "logging=false" "-d" "wifi=false" + + # alloc, logging, wifi: + check "-d" "alloc=true" "-d" "logging=true" "-d" "wifi=true" From 9b63e47ea5987ba39942ae79767b60aecf8ba000 Mon Sep 17 00:00:00 2001 From: Sergio Gasquez Date: Thu, 14 Dec 2023 12:55:12 +0100 Subject: [PATCH 02/11] ci: Use bash script --- .github/verify.sh | 33 +++++++++++++++++++++++++++++++++ .github/workflows/ci.yml | 24 +----------------------- 2 files changed, 34 insertions(+), 23 deletions(-) create mode 100644 .github/verify.sh diff --git a/.github/verify.sh b/.github/verify.sh new file mode 100644 index 0000000..66afedb --- /dev/null +++ b/.github/verify.sh @@ -0,0 +1,33 @@ +echo "Verifying $1" +# TODO: We might be able to check GITHUB_TOKEN and update the --path to make it work locally. +# Complex template +cargo generate \ + --path "/home/runner/work/esp-template/esp-template/esp-template-gh" \ + --silent --vcs=none --name=test-complex \ + -d advanced=true -d ci=false -d devcontainer=false -d wokwi=false \ + -d alloc=true -d logging=true -d wifi=true \ + -d mcu=$1 +# Simple template +cargo generate \ + --path "/home/runner/work/esp-template/esp-template/esp-template-gh" \ + --silent --vcs=none --name=test-simple \ + -d advanced=true -d ci=false -d devcontainer=false -d wokwi=false \ + -d alloc=false -d logging=false -d wifi=false \ + -d mcu=$1 + +cd test-complex +echo "Build check" +cargo build --release +echo "Rustfmt check" +cargo fmt -- --check +echo "Clippy check" +cargo clippy --no-deps -- -D warnings -A dead_code -A clippy::empty_loop +cd ../test-simple +echo "Build check" +cargo build --release +echo "Rustfmt check" +cargo fmt -- --check +echo "Clippy check" +cargo clippy --no-deps -- -D warnings -A dead_code -A clippy::empty_loop +cd .. +rm -rf test-* diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 258c03b..780501b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -76,26 +76,4 @@ jobs: run: cargo install cargo-generate - name: generate and check - run: | - function generate() { - cargo generate \ - --path "/home/runner/work/esp-template/esp-template/esp-template-gh" \ - --allow-commands --silent --vcs=none --name=test \ - -d advanced=true -d ci=false -d devcontainer=false -d wokwi=false \ - -d mcu="${{ matrix.chip }}" \ - "$@" - } - - function check() { - generate "$@" - pushd test/ - cargo build --release - popd - rm -rf test/ - } - - # no alloc, no logging, no wifi: - check "-d" "alloc=false" "-d" "logging=false" "-d" "wifi=false" - - # alloc, logging, wifi: - check "-d" "alloc=true" "-d" "logging=true" "-d" "wifi=true" + run: bash ./.github/verify.sh ${{ matrix.chip }} From 5406df006e4ffd98eeec86106d4961bfa788250a Mon Sep 17 00:00:00 2001 From: Sergio Gasquez Date: Thu, 14 Dec 2023 13:05:39 +0100 Subject: [PATCH 03/11] ci: Revert cargo-generate install method --- .github/workflows/ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 780501b..2631db4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -62,6 +62,7 @@ jobs: - uses: Swatinem/rust-cache@v2 - name: install cargo-generate (binary) + continue-on-error: true id: binary run: | VERSION="$(git ls-remote --refs --sort="version:refname" --tags "https://github.com/cargo-generate/cargo-generate" | cut -d/ -f3- | tail -n1)" @@ -76,4 +77,4 @@ jobs: run: cargo install cargo-generate - name: generate and check - run: bash ./.github/verify.sh ${{ matrix.chip }} + run: bash /home/runner/work/esp-template/esp-template/esp-template-gh/.github/verify.sh ${{ matrix.chip }} From 541b653a526d127a9a9e2dfb06acaf036a08baa5 Mon Sep 17 00:00:00 2001 From: Sergio Gasquez Date: Thu, 14 Dec 2023 15:10:53 +0100 Subject: [PATCH 04/11] ci: Enable H2 --- .github/verify.sh | 8 +++++++- .github/workflows/ci.yml | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/.github/verify.sh b/.github/verify.sh index 66afedb..2f9a745 100644 --- a/.github/verify.sh +++ b/.github/verify.sh @@ -1,11 +1,17 @@ echo "Verifying $1" # TODO: We might be able to check GITHUB_TOKEN and update the --path to make it work locally. +if [ "$1" = "esp32h2" ]; then + # ESP32-H22 doesn't have a WiFi core + wifi=false +else + wifi=true +fi # Complex template cargo generate \ --path "/home/runner/work/esp-template/esp-template/esp-template-gh" \ --silent --vcs=none --name=test-complex \ -d advanced=true -d ci=false -d devcontainer=false -d wokwi=false \ - -d alloc=true -d logging=true -d wifi=true \ + -d alloc=true -d logging=true -d wifi=$wifi \ -d mcu=$1 # Simple template cargo generate \ diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2631db4..c5f1114 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -34,7 +34,7 @@ jobs: "esp32c2", "esp32c3", "esp32c6", - # "esp32h2", + "esp32h2", "esp32s2", "esp32s3", ] From 4811acfef866d5ea0646badfe041cf2484797957 Mon Sep 17 00:00:00 2001 From: Sergio Gasquez Date: Thu, 14 Dec 2023 15:22:55 +0100 Subject: [PATCH 05/11] feat: Use a function for cargo checks --- .github/verify.sh | 39 +++++++++++++++++++++++---------------- 1 file changed, 23 insertions(+), 16 deletions(-) diff --git a/.github/verify.sh b/.github/verify.sh index 2f9a745..d1ef4b3 100644 --- a/.github/verify.sh +++ b/.github/verify.sh @@ -1,11 +1,28 @@ echo "Verifying $1" # TODO: We might be able to check GITHUB_TOKEN and update the --path to make it work locally. + +# Function to perform build, Rustfmt check, and Clippy check +perform_checks() { + cd "$1" + echo " - Build check" + cargo build --release + echo "- Rustfmt check" + cargo fmt -- --check + echo "- Clippy check" + cargo clippy --no-deps -- -D warnings -A dead_code -A clippy::empty_loop + cd .. +} + if [ "$1" = "esp32h2" ]; then # ESP32-H22 doesn't have a WiFi core wifi=false else wifi=true fi + +complex_path="test-complex" +simple_path="test-simple" + # Complex template cargo generate \ --path "/home/runner/work/esp-template/esp-template/esp-template-gh" \ @@ -21,19 +38,9 @@ cargo generate \ -d alloc=false -d logging=false -d wifi=false \ -d mcu=$1 -cd test-complex -echo "Build check" -cargo build --release -echo "Rustfmt check" -cargo fmt -- --check -echo "Clippy check" -cargo clippy --no-deps -- -D warnings -A dead_code -A clippy::empty_loop -cd ../test-simple -echo "Build check" -cargo build --release -echo "Rustfmt check" -cargo fmt -- --check -echo "Clippy check" -cargo clippy --no-deps -- -D warnings -A dead_code -A clippy::empty_loop -cd .. -rm -rf test-* +# Perform checks for complex and simple templates +perform_checks test-complex +perform_checks test-simple + +# Clean up +rm -rf test-complex test-simple From 480b021d5e4518b7532b7610282788ef962a7765 Mon Sep 17 00:00:00 2001 From: Sergio Gasquez Date: Thu, 14 Dec 2023 15:26:17 +0100 Subject: [PATCH 06/11] ci: Remove wifi promt for H2 --- .github/verify.sh | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/.github/verify.sh b/.github/verify.sh index d1ef4b3..b40c9da 100644 --- a/.github/verify.sh +++ b/.github/verify.sh @@ -1,3 +1,5 @@ +#!/bin/bash + echo "Verifying $1" # TODO: We might be able to check GITHUB_TOKEN and update the --path to make it work locally. @@ -13,29 +15,31 @@ perform_checks() { cd .. } -if [ "$1" = "esp32h2" ]; then - # ESP32-H22 doesn't have a WiFi core - wifi=false -else - wifi=true -fi - complex_path="test-complex" simple_path="test-simple" +simple_wifi_arg="" +complex_wifi_arg="" + +# H2 has no wifi +if [ "$1" != "esp32h2" ]; then + simple_wifi_arg="-d wifi=false" + complex_wifi_arg="-d wifi=true" +fi # Complex template cargo generate \ --path "/home/runner/work/esp-template/esp-template/esp-template-gh" \ --silent --vcs=none --name=test-complex \ -d advanced=true -d ci=false -d devcontainer=false -d wokwi=false \ - -d alloc=true -d logging=true -d wifi=$wifi \ + -d alloc=true -d logging=true $simple_wifi_arg \ -d mcu=$1 + # Simple template cargo generate \ --path "/home/runner/work/esp-template/esp-template/esp-template-gh" \ --silent --vcs=none --name=test-simple \ -d advanced=true -d ci=false -d devcontainer=false -d wokwi=false \ - -d alloc=false -d logging=false -d wifi=false \ + -d alloc=false -d logging=false $complex_wifi_arg \ -d mcu=$1 # Perform checks for complex and simple templates From b20bc3b85047c2071516c2f3cade6f0875997c81 Mon Sep 17 00:00:00 2001 From: Sergio Gasquez Date: Thu, 14 Dec 2023 15:46:38 +0100 Subject: [PATCH 07/11] fix: Script cleanup --- .github/verify.sh | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/.github/verify.sh b/.github/verify.sh index b40c9da..855436e 100644 --- a/.github/verify.sh +++ b/.github/verify.sh @@ -1,7 +1,6 @@ #!/bin/bash echo "Verifying $1" -# TODO: We might be able to check GITHUB_TOKEN and update the --path to make it work locally. # Function to perform build, Rustfmt check, and Clippy check perform_checks() { @@ -15,18 +14,15 @@ perform_checks() { cd .. } -complex_path="test-complex" -simple_path="test-simple" simple_wifi_arg="" complex_wifi_arg="" - # H2 has no wifi if [ "$1" != "esp32h2" ]; then simple_wifi_arg="-d wifi=false" complex_wifi_arg="-d wifi=true" fi -# Complex template +# Generate templates cargo generate \ --path "/home/runner/work/esp-template/esp-template/esp-template-gh" \ --silent --vcs=none --name=test-complex \ @@ -34,7 +30,6 @@ cargo generate \ -d alloc=true -d logging=true $simple_wifi_arg \ -d mcu=$1 -# Simple template cargo generate \ --path "/home/runner/work/esp-template/esp-template/esp-template-gh" \ --silent --vcs=none --name=test-simple \ @@ -42,7 +37,7 @@ cargo generate \ -d alloc=false -d logging=false $complex_wifi_arg \ -d mcu=$1 -# Perform checks for complex and simple templates +# Perform checks perform_checks test-complex perform_checks test-simple From a6aa3d507b402c3b7585dd7273708e8e2db82cde Mon Sep 17 00:00:00 2001 From: Sergio Gasquez Date: Thu, 14 Dec 2023 15:55:10 +0100 Subject: [PATCH 08/11] ci: Add instructions to use the script locally --- .github/verify.sh | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/verify.sh b/.github/verify.sh index 855436e..28a5a30 100644 --- a/.github/verify.sh +++ b/.github/verify.sh @@ -2,6 +2,10 @@ echo "Verifying $1" +# If you want to execute this script locally, you need to update the path to +# esp-template direcotry and execute it from a folder outside of the esp-template +template_path="/home/runner/work/esp-template/esp-template/esp-template-gh" + # Function to perform build, Rustfmt check, and Clippy check perform_checks() { cd "$1" @@ -24,18 +28,14 @@ fi # Generate templates cargo generate \ - --path "/home/runner/work/esp-template/esp-template/esp-template-gh" \ - --silent --vcs=none --name=test-complex \ + --path $template_path --name=test-complex --silent --vcs=none \ -d advanced=true -d ci=false -d devcontainer=false -d wokwi=false \ - -d alloc=true -d logging=true $simple_wifi_arg \ - -d mcu=$1 + -d alloc=true -d logging=true $simple_wifi_arg -d mcu=$1 cargo generate \ - --path "/home/runner/work/esp-template/esp-template/esp-template-gh" \ - --silent --vcs=none --name=test-simple \ + --path $template_path --name=test-simple --silent --vcs=none \ -d advanced=true -d ci=false -d devcontainer=false -d wokwi=false \ - -d alloc=false -d logging=false $complex_wifi_arg \ - -d mcu=$1 + -d alloc=false -d logging=false $complex_wifi_arg -d mcu=$1 # Perform checks perform_checks test-complex From 0c166916f4c9f0c4bf41c24bacdfb9bd60e1dbb4 Mon Sep 17 00:00:00 2001 From: Sergio Gasquez Date: Fri, 15 Dec 2023 09:09:38 +0100 Subject: [PATCH 09/11] ci: Fix cargo-generate url --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c5f1114..249af5f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -66,6 +66,7 @@ jobs: id: binary run: | VERSION="$(git ls-remote --refs --sort="version:refname" --tags "https://github.com/cargo-generate/cargo-generate" | cut -d/ -f3- | tail -n1)" + URL="https://github.com/cargo-generate/cargo-generate/releases/latest/download/cargo-generate-$VERSION-x86_64-unknown-linux-gnu.tar.gz" sudo curl \ -L "https://github.com/cargo-generate/cargo-generate/releases/latest/download/cargo-generate-$VERSION-x86_64-unknown-linux-gnu.tar.gz" \ -o "/home/runner/.cargo/bin/cargo-generate.tar.gz" From 3aa4cb83d86d44d272156322134eab68e93e9a8e Mon Sep 17 00:00:00 2001 From: Sergio Gasquez Date: Fri, 15 Dec 2023 09:36:22 +0100 Subject: [PATCH 10/11] ci: Use relative paths to enable act --- .github/verify.sh | 2 +- .github/workflows/ci.yml | 9 ++++----- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/.github/verify.sh b/.github/verify.sh index 28a5a30..b13a7b9 100644 --- a/.github/verify.sh +++ b/.github/verify.sh @@ -4,7 +4,7 @@ echo "Verifying $1" # If you want to execute this script locally, you need to update the path to # esp-template direcotry and execute it from a folder outside of the esp-template -template_path="/home/runner/work/esp-template/esp-template/esp-template-gh" +template_path="esp-template-gh" # Function to perform build, Rustfmt check, and Clippy check perform_checks() { diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 249af5f..4d1c199 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -42,7 +42,7 @@ jobs: steps: - uses: actions/checkout@v4 with: - path: "/home/runner/work/esp-template/esp-template/esp-template-gh" + path: "esp-template-gh" # Rust toolchain for Xtensa: - if: matrix.chip == 'esp32' || matrix.chip == 'esp32s2' || matrix.chip == 'esp32s3' @@ -61,21 +61,20 @@ jobs: - uses: Swatinem/rust-cache@v2 - - name: install cargo-generate (binary) + - name: Install cargo-generate (binary) continue-on-error: true id: binary run: | VERSION="$(git ls-remote --refs --sort="version:refname" --tags "https://github.com/cargo-generate/cargo-generate" | cut -d/ -f3- | tail -n1)" - URL="https://github.com/cargo-generate/cargo-generate/releases/latest/download/cargo-generate-$VERSION-x86_64-unknown-linux-gnu.tar.gz" sudo curl \ -L "https://github.com/cargo-generate/cargo-generate/releases/latest/download/cargo-generate-$VERSION-x86_64-unknown-linux-gnu.tar.gz" \ -o "/home/runner/.cargo/bin/cargo-generate.tar.gz" tar xf "/home/runner/.cargo/bin/cargo-generate.tar.gz" -C "/home/runner/.cargo/bin/" chmod u+x "/home/runner/.cargo/bin/cargo-generate" - - name: install cargo-generate (source) + - name: Install cargo-generate (source) if: steps.binary.outcome != 'success' run: cargo install cargo-generate - name: generate and check - run: bash /home/runner/work/esp-template/esp-template/esp-template-gh/.github/verify.sh ${{ matrix.chip }} + run: bash esp-template-gh/.github/verify.sh ${{ matrix.chip }} From b42f9bc180f3af804cf088b5742aec9423d13f2c Mon Sep 17 00:00:00 2001 From: Sergio Gasquez Date: Fri, 15 Dec 2023 10:27:12 +0100 Subject: [PATCH 11/11] refactor: Support act out of the box --- .github/{workflows => }/rust_ci.yml | 0 post-script.rhai | 4 ++++ 2 files changed, 4 insertions(+) rename .github/{workflows => }/rust_ci.yml (100%) diff --git a/.github/workflows/rust_ci.yml b/.github/rust_ci.yml similarity index 100% rename from .github/workflows/rust_ci.yml rename to .github/rust_ci.yml diff --git a/post-script.rhai b/post-script.rhai index 0679edd..b15d269 100644 --- a/post-script.rhai +++ b/post-script.rhai @@ -1,3 +1,7 @@ if variable::get("mcu") != "esp32h2" && variable::get("wifi"){ print("\nFor more information and examples of esp-wifi showcasing Wifi,BLE and ESP-NOW, see https://github.com/esp-rs/esp-wifi/blob/main/examples.md\n"); } + +if variable::get("ci") { + file::rename(".github/rust_ci.yml", ".github/workflows/rust_ci.yml"); +}