99 debug :
1010 name : ' QMK Userspace Build Debug'
1111 runs-on : ubuntu-latest
12+ if : github.event_name == 'workflow_dispatch'
1213 steps :
1314 - name : Checkout userspace
1415 uses : actions/checkout@v4
@@ -21,35 +22,47 @@ jobs:
2122 path : qmk_firmware
2223 submodules : recursive
2324
24- - name : Install QMK dependencies
25- run : |
26- sudo apt-get update
27- sudo apt-get install -y gcc-arm-none-eabi binutils-arm-none-eabi libnewlib-arm-none-eabi git python3 python3-pip
28- python3 -m pip install --upgrade pip
29- python3 -m pip install qmk
25+ - name : Install Nix
26+ uses : cachix/install-nix-action@v27
27+ with :
28+ nix_path : nixpkgs=channel:nixos-unstable
3029
31- - name : Setup QMK
30+ - name : Setup QMK and compile keyboards
3231 run : |
33- qmk config user.qmk_home="$(pwd)/qmk_firmware"
34- qmk config user.overlay_dir="$(pwd)"
35- qmk doctor || true
32+ nix develop --command bash -c '
33+ # Setup QMK
34+ qmk config user.qmk_home="$(pwd)/qmk_firmware"
35+ qmk config user.overlay_dir="$(pwd)"
36+ qmk doctor || true
3637
37- - name : Compile each keyboard with verbose output
38- run : |
39- echo "=== Building keyclicks/w_ergolite:jeffdess ===" | tee -a qmk-build.log
40- qmk compile -kb keyclicks/w_ergolite -km jeffdess -v 2>&1 | tee -a qmk-build.log || echo "FAILED: w_ergolite" | tee -a qmk-build.log
38+ # Build each keyboard
39+ echo "=== Building Ergolite ===" | \
40+ tee -a qmk-build.log
41+ qmk -v compile -kb keyclicks/w_ergolite -km jeffdess 2>&1 | \
42+ tee -a qmk-build.log || \
43+ echo "FAILED: w_ergolite" | tee -a qmk-build.log
4144
42- echo "" | tee -a qmk-build.log
43- echo "=== Building fingerpunch/ximi/v2:jeffdess ===" | tee -a qmk-build.log
44- qmk compile -kb fingerpunch/ximi/v2 -km jeffdess -v 2>&1 | tee -a qmk-build.log || echo "FAILED: ximi" | tee -a qmk-build.log
45+ echo "" | tee -a qmk-build.log
46+ echo "=== Building Ximi ===" | \
47+ tee -a qmk-build.log
48+ qmk -v compile -kb fingerpunch/ximi/v2 -km jeffdess 2>&1 | \
49+ tee -a qmk-build.log || \
50+ echo "FAILED: ximi" | tee -a qmk-build.log
4551
46- echo "" | tee -a qmk-build.log
47- echo "=== Building ploopyco/trackball_nano/rev1_001:jeffdess ===" | tee -a qmk-build.log
48- qmk compile -kb ploopyco/trackball_nano/rev1_001 -km jeffdess -v 2>&1 | tee -a qmk-build.log || echo "FAILED: trackball" | tee -a qmk-build.log
52+ echo "" | tee -a qmk-build.log
53+ echo "=== Building Ploopy Nano ===" |\
54+ tee -a qmk-build.log
55+ qmk -v compile -kb ploopyco/trackball_nano/rev1_001 -km jeffdess 2>&1 \
56+ | tee -a qmk-build.log || \
57+ echo "FAILED: trackball" | tee -a qmk-build.log
4958
50- echo "" | tee -a qmk-build.log
51- echo "=== Building bastardkb/charybdis/3x5/v2/splinky_3:jeffdess ===" | tee -a qmk-build.log
52- qmk compile -kb bastardkb/charybdis/3x5/v2/splinky_3 -km jeffdess -v 2>&1 | tee -a qmk-build.log || echo "FAILED: charybdis" | tee -a qmk-build.log
59+ echo "" | tee -a qmk-build.log
60+ echo "=== Building Charybdis Nano ===" | \
61+ tee -a qmk-build.log
62+ qmk -v compile -kb bastardkb/charybdis/3x5/v2/splinky_3 -km jeffdess 2>&1 \
63+ | tee -a qmk-build.log || \
64+ echo "FAILED: charybdis" | tee -a qmk-build.log
65+ '
5366
5467 - name : Upload build log
5568 if : always()
@@ -60,10 +73,42 @@ jobs:
6073
6174 build :
6275 name : ' QMK Userspace Build'
63- uses : qmk/.github/.github/workflows/qmk_userspace_build.yml@main
64- with :
65- qmk_repo : JeffDess/qmk_firmware
66- qmk_ref : master
76+ runs-on : ubuntu-latest
77+ steps :
78+ - name : Checkout userspace
79+ uses : actions/checkout@v4
80+
81+ - name : Checkout QMK firmware
82+ uses : actions/checkout@v4
83+ with :
84+ repository : JeffDess/qmk_firmware
85+ ref : master
86+ path : qmk_firmware
87+ submodules : recursive
88+
89+ - name : Install Nix
90+ uses : cachix/install-nix-action@v27
91+ with :
92+ nix_path : nixpkgs=channel:nixos-unstable
93+
94+ - name : Build all keyboards
95+ run : |
96+ nix develop --command bash -c '
97+ qmk config user.qmk_home="$(pwd)/qmk_firmware"
98+ qmk config user.overlay_dir="$(pwd)"
99+
100+ qmk userspace-compile
101+ '
102+
103+ - name : Upload firmware artifacts
104+ uses : actions/upload-artifact@v4
105+ with :
106+ name : Firmware
107+ path : |
108+ *.bin
109+ *.hex
110+ *.uf2
111+ if-no-files-found : warn
67112
68113 publish :
69114 name : ' QMK Userspace Publish'
0 commit comments