This is an automated email from the ASF dual-hosted git repository.

xiaoxiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git


The following commit(s) were added to refs/heads/master by this push:
     new 0f005b7b8cd tools/ci: Include fetching pico-sdk in the CI environment 
setup
0f005b7b8cd is described below

commit 0f005b7b8cdb8422cc36b322cb22efdce2e5688f
Author: Niccolò Maggioni <nicco.maggi...@gmail.com>
AuthorDate: Sun Aug 17 16:47:26 2025 +0200

    tools/ci: Include fetching pico-sdk in the CI environment setup
    
    The Raspberry Pi pico-sdk was not available in the CI build process,
    so the test builds for the rp2040 and rp2350 uCs could not execute the
    last packaging stage. The SDK is now fetched and included, both at
    runtime and in the Docker image.
    
    Signed-off-by: Niccolò Maggioni <nicco.maggioni+nu...@gmail.com>
---
 tools/ci/docker/linux/Dockerfile | 14 ++++++++++++++
 tools/ci/platforms/linux.sh      | 23 ++++++++++++++++++++++-
 tools/ci/platforms/ubuntu.sh     | 23 ++++++++++++++++++++++-
 3 files changed, 58 insertions(+), 2 deletions(-)

diff --git a/tools/ci/docker/linux/Dockerfile b/tools/ci/docker/linux/Dockerfile
index 5348f67d7c4..71d0936f727 100644
--- a/tools/ci/docker/linux/Dockerfile
+++ b/tools/ci/docker/linux/Dockerfile
@@ -293,6 +293,15 @@ RUN mkdir -p wamrc && \
   curl -s -L  
"https://github.com/bytecodealliance/wasm-micro-runtime/releases/download/WAMR-1.1.2/wamrc-1.1.2-x86_64-ubuntu-20.04.tar.gz";
 \
   | tar -C wamrc -xz
 
+###############################################################################
+# Build image for tool required by Raspberry Pi pico-sdk builds
+###############################################################################
+FROM nuttx-toolchain-base AS nuttx-toolchain-raspberrypi-pico-sdk
+# Download the latest pico-sdk source archive
+RUN mkdir -p pico-sdk && \
+  curl -s -L 
"https://github.com/raspberrypi/pico-sdk/releases/download/2.2.0/pico-sdk-2.2.0.tar.gz";
 \
+  | tar -C pico-sdk --strip-components 1 -xz
+
 ###############################################################################
 # Final Docker image used for running CI system.  This includes all toolchains
 # supported by the CI system.
@@ -478,6 +487,11 @@ COPY --from=nuttx-toolchain-esp32 /tools/blobs/* 
/tools/blobs/esp-bins/
 COPY --from=nuttx-toolchain-wasm /tools/wasi-sdk/ wasi-sdk/
 ENV WASI_SDK_PATH="/tools/wasi-sdk"
 ENV PATH="/tools/wamr:$PATH"
+COPY --from=nuttx-toolchain-esp32 /tools/blobs/* /tools/blobs/esp-bins/
+
+# Raspberry Pi pico-sdk source
+COPY --from=nuttx-toolchain-raspberrypi-pico-sdk /tools/pico-sdk/ pico-sdk/
+ENV PICO_SDK_PATH="/tools/pico-sdk"
 
 # gn tool
 RUN mkdir -p /tools/gn
diff --git a/tools/ci/platforms/linux.sh b/tools/ci/platforms/linux.sh
index e5cdf0c7c9d..a56ae81542e 100755
--- a/tools/ci/platforms/linux.sh
+++ b/tools/ci/platforms/linux.sh
@@ -299,6 +299,27 @@ wasi_sdk() {
   command wamrc --version
 }
 
+raspberrypi_pico_sdk() {
+  if [ ! -f "${NUTTXTOOLS}/pico-sdk" ]; then
+    local release
+    local basefile
+    release="2.2.0"
+    basefile="pico-sdk-${release}"
+    cd "${NUTTXTOOLS}"
+    mkdir -p pico-sdk
+
+    # Download the latest pico-sdk source archive
+    curl -O -L -s 
https://github.com/raspberrypi/pico-sdk/releases/download/${release}/${basefile}.tar.gz
+    tar xzf "${basefile}.tar.gz"
+    mv "${basefile}" pico-sdk
+    rm "${basefile}.tar.gz"
+
+  fi
+
+  export PICO_SDK_PATH="${NUTTXTOOLS}/pico-sdk"
+  echo "export PICO_SDK_PATH=${NUTTXTOOLS}/pico-sdk" >> "${NUTTXTOOLS}"/env.sh
+}
+
 setup_links() {
   # Configure ccache
   mkdir -p "${NUTTXTOOLS}"/ccache/bin/
@@ -334,7 +355,7 @@ install_build_tools() {
   mkdir -p "${NUTTXTOOLS}"
   echo "#!/usr/bin/env sh" > "${NUTTXTOOLS}"/env.sh
 
-  install="arm_clang_toolchain arm_gcc_toolchain arm64_gcc_toolchain bloaty 
kconfig_frontends mips_gcc_toolchain python_tools riscv_gcc_toolchain 
rx_gcc_toolchain sparc_gcc_toolchain xtensa_esp_gcc_toolchain util_linux 
wasi_sdk"
+  install="arm_clang_toolchain arm_gcc_toolchain arm64_gcc_toolchain bloaty 
kconfig_frontends mips_gcc_toolchain python_tools riscv_gcc_toolchain 
rx_gcc_toolchain sparc_gcc_toolchain xtensa_esp_gcc_toolchain util_linux 
wasi_sdk raspberrypi_pico_sdk"
 
   oldpath=$(cd . && pwd -P)
   for func in ${install}; do
diff --git a/tools/ci/platforms/ubuntu.sh b/tools/ci/platforms/ubuntu.sh
index 3d03a4ca07c..25f60825fb6 100755
--- a/tools/ci/platforms/ubuntu.sh
+++ b/tools/ci/platforms/ubuntu.sh
@@ -379,6 +379,27 @@ wasi_sdk() {
   command wamrc --version
 }
 
+raspberrypi_pico_sdk() {
+  if [ ! -f "${NUTTXTOOLS}/pico-sdk" ]; then
+    local release
+    local basefile
+    release="2.2.0"
+    basefile="pico-sdk-${release}"
+    cd "${NUTTXTOOLS}"
+    mkdir -p pico-sdk
+
+    # Download the latest pico-sdk source archive
+    curl -O -L -s 
https://github.com/raspberrypi/pico-sdk/releases/download/${release}/${basefile}.tar.gz
+    tar xzf "${basefile}.tar.gz"
+    mv "${basefile}" pico-sdk
+    rm "${basefile}.tar.gz"
+
+  fi
+
+  export PICO_SDK_PATH="${NUTTXTOOLS}/pico-sdk"
+  echo "export PICO_SDK_PATH=${NUTTXTOOLS}/pico-sdk" >> "${NUTTXTOOLS}"/env.sh
+}
+
 setup_links() {
   # Configure ccache
   mkdir -p "${NUTTXTOOLS}"/ccache/bin/
@@ -414,7 +435,7 @@ install_build_tools() {
   mkdir -p "${NUTTXTOOLS}"
   echo "#!/usr/bin/env sh" > "${NUTTXTOOLS}"/env.sh
 
-  install="arm_clang_toolchain arm_gcc_toolchain arm64_gcc_toolchain 
avr_gcc_toolchain binutils bloaty clang_tidy gen_romfs gperf kconfig_frontends 
mips_gcc_toolchain python_tools riscv_gcc_toolchain rust dlang rx_gcc_toolchain 
sparc_gcc_toolchain xtensa_esp_gcc_toolchain u_boot_tools util_linux wasi_sdk 
c_cache"
+  install="arm_clang_toolchain arm_gcc_toolchain arm64_gcc_toolchain 
avr_gcc_toolchain binutils bloaty clang_tidy gen_romfs gperf kconfig_frontends 
mips_gcc_toolchain python_tools riscv_gcc_toolchain rust dlang rx_gcc_toolchain 
sparc_gcc_toolchain xtensa_esp_gcc_toolchain u_boot_tools util_linux wasi_sdk 
c_cache raspberrypi_pico_sdk"
 
   oldpath=$(cd . && pwd -P)
   for func in ${install}; do

Reply via email to