diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000..205598eb10 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/firmware/*.uf2 diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000000..dd98a29ef2 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,19 @@ +FROM zmkfirmware/zmk-build-arm:2.4 + +RUN mkdir -p /app/firmware + +WORKDIR /app + +COPY config/west.yml config/west.yml + +# West Init +RUN west init -l config +# West Update +RUN west update +# West Zephyr export +RUN west zephyr-export + +COPY config config +COPY bin/build.sh ./ + +CMD ["./build.sh"] diff --git a/README.md b/README.md new file mode 100644 index 0000000000..16001e895c --- /dev/null +++ b/README.md @@ -0,0 +1,24 @@ +# ADV360-PRO-ZMK + +## To build Firmware in GitHub Actions + +### Setup + +1. Fork this repo. +2. Enable GitHub Actions on your fork. + +### Build firmware + +1. Push a commit to trigger the build. +2. Download the artifact. + +## To build Firmware locally using Docker + +### Setup + +1. Execute `setup.sh`. + +### Build firmware + +1. Execute `run.sh` +2. Check the `firmware` directory for the latest firmware build. diff --git a/bin/build.sh b/bin/build.sh new file mode 100755 index 0000000000..0e3eb10474 --- /dev/null +++ b/bin/build.sh @@ -0,0 +1,21 @@ +#!/usr/bin/env bash + +set -e + +PWD=$(pwd) +TIMESTAMP=$(date -u +"%Y%m%d%H%M%S") + +# West Build (left) +west build -s zmk/app -d build/left -b adv360_left -- -DZMK_CONFIG="${PWD}/config" +# Adv360 Left DTS File +cat -n build/left/zephyr/adv360_left.dts.pre.tmp +# Adv360 Left Kconfig file +cat build/left/zephyr/.config | grep -v "^#" | grep -v "^$" +# West Build (right) +west build -s zmk/app -d build/right -b adv360_right -- -DZMK_CONFIG="${PWD}/config" +# Adv360 Right DTS File +cat -n build/right/zephyr/adv360_right.dts.pre.tmp +# Adv360 Right Kconfig file +cat build/right/zephyr/.config | grep -v "^#" | grep -v "^$" +# Rename zmk.uf2 +cp build/left/zephyr/zmk.uf2 ./firmware/${TIMESTAMP}-left.uf2 && cp build/right/zephyr/zmk.uf2 ./firmware/${TIMESTAMP}-right.uf2 diff --git a/firmware/.gitkeep b/firmware/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/run.sh b/run.sh new file mode 100755 index 0000000000..4fc5cacccd --- /dev/null +++ b/run.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +set -e + +docker run -it --name zmk zmk +docker cp zmk:/app/firmware/ ./ +docker stop zmk +docker rm zmk diff --git a/setup.sh b/setup.sh new file mode 100755 index 0000000000..96a478e774 --- /dev/null +++ b/setup.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash + +set -e + +docker build --tag zmk .