| #!/bin/bash -x |
| # |
| # Copyright 2019-2021 Samsung Electronics Co., Ltd. |
| # Modifications Copyright (C) 2021 Pantheon.tech |
| # |
| # 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. |
| # |
| # This script installs common libraries required by CSIT tests |
| # |
| |
| echo "---> prepare-csit.sh" |
| |
| set -exo pipefail |
| |
| ROBOT_INSTALLER='include-raw-integration-install-robotframework-py3.sh' |
| |
| # Allows testing for root permissions |
| REQ_USER=$(id -un) |
| |
| if ! (which git > /dev/null 2>&1); then |
| echo "GIT binary not found in current PATH" |
| # Add missing package to prevent script/job failures |
| if (grep Ubuntu /etc/os-release > /dev/null 2>&1) || \ |
| (grep Debian /etc/os-release > /dev/null 2>&1); then |
| echo "Installing package dependency for Ubuntu/Debian" |
| if [[ "${REQ_USER}" == 'root' ]]; then |
| apt-get update |
| apt-get install -y git |
| else |
| sudo apt-get update |
| sudo apt-get install -y git |
| fi |
| elif (grep RedHat /etc/os-release > /dev/null 2>&1) || \ |
| (grep CentOS /etc/os-release > /dev/null 2>&1); then |
| echo "Installing package dependency for CentOS/RedHat" |
| if [[ "${REQ_USER}" == 'root' ]]; then |
| yum install -y git |
| else |
| sudo yum install -y git |
| fi |
| else |
| echo "Warning: unmatched OS/distribution" |
| echo "Missing software will not be installed" |
| fi |
| fi |
| |
| if [[ -z "${WORKSPACE}" ]]; then |
| if (git rev-parse --show-toplevel > /dev/null 2>&1); then |
| WORKSPACE=$(git rev-parse --show-toplevel) |
| export WORKSPACE |
| else |
| WORKSPACE=$(pwd) |
| export WORKSPACE |
| fi |
| fi |
| |
| # shellcheck disable=SC2034 |
| TESTPLANDIR="${WORKSPACE}/${TESTPLAN}" |
| |
| # Python version should match that 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, virtualenv |
| # with system site packages can be activated |
| if [[ -f "${WORKSPACE}/env.properties" ]]; then |
| source "${WORKSPACE}/env.properties" |
| elif [[ -f /tmp/env.properties ]]; then |
| source /tmp/env.properties |
| fi |
| |
| if [[ -f "${ROBOT3_VENV}/bin/activate" ]]; then |
| source "${ROBOT3_VENV}/bin/activate" |
| else |
| # Robot framework was not found |
| # Clone/update ci-management repository and invoke install script |
| if [[ ! -d /tmp/ci-management ]]; then |
| git clone "https://gerrit.onap.org/r/ci-management" \ |
| /tmp/ci-management |
| else |
| git pull /tmp/ci-management |
| fi |
| # shellcheck disable=SC1090 |
| source "/tmp/ci-management/jjb/integration/${ROBOT_INSTALLER}" |
| fi |
| |
| # install eteutils |
| mkdir -p "${ROBOT3_VENV}/src/onap" |
| rm -rf "${ROBOT3_VENV}/src/onap/testsuite" |
| # Source from the Nexus repository |
| 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 || : |
| |