Skip to content
This repository was archived by the owner on Mar 6, 2026. It is now read-only.

Commit bf08cd0

Browse files
committed
mirrored workflows
1 parent e0a397d commit bf08cd0

2 files changed

Lines changed: 49 additions & 24 deletions

File tree

.github/workflows/ci.yml

Lines changed: 48 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ name: CI
33
on:
44
push:
55
branches: [ main, master ]
6+
tags: ['v*']
67
pull_request:
78
workflow_dispatch:
89

@@ -71,34 +72,50 @@ jobs:
7172
7273
arduino-cli:
7374
runs-on: ubuntu-latest
74-
strategy:
75-
fail-fast: false
76-
matrix:
77-
board:
78-
- fqbn: esp32:esp32:esp32
79-
name: esp32dev
80-
- fqbn: esp32:esp32:esp32s3
81-
name: esp32-s3-devkitc-1
82-
- fqbn: esp32:esp32:esp32c3
83-
name: esp32-c3-devkitm-1
84-
- fqbn: esp32:esp32:esp32p4
85-
name: esp32-p4-evboard
75+
needs: build-examples
76+
env:
77+
ESP32_CORE_VERSION: 3.3.3
78+
ESP32_PACKAGE_URL: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
79+
ARDUINO_BOARDS: |
80+
esp32:esp32:esp32 esp32dev
81+
esp32:esp32:esp32s3 esp32-s3-devkitc-1
82+
esp32:esp32:esp32c3 esp32-c3-devkitm-1
83+
esp32:esp32:esp32p4 esp32-p4-evboard
8684
steps:
8785
- name: Checkout
8886
uses: actions/checkout@v4
8987

9088
- name: Set up Arduino CLI
9189
uses: arduino/setup-arduino-cli@v1
9290

93-
- name: Install ESP32 core
91+
- name: Prepare Arduino directories
9492
run: |
95-
arduino-cli core update-index
96-
arduino-cli core install esp32:esp32
93+
mkdir -p "${HOME}/.arduino15"
94+
mkdir -p "${HOME}/Arduino/libraries"
95+
96+
- name: Cache Arduino dependencies
97+
uses: actions/cache@v4
98+
with:
99+
path: |
100+
~/.arduino15
101+
~/Arduino/libraries
102+
key: ${{ runner.os }}-arduino-esp32-${{ env.ESP32_CORE_VERSION }}-${{ hashFiles('library.properties') }}
103+
restore-keys: |
104+
${{ runner.os }}-arduino-esp32-${{ env.ESP32_CORE_VERSION }}-
105+
${{ runner.os }}-arduino-esp32-
97106
98-
- name: Enable Git library installs
107+
- name: Configure board manager for ESP32
99108
run: |
109+
set -e
100110
arduino-cli config init --overwrite
101111
arduino-cli config set library.enable_unsafe_install true
112+
arduino-cli config add board_manager.additional_urls "${ESP32_PACKAGE_URL}"
113+
arduino-cli config dump
114+
115+
- name: Install ESP32 core
116+
run: |
117+
arduino-cli core update-index --additional-urls "${ESP32_PACKAGE_URL}"
118+
arduino-cli core install esp32:esp32@${ESP32_CORE_VERSION} --additional-urls "${ESP32_PACKAGE_URL}"
102119
103120
- name: Install libraries
104121
run: |
@@ -113,17 +130,24 @@ jobs:
113130
mkdir -p "$SKETCHBOOK_DIR/libraries/ESPStartup"
114131
rsync -a --delete --exclude ".git" ./ "$SKETCHBOOK_DIR/libraries/ESPStartup/"
115132
116-
- name: Build examples (${{ matrix.board.name }})
133+
- name: Build examples
117134
env:
118-
FQBN: ${{ matrix.board.fqbn }}
135+
BOARDS: ${{ env.ARDUINO_BOARDS }}
119136
run: |
120-
set -e
121-
for d in examples/*; do
122-
if [ -d "$d" ]; then
123-
echo "Compiling $d"
124-
arduino-cli compile --fqbn "$FQBN" "$d"
137+
set -euo pipefail
138+
while read -r fqbn board_name; do
139+
if [ -z "$fqbn" ]; then
140+
continue
125141
fi
126-
done
142+
echo "::group::Compiling examples for ${board_name} (${fqbn})"
143+
for d in examples/*; do
144+
if [ -d "$d" ]; then
145+
echo "Compiling $d"
146+
arduino-cli compile --fqbn "$fqbn" "$d"
147+
fi
148+
done
149+
echo "::endgroup::"
150+
done <<< "$BOARDS"
127151
128152
package-library:
129153
runs-on: ubuntu-latest

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ All notable changes to this project will be documented in this file.
1919
### Fixed
2020
- Parallel startup failure handling is fail-fast: stop scheduling new work, wait for in-flight jobs, then report failure.
2121
- GitHub Actions Arduino CLI job now enables `library.enable_unsafe_install` before `--git-url` dependency installs.
22+
- GitHub Actions CI now mirrors standard ESPToolKit settings (push on `main`/`master` and `v*` tags, cached Arduino deps, ESP32 board manager URL, pinned ESP32 core).
2223

2324
## [1.0.0] - 2026-03-05
2425
### Added

0 commit comments

Comments
 (0)