summaryrefslogtreecommitdiffstatshomepage
path: root/.github
diff options
context:
space:
mode:
authorAngus Gratton <angus@redyak.com.au>2023-11-29 15:39:10 +1100
committerDamien George <damien@micropython.org>2023-12-06 12:13:56 +1100
commitb6df8f84526bc1d32b419c1e4f706a9ec699957f (patch)
treea94ea54a467b6c05b16885f25c63f452a87b3ee1 /.github
parent9f620d28193709a5002a6f439b7495c9c3451792 (diff)
downloadmicropython-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.yml12
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 }}