|
| 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