From 9c99548fa32f263a140c6db2111645a4851da0da Mon Sep 17 00:00:00 2001
From: honorless <86894501+lesshonor@users.noreply.github.com>
Date: Mon, 5 Jun 2023 07:52:40 -0400
Subject: [PATCH] feat: keymap failure count

---
 .github/workflows/ci.yml | 20 ++++++++++++++------
 1 file changed, 14 insertions(+), 6 deletions(-)

diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 9f9281d22c..6c28bbb39a 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -13,7 +13,7 @@ permissions: {}
 
 jobs:
   check-uid:
-    name: Check Vial UIDs for all keyboards
+    name: Check Vial UIDs
     runs-on: ubuntu-latest
 
     steps:
@@ -22,7 +22,7 @@ jobs:
       with:
         persist-credentials: false
 
-    - name: Verify Vial UID is unique
+    - name: Verify Vial UID is unique per-keyboard
       run: python3 util/ci_vial_verify_uid.py
 
   build-default:
@@ -43,14 +43,18 @@ jobs:
       id: build
       run: |
         git config --global --add safe.directory $(pwd)
-        qmk mass-compile -j $(nproc) $(qmk find -km vial | sed "s/:vial$/:${KEYMAP}/")
+        if ! qmk mass-compile -j $(nproc) $(qmk find -km vial | sed "s/:vial$/:${KEYMAP}/");
+          then
+          echo "::error::$(ls -1 .build/failed.log.* | wc -l) keymaps failed to build. See logs and/or job summary for details."
+          exit 1
+        fi
 
     - name: Dump failure logs
       if: ${{ failure() && steps.build.conclusion == 'failure' }}
       run: |
         echo '### Failure logs' | tee -a "${GITHUB_STEP_SUMMARY}"
 
-        cd .build || exit
+        cd .build || exit 1
         for log in failed.log.*; do
           pretty_logname="$(echo "${log}" | sed "s/^failed\.log\.[0-9]\+\.// ; s/\.${KEYMAP}$//")"
 
@@ -77,14 +81,18 @@ jobs:
       id: build
       run: |
         git config --global --add safe.directory $(pwd)
-        qmk mass-compile -km "${KEYMAP}" -j $(nproc)
+        if ! qmk mass-compile -km "${KEYMAP}" -j $(nproc);
+          then
+          echo "::error::$(ls -1 .build/failed.log.* | wc -l) keymaps failed to build. See logs and/or job summary for details."
+          exit 1
+        fi
 
     - name: Dump failure logs
       if: ${{ failure() && steps.build.conclusion == 'failure' }}
       run: |
         echo '### Failure logs' | tee -a "${GITHUB_STEP_SUMMARY}"
 
-        cd .build || exit
+        cd .build || exit 1
         for log in failed.log.*; do
           pretty_logname="$(echo "${log}" | sed "s/^failed\.log\.[0-9]\+\.// ; s/\.${KEYMAP}$//")"