From d31d1488e8e72a7e8542edd36f335c7d146b1f97 Mon Sep 17 00:00:00 2001
From: Nick Brassel <nick@tzarc.org>
Date: Wed, 29 Mar 2023 16:48:57 +1100
Subject: [PATCH] Fixup CI command failures. (#20291)

---
 .github/workflows/ci_builds.yml      | 8 +++++---
 util/ci/generate_failure_markdown.sh | 2 ++
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/.github/workflows/ci_builds.yml b/.github/workflows/ci_builds.yml
index 92659f304d..ce2d0b509e 100644
--- a/.github/workflows/ci_builds.yml
+++ b/.github/workflows/ci_builds.yml
@@ -39,11 +39,13 @@ jobs:
     - name: Run `qmk mass-compile` (keymap ${{ matrix.keymap }})
       run: |
         export NCPUS=$(nproc 2>/dev/null || sysctl -n hw.ncpu 2>/dev/null || getconf _NPROCESSORS_ONLN 2>/dev/null)
-        qmk mass-compile -t -j $NCPUS -km ${{ matrix.keymap }} -e DUMP_CI_METADATA=yes
+        qmk mass-compile -t -j $NCPUS -km ${{ matrix.keymap }} -e DUMP_CI_METADATA=yes || touch .failed
         # Generate the step summary markdown
-        ./util/ci/generate_failure_markdown.sh > $GITHUB_STEP_SUMMARY
+        ./util/ci/generate_failure_markdown.sh > $GITHUB_STEP_SUMMARY || true
         # Truncate to a maximum of 1MB to deal with GitHub workflow limit
-        truncate --size='<960K' $GITHUB_STEP_SUMMARY
+        truncate --size='<960K' $GITHUB_STEP_SUMMARY || true
+        # Exit with failure if the compilation stage failed
+        [ ! -f .failed ] || exit 1
 
     - name: 'Upload artifacts'
       uses: actions/upload-artifact@v3
diff --git a/util/ci/generate_failure_markdown.sh b/util/ci/generate_failure_markdown.sh
index 5f21f06856..ccb3eacb35 100755
--- a/util/ci/generate_failure_markdown.sh
+++ b/util/ci/generate_failure_markdown.sh
@@ -19,3 +19,5 @@ dump_failure_info() {
 for failure_file in $(find "$qmk_firmware_dir/.build" -name 'failed.log.*' | sort); do
     dump_failure_info "$failure_file"
 done
+
+exit 0