Browse Source

Let's use workflows to parallelise the builds. (#20120)

* Let's use workflows to parallelise the builds.

* Nofail if files aren't present.

* Formatting.
Nick Brassel 3 years ago
parent
commit
e62fc866db
2 changed files with 15 additions and 6 deletions
  1. 14 5
      .github/workflows/ci_builds.yml
  2. 1 1
      lib/python/qmk/cli/mass_compile.py

+ 14 - 5
.github/workflows/ci_builds.yml

@@ -19,9 +19,8 @@ jobs:
 
     strategy:
       matrix:
-        keymap:
-        - default
-        - via
+        keymap: [default, via]
+        keyboard_folder: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z]
 
     container: qmkfm/qmk_cli
 
@@ -36,5 +35,15 @@ jobs:
     - name: Install dependencies
       run: pip3 install -r requirements.txt
 
-    - name: Run `qmk mass-compile` (keymap ${{ matrix.keymap }})
-      run: qmk mass-compile -j $(nproc 2>/dev/null || sysctl -n hw.ncpu 2>/dev/null || getconf _NPROCESSORS_ONLN 2>/dev/null) -km ${{ matrix.keymap }}
+    - name: Run `qmk mass-compile` (keyboards ${{ matrix.keyboard_folder }}*, keymap ${{ matrix.keymap }})
+      run: qmk mass-compile -j $(nproc 2>/dev/null || sysctl -n hw.ncpu 2>/dev/null || getconf _NPROCESSORS_ONLN 2>/dev/null) -km ${{ matrix.keymap }} -f 'keyboard_folder=${{ matrix.keyboard_folder }}*'
+
+    - name: 'Upload binaries'
+      uses: actions/upload-artifact@v3
+      with:
+        name: binaries-${{ matrix.keyboard_folder }}-${{ matrix.keymap }}
+        if-no-files-found: ignore
+        path: |
+          *.bin
+          *.hex
+          *.uf2

+ 1 - 1
lib/python/qmk/cli/mass_compile.py

@@ -106,7 +106,7 @@ def mass_compile(cli):
 
                     def _make_filter(k, v):
                         expr = fnmatch.translate(v)
-                        rule = re.compile(expr, re.IGNORECASE)
+                        rule = re.compile(f'^{expr}$', re.IGNORECASE)
 
                         def f(e):
                             lhs = e[2].get(k)