summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--Dockerfile10
-rw-r--r--README.md24
-rwxr-xr-xbin/build.sh27
-rw-r--r--firmware/.gitkeep0
-rwxr-xr-xrun.sh8
-rwxr-xr-xsetup.sh5
7 files changed, 75 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..205598e
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+/firmware/*.uf2
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..c31cfe7
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,10 @@
+FROM zmkfirmware/zmk-build-arm:2.4
+
+RUN mkdir -p /app/firmware
+
+WORKDIR /app
+
+COPY config config
+COPY bin/build.sh ./
+
+CMD ["./build.sh"]
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..16001e8
--- /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 0000000..869bc68
--- /dev/null
+++ b/bin/build.sh
@@ -0,0 +1,27 @@
+#!/usr/bin/env bash
+
+set -e
+
+PWD=$(pwd)
+TIMESTAMP=$(date -u +"%Y%m%d%H%M%S")
+
+# West Init
+west init -l config
+# West Update
+west update
+# West Zephyr export
+west zephyr-export
+# 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 0000000..e69de29
--- /dev/null
+++ b/firmware/.gitkeep
diff --git a/run.sh b/run.sh
new file mode 100755
index 0000000..4fc5cac
--- /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 0000000..96a478e
--- /dev/null
+++ b/setup.sh
@@ -0,0 +1,5 @@
+#!/usr/bin/env bash
+
+set -e
+
+docker build --tag zmk .