Feat: Introduce robot framework under Python3 51/132251/2
authorMatthew Watkins <mwatkins@linuxfoundation.org>
Wed, 16 Nov 2022 00:03:54 +0000 (16:03 -0800)
committerMatthew Watkins <mwatkins@linuxfoundation.org>
Wed, 16 Nov 2022 00:12:10 +0000 (16:12 -0800)
Issue-ID: CIMAN-33
Signed-off-by: Matthew Watkins <mwatkins@linuxfoundation.org>
Change-Id: I96a56cda72f120fe37466ac9edca1edca3b00e37

jjb/integration/include-raw-integration-install-robotframework-py3.sh [new file with mode: 0644]
jjb/integration/include-raw-integration-robotframework.sh [deleted file]
jjb/integration/integration-macros.yaml
jjb/integration/integration-templates-csit.yaml

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 (file)
index 0000000..7294639
--- /dev/null
@@ -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 (file)
index 7f4ed49..0000000
+++ /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 :
index df48a4c..7d831c6 100644 (file)
           !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:
index 95d8fb3..2923291 100644 (file)
@@ -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