Use lf-activate-venv for Robot virtual environment 84/102384/1
authorSangwook Ha <sangwook.ha@verizon.com>
Thu, 15 Sep 2022 17:58:09 +0000 (10:58 -0700)
committerSangwook Ha <sangwook.ha@verizon.com>
Thu, 15 Sep 2022 19:48:55 +0000 (12:48 -0700)
The virtual environment for Robot Framework is created with the system
default Python 3.6 which is not supported any more.

Use lf-activate-venv instead to leverage more recent version of Python
and change the shell back to bash since 'lf-env.sh' is not POSIX
compliant.

Remove odltools from the requirements since odltools CSIT jobs have been
removed.

Change-Id: I62f9d580b77a877572a78730d43b99e6c419d215
Signed-off-by: Sangwook Ha <sangwook.ha@verizon.com>
jjb/integration/integration-install-robotframework.sh

index 5f909177a065fa3cd094e8fedcb9b3e2a5fa7ebf..215a164227dd4cabd2e463911221a7b2624a60c2 100644 (file)
@@ -1,4 +1,4 @@
-#!/bin/sh -l
+#!/bin/bash -l
 # SPDX-License-Identifier: EPL-1.0
 ##############################################################################
 # Copyright (c) 2015 The Linux Foundation and others.
 ##############################################################################
 # vim: sw=4 ts=4 sts=4 et ft=sh :
 
-ROBOT_VENV="/tmp/v/robot"
-echo ROBOT_VENV="${ROBOT_VENV}" >> "${WORKSPACE}/env.properties"
-
-# The --system-site-packages parameter allows us to pick up system level
-# installed packages. This allows us to bake matplotlib which takes very long
-# to install into the image.
-python3 -m venv "${ROBOT_VENV}"
 # shellcheck disable=SC1090
-. "${ROBOT_VENV}/bin/activate"
+. ~/lf-env.sh
 
-set -exu
+# Create a virtual environment for robot tests and make sure setuptools & wheel
+# are up-to-date in addition to pip
+lf-activate-venv --python python3 --venv-file "${WORKSPACE}/.robot_venv" \
+    setuptools \
+    wheel
+
+# Save the virtual environment in ROBOT_VENV
+ROBOT_VENV="$(cat "${WORKSPACE}/.robot_venv")"
+echo ROBOT_VENV="${ROBOT_VENV}" >> "${WORKSPACE}/env.properties"
 
-# Make sure pip itself us up-to-date.
-python -m pip install --upgrade pip
+set -exu
 
 echo "Installing Python Requirements"
 cat << 'EOF' > "requirements.txt"
@@ -33,6 +33,7 @@ netaddr
 netifaces
 pyhocon
 requests
+robotframework
 robotframework-httplibrary
 robotframework-requests==0.7.2
 robotframework-selenium2library
@@ -57,14 +58,7 @@ jmespath
 
 # Module for backup-restore support library
 jsonpatch
-
-# odltools for extra debugging
-odltools
 EOF
+
 python -m pip install -r requirements.txt
-# Todo: Workaround needs pinned version of odltool to the latest because of the
-# update in the dependency resolver in pip 21.3.
-# Ref: https://github.com/pypa/pip/issues/9215
-pip install odltools==0.1.34
-odltools -V
 pip freeze