From 75d07eaed2cd208e90b01919eb158a97a577d306 Mon Sep 17 00:00:00 2001 From: emaclee Date: Thu, 18 Jan 2024 12:44:58 +0000 Subject: Update relevant robot scripts in DMI CSITs Issue-ID: CPS-2032 Change-Id: I9f7f1e9078612434d07efeb9dadeb65d2f5acc48 Signed-off-by: emaclee --- csit/install-robotframework.sh | 12 +++++----- csit/prepare-csit.sh | 39 +++++++++++++++++++++++-------- csit/run-csit.sh | 52 ++++++++++++++++++++++++++++++------------ 3 files changed, 74 insertions(+), 29 deletions(-) diff --git a/csit/install-robotframework.sh b/csit/install-robotframework.sh index dada6221..2c4f4320 100755 --- a/csit/install-robotframework.sh +++ b/csit/install-robotframework.sh @@ -1,12 +1,12 @@ -ROBOT_VENV=$(mktemp -d --suffix=robot_venv) -echo "ROBOT_VENV=${ROBOT_VENV}" >> "${WORKSPACE}/env.properties" +set -exu -echo "Python version is: $(python3 --version)" +ROBOT3_VENV=$(mktemp -d --suffix=robot_venv) +echo "ROBOT3_VENV=${ROBOT3_VENV}" >> "${WORKSPACE}/env.properties" -python3 -m venv "${ROBOT_VENV}" -source "${ROBOT_VENV}/bin/activate" +echo "Python version is: $(python3 --version)" -set -exu +python3 -m venv "${ROBOT3_VENV}" +source "${ROBOT3_VENV}/bin/activate" # Make sure pip3 itself us up-to-date. python3 -m pip install --upgrade pip diff --git a/csit/prepare-csit.sh b/csit/prepare-csit.sh index 59240a98..66f0f02f 100755 --- a/csit/prepare-csit.sh +++ b/csit/prepare-csit.sh @@ -1,6 +1,6 @@ #!/bin/bash -x # -# Copyright (C) 2022 Nordix Foundation. +# Copyright (C) 2022-2024 Nordix Foundation. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -19,6 +19,7 @@ # # Branched from ccsdk/distribution to this repository Feb 23, 2021 # +echo "---> prepare-csit.sh" if [ -z "$WORKSPACE" ]; then export WORKSPACE=`git rev-parse --show-toplevel` @@ -26,26 +27,46 @@ fi TESTPLANDIR=${WORKSPACE}/${TESTPLAN} -# Assume that if ROBOT_VENV is set and virtualenv with system site packages can be activated, +# Version should match those used to setup robot-framework in other jobs/stages +# Use pyenv for selecting the python version +if [[ -d "/opt/pyenv" ]]; then + echo "Setup pyenv:" + export PYENV_ROOT="/opt/pyenv" + export PATH="$PYENV_ROOT/bin:$PATH" + pyenv versions + if command -v pyenv 1>/dev/null 2>&1; then + eval "$(pyenv init - --no-rehash)" + # Choose the latest numeric Python version from installed list + version=$(pyenv versions --bare | sed '/^[^0-9]/d' | sort -V | tail -n 1) + pyenv local "${version}" + fi +fi + +# Assume that if ROBOT3_VENV is set and virtualenv with system site packages can be activated, # ci-management/jjb/integration/include-raw-integration-install-robotframework.sh has already # been executed if [ -f ${WORKSPACE}/env.properties ]; then source ${WORKSPACE}/env.properties fi -#if [ -f ${ROBOT_VENV}/bin/activate ]; then -# source ${ROBOT_VENV}/bin/activate -#else +if [ -f ${ROBOT3_VENV}/bin/activate ]; then + source ${ROBOT3_VENV}/bin/activate +else rm -rf /tmp/ci-management rm -f ${WORKSPACE}/env.properties cd /tmp + git clone "https://gerrit.onap.org/r/ci-management" source ${WORKSPACE}/install-robotframework.sh -#fi +fi # install eteutils -mkdir -p ${ROBOT_VENV}/src/onap -rm -rf ${ROBOT_VENV}/src/onap/testsuite -python3 -m pip install --upgrade --extra-index-url="https://nexus3.onap.org/repository/PyPi.staging/simple" 'robotframework-onap==0.5.1.*' --pre +mkdir -p ${ROBOT3_VENV}/src/onap +rm -rf ${ROBOT3_VENV}/src/onap/testsuite + +python3 -m pip install --upgrade --extra-index-url="https://nexus3.onap.org/repository/PyPi.staging/simple" 'robotframework-onap==11.0.0.dev17' --pre +echo "Versioning information:" +python3 --version pip freeze +python3 -m robot.run --version || : diff --git a/csit/run-csit.sh b/csit/run-csit.sh index b5d7e0dd..4a618505 100755 --- a/csit/run-csit.sh +++ b/csit/run-csit.sh @@ -20,10 +20,39 @@ # # Branched from ccsdk/distribution to this repository Feb 23, 2021 +echo "---> run-csit.sh" + +WORKDIR=$(mktemp -d --suffix=-robot-workdir) + +# Version should match those used to setup robot-framework in other jobs/stages +# Use pyenv for selecting the python version +if [[ -d "/opt/pyenv" ]]; then + echo "Setup pyenv:" + export PYENV_ROOT="/opt/pyenv" + export PATH="$PYENV_ROOT/bin:$PATH" + pyenv versions + if command -v pyenv 1>/dev/null 2>&1; then + eval "$(pyenv init - --no-rehash)" + # Choose the latest numeric Python version from installed list + version=$(pyenv versions --bare | sed '/^[^0-9]/d' | sort -V | tail -n 1) + pyenv local "${version}" + fi +fi + # # functions # +# wrapper for sourcing a file +function source_safely() { + [ -z "$1" ] && return 1 + relax_set + . "$1" + load_set +} +# Activate the virtualenv containing all the required libraries installed by prepare-csit.sh +source_safely "${ROBOT3_VENV}/bin/activate" + function on_exit(){ rc=$? if [[ ${WORKSPACE} ]]; then @@ -107,14 +136,6 @@ function relax_set() { set +o pipefail } -# wrapper for sourcing a file -function source_safely() { - [ -z "$1" ] && return 1 - relax_set - . "$1" - load_set -} - # # main # @@ -154,14 +175,11 @@ TESTPLANDIR="${WORKSPACE}/${TESTPLAN}" # Run installation of prerequired libraries source_safely "${WORKSPACE}/prepare-csit.sh" -# Activate the virtualenv containing all the required libraries installed by prepare-csit.sh -source_safely "${ROBOT_VENV}/bin/activate" - -WORKDIR=$(mktemp -d --suffix=-robot-workdir) +# Use robot framework working directory cd "${WORKDIR}" # Add csit scripts to PATH -export PATH="${PATH}:${WORKSPACE}/docker/scripts:${WORKSPACE}/scripts:${ROBOT_VENV}/bin" +export PATH="${PATH}:${WORKSPACE}/docker/scripts:${WORKSPACE}/scripts:${ROBOT3_VENV}/bin" export SCRIPTS="${WORKSPACE}/scripts" export ROBOT_VARIABLES= @@ -189,7 +207,13 @@ SUITES=$( xargs -a testplan.txt ) echo ROBOT_VARIABLES="${ROBOT_VARIABLES}" echo "Starting Robot test suites ${SUITES} ..." relax_set -python3 -m robot.run -N ${TESTPLAN} -v WORKSPACE:/tmp ${ROBOT_VARIABLES} ${TESTOPTIONS} ${SUITES} + +echo "Versioning information:" +python3 --version +pip freeze +python3 -m robot.run --version || : + +python3 -m robot.run -N ${TESTPLAN} -v WORKSPACE:/tmp --legacy-output ${ROBOT_VARIABLES} ${TESTOPTIONS} ${SUITES} RESULT=$? load_set echo "RESULT: $RESULT" -- cgit 1.2.3-korg