Building on arm64 MacOs resulted in the following error:
ERROR: failed to solve: process "/bin/sh -c mkdir /workdir/project && mkdir /workdir/.cache && apt-get -y update && apt-get -y upgrade && apt-get -y install wget python3-pip python3-venv ninja-build gperf git unzip libncurses5 libncurses5-dev libyaml-dev libfdt1 libusb-1.0-0-dev udev device-tree-compiler=1.5.1-1 ruby && apt-get -y clean && apt-get -y autoremove && python3 -m pip install -U pip && python3 -m pip install -U pipx && python3 -m pip install -U setuptools && python3 -m pip install 'cmake>=3.20.0' wheel && python3 -m pip install -U 'west==0.14.0' && python3 -m pip install pc_ble_driver_py && python3 -m pip install --ignore-installed -U PyYAML && case $arch in \"amd64\") PIPX_HOME=/opt/pipx PIPX_BIN_DIR=/usr/local/bin pipx install 'nrfutil>=6.0.0' ;; \"arm64\") PIPX_HOME=/opt/pipx PIPX_BIN_DIR=/usr/local/bin pipx install 'nrfutil<6.0.0' ;; esac && python3 -m pip install -U six && apt-get -y install clang-format-9 && ln -s /usr/bin/clang-format-9 /usr/bin/clang-format && wget -qO- https://raw.githubusercontent.com/nrfconnect/sdk-nrf/main/.clang-format > /workdir/.clang-format && echo \"Target architecture: $arch\" && case $arch in \"amd64\") NCLT_URL=\"https://www.nordicsemi.com/-/media/Software-and-other-downloads/Desktop-software/nRF-command-line-tools/sw/Versions-10-x-x/10-17-3/nrf-command-line-tools-10.17.3_Linux-amd64.tar.gz\" ;; \"arm64\") NCLT_URL=\"https://www.nordicsemi.com/-/media/Software-and-other-downloads/Desktop-software/nRF-command-line-tools/sw/Versions-10-x-x/10-17-3/nrf-command-line-tools-10.17.3_Linux-arm64.tar.gz\" ;; esac && if [ ! -z \"$NCLT_URL\" ]; then mkdir tmp && cd tmp && wget -qO - \"${NCLT_URL}\" | tar --no-same-owner -xz && DEBIAN_FRONTEND=noninteractive apt-get -y install ./*.deb && cp -r ./nrf-command-line-tools /opt && ln -s /opt/nrf-command-line-tools/bin/nrfjprog /usr/local/bin/nrfjprog && ln -s /opt/nrf-command-line-tools/bin/mergehex /usr/local/bin/mergehex && cd .. && rm -rf tmp ; else echo \"Skipping nRF Command Line Tools (not available for $arch)\" ; fi && echo \"Target architecture: $arch\" && case $arch in \"amd64\") ZEPHYR_TOOLCHAIN_URL=\"https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.15.1/zephyr-sdk-0.15.1_linux-x86_64.tar.gz\" ;; \"arm64\") ZEPHYR_TOOLCHAIN_URL=\"https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.15.1/zephyr-sdk-0.15.1_macos-aarch64.tar.gz\" ;; *) echo \"Unsupported target architecture: \\\"$arch\\\"\" >&2 && exit 1 ;; esac && wget -qO - \"${ZEPHYR_TOOLCHAIN_URL}\" | tar xz && mv /workdir/zephyr-sdk-0.15.1 /workdir/zephyr-sdk && cd /workdir/zephyr-sdk && yes | ./setup.sh" did not complete successfully: exit code: 30
The repo states "The prebuilt images are not available for
arm64
architecture (Apple M1), because GitHub Actions don't have hosted runners with Apple M1 yet." Github Actions released support for M1 MacOS runners in Oct 2023. Github actions released support for arm64 runners in Oct 2023 as well.
nrfutil is a prerequisite for the nrf sdk. It is only built for x86 platforms.
Docker helps to standardize builds across Mac, Windows and GNU+Linux environments, reducing build differences between different operating systems.