diff options
Diffstat (limited to '.github')
| -rw-r--r-- | .github/actions/west/Dockerfile | 57 | ||||
| -rw-r--r-- | .github/actions/west/action.yml | 16 | ||||
| -rw-r--r-- | .github/workflows/build.yml | 39 | 
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' | 
