From d84ad915b774e20ad0c24e64f51c3f12aa044e12 Mon Sep 17 00:00:00 2001 From: Sergey Ladanov Date: Sat, 16 Sep 2023 23:25:10 +0300 Subject: [PATCH] add files --- Dockerfile | 78 ++++++++++++++++++++++++++++++++++++++++++++++ README.md | 20 ++++++++++++ action.yml | 24 ++++++++++++++ docker-compose.yml | 11 +++++++ entrypoint.sh | 16 ++++++++++ 5 files changed, 149 insertions(+) create mode 100644 Dockerfile create mode 100644 action.yml create mode 100644 docker-compose.yml create mode 100644 entrypoint.sh diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..768c857 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,78 @@ +FROM debian:stable-slim + +#ARG ARCH=amd64 +ARG NRF_CONNECT_TAG=v2.3.0 +# For new versions - xz +ARG ZEPHYR_ARCHIVE_EXTENSION=gz +# Should be for selected NRF_CONNECT_TAG +ENV ZEPHYR_TAG=0.15.2 + +RUN ARCH="$(dpkg --print-architecture)" && \ + case $ARCH in \ + "amd64") \ + ZEPHYR_ARCH="x86_64" \ + ;; \ + "arm64") \ + ZEPHYR_ARCH="aarch64" \ + ;; \ + esac && \ + apt-get update && \ + apt-get install \ + --no-install-recommends \ + git \ + cmake \ + ninja-build \ + gperf \ + ccache \ + dfu-util \ + device-tree-compiler \ + wget \ + python3-dev \ + python3-pip \ + python3-setuptools \ + python3-tk \ + python3-wheel \ + xz-utils \ + file \ + make \ + gcc \ + gcc-multilib \ + g++-multilib \ + libsdl2-dev \ + libmagic1 \ + unzip \ + build-essential \ + libgit2-dev \ + -y && \ + rm -rf /var/cache/apt && \ + pip3 install --upgrade pip --break-system-packages && \ + mkdir ${HOME}/gn && \ + cd ${HOME}/gn && \ + wget -O gn.zip https://chrome-infra-packages.appspot.com/dl/gn/gn/linux-$ARCH/+/latest &&\ + unzip gn.zip && \ + rm gn.zip && \ + echo 'export PATH=${HOME}/gn:"$PATH"' >> ${HOME}/.bashrc && \ + . ${HOME}/.bashrc && \ + pip3 install west --break-system-packages && \ + echo 'export PATH=~/.local/bin:"$PATH"' >> ~/.bashrc && \ + . ~/.bashrc && \ + west init -m https://github.com/nrfconnect/sdk-nrf --mr $NRF_CONNECT_TAG && \ + west update && \ + west zephyr-export && \ + pip3 install -r zephyr/scripts/requirements.txt --break-system-packages && \ + pip3 install -r nrf/scripts/requirements.txt --break-system-packages && \ + pip3 install -r bootloader/mcuboot/scripts/requirements.txt --break-system-packages && \ + cd ~ && \ + wget https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v${ZEPHYR_TAG}/zephyr-sdk-${ZEPHYR_TAG}_linux-${ZEPHYR_ARCH}.tar.${ZEPHYR_ARCHIVE_EXTENSION} && \ + (wget -O - https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v${ZEPHYR_TAG}/sha256.sum | shasum --check --ignore-missing) && \ + tar xvf zephyr-sdk-${ZEPHYR_TAG}_linux-$ZEPHYR_ARCH.tar.${ZEPHYR_ARCHIVE_EXTENSION} && \ + rm zephyr-sdk-${ZEPHYR_TAG}_linux-$ZEPHYR_ARCH.tar.${ZEPHYR_ARCHIVE_EXTENSION} && \ + apt-get remove python3-pip build-essential -y && \ + apt autoremove -y && \ + apt autoclean -y + +COPY ./entrypoint.sh /bin/ + +RUN chmod +x /bin/entrypoint.sh + +ENTRYPOINT [ "/bin/entrypoint.sh" ] diff --git a/README.md b/README.md index a1a33ec..b65bcfc 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,22 @@ # nrf-connect-sdk-ci Build NRF Connect SDK projects + +## Usage example: + +``` +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + + + - name: Build + uses: embedd-actions/nrf-connect-sdk-ci@v2.3.0 + with: + board: nrf52833dk_nrf52833 + build_dir: build + +``` diff --git a/action.yml b/action.yml new file mode 100644 index 0000000..27ae84f --- /dev/null +++ b/action.yml @@ -0,0 +1,24 @@ +name: 'NRF Connect SDK' +description: 'Building nrf connect sdk projects' +inputs: + board: # id of input + description: 'Board for build' + required: true + build_dir: + description: 'Building directory' + required: true + default: 'build' +runs: + using: 'docker' + image: 'Dockerfile' + args: + - west + - build + - --build-dir + - ${{ inputs.build_dir }} + - . + - --pristine + - --no-sysbuild + - --board + - ${{ inputs.board }} + diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..4d2a36b --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,11 @@ +version: '2' + +services: + nrf: + container_name: nrf + build: + context: . + dockerfile: Dockerfile + args: + - NRF_CONNECT_TAG=v2.4.2 + - ZEPHYR_TAG=0.16.1 diff --git a/entrypoint.sh b/entrypoint.sh new file mode 100644 index 0000000..689dcdb --- /dev/null +++ b/entrypoint.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +#echo 'export PATH=root/gn:"$PATH"' >> ${HOME}/.bashrc + +#. ${HOME}/.bashrc + +#echo 'export PATH=root/.local/bin:"$PATH"' >> ~/.bashrc + +#. ~/.bashrc + +. /root/gn/zephyr/zephyr-env.sh +/bin/bash /root/zephyr-sdk-${ZEPHYR_TAG}/setup.sh -t all +/bin/bash /root/zephyr-sdk-${ZEPHYR_TAG}/setup.sh -h +/bin/bash /root/zephyr-sdk-${ZEPHYR_TAG}/setup.sh -c + +$@