@@ -24,12 +24,11 @@ artifact_count() {
2424
2525artifact_entry () {
2626 ICON=" $1 "
27- LINK=" $2 "
2827
2928 COUNTS=" $( artifact_count $(( SKETCH_COUNT - SKETCH_ERRORS)) " :green_circle:" ) $( artifact_count $SKETCH_WARNINGS " :yellow_circle:" ) <b>$( artifact_count $SKETCH_ERRORS " :red_circle:" ) </b>"
3029 SUMMARY=" $COUNTS $ICON <b>$BOARD </b> (<code>$VARIANT </code>)"
31- if [ ! -z " $LINK " ] ; then
32- SUMMARY=" $SUMMARY - <a href=\" $LINK \" >full build log</a>"
30+ if [ ! -z " $ARTIFACT_LINK " ] ; then
31+ SUMMARY=" $SUMMARY - <a href=\" $ARTIFACT_LINK \" >full build log</a>"
3332 fi
3433 echo -e " <li><details><summary>$SUMMARY </summary><table>$DETAILS </table></details></li>"
3534}
@@ -71,47 +70,39 @@ for artifact in $ARTIFACTS ; do
7170 SKETCH_ERRORS=0
7271 SKETCH_WARNINGS=0
7372 if [ ! -f $REPORT_FILE ]; then
74- ARTIFACT_STATUS=" fire"
75- else
76- REPORTS=$( jq -cr ' .boards[0].sketches' $REPORT_FILE )
77- JOB_ID=$( jq -cr ' .job_id' $REPORT_FILE )
78- ARTIFACT_LINK=" https://github.com/${GITHUB_REPOSITORY} /actions/runs/${GITHUB_RUN_ID} /job/${JOB_ID} #step:5"
79-
80- SKETCH_COUNT=$( echo $REPORTS | jq -cr ' length' )
81- ARTIFACT_STATUS=" success"
82- for i in $( seq 0 $(( SKETCH_COUNT - 1 )) ) ; do
83- REPORT=$( echo $REPORTS | jq -cr " .[$i ]" )
84- SKETCH_NAME=$( echo $REPORT | jq -cr ' .name' )
85- SKETCH_ISSUES=$( echo $REPORT | jq -cr ' .issues.[]' | sed -e ' s/.*\(\(\/[^/]\+\)\{3\}\):/...\1:/' )
86- SKETCH_ISSUES_COUNT=$( echo $REPORT | jq -cr ' .issues | length' )
87- if ! $( echo $REPORT | jq -cr ' .compilation_success' ) ; then
88- SKETCH_ERRORS=$(( SKETCH_ERRORS + 1 ))
89- ARTIFACT_STATUS=error
90- DETAILS=" ${DETAILS} $( details_line " :red_circle:" " Compilation failed" ) \n"
91- elif [ $SKETCH_ISSUES_COUNT -eq 0 ]; then
92- [ $ARTIFACT_STATUS == " success" ] && ARTIFACT_STATUS=" warning"
93- DETAILS=" ${DETAILS} $( details_line " :green_circle:" " Build successful" ) \n"
94- else
95- SKETCH_WARNINGS=$(( SKETCH_WARNINGS + 1 ))
96- DETAILS=" ${DETAILS} $( details_line " :yellow_circle:" " Build successful" ) \n"
97- fi
98- done
73+ artifact_entry " :fire:"
74+ continue
9975 fi
10076
101- case $ARTIFACT_STATUS in
102- success)
103- artifact_entry " PASS :white_check_mark:"
104- ;;
105- warning)
106- artifact_entry " :exclamation:" " $ARTIFACT_LINK "
107- ;;
108- error)
109- artifact_entry " :x:" " $ARTIFACT_LINK "
110- ;;
111- fire)
112- artifact_entry " :fire:"
113- ;;
114- esac
77+ JOB_ID=$( jq -cr ' .job_id' $REPORT_FILE )
78+ REPORTS=$( jq -cr ' .boards[0].sketches // []' $REPORT_FILE )
79+ ARTIFACT_LINK=" https://github.com/${GITHUB_REPOSITORY} /actions/runs/${GITHUB_RUN_ID} /job/${JOB_ID} #step:5"
80+
81+ SKETCH_COUNT=$( echo $REPORTS | jq -cr ' length' )
82+ if [ $SKETCH_COUNT -eq 0 ] ; then
83+ artifact_entry " :fire:"
84+ continue
85+ fi
86+
87+ ARTIFACT_ICON=" :white_check_mark:"
88+ for i in $( seq 0 $(( SKETCH_COUNT - 1 )) ) ; do
89+ REPORT=$( echo $REPORTS | jq -cr " .[$i ]" )
90+ SKETCH_NAME=$( echo $REPORT | jq -cr ' .name' )
91+ SKETCH_ISSUES=$( echo $REPORT | jq -cr ' .issues.[]' | sed -e ' s/.*\(\(\/[^/]\+\)\{3\}\):/...\1:/' )
92+ SKETCH_ISSUES_COUNT=$( echo $REPORT | jq -cr ' .issues | length' )
93+ if ! $( echo $REPORT | jq -cr ' .compilation_success' ) ; then
94+ SKETCH_ERRORS=$(( SKETCH_ERRORS + 1 ))
95+ ARTIFACT_ICON=" :x:"
96+ DETAILS=" ${DETAILS} $( details_line " :red_circle:" " Compilation failed" ) \n"
97+ elif [ $SKETCH_ISSUES_COUNT -eq 0 ]; then
98+ [ $ARTIFACT_ICON == " :white_check_mark:" ] && ARTIFACT_ICON=" :exclamation:"
99+ DETAILS=" ${DETAILS} $( details_line " :green_circle:" " Build successful" ) \n"
100+ else
101+ SKETCH_WARNINGS=$(( SKETCH_WARNINGS + 1 ))
102+ DETAILS=" ${DETAILS} $( details_line " :yellow_circle:" " Build successful" ) \n"
103+ fi
104+ done
105+
106+ artifact_entry $ARTIFACT_STATUS
115107 done
116- echo -e " </ul>\n"
117108done
0 commit comments