Add a release pipeline including tests for Bird2 and VPP
This commit is contained in:
45
tests/rf-run.sh
Executable file
45
tests/rf-run.sh
Executable file
@@ -0,0 +1,45 @@
|
||||
#!/bin/bash
|
||||
# Run Robot Framework tests for vpp-containerlab.
|
||||
# Arguments:
|
||||
# $1 - container runtime: [docker, podman]
|
||||
# $2 - test suite path (directory or .robot file)
|
||||
#
|
||||
# Environment variables:
|
||||
# CLAB_BIN - path to containerlab binary (default: containerlab)
|
||||
# IMAGE - docker image to use in topology (must be set)
|
||||
|
||||
set -e
|
||||
|
||||
if [ -z "${CLAB_BIN}" ]; then
|
||||
CLAB_BIN=containerlab
|
||||
fi
|
||||
|
||||
if [ -z "${IMAGE}" ]; then
|
||||
echo "ERROR: IMAGE environment variable must be set" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
|
||||
mkdir -p "${SCRIPT_DIR}/out"
|
||||
|
||||
source "${SCRIPT_DIR}/.venv/bin/activate"
|
||||
|
||||
function get_logname() {
|
||||
path=$1
|
||||
filename=$(basename "$path")
|
||||
if [[ "$filename" == *.* ]]; then
|
||||
dirname=$(dirname "$path")
|
||||
basename=$(basename "$path" | cut -d. -f1)
|
||||
echo "${dirname##*/}-${basename}"
|
||||
else
|
||||
echo "${filename}"
|
||||
fi
|
||||
}
|
||||
|
||||
robot --consolecolors on -r none \
|
||||
--variable CLAB_BIN:"${CLAB_BIN}" \
|
||||
--variable runtime:"$1" \
|
||||
-l "${SCRIPT_DIR}/out/$(get_logname $2)-$1-log" \
|
||||
--output "${SCRIPT_DIR}/out/$(get_logname $2)-$1-out.xml" \
|
||||
"$2"
|
||||
Reference in New Issue
Block a user