Initial exploration of GH actions.

This commit is contained in:
Pete Johanson 2020-06-08 11:28:52 -04:00
parent c1cc46c3b2
commit 41115274e1
3 changed files with 112 additions and 0 deletions

57
.github/actions/west/Dockerfile vendored Normal file
View File

@ -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"]

16
.github/actions/west/action.yml vendored Normal file
View File

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

39
.github/workflows/build.yml vendored Normal file
View File

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