@@ -15,14 +15,38 @@ concurrency:
15
15
cancel-in-progress : true
16
16
17
17
jobs :
18
- Build :
18
+ gen_chunks :
19
19
if : contains(github.event.pull_request.labels.*.name, 'hil_test')
20
+ name : Generate Chunks matrix
21
+ runs-on : ubuntu-latest
22
+ outputs :
23
+ chunks : ${{ steps.gen-chunks.outputs.chunks }}
24
+ steps :
25
+ - name : Checkout Repository
26
+ uses : actions/checkout@v2
27
+
28
+ - name : Generate Chunks matrix
29
+ id : gen-chunks
30
+ run : |
31
+ set +e
32
+ bash .github/scripts/sketch_utils.sh count tests
33
+ sketches=$((? - 1))
34
+ if [[ $sketches -gt ${{env.MAX_CHUNKS}} ]]; then
35
+ $sketches=${{env.MAX_CHUNKS}}
36
+ fi
37
+ set -e
38
+ rm sketches.txt
39
+ CHUNKS=$(jq -c -n '$ARGS.positional' --args `seq 0 1 $sketches`)
40
+ echo "::set-output name=chunks::${CHUNKS}"
41
+
42
+ Build :
43
+ needs : gen_chunks
20
44
name : ${{matrix.chip}}-Build#${{matrix.chunks}}
21
45
runs-on : ubuntu-latest
22
46
strategy :
23
47
matrix :
24
48
chip : ['esp32', 'esp32s2', 'esp32c3']
25
- chunks : [0, 1, 2, 3]
49
+ chunks : ${{fromJson(needs.gen_chunks.outputs.chunks)}}
26
50
27
51
steps :
28
52
- name : Checkout Repository
@@ -39,14 +63,14 @@ jobs:
39
63
tests/*/build/*.bin
40
64
tests/*/build/*.json
41
65
Test :
42
- needs : Build
66
+ needs : [gen_chunks, Build]
43
67
name : ${{matrix.chip}}-Test#${{matrix.chunks}}
44
68
runs-on : ESP32
45
69
strategy :
46
70
fail-fast : false
47
71
matrix :
48
72
chip : ['esp32', 'esp32s2', 'esp32c3']
49
- chunks : [0, 1, 2, 3]
73
+ chunks : ${{fromJson(needs.gen_chunks.outputs.chunks)}}
50
74
container :
51
75
image : python:3.10.1-bullseye
52
76
options : --privileged
0 commit comments