summaryrefslogtreecommitdiffstats
path: root/jjb/integration
diff options
context:
space:
mode:
authorMatthew Watkins <mwatkins@linuxfoundation.org>2022-11-15 16:03:54 -0800
committerMatthew Watkins <mwatkins@linuxfoundation.org>2022-11-15 16:12:10 -0800
commit1e55439100338508226bc1ae68ae05b513953d07 (patch)
treeeeae097422879c1c5c88e756054873a27badec0d /jjb/integration
parent71b89f8c22b45b0a5c650c5fac5d644c28327cb2 (diff)
Feat: Introduce robot framework under Python3
Issue-ID: CIMAN-33 Signed-off-by: Matthew Watkins <mwatkins@linuxfoundation.org> Change-Id: I96a56cda72f120fe37466ac9edca1edca3b00e37
Diffstat (limited to 'jjb/integration')
-rw-r--r--jjb/integration/include-raw-integration-install-robotframework-py3.sh61
-rw-r--r--jjb/integration/include-raw-integration-robotframework.sh34
-rw-r--r--jjb/integration/integration-macros.yaml7
-rw-r--r--jjb/integration/integration-templates-csit.yaml1
4 files changed, 69 insertions, 34 deletions
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
@@ -39,6 +39,13 @@
- 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:
- shell: "${WORKSPACE}/run-csit.sh ${TESTPLAN} ${TESTOPTIONS}"
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