CI - nightly #527
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI - nightly | |
| on: | |
| workflow_dispatch: | |
| schedule: | |
| - cron: "0 0 * * *" | |
| env: | |
| CARGO_TERM_COLOR: always | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| RUSTDOCFLAGS: -Dwarnings | |
| DEFMT_LOG: trace | |
| jobs: | |
| esp-hal-nightly: | |
| name: esp-hal | nightly (${{ matrix.device }}) | |
| runs-on: ubuntu-latest | |
| env: | |
| CI: 1 | |
| SSID: SSID | |
| PASSWORD: PASSWORD | |
| STATIC_IP: 1.1.1.1 | |
| GATEWAY_IP: 1.1.1.1 | |
| HOST_IP: 1.1.1.1 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| device: ["esp32c2", "esp32c3", "esp32c6", "esp32h2"] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| # Install the Rust nightly toolchain for RISC-V devices: | |
| - uses: dtolnay/rust-toolchain@v1 | |
| with: | |
| target: riscv32imc-unknown-none-elf,riscv32imac-unknown-none-elf | |
| toolchain: nightly | |
| components: rust-src, clippy, rustfmt | |
| - name: Setup cargo-batch | |
| run: | | |
| # Note this is linux-only, but the macOS runner has cargo batch installed | |
| if ! command -v cargo-batch &> /dev/null; then | |
| mkdir -p $HOME/.cargo/bin | |
| curl -L https://github.com/embassy-rs/cargo-batch/releases/download/batch-0.6.0/cargo-batch > $HOME/.cargo/bin/cargo-batch | |
| chmod +x $HOME/.cargo/bin/cargo-batch | |
| fi | |
| - name: Build and Check | |
| shell: bash | |
| run: cargo xtask ci ${{ matrix.device }} --toolchain nightly | |
| # Check for unused dependencies through esp-hal packages | |
| - name: Install and run cargo machete | |
| run: | | |
| cargo install cargo-machete | |
| cargo machete | |
| check-global-symbols: | |
| name: Check Global Symbols in esp-hal | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| # Install the Rust toolchain for Xtensa devices: | |
| - uses: esp-rs/[email protected] | |
| with: | |
| version: 1.92.0.0 | |
| # Check all chips at once only for esp-hal | |
| - name: Run check-global-symbols | |
| run: cargo xtask check-global-symbols | |
| create-issue: | |
| name: Create GitHub Issue if any job failed | |
| runs-on: ubuntu-latest | |
| needs: [esp-hal-nightly, check-global-symbols] | |
| if: ${{ failure() }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - run: | | |
| sudo apt-get install gh -y | |
| ISSUE_NAME=$(gh issue list --state open --search "Nightly CI Failure in:title" --json number --jq '.[0].number') | |
| if [[ -z "$ISSUE_NAME" ]]; | |
| then | |
| gh issue create \ | |
| --title "Nightly CI Failure" \ | |
| --body "One or more jobs failed! [View the failed workflow](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }})." \ | |
| --label "ci-nightly" \ | |
| --assignee JurajSadel | |
| fi |