Files
ChameleonUltra/firmware/Dockerfile
Augusto Zanellato 4bdbb8d450 Rework CI pipeline
Changes made:
 - CI properly supports being ran on PRs and shouldn't fail anymore on
   the RRG repo;
 - The nonsense of unzipping archives during release creation isn't
   needed anymore because now there's an artifact that holds all the
   files (both zip and others) that should be included in a release;
 - Softdevice and Application verification were re-enabled (as per
   @doegox suggestion);
 - Softdevice is now bundled in `-firmware` artifact;
 - `dev` release tag is now updated ad every push to main;
 - On PRs a comment linking to artifact is now added by CI after
   success, artifact links are done with nightly.link so that they also
   fork for unauthenticated users;

There are some quirks:
 - on_pr runs on pull_request_target because it needs write access to
   packages, but pull_request_target implies that GITHUB_SHA is set to
   the base repo HEAD commit, so the whole `checkout-sha` thing is
   needed. This also implies that if one of the workflow files are
   changed in a PR the changed versions won't be ran against that same
   PR.
 - Client building per OS isn't yet implemented but all the necessary
   scaffolding is there. At the moment the per-OS clients are just a zip
   file containing all the client source.

Examples:
  - PR comment: https://github.com/augustozanellato/ChameleonUltra/pull/14#issuecomment-1688737709
  - `dev` release: https://github.com/augustozanellato/ChameleonUltra/releases/tag/dev
2023-08-22 20:58:01 +02:00

26 lines
1.1 KiB
Docker

FROM ubuntu:22.04
ARG ARM_TOOLCHAIN_VERSION=12.2.rel1
ARG NRF_CLT_URL=https://nsscprodmedia.blob.core.windows.net/prod/software-and-other-downloads/desktop-software/nrf-command-line-tools/sw/versions-10-x-x/10-22-1/nrf-command-line-tools_10.22.1_amd64.deb
RUN set -xe; \
DEBIAN_FRONTEND=noninteractive; \
apt update -q; \
apt install -qy --no-install-recommends ca-certificates curl xz-utils make git zip; \
git config --global --add safe.directory /workdir; \
curl -sLo /usr/bin/nrfutil https://developer.nordicsemi.com/.pc-tools/nrfutil/x64-linux/nrfutil; \
curl -sLo /tmp/nrf-clt.deb $NRF_CLT_URL; \
apt install -qfy /tmp/nrf-clt.deb; \
rm /tmp/nrf-clt.deb; \
chmod 755 /usr/bin/nrfutil; \
nrfutil install device nrf5sdk-tools; \
curl -sL https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu/$ARM_TOOLCHAIN_VERSION/binrel/arm-gnu-toolchain-$ARM_TOOLCHAIN_VERSION-x86_64-arm-none-eabi.tar.xz | tar xJ -C /usr/local; \
apt clean -q; \
rm -rf /var/lib/apt/lists/*
ENV GNU_INSTALL_ROOT=/usr/local/arm-gnu-toolchain-$ARM_TOOLCHAIN_VERSION-x86_64-arm-none-eabi/bin/
ENV GNU_VERSION=$ARM_TOOLCHAIN_VERSION
WORKDIR /workdir