Files
micropython/.github/workflows/ports_esp32.yml
Jeff Epler 6c7edce76c github/workflows: Add esp32 to code size report.
Add an esp32 build (specifically ESP32_GENERIC) to the CI code-size check.
Multiple new steps must be done to prepare for building esp32, and caching
is used to speed up both the install of the IDF and the build process.

Signed-off-by: Jeff Epler <jepler@unpythonic.net>
2026-01-05 11:40:08 +11:00

66 lines
1.7 KiB
YAML

name: esp32 port
on:
push:
pull_request:
paths:
- '.github/workflows/*.yml'
- 'tools/**'
- 'py/**'
- 'extmod/**'
- 'shared/**'
- 'lib/**'
- 'drivers/**'
- 'ports/esp32/**'
schedule:
# Scheduled run exists to keep master branch ESP-IDF cache entry hot
# and prevent creating many redundant per-branch cache entries instead.
- cron: "20 0 * * *"
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build_idf:
strategy:
fail-fast: false
matrix:
ci_func: # names are functions in ci.sh
- esp32_build_cmod_spiram_s2
- esp32_build_s3_c3
- esp32_build_c2_c5_c6
- esp32_build_p4
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
# Needs to be kept in synch with code_size.yml
- id: idf_ver
name: Read the ESP-IDF version (including Python version) and set outputs.IDF_VER
run: tools/ci.sh esp32_idf_ver | tee "${GITHUB_OUTPUT}"
- name: Cached ESP-IDF install
id: cache_esp_idf
uses: actions/cache@v5
with:
path: |
./esp-idf/
~/.espressif/
!~/.espressif/dist/
~/.cache/pip/
key: esp-idf-${{ steps.idf_ver.outputs.IDF_VER }}
- name: Install ESP-IDF packages
if: steps.cache_esp_idf.outputs.cache-hit != 'true'
run: tools/ci.sh esp32_idf_setup
# Needs to be kept in synch with code_size.yml
- name: ccache
uses: hendrikmuhs/ccache-action@v1.2
with:
key: esp32-${{ matrix.ci_func }}
- name: Build ci_${{matrix.ci_func }}
run: tools/ci.sh ${{ matrix.ci_func }}