Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
96 commits
Select commit Hold shift + click to select a range
9aaf87c
docs: Updated putty link (#3020)
LeonHagenaarsKeus Aug 4, 2025
e57bf5a
chore(deps): bump the docusaurus-minor-patch group across 1 directory…
dependabot[bot] Aug 4, 2025
9036371
chore(deps): bump on-headers and compression in /docs (#2999)
dependabot[bot] Aug 4, 2025
cc19ff7
chore(deps): bump http-proxy-middleware from 2.0.7 to 2.0.9 in /docs …
dependabot[bot] Aug 4, 2025
919bce7
fix(docs): Tweak layer tap example to be clearer (#3023)
nmunnich Aug 4, 2025
f3233c1
fix(ci): Fix release please template bump (#3021)
nmunnich Aug 4, 2025
a8a3928
chore(docs): correct a misleading _defconfig description (#3015)
efogdev Aug 4, 2025
4570088
Suggest using cu for USB log viewing on macOS (#3027)
peterjc Aug 7, 2025
3609ac6
docs: fix typo for pip requirements (#3029)
maxchaston Aug 7, 2025
61da930
chore(ci): Set days before issue stale to 1000 (#3022)
nmunnich Aug 8, 2025
c7fae18
feat(boards): add support for nrf52840dongle_nrf52840 (#3011)
dapetcu21 Aug 8, 2025
ccf20a1
feat(boards/shields): Add settings for Rpi Pico and add tester_rpi_pi…
nmunnich Aug 10, 2025
62007e5
docs: Add devicetree primer (#2715)
nmunnich Aug 16, 2025
9fcce45
docs: Fix remaining typos for requirements extras (#3035)
caksoylar Aug 17, 2025
5225952
chore(docs): Typo in CMake Arguments example code blocks (#3038)
kurtis-lew Aug 18, 2025
5144de6
docs: Document usage of persistent settings explicitly (#3036)
caksoylar Aug 18, 2025
ee69b9e
docs: Add a dedicated page on ZMK events (#2815)
nmunnich Aug 18, 2025
f09e551
docs: Add warning box for clearing settings for splits, generalize tr…
caksoylar Aug 20, 2025
0b5a103
fix(core): Generate correct keymap layer names for all builds (#3047)
petejohanson Aug 26, 2025
9a8fdd6
docs: Add missing semicolon to kscan.md composite example (#3052)
chelming Sep 3, 2025
8d06a9b
docs: fix missing link and example introduction (#3064)
Adrien-LUDWIG Sep 8, 2025
d5ba120
docs: Fix hold-trigger-on-release description (#3065)
toberndo Sep 9, 2025
d28f73b
docs: documenting PASTE/COPY/CUT keycodes on macOS (#3058)
peterjc Sep 9, 2025
522971f
fix(ci): disable nrf5340dk from being built in our CI (#3066)
nmunnich Sep 10, 2025
197d104
chore(shields): Add missing display-name for existing keymaps (#3048)
NewbiZ Sep 10, 2025
df3db57
docs: K_VOLUME_UP and K_VOLUME_DOWN work in macOS (#3057)
peterjc Sep 12, 2025
540bf2c
chore(deps): bump mermaid from 11.6.0 to 11.10.1 in /docs (#3042)
dependabot[bot] Sep 12, 2025
c443435
chore(deps): bump brace-expansion in /docs (#3067)
dependabot[bot] Sep 12, 2025
61de01a
feat(layouts): Add physical layout for Redox shield
brmejia Sep 16, 2025
4ec69cb
chore(deps): bump webpack-dev-server, @docusaurus/core, @docusaurus/p…
dependabot[bot] Sep 30, 2025
7738924
feat(split): Add HID indicators and physical layout set to Wired spli…
ReFil Nov 3, 2025
f9be3ed
docs: List some of the commonly used MCUs (#3111)
peterjc Nov 8, 2025
5138c6f
feat: Allow layer behaviors to "lock" layers on (#2717)
nmunnich Nov 14, 2025
e34793e
feat(docs): Update New Behavior Guide (#3107)
kurtis-lew Nov 17, 2025
ad7fbfe
feat(ble): Use appearance set in the BT_DEVICE_APPEARANCE config (#3115)
efogdev Dec 4, 2025
83eafcb
refactor(Kconfig): Move BT_DEVICE_APPEARANCE to defaults (#3128)
caksoylar Dec 6, 2025
d32ffb0
fix(split): Properly return from command handler (#3120)
ReFil Dec 7, 2025
ece2ce1
fix(split): int to pointer cast in bas proxy (#3105)
Genteure Dec 7, 2025
8de5b12
docs: Add release version to the docs, with links and warning banner …
petejohanson Dec 7, 2025
abb64ba
docs: Build fix on release branches (#3130)
petejohanson Dec 7, 2025
c06fa48
feat!: Move to zephyr v4.1 (#3060)
petejohanson Dec 10, 2025
779c987
docs: Move the Zephyr 4.1 blog post to a specific pinned date (#3131)
petejohanson Dec 10, 2025
3c0f0af
chore(tests): Write test builds to logfile (#3125)
nmunnich Dec 10, 2025
958fa78
fix(behaviors): correctly handle sensor rotation remainder (#3084)
schuay Dec 10, 2025
fed2cf6
blog: Clarify west upgrade command in Zephyr 4.1 update post (#3133)
carrefinho Dec 12, 2025
c099041
fix: Add "optional" folder to .gitignore (#3141)
joelspadin Dec 13, 2025
90b3ad2
blog: Merge duplicate "Getting The Changes" sections in Zephyr 4.1 po…
carrefinho Dec 14, 2025
8af2f13
docs: Update Corne-ish Zen mentions for Zephyr 4.1 upgrade renames (#…
caksoylar Dec 14, 2025
cb6ecc1
docs: Remove references to nice_nano_v2, seeeduino_xiao_ble and nrfmi…
nmunnich Dec 14, 2025
8987f39
fix: Fix redundant const warning (#3139)
joelspadin Dec 14, 2025
930b5cc
docs: Replace user setup script with ZMK CLI (#3137)
joelspadin Dec 14, 2025
0e05ee7
chore(deps): bump node-forge from 1.3.1 to 1.3.2 in /docs (#3123)
dependabot[bot] Dec 16, 2025
7b31fb8
chore(deps): bump js-yaml from 4.1.0 to 4.1.1 in /docs (#3113)
dependabot[bot] Dec 16, 2025
ce8d9a3
chore(deps): bump mdast-util-to-hast from 13.2.0 to 13.2.1 in /docs (…
dependabot[bot] Dec 16, 2025
c64bda4
chore(deps-dev): bump the development group across 1 directory with 1…
dependabot[bot] Dec 16, 2025
ce73101
docs: Update hardware integration page with Zephyr 4.1 board setup (#…
nmunnich Dec 17, 2025
040238a
chore(docs): Update docusaurus (#3147)
nmunnich Dec 17, 2025
45de943
build: add support for local config builds via act (#3124)
nidomiro Dec 18, 2025
edb36b5
docs: Update native posix instructions for zephyr 4.1 (#3151)
urob Dec 18, 2025
118359c
fix(usb): Prevent unexpected USB disconnection caused by USB SOF (#3070)
hyx0329 Dec 18, 2025
8266433
chore(ci): Add warning about being on main branch when build fails (#…
nmunnich Dec 22, 2025
b68b29d
chore(deps-dev): bump the development group across 1 directory with 2…
dependabot[bot] Dec 24, 2025
308de56
fix(core): support magic bootloader values for nRF52833 (#3163)
krikun98 Dec 24, 2025
8568d02
docs: Fix layers property of config combo page (#3167)
nmunnich Dec 24, 2025
a9e0bef
docs: Also remove the erroneous default value for (#3170)
nmunnich Dec 25, 2025
40e06f3
feat(shields): Add Studio support to boardsource3x4 (#3154)
snoyer Dec 28, 2025
340e35c
docs: Add redirect setup script informing users to switch to ZMK CLI …
nmunnich Dec 29, 2025
f002882
chore(deps-dev): bump typescript-eslint (#3178)
dependabot[bot] Dec 30, 2025
fee2404
docs: remove new shield clean room warning (#3180)
nmunnich Dec 30, 2025
76bf2e5
chore(deps): bump qs from 6.14.0 to 6.14.1 in /docs (#3183)
dependabot[bot] Jan 2, 2026
cb786cd
docs: Remove unneeded led strip config (#3186)
caksoylar Jan 2, 2026
36dbf46
fix(split): correct async UART RX buffer definition (#3193)
Solodros Jan 7, 2026
abce9de
fix(hid): initialize missing d_scroll_x field in mouse report (#3196)
Solodros Jan 7, 2026
43b09e0
chore(deps-dev): bump typescript-eslint (#3192)
dependabot[bot] Jan 7, 2026
f85ec7e
SoC: stm32c0 support (#3174)
petejohanson Jan 7, 2026
70ab6b2
fix(studio): avoid decoding buffer overflow (#3185)
cormoran Jan 7, 2026
1958217
chore: Add basic tests for Studio's layer manipulation (#3164)
nmunnich Jan 8, 2026
6cd927f
[CHERRY-PICK #2721] feat(pointing): Release pressed keys on disconnect
petejohanson Dec 18, 2024
6b0c4de
rgb_underglow: refresh more frequently for smoother RGB underglow
chrisandreae May 28, 2022
57e51f3
RGB underglow status support
donaldsycamore Jul 13, 2022
2876b2a
ext_power: add Kconfig for initial ext_power state
donaldsycamore Jan 21, 2023
3c2af96
Include the serial number in the Bluetooth device name
chrisandreae Feb 15, 2023
ae387c0
Add build environment using Nix
chrisandreae Sep 18, 2021
51b9f5a
Github build action: build Glove80 combined firmware using Nix
chrisandreae Sep 18, 2022
9dc9989
Docker container and lambda function for performing firmware builds
chrisandreae Oct 11, 2021
3ca0acb
Configure Glove80 board definitions for custom features
moergo-sc Sep 19, 2021
ff41019
Add build support for snippets and snippets for touchpad sensitivity
chrisandreae Oct 15, 2025
3d533f0
Add Go60 support to build infrastructure
chrisandreae Aug 2, 2025
a547ce5
Add Go60 board definition
chrisandreae Dec 9, 2024
226ae33
fixup! Move go60 board definition to boards/moergo
chrisandreae Jan 10, 2026
8c2633f
fixup! update nix manifest pin from west
chrisandreae Jan 10, 2026
3ffec36
Update go60 for zephyr 4.1
chrisandreae Jan 10, 2026
1e61f57
use in-tree cirque driver
chrisandreae Jan 11, 2026
f6e2c7e
fixup! fixup! update nix manifest pin from west
chrisandreae Jan 11, 2026
65acc5a
Delete board definition for Glove80 v0
chrisandreae Jan 11, 2026
0f473e1
provide correct keymap path in release.nix
chrisandreae Jan 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM docker.io/zmkfirmware/zmk-dev-arm:3.5
FROM docker.io/zmkfirmware/zmk-dev-arm:4.1-branch

COPY .bashrc tmp
RUN mv /tmp/.bashrc ~/.bashrc
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,4 @@
# Docker on Windows.
.bashrc text eol=lf
*.sh text eol=lf
*.nix text eol=lf
2 changes: 1 addition & 1 deletion .github/workflows/ble-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ jobs:
test: ${{ fromJSON(needs.collect-tests.outputs.test-dirs) }}
runs-on: ubuntu-latest
container:
image: docker.io/zmkfirmware/zmk-build-arm:3.5
image: docker.io/zmkfirmware/zmk-build-arm:4.1
steps:
- name: Checkout
uses: actions/checkout@v4
Expand Down
111 changes: 111 additions & 0 deletions .github/workflows/build-container.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
name: Build Compiler Service Container

on:
push:
tags:
- "*"
pull_request_target:
branches:
- main

jobs:
build:
# This job must never be run on a PR from outside the same repository
if: github.repository == 'moergo-sc/zmk' && (github.event.pull_request == null || github.event.pull_request.head.repo.full_name == github.repository)
runs-on: ubuntu-latest
# These permissions are needed to interact with GitHub's OIDC Token endpoint.
permissions:
id-token: write
contents: read
env:
ECR_REPOSITORY: zmk-builder-lambda
VERSIONS_BUCKET: glove80firmwarepipelines-compilerversionsbucket44-zubaquiyjdam
UPDATE_COMPILER_VERSIONS_FUNCTION: arn:aws:lambda:us-east-1:431227615537:function:Glove80FirmwarePipelineSt-UpdateCompilerVersions2A-CNxPOHb4VSuV
REVISION_TAG: ${{ github.event.pull_request && github.event.pull_request.head.sha || github.sha }}
PR_NUMBER: ${{ github.event.number }}
steps:
- uses: actions/checkout@v4
with:
repository: moergo-sc/zmk
ref: ${{ github.event.pull_request && github.event.pull_request.head.sha || github.sha }}
fetch-depth: 0
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v4
with:
role-to-assume: arn:aws:iam::431227615537:role/GithubCompilerLambdaBuilder
aws-region: us-east-1
- name: Extract container name from branch name
shell: bash
run: |
if [ "$GITHUB_HEAD_REF" ]; then
branch_ref="$GITHUB_HEAD_REF"
type="pr"
tag="pr${PR_NUMBER}.${GITHUB_HEAD_REF}"
elif [[ "$GITHUB_REF" == refs/tags/* ]]; then
branch_ref="$GITHUB_REF"
type="tag"
tag="${GITHUB_REF#refs/tags/}"
else
echo "Not a pull request or release tag" >&2
exit 1
fi
# Replace / with . in container tag names
tag="${tag//\//.}"
echo "VERSION_BRANCH=${branch_ref}" >> $GITHUB_ENV
echo "VERSION_TYPE=${type}" >> $GITHUB_ENV
echo "VERSION_NAME=${tag}" >> $GITHUB_ENV
id: extract_name
- name: Login to Amazon ECR
id: login-ecr
uses: aws-actions/amazon-ecr-login@v2
- uses: cachix/install-nix-action@v27
with:
nix_path: nixpkgs=channel:nixos-22.05
- uses: cachix/cachix-action@v15
with:
name: moergo-glove80-zmk-dev
authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}"
- name: Build lambda image
run: nix-build release.nix --arg revision "\"${REVISION_TAG}\"" --arg firmwareVersion "\"${VERSION_NAME}\"" -A lambdaImage -o lambdaImage
- name: Import OCI image into docker-daemon
env:
REGISTRY: ${{ steps.login-ecr.outputs.registry }}
run: nix shell -f nix/pinned-nixpkgs.nix skopeo -c skopeo --insecure-policy copy oci:lambdaImage docker-daemon:$REGISTRY/$ECR_REPOSITORY:$REVISION_TAG
- name: Push container image to Amazon ECR
env:
REGISTRY: ${{ steps.login-ecr.outputs.registry }}
run: docker push $REGISTRY/$ECR_REPOSITORY:$REVISION_TAG
- name: Create JSON metadata to represent the built container
env:
REGISTRY: ${{ steps.login-ecr.outputs.registry }}
shell: bash
run: |
digest="$(docker inspect --format='{{index .RepoDigests 0}}' $REGISTRY/$ECR_REPOSITORY:$REVISION_TAG)"
digest="${digest##*@}"
api_version="$(cat lambda/api_version.txt)"
timestamp="$(date -u +"%Y%m%d.%H%M%S")"

if [ "$VERSION_TYPE" = "pr" ]; then
release_name="$VERSION_NAME+$timestamp"
else
release_name="$VERSION_NAME"
fi

jq -n '$ARGS.named' \
--arg name "$release_name" \
--arg version_name "$VERSION_NAME" \
--arg revision "$REVISION_TAG" \
--arg release_time "$timestamp" \
--arg branch "$VERSION_BRANCH" \
--arg digest "$digest" \
--arg api_version "$api_version" \
--argjson boards '["glove80", "go60"]' \
> "/tmp/$VERSION_NAME.json"
- name: Upload image metadata file to versions bucket
run: aws s3 cp "/tmp/$VERSION_NAME.json" "s3://$VERSIONS_BUCKET/images/$VERSION_NAME.json"
- name: Notify the build pipeline that the compile containers have updated
run: >-
aws lambda invoke --function-name $UPDATE_COMPILER_VERSIONS_FUNCTION
--invocation-type Event
--cli-binary-format raw-in-base64-out
/dev/null
26 changes: 24 additions & 2 deletions .github/workflows/build-user-config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,12 @@ jobs:
fail-fast: false
matrix: ${{ fromJson(needs.matrix.outputs.build_matrix) }}
steps:
- name: Act Workaround # https://github.com/nektos/act/issues/973
if: ${{ env.ACT }}
run: |
apt-get update && apt-get install -y curl unzip
curl -fsSL https://deb.nodesource.com/setup_22.x | bash && apt install -y nodejs

- name: Checkout
uses: actions/checkout@v4

Expand All @@ -57,7 +63,7 @@ jobs:
echo "build_dir=$(mktemp -d)" >> $GITHUB_ENV

- name: Prepare variables
shell: sh -x {0}
shell: bash -x {0}
env:
board: ${{ matrix.board }}
shield: ${{ matrix.shield }}
Expand All @@ -81,7 +87,7 @@ jobs:
echo "extra_west_args=${extra_west_args}" >> $GITHUB_ENV
echo "extra_cmake_args=${shield:+-DSHIELD=\"$shield\"}${zmk_load_arg}" >> $GITHUB_ENV
echo "display_name=${shield:+$shield - }${board}" >> $GITHUB_ENV
echo "artifact_name=${artifact_name:-${shield:+$shield-}${board}-zmk}" >> $GITHUB_ENV
echo "artifact_name=${artifact_name:-${shield:+$shield-}${board//\//_}-zmk}" >> $GITHUB_ENV

- name: Copy config files to isolated temporary directory
run: |
Expand Down Expand Up @@ -116,6 +122,13 @@ jobs:
working-directory: ${{ env.base_dir }}
run: west update --fetch-opt=--filter=tree:0

- name: Check ZMK revision
working-directory: ${{ env.base_dir }}
run: |
zmk_revision=$(west list -f "{revision}" zmk)
echo "zmk_revision=${zmk_revision}" >> $GITHUB_ENV
echo "ZMK revision: ${zmk_revision}"

- name: West Zephyr export
working-directory: ${{ env.base_dir }}
run: west zephyr-export
Expand All @@ -125,6 +138,15 @@ jobs:
shell: sh -x {0}
run: west build -s zmk/app -d "${{ env.build_dir }}" -b "${{ matrix.board }}" ${{ env.extra_west_args }} -- -DZMK_CONFIG=${{ env.base_dir }}/${{ inputs.config_path }} ${{ env.extra_cmake_args }} ${{ matrix.cmake-args }}

- name: Warn about building from main if build fails
if: failure() && env.zmk_revision == 'main'
run: |
echo "# Consider Pinning ZMK" >> $GITHUB_STEP_SUMMARY
echo "Your recent build failure might be the result of breaking changes made to ZMK's main branch." >> $GITHUB_STEP_SUMMARY
echo "Consider [pinning your ZMK version](https://zmk.dev/blog/2025/06/20/pinned-zmk) to a release for increased stability." >> $GITHUB_STEP_SUMMARY
echo "See also the [list of released versions](https://github.com/zmkfirmware/zmk/releases)." >> $GITHUB_STEP_SUMMARY
echo "If you wish to stay on main, check the most recent pending release PR for breaking changes. [Our blog](https://zmk.dev/blog) may have upgrade information if breaking changes are significant." >> $GITHUB_STEP_SUMMARY

- name: ${{ env.display_name }} Kconfig file
run: |
if [ -f "${{ env.build_dir }}/zephyr/.config" ]
Expand Down
17 changes: 9 additions & 8 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,10 @@ permissions: {}

jobs:
build:
if: ${{ always() }}
if: ${{ false }}
runs-on: ubuntu-latest
container:
image: docker.io/zmkfirmware/zmk-build-arm:3.5
image: docker.io/zmkfirmware/zmk-build-arm:4.1
needs: compile-matrix
strategy:
matrix:
Expand Down Expand Up @@ -123,7 +123,7 @@ jobs:
}

const cmakeName = shieldArgs['cmake-args'] ? '-' + (shieldArgs.nickname || shieldArgs['cmake-args'].split(' ').join('')) : '';
const artifactName = `${{ matrix.board }}${shieldArgs.shield ? '-' + shieldArgs.shield : ''}${cmakeName}-zmk`;
const artifactName = `${{ matrix.board }}${shieldArgs.shield ? '-' + shieldArgs.shield : ''}${cmakeName}-zmk`.replaceAll('/', '_');

await artifact.uploadArtifact(artifactName, files, rootDirectory, options);
} catch (e) {
Expand All @@ -139,7 +139,7 @@ jobs:
throw new Error('Failed to build one or more configurations');
}
compile-matrix:
if: ${{ !cancelled() }}
if: ${{ false && !cancelled() }}
runs-on: ubuntu-latest
needs: [core-coverage, board-changes, nightly]
outputs:
Expand Down Expand Up @@ -180,7 +180,7 @@ jobs:
shieldArgs: JSON.stringify(shieldArgs),
}));
core-coverage:
if: ${{ needs.get-changed-files.outputs.core-changes == 'true' }}
if: ${{ false && needs.get-changed-files.outputs.core-changes == 'true' }}
runs-on: ubuntu-latest
needs: get-changed-files
outputs:
Expand Down Expand Up @@ -211,7 +211,7 @@ jobs:

return [...include, ...coreCoverage.include];
board-changes:
if: ${{ needs.get-changed-files.outputs.board-changes == 'true' }}
if: ${{ false && needs.get-changed-files.outputs.board-changes == 'true' }}
runs-on: ubuntu-latest
needs: [get-grouped-hardware, get-changed-files]
outputs:
Expand Down Expand Up @@ -295,7 +295,7 @@ jobs:
});
}))).flat();
nightly:
if: ${{ github.event_name == 'schedule' && github.repository_owner == 'zmkfirmware' }}
if: ${{ false && github.event_name == 'schedule' && github.repository_owner == 'zmkfirmware' }}
runs-on: ubuntu-latest
needs: get-grouped-hardware
outputs:
Expand Down Expand Up @@ -340,6 +340,7 @@ jobs:

return [...includeOnboard, ...includeInterconnect];
get-grouped-hardware:
if: ${{ false }}
runs-on: ubuntu-latest
outputs:
organized-metadata: ${{ steps.organize-metadata.outputs.result }}
Expand Down Expand Up @@ -419,7 +420,7 @@ jobs:
return JSON.stringify(grouped).replace(/\\/g,"\\\\").replace(/`/g,"\\`");
result-encoding: string
get-changed-files:
if: ${{ github.event_name != 'schedule' }}
if: ${{ false && github.event_name != 'schedule' }}
runs-on: ubuntu-latest
outputs:
changed-files: ${{ steps.changed-files.outputs.all_changed_files }}
Expand Down
43 changes: 43 additions & 0 deletions .github/workflows/cleanup-container.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: Clean up PR Compiler Service Container

on:
pull_request:
types: [closed]
branches:
- main

jobs:
build:
if: github.repository == 'moergo-sc/zmk'
runs-on: ubuntu-latest
# These permissions are needed to interact with GitHub's OIDC Token endpoint.
permissions:
id-token: write
contents: read
env:
ECR_REPOSITORY: zmk-builder-lambda
VERSIONS_BUCKET: glove80firmwarepipelines-compilerversionsbucket44-zubaquiyjdam
UPDATE_COMPILER_VERSIONS_FUNCTION: arn:aws:lambda:us-east-1:431227615537:function:Glove80FirmwarePipelineSt-UpdateCompilerVersions2A-CNxPOHb4VSuV
PR_NUMBER: ${{ github.event.number }}
steps:
- name: Extract image tag name
shell: bash
run: |
tag="pr${PR_NUMBER}.${GITHUB_HEAD_REF}"
# Replace / with . in container tag names
tag="${tag//\//.}"
echo "VERSION_NAME=${tag}" >> $GITHUB_ENV
id: extract_name
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v4
with:
role-to-assume: arn:aws:iam::431227615537:role/GithubCompilerLambdaBuilder
aws-region: us-east-1
- name: Delete the image metadata file from the versions s3 bucket
run: aws s3 rm s3://$VERSIONS_BUCKET/images/$VERSION_NAME.json
- name: Notify the build pipeline that the compile containers have updated
run: >-
aws lambda invoke --function-name $UPDATE_COMPILER_VERSIONS_FUNCTION
--invocation-type Event
--cli-binary-format raw-in-base64-out
/dev/null
2 changes: 1 addition & 1 deletion .github/workflows/hardware-metadata-validation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:
validate-metadata:
runs-on: ubuntu-latest
container:
image: docker.io/zmkfirmware/zmk-dev-arm:3.5
image: docker.io/zmkfirmware/zmk-dev-arm:4.1
steps:
- uses: actions/checkout@v4
- name: Install dependencies
Expand Down
71 changes: 71 additions & 0 deletions .github/workflows/nix-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
name: Build Firmware

on:
push:
paths:
- ".github/workflows/nix-build.yml"
- "default.nix"
- "app/**"
- "nix/**"
branches:
- "**"
tags:
- "**"
pull_request:
paths:
- ".github/workflows/nix-build.yml"
- "default.nix"
- "app/**"
- "nix/**"

jobs:
build:
name: Build Firmware
runs-on: ubuntu-latest
strategy:
matrix:
board:
- glove80
- go60
steps:
- uses: actions/checkout@v4
- uses: cachix/install-nix-action@v27
with:
nix_path: nixpkgs=channel:nixos-22.05
- uses: cachix/cachix-action@v15
with:
name: moergo-glove80-zmk-dev
authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}"
skipPush: "${{ github.repository != 'moergo-sc/zmk' }}"
- name: Build ${{ matrix.board }} combined firmware
run: nix-build -A ${{matrix.board}}_combined -o combined
- name: Copy result out of nix store
run: cp combined/${{matrix.board}}.uf2 ${{matrix.board}}.uf2
- name: Upload result
uses: actions/upload-artifact@v4
with:
name: ${{matrix.board}}.uf2
path: ${{matrix.board}}.uf2
release:
name: Create Release for Tag
if: >-
github.repository == 'moergo-sc/zmk'
&& github.event_name == 'push'
&& contains(github.ref, 'refs/tags/v')
needs: build
runs-on: ubuntu-latest
steps:
- name: Download Glove80 firmware artifact
uses: actions/download-artifact@v4
with:
name: glove80.uf2
- name: Download Go60 firmware artifact
uses: actions/download-artifact@v4
with:
name: go60.uf2
- name: Create Release for Tag
uses: ncipollo/release-action@v1
with:
artifacts: "glove80.uf2,go60.uf2"
artifactErrorsFailBuild: true
generateReleaseNotes: true
Loading