From 98c814451b5ed4ab29f05cb1afe9fc3a75d20ea6 Mon Sep 17 00:00:00 2001 From: Sarthak Shaha Date: Fri, 14 Nov 2025 09:15:04 -0500 Subject: [PATCH 01/15] tools docker --- .github/workflows/docker-publish.yml | 52 +++++++------ docker/build.sh | 59 ++------------- docker/{ => sdks}/Dockerfile | 0 docker/sdks/build.sh | 55 ++++++++++++++ docker/{ => sdks}/requirements.txt | 0 docker/tools/Dockerfile | 106 +++++++++++++++++++++++++++ docker/tools/build.sh | 55 ++++++++++++++ docker/tools/requirements.txt | 9 +++ 8 files changed, 261 insertions(+), 75 deletions(-) rename docker/{ => sdks}/Dockerfile (100%) create mode 100644 docker/sdks/build.sh rename docker/{ => sdks}/requirements.txt (100%) create mode 100644 docker/tools/Dockerfile create mode 100644 docker/tools/build.sh create mode 100644 docker/tools/requirements.txt diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 076a663..ba9f356 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -3,15 +3,21 @@ name: Publish Docker on: push: paths: - - '.github/workflows/docker-publish.yml' - - 'docker/*' + - ".github/workflows/docker-publish.yml" + - "docker/*" workflow_dispatch: inputs: - push_images: - required: false - type: boolean - default: false + push_images: + required: false + description: "Push the images" + type: boolean + default: false + tools: + required: false + description: "Build the tools image" + type: boolean + default: false jobs: publish-matter-extension-dependencies-image: @@ -23,11 +29,11 @@ jobs: id-token: write steps: # Checkout repository - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 # Login to GitHub Container Registry - name: Login to GitHub Container Registry - uses: docker/login-action@v3 + uses: docker/login-action@v5 with: registry: ghcr.io username: ${{ github.actor }} @@ -36,18 +42,22 @@ jobs: # Set version variable for tagging the image by reading from docker/version file - name: Read and print version from docker/version file run: | - SISDK_Tag=$(grep '^SISDK_Tag=' docker/version | cut -d'=' -f2) - WiFI_SDK_Tag=$(grep '^WiFI_SDK_Tag=' docker/version | cut -d'=' -f2) - VERSION="SiSDK${SISDK_Tag}_WiFi_SDK${WiFI_SDK_Tag}" - echo "VERSION=$VERSION" >> $GITHUB_ENV - echo "Parsed VERSION: $VERSION" - - # Call docker/build.sh and pass version as an argument + if [[ "${{ github.event.inputs.tools }}" == "false" ]]; then + SISDK_Tag=$(grep '^SISDK_Tag=' docker/version | cut -d'=' -f2) + WiFI_SDK_Tag=$(grep '^WiFI_SDK_Tag=' docker/version | cut -d'=' -f2) + VERSION="SiSDK${SISDK_Tag}_WiFi_SDK${WiFI_SDK_Tag}" + echo "VERSION=$VERSION" >> $GITHUB_ENV + echo "Parsed VERSION: $VERSION" + fi + + # Call docker/sdks/build.sh and pass version as an argument - name: Build and push Docker image + if: ${{ github.event.inputs.tools == "false" }} + run: | + chmod +x docker/sdks/build.sh + ./docker/sdks/build.sh --tag "$VERSION" --push + - name: Build and push tools Docker image + if: ${{ github.event.inputs.tools == "true" }} run: | - chmod +x docker/build.sh - if [[ "${{ github.event.inputs.push_images }}" == "true" ]]; then - ./docker/build.sh --tag "$VERSION" --push - else - ./docker/build.sh --tag "$VERSION" - fi \ No newline at end of file + chmod +x docker/tools/build.sh + ./docker/tools/build.sh --tag "25Q4-Tools" --push diff --git a/docker/build.sh b/docker/build.sh index 2c1939a..803f61f 100644 --- a/docker/build.sh +++ b/docker/build.sh @@ -1,55 +1,6 @@ -#!/usr/bin/env bash - -set -e - -# Usage: ./build.sh --tag [--push] -PUSH_IMAGE=false -while [[ $# -gt 0 ]]; do - case "$1" in - --tag) - TAG="$2" - shift 2 - ;; - --push) - PUSH_IMAGE=true - shift - ;; - *) - echo "Usage: $0 --tag [--push]" - exit 1 - ;; - esac -done - -if [[ -z "$TAG" ]]; then - echo "ERROR: --tag argument required. Usage: $0 --tag [--push]" - exit 1 -fi - -# Example TAG: SiSDKv2024.12.1-0.de_WiFi_SDKv3.4.1 -# Extract SISDK_Tag and WiFI_SDK_Tag from TAG -SISDK_Tag=$(echo "$TAG" | sed -n 's/^SiSDK\([^_]*\)_WiFi_SDK.*$/\1/p') -WiFI_SDK_Tag=$(echo "$TAG" | sed -n 's/^SiSDK[^_]*_WiFi_SDK\(.*\)$/\1/p') - -if [[ -z "$SISDK_Tag" || -z "$WiFI_SDK_Tag" ]]; then - echo "ERROR: Could not parse SISDK_Tag or WiFI_SDK_Tag from version tag: $TAG" - exit 1 -fi - -echo "Parsed SISDK_Tag: $SISDK_Tag" -echo "Parsed WiFI_SDK_Tag: $WiFI_SDK_Tag" - -# Compose image tag -IMAGE_NAME="ghcr.io/siliconlabssoftware/matter_extension_dependencies" - -# Build the Docker image, passing build args -docker build \ - --build-arg SISDK_Tag="$SISDK_Tag" \ - --build-arg WiFI_SDK_Tag="$WiFI_SDK_Tag" \ - -f docker/Dockerfile \ - -t "${IMAGE_NAME}:${TAG}" . - -# Push the image only if --push was provided -if [[ "$PUSH_IMAGE" == "true" ]]; then - docker push "${IMAGE_NAME}:${TAG}" +# Call docker/sdks/build.sh and pass version as an argument +if [[ "${{ github.event.inputs.tools }}" == "false" ]]; then + ./docker/sdks/build.sh --tag "$VERSION" +else + ./docker/tools/build.sh --tag "$VERSION" fi \ No newline at end of file diff --git a/docker/Dockerfile b/docker/sdks/Dockerfile similarity index 100% rename from docker/Dockerfile rename to docker/sdks/Dockerfile diff --git a/docker/sdks/build.sh b/docker/sdks/build.sh new file mode 100644 index 0000000..2c1939a --- /dev/null +++ b/docker/sdks/build.sh @@ -0,0 +1,55 @@ +#!/usr/bin/env bash + +set -e + +# Usage: ./build.sh --tag [--push] +PUSH_IMAGE=false +while [[ $# -gt 0 ]]; do + case "$1" in + --tag) + TAG="$2" + shift 2 + ;; + --push) + PUSH_IMAGE=true + shift + ;; + *) + echo "Usage: $0 --tag [--push]" + exit 1 + ;; + esac +done + +if [[ -z "$TAG" ]]; then + echo "ERROR: --tag argument required. Usage: $0 --tag [--push]" + exit 1 +fi + +# Example TAG: SiSDKv2024.12.1-0.de_WiFi_SDKv3.4.1 +# Extract SISDK_Tag and WiFI_SDK_Tag from TAG +SISDK_Tag=$(echo "$TAG" | sed -n 's/^SiSDK\([^_]*\)_WiFi_SDK.*$/\1/p') +WiFI_SDK_Tag=$(echo "$TAG" | sed -n 's/^SiSDK[^_]*_WiFi_SDK\(.*\)$/\1/p') + +if [[ -z "$SISDK_Tag" || -z "$WiFI_SDK_Tag" ]]; then + echo "ERROR: Could not parse SISDK_Tag or WiFI_SDK_Tag from version tag: $TAG" + exit 1 +fi + +echo "Parsed SISDK_Tag: $SISDK_Tag" +echo "Parsed WiFI_SDK_Tag: $WiFI_SDK_Tag" + +# Compose image tag +IMAGE_NAME="ghcr.io/siliconlabssoftware/matter_extension_dependencies" + +# Build the Docker image, passing build args +docker build \ + --build-arg SISDK_Tag="$SISDK_Tag" \ + --build-arg WiFI_SDK_Tag="$WiFI_SDK_Tag" \ + -f docker/Dockerfile \ + -t "${IMAGE_NAME}:${TAG}" . + +# Push the image only if --push was provided +if [[ "$PUSH_IMAGE" == "true" ]]; then + docker push "${IMAGE_NAME}:${TAG}" +fi \ No newline at end of file diff --git a/docker/requirements.txt b/docker/sdks/requirements.txt similarity index 100% rename from docker/requirements.txt rename to docker/sdks/requirements.txt diff --git a/docker/tools/Dockerfile b/docker/tools/Dockerfile new file mode 100644 index 0000000..b83b9d6 --- /dev/null +++ b/docker/tools/Dockerfile @@ -0,0 +1,106 @@ +# Set build argument for base image version +ARG VERSION=latest + +# Stage 1: Build dependencies and download SDKs/tools +FROM ghcr.io/project-chip/chip-build:${VERSION} AS build +LABEL org.opencontainers.image.source https://github.com/project-chip/connectedhomeip + +# Install required packages for cloning and extracting SDKs +RUN set -x \ + && apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -fy --no-install-recommends \ + git \ + git-lfs \ + zip \ + tar \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/ \ + && : # last line + +# Set UTF-8 locale to ensure unzip handles non-ASCII filenames correctly +# util/third_party/ot-br-posix/third_party/cpp-httplib/repo/test/www/#U65e5#U672c#U8a9eDir/#U65e5#U672c#U8a9eFile.txt +ENV LANG=C.UTF-8 + +# - name: Setup SLT +# id: setup-action +# uses: SiliconLabsSoftware/action-setup-slt@main +#Setup SLT +RUN set -x \ + && curl https://www.silabs.com/documents/public/software/slt-cli-1.0.0-linux-x64.zip --output /tmp/slt-cli-1.0.0-linux-x64.zip \ + && unzip /tmp/slt-cli-1.0.0-linux-x64.zip -d /tmp/slt-cli \ + && rm /tmp/slt-cli-1.0.0-linux-x64.zip \ + && chmod +x /tmp/slt-cli/slt \ + && : # last line + +ENV PATH="${PATH}:/tmp/slt-cli" +ENV SLT_CI=true + +RUN set -x \ + && echo "slt-version=$(slt --version)" \ + && echo "slt-path=$(which slt)" \ + && : # last line + + +RUN set -x \ + && slt install foo --engine conan || true \ + && CONAN_ENGINE_PATH="$HOME/.silabs/slt/engines/conan/conan_engine" \ + && CONAN_PATH="$HOME/.silabs/slt/engines/conan/conan/conan" \ + && INSTALL_PATH="$HOME/.local/bin" \ + && if [ -f "$CONAN_ENGINE_PATH" ]; then \ + ln -s "$CONAN_ENGINE_PATH" "$INSTALL_PATH/conan_engine" \ + else \ + echo "Error: conan_engine not found at $CONAN_ENGINE_PATH" \ + exit 1 \ + fi \ + && echo "conan-engine-version=$(conan_engine --version)" \ + && echo "conan-engine-path=$(which conan_engine)" \ + && if [ -f "$CONAN_PATH" ]; then \ + ln -s "$CONAN_PATH" "$INSTALL_PATH/conan" \ + else \ + echo "Error: conan not found at $CONAN_PATH" \ + fi \ + && echo "conan-version=$(conan --version)" \ + && echo "conan-path=$(which conan)" \ + && echo "CONAN_HOME=$HOME/.silabs/slt/installs/conan" \ + && : # last line + +ENV CONAN_HOME=$HOME/.silabs/slt/installs/conan + +RUN set -x \ + && slt install slc-cli \ + && SLC_CLI_PATH=$(slt where slc-cli) \ + && echo "SLC_CLI_PATH=$SLC_CLI_PATH" \ + && JAVA_HOME=$(slt where java21) \ + && echo "JAVA_HOME=$JAVA_HOME" \ + && echo "$SLC_CLI_PATH" >> $GITHUB_PATH \ + && if [ -n "$JAVA_HOME" ]; then \ + echo "$JAVA_HOME/jre/bin" >> $GITHUB_PATH \ + fi \ + && : # last line + +ENV SLC_CLI_PATH=$(slt where slc-cli) +ENV JAVA_HOME=$(slt where java21) +ENV PATH="${PATH}:${SLC_CLI_PATH}" +ENV PATH="${PATH}:${JAVA_HOME}/jre/bin" + + +RUN set -x \ + && slt install commander \ + && COMMANDER_PATH=$(slt where commander) \ + && echo "COMMANDER_PATH=$COMMANDER_PATH" \ + && echo "$COMMANDER_PATH" >> $GITHUB_PATH \ + && : # last line + +ENV COMMANDER_PATH=$(slt where commander) +ENV PATH="${PATH}:${COMMANDER_PATH}" + + +RUN set -x \ + && slt install gcc-arm-none-eabi \ + && ARM_GCC_DIR=$(slt where gcc-arm-none-eabi) \ + && echo "ARM_GCC_DIR=$ARM_GCC_DIR" \ + && echo "$ARM_GCC_DIR/bin" >> $GITHUB_PATH \ + && : # last line + +ENV ARM_GCC_DIR=$(slt where gcc-arm-none-eabi) +ENV PATH="${PATH}:${ARM_GCC_DIR}/bin" diff --git a/docker/tools/build.sh b/docker/tools/build.sh new file mode 100644 index 0000000..2c1939a --- /dev/null +++ b/docker/tools/build.sh @@ -0,0 +1,55 @@ +#!/usr/bin/env bash + +set -e + +# Usage: ./build.sh --tag [--push] +PUSH_IMAGE=false +while [[ $# -gt 0 ]]; do + case "$1" in + --tag) + TAG="$2" + shift 2 + ;; + --push) + PUSH_IMAGE=true + shift + ;; + *) + echo "Usage: $0 --tag [--push]" + exit 1 + ;; + esac +done + +if [[ -z "$TAG" ]]; then + echo "ERROR: --tag argument required. Usage: $0 --tag [--push]" + exit 1 +fi + +# Example TAG: SiSDKv2024.12.1-0.de_WiFi_SDKv3.4.1 +# Extract SISDK_Tag and WiFI_SDK_Tag from TAG +SISDK_Tag=$(echo "$TAG" | sed -n 's/^SiSDK\([^_]*\)_WiFi_SDK.*$/\1/p') +WiFI_SDK_Tag=$(echo "$TAG" | sed -n 's/^SiSDK[^_]*_WiFi_SDK\(.*\)$/\1/p') + +if [[ -z "$SISDK_Tag" || -z "$WiFI_SDK_Tag" ]]; then + echo "ERROR: Could not parse SISDK_Tag or WiFI_SDK_Tag from version tag: $TAG" + exit 1 +fi + +echo "Parsed SISDK_Tag: $SISDK_Tag" +echo "Parsed WiFI_SDK_Tag: $WiFI_SDK_Tag" + +# Compose image tag +IMAGE_NAME="ghcr.io/siliconlabssoftware/matter_extension_dependencies" + +# Build the Docker image, passing build args +docker build \ + --build-arg SISDK_Tag="$SISDK_Tag" \ + --build-arg WiFI_SDK_Tag="$WiFI_SDK_Tag" \ + -f docker/Dockerfile \ + -t "${IMAGE_NAME}:${TAG}" . + +# Push the image only if --push was provided +if [[ "$PUSH_IMAGE" == "true" ]]; then + docker push "${IMAGE_NAME}:${TAG}" +fi \ No newline at end of file diff --git a/docker/tools/requirements.txt b/docker/tools/requirements.txt new file mode 100644 index 0000000..5c9ae98 --- /dev/null +++ b/docker/tools/requirements.txt @@ -0,0 +1,9 @@ +# codegen.py build requirements +Jinja2==3.1.3 +lark==1.1.7 +# Sphinx dependencies (for slc-cli) +linkify-it-py==2.0.2 +myst-parser==2.0.0 +Sphinx==7.2.6 +sphinx-rtd-theme==1.3.0 +sphinx-tabs==3.4.1 From bba96cee4248dd8024f7671d43320de6255b298f Mon Sep 17 00:00:00 2001 From: Sarthak Shaha Date: Fri, 14 Nov 2025 09:16:59 -0500 Subject: [PATCH 02/15] fix --- .github/workflows/docker-publish.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index ba9f356..3f888d3 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -52,12 +52,12 @@ jobs: # Call docker/sdks/build.sh and pass version as an argument - name: Build and push Docker image - if: ${{ github.event.inputs.tools == "false" }} + if: ${{ github.event.inputs.tools == false }} run: | chmod +x docker/sdks/build.sh ./docker/sdks/build.sh --tag "$VERSION" --push - name: Build and push tools Docker image - if: ${{ github.event.inputs.tools == "true" }} + if: ${{ github.event.inputs.tools == true }} run: | chmod +x docker/tools/build.sh ./docker/tools/build.sh --tag "25Q4-Tools" --push From 1cd83dc6e197b1b661ddb83aa8770dac5add2c65 Mon Sep 17 00:00:00 2001 From: Sarthak Shaha Date: Fri, 14 Nov 2025 09:18:18 -0500 Subject: [PATCH 03/15] fix --- .github/workflows/docker-publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 3f888d3..f6fc658 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -33,7 +33,7 @@ jobs: # Login to GitHub Container Registry - name: Login to GitHub Container Registry - uses: docker/login-action@v5 + uses: docker/login-action@v3 with: registry: ghcr.io username: ${{ github.actor }} From 3e46f4ccb7e3edc4f343f7168107a42a659f15f0 Mon Sep 17 00:00:00 2001 From: Sarthak Shaha Date: Fri, 14 Nov 2025 09:25:15 -0500 Subject: [PATCH 04/15] fix --- .github/workflows/docker-publish.yml | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index f6fc658..b61e47f 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -41,23 +41,17 @@ jobs: # Set version variable for tagging the image by reading from docker/version file - name: Read and print version from docker/version file + id: read-version run: | - if [[ "${{ github.event.inputs.tools }}" == "false" ]]; then + if [[ "${{ github.event.inputs.tools }}" != "true" ]]; then SISDK_Tag=$(grep '^SISDK_Tag=' docker/version | cut -d'=' -f2) WiFI_SDK_Tag=$(grep '^WiFI_SDK_Tag=' docker/version | cut -d'=' -f2) VERSION="SiSDK${SISDK_Tag}_WiFi_SDK${WiFI_SDK_Tag}" echo "VERSION=$VERSION" >> $GITHUB_ENV echo "Parsed VERSION: $VERSION" fi - - # Call docker/sdks/build.sh and pass version as an argument - - name: Build and push Docker image - if: ${{ github.event.inputs.tools == false }} - run: | - chmod +x docker/sdks/build.sh - ./docker/sdks/build.sh --tag "$VERSION" --push - name: Build and push tools Docker image - if: ${{ github.event.inputs.tools == true }} + if: ${{ github.event.inputs.tools = true }} run: | chmod +x docker/tools/build.sh ./docker/tools/build.sh --tag "25Q4-Tools" --push From 43c49cb82a1b583e30d81d9aca56e06cf8f97972 Mon Sep 17 00:00:00 2001 From: Sarthak Shaha Date: Fri, 14 Nov 2025 09:26:03 -0500 Subject: [PATCH 05/15] fix --- .github/workflows/docker-publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index b61e47f..3a07fc1 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -51,7 +51,7 @@ jobs: echo "Parsed VERSION: $VERSION" fi - name: Build and push tools Docker image - if: ${{ github.event.inputs.tools = true }} + if: ${{ github.event.inputs.tools == true }} run: | chmod +x docker/tools/build.sh ./docker/tools/build.sh --tag "25Q4-Tools" --push From a91563176374dbba3a0c17765740540ff3e995db Mon Sep 17 00:00:00 2001 From: Sarthak Shaha Date: Fri, 14 Nov 2025 09:26:36 -0500 Subject: [PATCH 06/15] fix --- .github/workflows/docker-publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 3a07fc1..fe9a92a 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -17,7 +17,7 @@ on: required: false description: "Build the tools image" type: boolean - default: false + default: true jobs: publish-matter-extension-dependencies-image: From 5454e2753e58c1447823d4c7621e76410baef6ae Mon Sep 17 00:00:00 2001 From: Sarthak Shaha Date: Fri, 14 Nov 2025 09:27:35 -0500 Subject: [PATCH 07/15] fix --- .github/workflows/docker-publish.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index fe9a92a..89383d1 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -12,7 +12,7 @@ on: required: false description: "Push the images" type: boolean - default: false + default: true tools: required: false description: "Build the tools image" @@ -41,7 +41,6 @@ jobs: # Set version variable for tagging the image by reading from docker/version file - name: Read and print version from docker/version file - id: read-version run: | if [[ "${{ github.event.inputs.tools }}" != "true" ]]; then SISDK_Tag=$(grep '^SISDK_Tag=' docker/version | cut -d'=' -f2) @@ -51,7 +50,6 @@ jobs: echo "Parsed VERSION: $VERSION" fi - name: Build and push tools Docker image - if: ${{ github.event.inputs.tools == true }} run: | chmod +x docker/tools/build.sh ./docker/tools/build.sh --tag "25Q4-Tools" --push From d4f764bfca89b7fe56928a2287fa5b05e694aa41 Mon Sep 17 00:00:00 2001 From: Sarthak Shaha Date: Fri, 14 Nov 2025 09:28:35 -0500 Subject: [PATCH 08/15] fix --- docker/tools/build.sh | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/docker/tools/build.sh b/docker/tools/build.sh index 2c1939a..72aaa00 100644 --- a/docker/tools/build.sh +++ b/docker/tools/build.sh @@ -26,26 +26,11 @@ if [[ -z "$TAG" ]]; then exit 1 fi -# Example TAG: SiSDKv2024.12.1-0.de_WiFi_SDKv3.4.1 -# Extract SISDK_Tag and WiFI_SDK_Tag from TAG -SISDK_Tag=$(echo "$TAG" | sed -n 's/^SiSDK\([^_]*\)_WiFi_SDK.*$/\1/p') -WiFI_SDK_Tag=$(echo "$TAG" | sed -n 's/^SiSDK[^_]*_WiFi_SDK\(.*\)$/\1/p') - -if [[ -z "$SISDK_Tag" || -z "$WiFI_SDK_Tag" ]]; then - echo "ERROR: Could not parse SISDK_Tag or WiFI_SDK_Tag from version tag: $TAG" - exit 1 -fi - -echo "Parsed SISDK_Tag: $SISDK_Tag" -echo "Parsed WiFI_SDK_Tag: $WiFI_SDK_Tag" - # Compose image tag IMAGE_NAME="ghcr.io/siliconlabssoftware/matter_extension_dependencies" # Build the Docker image, passing build args docker build \ - --build-arg SISDK_Tag="$SISDK_Tag" \ - --build-arg WiFI_SDK_Tag="$WiFI_SDK_Tag" \ -f docker/Dockerfile \ -t "${IMAGE_NAME}:${TAG}" . From 123ba7029e165e374d5c8740c87cf25f2ad17044 Mon Sep 17 00:00:00 2001 From: Sarthak Shaha Date: Fri, 14 Nov 2025 09:31:04 -0500 Subject: [PATCH 09/15] empty commit From dd2a8bba9d5fb643503dbe97340f7d5861978428 Mon Sep 17 00:00:00 2001 From: Sarthak Shaha Date: Fri, 14 Nov 2025 09:34:46 -0500 Subject: [PATCH 10/15] fix path --- docker/tools/build.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) mode change 100644 => 100755 docker/tools/build.sh diff --git a/docker/tools/build.sh b/docker/tools/build.sh old mode 100644 new mode 100755 index 72aaa00..375c3be --- a/docker/tools/build.sh +++ b/docker/tools/build.sh @@ -27,11 +27,11 @@ if [[ -z "$TAG" ]]; then fi # Compose image tag -IMAGE_NAME="ghcr.io/siliconlabssoftware/matter_extension_dependencies" +IMAGE_NAME="ghcr.io/siliconlabssoftware/matter_build_action_tools" # Build the Docker image, passing build args docker build \ - -f docker/Dockerfile \ + -f Dockerfile \ -t "${IMAGE_NAME}:${TAG}" . # Push the image only if --push was provided From 2c8adf1b1223cde797fc0c247b7de03d7c648bc2 Mon Sep 17 00:00:00 2001 From: Sarthak Shaha Date: Fri, 14 Nov 2025 09:35:37 -0500 Subject: [PATCH 11/15] fix path --- docker/tools/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/tools/build.sh b/docker/tools/build.sh index 375c3be..13cd045 100755 --- a/docker/tools/build.sh +++ b/docker/tools/build.sh @@ -31,7 +31,7 @@ IMAGE_NAME="ghcr.io/siliconlabssoftware/matter_build_action_tools" # Build the Docker image, passing build args docker build \ - -f Dockerfile \ + -f docker/tools/Dockerfile \ -t "${IMAGE_NAME}:${TAG}" . # Push the image only if --push was provided From db9b51567c4088680b86a0255e249d86568df011 Mon Sep 17 00:00:00 2001 From: Sarthak Shaha Date: Fri, 14 Nov 2025 09:38:27 -0500 Subject: [PATCH 12/15] fix path --- docker/tools/Dockerfile | 35 ++++++++++++++--------------------- 1 file changed, 14 insertions(+), 21 deletions(-) diff --git a/docker/tools/Dockerfile b/docker/tools/Dockerfile index b83b9d6..da34f7a 100644 --- a/docker/tools/Dockerfile +++ b/docker/tools/Dockerfile @@ -47,17 +47,17 @@ RUN set -x \ && CONAN_PATH="$HOME/.silabs/slt/engines/conan/conan/conan" \ && INSTALL_PATH="$HOME/.local/bin" \ && if [ -f "$CONAN_ENGINE_PATH" ]; then \ - ln -s "$CONAN_ENGINE_PATH" "$INSTALL_PATH/conan_engine" \ + ln -s "$CONAN_ENGINE_PATH" "$INSTALL_PATH/conan_engine" \ else \ - echo "Error: conan_engine not found at $CONAN_ENGINE_PATH" \ - exit 1 \ + echo "Error: conan_engine not found at $CONAN_ENGINE_PATH" \ + exit 1 \ fi \ && echo "conan-engine-version=$(conan_engine --version)" \ && echo "conan-engine-path=$(which conan_engine)" \ && if [ -f "$CONAN_PATH" ]; then \ - ln -s "$CONAN_PATH" "$INSTALL_PATH/conan" \ + ln -s "$CONAN_PATH" "$INSTALL_PATH/conan" \ else \ - echo "Error: conan not found at $CONAN_PATH" \ + echo "Error: conan not found at $CONAN_PATH" \ fi \ && echo "conan-version=$(conan --version)" \ && echo "conan-path=$(which conan)" \ @@ -69,38 +69,31 @@ ENV CONAN_HOME=$HOME/.silabs/slt/installs/conan RUN set -x \ && slt install slc-cli \ && SLC_CLI_PATH=$(slt where slc-cli) \ - && echo "SLC_CLI_PATH=$SLC_CLI_PATH" \ && JAVA_HOME=$(slt where java21) \ + && echo "SLC_CLI_PATH=$SLC_CLI_PATH" \ && echo "JAVA_HOME=$JAVA_HOME" \ - && echo "$SLC_CLI_PATH" >> $GITHUB_PATH \ + && echo "export SLC_CLI_PATH=$SLC_CLI_PATH" >> /etc/profile.d/slt-env.sh \ + && echo "export JAVA_HOME=$JAVA_HOME" >> /etc/profile.d/slt-env.sh \ + && echo "export PATH=\"\${PATH}:${SLC_CLI_PATH}\"" >> /etc/profile.d/slt-env.sh \ && if [ -n "$JAVA_HOME" ]; then \ - echo "$JAVA_HOME/jre/bin" >> $GITHUB_PATH \ + echo "export PATH=\"\${PATH}:${JAVA_HOME}/jre/bin\"" >> /etc/profile.d/slt-env.sh \ fi \ && : # last line -ENV SLC_CLI_PATH=$(slt where slc-cli) -ENV JAVA_HOME=$(slt where java21) -ENV PATH="${PATH}:${SLC_CLI_PATH}" -ENV PATH="${PATH}:${JAVA_HOME}/jre/bin" - RUN set -x \ && slt install commander \ && COMMANDER_PATH=$(slt where commander) \ && echo "COMMANDER_PATH=$COMMANDER_PATH" \ - && echo "$COMMANDER_PATH" >> $GITHUB_PATH \ + && echo "export COMMANDER_PATH=$COMMANDER_PATH" >> /etc/profile.d/slt-env.sh \ + && echo "export PATH=\"\${PATH}:${COMMANDER_PATH}\"" >> /etc/profile.d/slt-env.sh \ && : # last line -ENV COMMANDER_PATH=$(slt where commander) -ENV PATH="${PATH}:${COMMANDER_PATH}" - RUN set -x \ && slt install gcc-arm-none-eabi \ && ARM_GCC_DIR=$(slt where gcc-arm-none-eabi) \ && echo "ARM_GCC_DIR=$ARM_GCC_DIR" \ - && echo "$ARM_GCC_DIR/bin" >> $GITHUB_PATH \ + && echo "export ARM_GCC_DIR=$ARM_GCC_DIR" >> /etc/profile.d/slt-env.sh \ + && echo "export PATH=\"\${PATH}:${ARM_GCC_DIR}/bin\"" >> /etc/profile.d/slt-env.sh \ && : # last line - -ENV ARM_GCC_DIR=$(slt where gcc-arm-none-eabi) -ENV PATH="${PATH}:${ARM_GCC_DIR}/bin" From 16e773dab807eaf1668de847dd8f6daefc8f7f3a Mon Sep 17 00:00:00 2001 From: Sarthak Shaha Date: Fri, 14 Nov 2025 09:40:49 -0500 Subject: [PATCH 13/15] fix path --- docker/tools/Dockerfile | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/docker/tools/Dockerfile b/docker/tools/Dockerfile index da34f7a..047083b 100644 --- a/docker/tools/Dockerfile +++ b/docker/tools/Dockerfile @@ -3,7 +3,7 @@ ARG VERSION=latest # Stage 1: Build dependencies and download SDKs/tools FROM ghcr.io/project-chip/chip-build:${VERSION} AS build -LABEL org.opencontainers.image.source https://github.com/project-chip/connectedhomeip +LABEL org.opencontainers.image.source=https://github.com/project-chip/connectedhomeip # Install required packages for cloning and extracting SDKs RUN set -x \ @@ -47,17 +47,16 @@ RUN set -x \ && CONAN_PATH="$HOME/.silabs/slt/engines/conan/conan/conan" \ && INSTALL_PATH="$HOME/.local/bin" \ && if [ -f "$CONAN_ENGINE_PATH" ]; then \ - ln -s "$CONAN_ENGINE_PATH" "$INSTALL_PATH/conan_engine" \ + ln -s "$CONAN_ENGINE_PATH" "$INSTALL_PATH/conan_engine"; \ else \ - echo "Error: conan_engine not found at $CONAN_ENGINE_PATH" \ - exit 1 \ + echo "Error: conan_engine not found at $CONAN_ENGINE_PATH" && exit 1; \ fi \ && echo "conan-engine-version=$(conan_engine --version)" \ && echo "conan-engine-path=$(which conan_engine)" \ && if [ -f "$CONAN_PATH" ]; then \ - ln -s "$CONAN_PATH" "$INSTALL_PATH/conan" \ + ln -s "$CONAN_PATH" "$INSTALL_PATH/conan"; \ else \ - echo "Error: conan not found at $CONAN_PATH" \ + echo "Error: conan not found at $CONAN_PATH"; \ fi \ && echo "conan-version=$(conan --version)" \ && echo "conan-path=$(which conan)" \ From db775e91a1fcffb717dbfff347a02d8096850503 Mon Sep 17 00:00:00 2001 From: Sarthak Shaha Date: Fri, 14 Nov 2025 09:42:48 -0500 Subject: [PATCH 14/15] fix path --- docker/tools/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/tools/Dockerfile b/docker/tools/Dockerfile index 047083b..6aa66cd 100644 --- a/docker/tools/Dockerfile +++ b/docker/tools/Dockerfile @@ -60,7 +60,7 @@ RUN set -x \ fi \ && echo "conan-version=$(conan --version)" \ && echo "conan-path=$(which conan)" \ - && echo "CONAN_HOME=$HOME/.silabs/slt/installs/conan" \ + && echo "CONAN_HOME=~/.silabs/slt/installs/conan" \ && : # last line ENV CONAN_HOME=$HOME/.silabs/slt/installs/conan From a2446dce01128b41cb08c29a4a4d3795160b0d85 Mon Sep 17 00:00:00 2001 From: Sarthak Shaha Date: Fri, 14 Nov 2025 09:45:08 -0500 Subject: [PATCH 15/15] fix path --- docker/tools/Dockerfile | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docker/tools/Dockerfile b/docker/tools/Dockerfile index 6aa66cd..ad07e96 100644 --- a/docker/tools/Dockerfile +++ b/docker/tools/Dockerfile @@ -43,9 +43,11 @@ RUN set -x \ RUN set -x \ && slt install foo --engine conan || true \ + && HOME="${HOME:-/root}" \ && CONAN_ENGINE_PATH="$HOME/.silabs/slt/engines/conan/conan_engine" \ && CONAN_PATH="$HOME/.silabs/slt/engines/conan/conan/conan" \ && INSTALL_PATH="$HOME/.local/bin" \ + && mkdir -p "$INSTALL_PATH" \ && if [ -f "$CONAN_ENGINE_PATH" ]; then \ ln -s "$CONAN_ENGINE_PATH" "$INSTALL_PATH/conan_engine"; \ else \ @@ -60,10 +62,10 @@ RUN set -x \ fi \ && echo "conan-version=$(conan --version)" \ && echo "conan-path=$(which conan)" \ - && echo "CONAN_HOME=~/.silabs/slt/installs/conan" \ + && echo "CONAN_HOME=$HOME/.silabs/slt/installs/conan" \ && : # last line -ENV CONAN_HOME=$HOME/.silabs/slt/installs/conan +ENV CONAN_HOME=/root/.silabs/slt/installs/conan RUN set -x \ && slt install slc-cli \