Skip to content

Commit e887120

Browse files
committed
Build dual Navigator Voyager test firmware
1 parent 17724a0 commit e887120

1 file changed

Lines changed: 93 additions & 0 deletions

File tree

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
name: Build dual Navigator Voyager test
2+
3+
on:
4+
workflow_dispatch:
5+
push:
6+
branches:
7+
- test/dual-navigator
8+
paths:
9+
- emVdK/config.h
10+
- emVdK/keymap.json
11+
- scripts/patch-voyager-dual-hid.py
12+
- .github/workflows/build-dual-navigator-test.yml
13+
14+
permissions:
15+
contents: read
16+
17+
jobs:
18+
build-dual-navigator:
19+
runs-on: ubuntu-latest
20+
21+
steps:
22+
- name: Checkout test branch
23+
uses: actions/checkout@v5
24+
with:
25+
ref: test/dual-navigator
26+
fetch-depth: 1
27+
28+
- name: Initialize ZSA QMK firmware25
29+
run: |
30+
git submodule update --init --remote --depth=1 --no-single-branch
31+
cd qmk_firmware
32+
git checkout -B firmware25 origin/firmware25
33+
git submodule update --init --recursive
34+
cd ..
35+
36+
- name: Install QMK-OpenRGB module
37+
run: |
38+
rm -rf qmk_firmware/modules/openrgb
39+
git clone \
40+
--depth 1 \
41+
--branch module_revD \
42+
https://gitlab.com/OpenRGBDevelopers/QMK-OpenRGB.git \
43+
qmk_firmware/modules/openrgb
44+
echo "QMK-OpenRGB commit: $(git -C qmk_firmware/modules/openrgb rev-parse HEAD)"
45+
46+
- name: Apply OpenRGB and Keymapp dual-HID patch
47+
run: |
48+
python3 scripts/patch-voyager-dual-hid.py qmk_firmware
49+
50+
- name: Validate test configuration
51+
run: |
52+
grep -q '"zsa/navigator_trackball"' emVdK/keymap.json
53+
grep -q '"zsa/navigator_trackpad"' emVdK/keymap.json
54+
grep -q '"openrgb"' emVdK/keymap.json
55+
grep -q 'NAVIGATOR_TRACKBALL_ROTATION 325' emVdK/config.h
56+
grep -q 'NAVIGATOR_TRACKPAD_ROTATION 0' emVdK/config.h
57+
58+
# OpenRGB remains on stock QMK Raw HID; Oryx remains on the second HID.
59+
grep -q 'void raw_hid_receive(uint8_t \*data, uint8_t length)' \
60+
qmk_firmware/modules/openrgb/openrgb.c
61+
grep -q 'void oryx_hid_receive(uint8_t \*data, uint8_t length)' \
62+
qmk_firmware/modules/zsa/oryx/oryx.c
63+
64+
- name: Build QMK Docker image
65+
run: docker build -t qmk .
66+
67+
- name: Install layout into QMK tree
68+
run: |
69+
rm -rf qmk_firmware/keyboards/zsa/voyager/keymaps/emVdK
70+
mkdir -p qmk_firmware/keyboards/zsa/voyager/keymaps
71+
cp -r emVdK qmk_firmware/keyboards/zsa/voyager/keymaps/
72+
73+
- name: Build Voyager firmware
74+
run: |
75+
docker run \
76+
-v ./qmk_firmware:/root \
77+
--rm \
78+
qmk \
79+
/bin/sh -c '
80+
qmk setup zsa/qmk_firmware -b firmware25 -y
81+
make zsa/voyager:emVdK
82+
'
83+
84+
- name: Show built firmware
85+
run: |
86+
find qmk_firmware -maxdepth 1 -type f -name '*voyager*.bin' -ls
87+
88+
- name: Upload test firmware
89+
uses: actions/upload-artifact@v7
90+
with:
91+
name: voyager_emVdK_openrgb_trackball_right_trackpad_left
92+
path: qmk_firmware/*voyager*.bin
93+
if-no-files-found: error

0 commit comments

Comments
 (0)