From 1e55439100338508226bc1ae68ae05b513953d07 Mon Sep 17 00:00:00 2001 From: Matthew Watkins Date: Tue, 15 Nov 2022 16:03:54 -0800 Subject: [PATCH] Feat: Introduce robot framework under Python3 Issue-ID: CIMAN-33 Signed-off-by: Matthew Watkins Change-Id: I96a56cda72f120fe37466ac9edca1edca3b00e37 --- ...e-raw-integration-install-robotframework-py3.sh | 61 ++++++++++++++++++++++ .../include-raw-integration-robotframework.sh | 34 ------------ jjb/integration/integration-macros.yaml | 7 +++ jjb/integration/integration-templates-csit.yaml | 1 + 4 files changed, 69 insertions(+), 34 deletions(-) create mode 100644 jjb/integration/include-raw-integration-install-robotframework-py3.sh delete mode 100644 jjb/integration/include-raw-integration-robotframework.sh diff --git a/jjb/integration/include-raw-integration-install-robotframework-py3.sh b/jjb/integration/include-raw-integration-install-robotframework-py3.sh new file mode 100644 index 000000000..729463918 --- /dev/null +++ b/jjb/integration/include-raw-integration-install-robotframework-py3.sh @@ -0,0 +1,61 @@ +#!/bin/bash -l +# SPDX-License-Identifier: EPL-1.0 +############################################################################## +# Copyright (c) 2022 The Linux Foundation and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Eclipse Public License v1.0 +# which accompanies this distribution, and is available at +# http://www.eclipse.org/legal/epl-v10.html +############################################################################## +# vim: sw=4 ts=4 sts=4 et ft=sh : + +set -eu pipefail + +# shellcheck disable=SC1090 +. ~/lf-env.sh + +# 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}/.robot3_venv" \ + setuptools \ + wheel + +# Save the virtual environment in ROBOT_VENV +ROBOT3_VENV="$(cat "${WORKSPACE}/.robot3_venv")" +echo ROBOT3_VENV="${ROBOT3_VENV}" >> "${WORKSPACE}/env.properties" + +set -exu + +echo "Installing Python Requirements" +cat << 'EOF' > "requirements.txt" +docker-py +ipaddr +netaddr +netifaces +pyhocon +requests +robotframework +robotframework-httplibrary +robotframework-requests==0.9.3 +robotframework-selenium2library +robotframework-sshlibrary==3.8.0 +scapy +# Module jsonpath is needed by current AAA idmlite suite. +jsonpath-rw +# Modules for longevity framework robot library +elasticsearch +elasticsearch-dsl +# Module for pyangbind used by lispflowmapping project +pyangbind +# Module for iso8601 datetime format +isodate +# Module for TemplatedRequests.robot library +jmespath +# Module for backup-restore support library +jsonpatch +EOF + +python -m pip install -r requirements.txt +pip freeze +python -m robot.run --version || : diff --git a/jjb/integration/include-raw-integration-robotframework.sh b/jjb/integration/include-raw-integration-robotframework.sh deleted file mode 100644 index 7f4ed49f3..000000000 --- a/jjb/integration/include-raw-integration-robotframework.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/bash - -############################################################################## -# Copyright (c) 2016 The Linux Foundation and others. -############################################################################## - -ROBOT3_VENV=$(mktemp -d --suffix=robot3_venv) -echo "ROBOT3_VENV=${ROBOT3_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. -virtualenv --system-site-packages "${ROBOT3_VENV}" -source "${ROBOT3_VENV}/bin/activate" - -set -exu - -# Make sure pip itself us up-to-date. -pip3 install --upgrade pip - -pip3 install --no-binary pycparser cffi setuptools-rust -pip3 install pyOpenSSL docker-py importlib requests scapy netifaces netaddr ipaddr simplejson demjson -pip3 install robotframework-httplibrary robotframework-requests robotframework-sshlibrary robotframework-selenium2library robotframework-xvfb - -pip3 install xvfbwrapper -pip3 install PyVirtualDisplay - -# Print installed versions. -pip3 freeze - -# Check robot module is available and working -python3 -m robot.run --version - -# vim: sw=4 ts=4 sts=4 et ft=sh : diff --git a/jjb/integration/integration-macros.yaml b/jjb/integration/integration-macros.yaml index df48a4cd1..7d831c673 100644 --- a/jjb/integration/integration-macros.yaml +++ b/jjb/integration/integration-macros.yaml @@ -38,6 +38,13 @@ !include-raw: - include-raw-integration-install-robotframework.sh +- builder: + name: integration-install-robotframework-py3 + builders: + - shell: + !include-raw: + - include-raw-integration-install-robotframework-py3.sh + - builder: name: integration-run-test builders: diff --git a/jjb/integration/integration-templates-csit.yaml b/jjb/integration/integration-templates-csit.yaml index 95d8fb36d..292329179 100644 --- a/jjb/integration/integration-templates-csit.yaml +++ b/jjb/integration/integration-templates-csit.yaml @@ -48,6 +48,7 @@ - lf-update-java-alternatives: java-version: '{java-version}' - integration-install-robotframework + - integration-install-robotframework-py3 - inject: properties-file: 'env.properties' - integration-run-test -- 2.16.6