diff options
author | Angus Gratton <angus@redyak.com.au> | 2023-11-29 15:39:10 +1100 |
---|---|---|
committer | Damien George <damien@micropython.org> | 2023-12-06 12:13:56 +1100 |
commit | b6df8f84526bc1d32b419c1e4f706a9ec699957f (patch) | |
tree | a94ea54a467b6c05b16885f25c63f452a87b3ee1 /.github | |
parent | 9f620d28193709a5002a6f439b7495c9c3451792 (diff) | |
download | micropython-b6df8f84526bc1d32b419c1e4f706a9ec699957f.tar.gz micropython-b6df8f84526bc1d32b419c1e4f706a9ec699957f.zip |
github/workflows: Use build matrix for esp32 port.
Allows splitting the esp32 job into multiple parts without too much
boilerplate. The matrix is parameterised using the name of the function to
call in tools/ci.sh, to minimise the dependency on GitHub Actions.
This can get esp32 build times down around 3m if IDF is cached already.
If the cache is cold, the cache preparation step on each job can double up
against each other. However, restructuring the workflow to not do this
seems either complex or requires copy-pasting the entire cache step.
Signed-off-by: Angus Gratton <angus@redyak.com.au>
Diffstat (limited to '.github')
-rw-r--r-- | .github/workflows/ports_esp32.yml | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/.github/workflows/ports_esp32.yml b/.github/workflows/ports_esp32.yml index 117ae897aa..9c8a8998a2 100644 --- a/.github/workflows/ports_esp32.yml +++ b/.github/workflows/ports_esp32.yml @@ -18,7 +18,13 @@ concurrency: cancel-in-progress: true jobs: - build_idf50: + build_idf: + strategy: + fail-fast: false + matrix: + ci_func: # names are functions in ci.sh + - esp32_build_cmod_s2 + - esp32_build_s3_c3 runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v4 @@ -42,5 +48,5 @@ jobs: if: steps.cache_esp_idf.outputs.cache-hit != 'true' run: source tools/ci.sh && ci_esp32_idf_setup - - name: Build - run: source tools/ci.sh && ci_esp32_build + - name: Build ci_${{matrix.ci_func }} + run: source tools/ci.sh && ci_${{ matrix.ci_func }} |