mirror of
https://github.com/micropython/micropython.git
synced 2026-01-08 05:00:26 +01:00
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>
66 lines
1.7 KiB
YAML
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 }}
|