summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPetr Ospalý <p.ospaly@partner.samsung.com>2019-09-05 16:47:48 +0200
committerPetr Ospalý <p.ospaly@partner.samsung.com>2019-09-09 22:27:38 +0200
commit60d994ca23c8c03494de8ddb40d13fe23ebd7a0a (patch)
treee0e9af8c945c61ac929e105c123514b836835721
parent5cf1391bbe6cda8f460b98dd486df30684ba28af (diff)
Add support for testing of local SDC images
By default it is disabled and the test works as before, but by providing the SDC_LOCAL_IMAGES variable with a value of true/yes it will not use the upstream images (from registry) but instead the local one (in docker cache) - they have to be build beforehand of course. They are two more optional variables (if SDC_LOCAL_IMAGES == true/yes): SDC_LOCAL_GITREPO .. for local git repo instead of an upstream branch SDC_LOCAL_TAG .. it will use local images with this docker tag Issue-ID: SDC-2553 Signed-off-by: Petr Ospalý <p.ospaly@partner.samsung.com> Change-Id: Ib64ca17e81aa9c3406e0a5d8fb403f1c1b0862a1
-rw-r--r--plans/sdc/sanity/setup.sh22
-rw-r--r--plans/sdc/uiSanity/setup.sh23
-rw-r--r--scripts/sdc/setup_sdc_for_sanity.sh59
3 files changed, 101 insertions, 3 deletions
diff --git a/plans/sdc/sanity/setup.sh b/plans/sdc/sanity/setup.sh
index 0e652f86..20a8eac3 100644
--- a/plans/sdc/sanity/setup.sh
+++ b/plans/sdc/sanity/setup.sh
@@ -15,4 +15,26 @@
# limitations under the License.
#
+# By default all images are from remote upstream registry, this option
+# provides the chance to test locally built images
+export SDC_LOCAL_IMAGES="${SDC_LOCAL_IMAGES:-false}"
+
+# For this to take effect SDC_LOCAL_IMAGES must be enabled...
+#
+# The path to the local sdc git repo from which the local images have
+# been built - it also affects the tag used - if left empty *AND*
+# local images are used *AND* SDC_LOCAL_TAG is unset then the tag
+# will be set to: 'latest'
+#
+# BEWARE: Using local images with an incorrect git repo could lead to
+# problems...set SDC_LOCAL_GITREPO or GERRIT_BRANCH properly...
+export SDC_LOCAL_GITREPO="${SDC_LOCAL_GITREPO}"
+
+# For this to take effect SDC_LOCAL_IMAGES must be enabled...
+#
+# This will set the tag for local images - leaving this empty *AND*
+# with unset SDC_LOCAL_GITREPO the local images will fallback to the
+# tag: 'latest'
+export SDC_LOCAL_TAG="${SDC_LOCAL_TAG}"
+
source ${WORKSPACE}/scripts/sdc/setup_sdc_for_sanity.sh tad
diff --git a/plans/sdc/uiSanity/setup.sh b/plans/sdc/uiSanity/setup.sh
index 3d315098..b02cd7be 100644
--- a/plans/sdc/uiSanity/setup.sh
+++ b/plans/sdc/uiSanity/setup.sh
@@ -13,5 +13,28 @@
# 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.
+#
+
+# By default all images are from remote upstream registry, this option
+# provides the chance to test locally built images
+export SDC_LOCAL_IMAGES="${SDC_LOCAL_IMAGES:-false}"
+
+# For this to take effect SDC_LOCAL_IMAGES must be enabled...
+#
+# The path to the local sdc git repo from which the local images have
+# been built - it also affects the tag used - if left empty *AND*
+# local images are used *AND* SDC_LOCAL_TAG is unset then the tag
+# will be set to: 'latest'
+#
+# BEWARE: Using local images with an incorrect git repo could lead to
+# problems...set SDC_LOCAL_GITREPO or GERRIT_BRANCH properly...
+export SDC_LOCAL_GITREPO="${SDC_LOCAL_GITREPO}"
+
+# For this to take effect SDC_LOCAL_IMAGES must be enabled...
+#
+# This will set the tag for local images - leaving this empty *AND*
+# with unset SDC_LOCAL_GITREPO the local images will fallback to the
+# tag: 'latest'
+export SDC_LOCAL_TAG="${SDC_LOCAL_TAG}"
source ${WORKSPACE}/scripts/sdc/setup_sdc_for_sanity.sh tud
diff --git a/scripts/sdc/setup_sdc_for_sanity.sh b/scripts/sdc/setup_sdc_for_sanity.sh
index 603bd457..fc9f31b4 100644
--- a/scripts/sdc/setup_sdc_for_sanity.sh
+++ b/scripts/sdc/setup_sdc_for_sanity.sh
@@ -6,7 +6,22 @@ function usage {
echo "setup sdc and run ui test suite: setup_sdc_for_sanity.sh tud"
}
-set -x
+# returns 0: if SDC_LOCAL_IMAGES is set to true value
+# returns 1: otherwise
+function using_local_images {
+ SDC_LOCAL_IMAGES=$(echo "${SDC_LOCAL_IMAGES}" | tr '[:upper:]' '[:lower:]')
+
+ case "$SDC_LOCAL_IMAGES" in
+ 1|yes|true|Y)
+ return 0
+ ;;
+ esac
+
+ return 1
+}
+
+# fail quick if error
+set -exo pipefail
echo "This is ${WORKSPACE}/scripts/sdc/setup_sdc_for_sanity.sh"
@@ -21,7 +36,17 @@ mkdir -p ${WORKSPACE}/data/environments/
mkdir -p ${WORKSPACE}/data/clone/
cd ${WORKSPACE}/data/clone
-git clone --depth 1 http://gerrit.onap.org/r/sdc -b ${GERRIT_BRANCH}
+if using_local_images && [ -n "$SDC_LOCAL_GITREPO" ] ; then
+ if [ -d "$SDC_LOCAL_GITREPO" ] ; then
+ rm -rf ./sdc
+ cp -a "$SDC_LOCAL_GITREPO" ./sdc
+ else
+ echo "[ERROR]: Local git repo for sdc does not exist: ${SDC_LOCAL_GITREPO}"
+ exit 1
+ fi
+else
+ git clone --depth 1 http://gerrit.onap.org/r/sdc -b ${GERRIT_BRANCH}
+fi
chmod -R 777 ${WORKSPACE}/data/clone
@@ -47,12 +72,40 @@ cp ${WORKSPACE}/data/clone/sdc/sdc-os-chef/scripts/docker_run.sh ${WORKSPACE}/sc
source ${WORKSPACE}/data/clone/sdc/version.properties
export RELEASE=$major.$minor-STAGING-latest
-${WORKSPACE}/scripts/sdc/docker_run.sh -r ${RELEASE} -e ${ENV_NAME} -p 10001 -${TEST_SUITE}
+if using_local_images ; then
+ if [ -n "$SDC_LOCAL_TAG" ] ; then
+ RELEASE="$SDC_LOCAL_TAG"
+ elif [ -z "$SDC_LOCAL_GITREPO" ] ; then
+ echo "[WARNING]: Local images used but no tag and no source (git repo) provided for them - we will use tag 'latest'"
+ RELEASE=latest
+ fi
+
+ echo "[INFO]: We will use the locally built images (tag: ${RELEASE})"
+ ${WORKSPACE}/scripts/sdc/docker_run.sh \
+ --local \
+ -r ${RELEASE} \
+ -e ${ENV_NAME} \
+ -p 10001 -${TEST_SUITE}
+else
+ echo "[INFO]: We will download images from the default registry (tag: ${RELEASE})"
+ ${WORKSPACE}/scripts/sdc/docker_run.sh \
+ -r ${RELEASE} \
+ -e ${ENV_NAME} \
+ -p 10001 -${TEST_SUITE}
+fi
sleep 120
+# This file is sourced in another script which is out of our control...
+set +e
+set +o pipefail
+
+# The code below for example does nothing and breaks immediately (running locally at least)
+# Also it is very fragile: empty CID variable and broken docker command...
+
#monitor test processes
+
TIME_OUT=1200
INTERVAL=20
TIME=0