15
15
outputs :
16
16
CORE_TAG : ${{ env.CORE_TAG }}
17
17
CORE_ARTIFACT : ${{ env.CORE_ARTIFACT }}
18
- BOARD_NAMES : ${{ env.BOARD_NAMES }}
18
+ BOARD_VARIANTS : ${{ env.BOARD_VARIANTS }}
19
19
steps :
20
20
- name : Install toolchain
21
21
working-directory : /opt
@@ -35,14 +35,15 @@ jobs:
35
35
./extra/bootstrap.sh -o=--filter=tree:0
36
36
echo "CORE_TAG=$(git describe --always)" >> "$GITHUB_ENV"
37
37
echo "CORE_ARTIFACT=ArduinoCore-zephyr-$(git describe --always)" >> "$GITHUB_ENV"
38
- echo "BOARD_NAMES =[ $(cat boards.txt | grep '^[^#]*\.build\.variant' | cut -d '.' -f 1 | xargs printf '"%s",' | sed -e 's/,$//') ]" >> "$GITHUB_ENV"
38
+ echo "BOARD_VARIANTS =[ $(cat boards.txt | grep '^[^#]*\.build\.variant' | sed -e 's/^\([^#]*\)\.build\.variant=\(.*\)/{ \"variant\": \"\2\", \"board\": \"\1\" },/' | sort | tr '\r\n' ' ' | sed -e 's/,\s* $//') ]" >> "$GITHUB_ENV"
39
39
40
40
- name : ccache
41
41
uses :
hendrikmuhs/[email protected]
42
42
with :
43
43
verbose : 1
44
44
45
45
- name : Build variants
46
+ shell : bash
46
47
run : |
47
48
./extra/build_all.sh -f
48
49
63
64
needs : package-core
64
65
strategy :
65
66
matrix :
66
- board : ${{ fromJSON( needs.package-core.outputs.BOARD_NAMES ) }}
67
+ include :
68
+ ${{ fromJSON( needs.package-core.outputs.BOARD_VARIANTS ) }}
67
69
fail-fast : false
68
70
env :
69
71
FQBN : arduino:zephyr:${{ matrix.board }}
@@ -137,7 +139,7 @@ jobs:
137
139
- test-core
138
140
if : ${{ !cancelled() && needs.package-core.result == 'success' }}
139
141
env :
140
- BOARD_NAMES : ${{ needs.package-core.outputs.BOARD_NAMES }}
142
+ BOARD_VARIANTS : ${{ needs.package-core.outputs.BOARD_VARIANTS }}
141
143
steps :
142
144
- uses : actions/download-artifact@v4
143
145
with :
@@ -147,29 +149,33 @@ jobs:
147
149
148
150
- run : |
149
151
echo "### Core test results:" >> "$GITHUB_STEP_SUMMARY"
150
- for BOARD in $(echo $BOARD_NAMES | jq -cr '.[]'); do
152
+ jq -c '.[]' <<< "$BOARD_VARIANTS" | while read -r BOARD_VARIANT; do
153
+ BOARD=$(echo $BOARD_VARIANT | jq -cr '.board')
154
+ VARIANT=$(echo $BOARD_VARIANT | jq -cr '.variant')
151
155
FQBN="arduino:zephyr:$BOARD"
152
156
REPORT_FILE="arduino-zephyr-$BOARD.json"
153
157
if [ ! -f $REPORT_FILE ]; then
154
- echo ":x: $BOARD - No report found?" >> "$GITHUB_STEP_SUMMARY"
158
+ echo "* :x: $BOARD (`$VARIANT`) - No report found?" >> "$GITHUB_STEP_SUMMARY"
155
159
else
156
160
REPORT=$(jq -cr '.boards[0].sketches[0]' $REPORT_FILE)
157
161
JOB_ID=$(echo $REPORT | jq -cr '.job_id')
158
162
JOB_URL="https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}/job/${JOB_ID}#step:5:2"
159
163
if ! $(echo $REPORT | jq -cr '.compilation_success') ; then
160
- echo ":x: [$BOARD]($JOB_URL) - ** Build failed** " >> "$GITHUB_STEP_SUMMARY"
164
+ echo "* :x: [$BOARD]($JOB_URL) (\`$VARIANT\`) - Build failed" >> "$GITHUB_STEP_SUMMARY"
161
165
else
162
166
WARNINGS=$(echo $REPORT | jq -cr '.warnings.current.absolute // 0')
163
167
if [ $WARNINGS -eq 0 ]; then
164
- echo ":white_check_mark: [ $BOARD]($JOB_URL ) - Build successful" >> "$GITHUB_STEP_SUMMARY"
168
+ echo "* :white_check_mark: $BOARD (\`$VARIANT\` ) - Build successful" >> "$GITHUB_STEP_SUMMARY"
165
169
else
166
- echo "<details><summary>:warning: <a href=\"$JOB_URL\">$BOARD</a> - $WARNINGS warnings:</summary>" >> "$GITHUB_STEP_SUMMARY"
170
+ echo >> "$GITHUB_STEP_SUMMARY"
171
+ echo "<details><summary> :warning: <a href=\"$JOB_URL\">$BOARD</a> (<tt>$VARIANT</tt>) - $WARNINGS warnings:</summary>" >> "$GITHUB_STEP_SUMMARY"
167
172
echo >> "$GITHUB_STEP_SUMMARY"
168
173
echo "\`\`\`" >> "$GITHUB_STEP_SUMMARY"
169
174
echo $REPORT | jq -cr '.warnings_log[]' >> "$GITHUB_STEP_SUMMARY"
170
175
echo "\`\`\`" >> "$GITHUB_STEP_SUMMARY"
171
176
echo >> "$GITHUB_STEP_SUMMARY"
172
177
echo "</details>" >> "$GITHUB_STEP_SUMMARY"
178
+ echo >> "$GITHUB_STEP_SUMMARY"
173
179
fi
174
180
fi
175
181
fi
0 commit comments