#!/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"