From c52f4474f3b06a23431e57d67fbb0260a64eb28d Mon Sep 17 00:00:00 2001 From: Hilton Lima Date: Mon, 9 Sep 2024 20:30:22 +0000 Subject: [PATCH] Isolate SDK docker pull script --- test_collections/matter/config.py | 2 +- .../scripts/update-pull-sdk-docker-image.sh | 41 +++++++++++++++++++ .../matter/scripts/update-sample-apps.sh | 16 -------- test_collections/matter/setup.sh | 3 ++ 4 files changed, 45 insertions(+), 17 deletions(-) create mode 100755 test_collections/matter/scripts/update-pull-sdk-docker-image.sh diff --git a/test_collections/matter/config.py b/test_collections/matter/config.py index 1f5cfeba..7cfc11d0 100644 --- a/test_collections/matter/config.py +++ b/test_collections/matter/config.py @@ -24,7 +24,7 @@ class MatterSettings(BaseSettings): # SDK Docker Image SDK_DOCKER_IMAGE: str = "connectedhomeip/chip-cert-bins" SDK_DOCKER_TAG: str = "17b1a38e909e7874593bcb87c31be03a5866f1d4" - # SDK SHA: used to fetch test YAML from SDK. + # SDK SHA: used to fetch YAML and Python tests from SDK. SDK_SHA: str = "17b1a38e909e7874593bcb87c31be03a5866f1d4" class Config: diff --git a/test_collections/matter/scripts/update-pull-sdk-docker-image.sh b/test_collections/matter/scripts/update-pull-sdk-docker-image.sh new file mode 100755 index 00000000..e66779fe --- /dev/null +++ b/test_collections/matter/scripts/update-pull-sdk-docker-image.sh @@ -0,0 +1,41 @@ +#! /usr/bin/env bash + + # + # Copyright (c) 2024 Project CHIP Authors + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. +set -e +MATTER_PROGRAM_DIR=$(realpath $(dirname "$0")/..) +TH_SCRIPTS_DIR="$MATTER_PROGRAM_DIR/../../../scripts" + +source "$TH_SCRIPTS_DIR/utils.sh" + +print_start_of_script + +# We are fetching SDK docker image and tag name from backend +# This is done to minimize the places the SDK version is tracked. +SDK_DOCKER_PACKAGE=$(cat $MATTER_PROGRAM_DIR/config.py | grep SDK_DOCKER_IMAGE | cut -d'"' -f 2 | cut -d"'" -f 2) +SDK_DOCKER_TAG=$(cat $MATTER_PROGRAM_DIR/config.py | grep SDK_DOCKER_TAG | cut -d'"' -f 2 | cut -d"'" -f 2) +SDK_DOCKER_IMAGE=$SDK_DOCKER_PACKAGE:$SDK_DOCKER_TAG + +DOCKER_IMAGE_FOUND=$(sudo docker images -q $SDK_DOCKER_IMAGE) + +if [[ -z "$DOCKER_IMAGE_FOUND" ]]; then + print_script_step "Pulling '$SDK_DOCKER_IMAGE' image" + sudo docker pull $SDK_DOCKER_IMAGE +else + echo "SDK Docker image already exists" + echo "$SDK_DOCKER_IMAGE" +fi + +print_end_of_script diff --git a/test_collections/matter/scripts/update-sample-apps.sh b/test_collections/matter/scripts/update-sample-apps.sh index 25ca7f53..6c16f169 100755 --- a/test_collections/matter/scripts/update-sample-apps.sh +++ b/test_collections/matter/scripts/update-sample-apps.sh @@ -22,22 +22,6 @@ source "$TH_SCRIPTS_DIR/utils.sh" print_start_of_script -# We are fetching SDK docker image and tag name from backend -# This is done to minimize the places the SDK version is tracked. -SDK_DOCKER_PACKAGE=$(cat $MATTER_PROGRAM_DIR/config.py | grep SDK_DOCKER_IMAGE | cut -d'"' -f 2 | cut -d"'" -f 2) -SDK_DOCKER_TAG=$(cat $MATTER_PROGRAM_DIR/config.py | grep SDK_DOCKER_TAG | cut -d'"' -f 2 | cut -d"'" -f 2) -SDK_DOCKER_IMAGE=$SDK_DOCKER_PACKAGE:$SDK_DOCKER_TAG - -DOCKER_IMAGE_FOUND=$(sudo docker images -q $SDK_DOCKER_IMAGE) - -if [[ -z "$DOCKER_IMAGE_FOUND" ]]; then - print_script_step "Pulling '$SDK_DOCKER_IMAGE' image" - sudo docker pull $SDK_DOCKER_IMAGE -else - echo "SDK Docker image already exists" - echo "$SDK_DOCKER_IMAGE" -fi - print_script_step "Updating Sample APPs" # TODO: update SDK image to place the apps in a specific folder and then copy that entire folder sudo docker run -t -v ~/apps:/apps $SDK_DOCKER_IMAGE bash -c "rm -v /apps/*; cp -v chip-* /apps/; cp -v thermostat-app /apps/; cp -v lit-icd-app /apps/;cp -v fabric-* /apps/; cp -v matter-network-manager-app /apps/" diff --git a/test_collections/matter/setup.sh b/test_collections/matter/setup.sh index d16d19df..0b53eec5 100755 --- a/test_collections/matter/setup.sh +++ b/test_collections/matter/setup.sh @@ -33,6 +33,9 @@ for package in ${packagelist[@]}; do done IFS=$SAVEIFS +print_script_step "Pulling chip-cert-bins docker image" +$MATTER_PROGRAM_DIR/scripts/update-pull-sdk-docker-image.sh + print_script_step "Fetching sample apps" $MATTER_PROGRAM_DIR/scripts/update-sample-apps.sh