Skip to content

CI - nightly

CI - nightly #527

Workflow file for this run

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