You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
libtcap/t/testrunner

88 lines
2.2 KiB

#!/bin/bash
# This script is used for running the tests with proper arguments
# from within Jenkins
set -e
set -u
set -x
if [ -d /results ] ; then
# Running from Jenkins (RW)
RESULTS="/results"
cd "/code"
else
# Running locally in Docker
RESULTS="./results"
mkdir -p "${RESULTS}"
fi
source_path="$(pwd)"
# jenkins environment vars
if [ -z "${release:-}" ] ; then
release="none"
fi
if [ -z "${tag:-}" ] ; then
tag="none"
fi
if [ -z "${old_version:-}" ] ; then
old_version="latest_tag"
fi
if [ -z "${new_version:-}" ] ; then
new_version="none"
fi
if [ -z "${branch:-}" ] ; then
branch="none"
fi
# only run inside docker environments as root user
if [ -f /.dockerenv ] && [[ "$(id -u)" == "0" ]] ; then
# the environment passed to docker might claim to have
# /var/lib/jenkins for $HOME, but we might be running
# under user root, so ensure the ~/.gitconfig can be found
# at the appropriate place
echo "Fixing HOME for user root (changing from '${HOME}' to '/root')"
export HOME=/root/
fi
if [[ "${release}" =~ ^release-mr ]] ; then
echo "release detected"
short_release=${release%%-update}
short_release=${short_release##release-}
if [[ "${short_release}" =~ ^mr([0-9]+)\.([0-9]+)\.([0-9]+)$ ]] ; then
common_release="mr${BASH_REMATCH[1]}.${BASH_REMATCH[2]}\."
new_version="${tag}"
else
echo "yellow zone release detected"
common_release="${short_release}\."
fi
old_version=$(cd "${source_path}" ; git tag | grep -v jenkins-libtcap | \
grep "${common_release}" | sort -r | head -1)
if [ -z "${old_version}" ] ; then
echo "No tag found for ${common_release}. Using latest_tag"
old_version="latest_tag"
fi
else
if [ "${old_version}" = "latest_tag" ] ; then
if [[ "${branch}" =~ ^mr[0-9]+\.[0-9]+$ ]] ; then
old_version=$(cd "${source_path}" ; git tag | grep -v jenkins-libtcap | \
grep "${branch}\." | sort -r | head -1)
fi
fi
if [ "$new_version" = "none" ] ; then
echo "New version is unset, defaulting to master"
new_version=master
fi
fi
if [ "${old_version}" = "latest_tag" ] ; then
old_version=$(cd "${source_path}" ; git tag | grep -v jenkins-libtcap |\
sort -r | head -1)
fi
RESULTS=${RESULTS} ./t/abi-check.sh "$old_version" "$new_version"