summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/actions/west/Dockerfile57
-rw-r--r--.github/actions/west/action.yml16
-rw-r--r--.github/workflows/build.yml39
3 files changed, 112 insertions, 0 deletions
diff --git a/.github/actions/west/Dockerfile b/.github/actions/west/Dockerfile
new file mode 100644
index 0000000..687ba1e
--- /dev/null
+++ b/.github/actions/west/Dockerfile
@@ -0,0 +1,57 @@
+FROM debian:stable-slim
+
+RUN apt-get -y update && \
+ apt-get -y upgrade && \
+ apt-get install --no-install-recommends -y \
+ wget \
+ ca-certificates \
+ autoconf \
+ automake \
+ build-essential \
+ ccache \
+ device-tree-compiler \
+ dfu-util \
+ file \
+ g++ \
+ gcc \
+ gcc-multilib \
+ git \
+ iproute2 \
+ libpcap-dev \
+ libtool \
+ make \
+ ninja-build \
+ python3-dev \
+ python3-pip \
+ python3-setuptools \
+ xz-utils && \
+ rm -rf /var/lib/apt/lists/*
+
+ARG ZSDK_VERSION=0.11.2
+RUN wget -q "https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v${ZSDK_VERSION}/zephyr-toolchain-arm-${ZSDK_VERSION}-setup.run" && \
+ sh "zephyr-toolchain-arm-${ZSDK_VERSION}-setup.run" --quiet -- -d /opt/toolchains/zephyr-sdk-${ZSDK_VERSION} && \
+ rm "zephyr-toolchain-arm-${ZSDK_VERSION}-setup.run"
+
+ARG CMAKE_VERSION=3.16.2
+RUN wget -q https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-Linux-x86_64.sh && \
+ chmod +x cmake-${CMAKE_VERSION}-Linux-x86_64.sh && \
+ ./cmake-${CMAKE_VERSION}-Linux-x86_64.sh --skip-license --prefix=/usr/local && \
+ rm -f ./cmake-${CMAKE_VERSION}-Linux-x86_64.sh
+
+ENV DEBIAN_FRONTEND noninteractive
+
+RUN wget -q https://raw.githubusercontent.com/zephyrproject-rtos/zephyr/master/scripts/requirements.txt && \
+ wget -q https://raw.githubusercontent.com/zephyrproject-rtos/zephyr/master/scripts/requirements-base.txt && \
+ wget -q https://raw.githubusercontent.com/zephyrproject-rtos/zephyr/master/scripts/requirements-build-test.txt && \
+ wget -q https://raw.githubusercontent.com/zephyrproject-rtos/zephyr/master/scripts/requirements-doc.txt && \
+ wget -q https://raw.githubusercontent.com/zephyrproject-rtos/zephyr/master/scripts/requirements-run-test.txt && \
+ wget -q https://raw.githubusercontent.com/zephyrproject-rtos/zephyr/master/scripts/requirements-extras.txt && \
+ pip3 install wheel && \
+ pip3 install -r requirements.txt && \
+ pip3 install west && \
+ pip3 install sh
+
+ENV ZEPHYR_TOOLCHAIN_VARIANT=zephyr
+ENV ZEPHYR_SDK_INSTALL_DIR=/opt/toolchains/zephyr-sdk-${ZSDK_VERSION}
+
+ENTRYPOINT ["west"]
diff --git a/.github/actions/west/action.yml b/.github/actions/west/action.yml
new file mode 100644
index 0000000..2498f74
--- /dev/null
+++ b/.github/actions/west/action.yml
@@ -0,0 +1,16 @@
+name: "Zephyr West"
+description: 'Action incorporating Zephyr dependencies and West build tool'
+inputs:
+ command: # id of input
+ description: 'Which west command to execute'
+ required: true
+ default: 'build'
+ command-args: # id of input
+ description: 'Extra arguments for the west command'
+ required: false
+runs:
+ using: 'docker'
+ image: 'Dockerfile'
+ args:
+ - ${{ inputs.command }}
+ - ${{ inputs.command-args }}
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
new file mode 100644
index 0000000..d7c9b97
--- /dev/null
+++ b/.github/workflows/build.yml
@@ -0,0 +1,39 @@
+on: [push]
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ name: Basic build of the ZMK firmware
+ steps:
+ # To use this repository's private action,
+ # you must check out the repository
+ - name: Checkout
+ uses: actions/checkout@v2
+ - name: West Init
+ uses: ./.github/actions/zephyr-west # Uses an action in the root directory
+ id: west-init
+ with:
+ command: 'init'
+ command-args: '-l .'
+ - name: West Update
+ uses: ./.github/actions/zephyr-west # Uses an action in the root directory
+ id: west-update
+ with:
+ command: 'update'
+ - name: West Config Zephyr Base
+ uses: ./.github/actions/zephyr-west # Uses an action in the root directory
+ id: west-config
+ with:
+ command: 'config'
+ command-args: '--global zephyr.base-prefer configfile'
+ - name: West Zephyr Export
+ uses: ./.github/actions/zephyr-west # Uses an action in the root directory
+ id: west-zephyr-export
+ with:
+ command: 'zephyr-export'
+ - name: West Build
+ uses: ./.github/actions/zephyr-west # Uses an action in the root directory
+ id: west-zephyr-export
+ with:
+ command: 'build'
+ command-args: '-b nucleo_wb55rg -- -DSHIELD=petejohanson_handwire'