mirror of https://github.com/dynup/kpatch
86 lines
1.8 KiB
Bash
Executable File
86 lines
1.8 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
KPATCH_SLOW=0
|
|
KPATCH_GIT=${KPATCH_GIT:-https://github.com/dynup/kpatch.git}
|
|
KPATCH_REV=${KPATCH_REV:-HEAD}
|
|
LOGDIR="/vagrant/logs"
|
|
|
|
usage()
|
|
{
|
|
echo "usage: $(basename "${0}") [options]" >&2
|
|
echo "-h, --help This message" >&2
|
|
echo "-s, --slow Run all of the tests" >&2
|
|
echo "-g, --git Git url to clone from" >&2
|
|
echo "-r, --revision Revision to use (HEAD by default)" >&2
|
|
}
|
|
|
|
options="$(getopt -o "shg:r:" -l "slow,help,git:,revision:" -- "$@")" || "getopt failed"
|
|
|
|
eval set -- "${options}"
|
|
|
|
while [[ $# -gt 0 ]]; do
|
|
case "$1" in
|
|
-s|--slow)
|
|
KPATCH_SLOW=1
|
|
shift
|
|
;;
|
|
-g|--git)
|
|
KPATCH_GIT="${2}"
|
|
shift 2
|
|
;;
|
|
-r|--revision)
|
|
KPATCH_REV="${2}"
|
|
shift 2
|
|
;;
|
|
-h|--help)
|
|
usage
|
|
exit 0
|
|
;;
|
|
--)
|
|
shift
|
|
break
|
|
;;
|
|
esac
|
|
done
|
|
|
|
git clone "${KPATCH_GIT}" || exit 1
|
|
|
|
cd kpatch || exit 1
|
|
|
|
git fetch origin +refs/pull/*:refs/pull/*
|
|
git reset --hard "${KPATCH_REV}" || exit 1
|
|
|
|
# shellcheck disable=SC1091
|
|
source test/integration/lib.sh
|
|
|
|
kpatch_dependencies
|
|
kpatch_separate_disk_cache /dev/vdb /mnt/build
|
|
kpatch_set_ccache_max_size 10G
|
|
|
|
# Check if we have predownloaded sources and move them to ~/.kpatch dir which
|
|
# is a symlink to a dir on a separate (bigger) volume, suitable for building.
|
|
if [[ -d "${HOME}/src" && -f "${HOME}/src/version" ]]; then
|
|
cp "${HOME}/src/version" "${HOME}/.kpatch/"
|
|
mv "${HOME}/src" "${HOME}/.kpatch/"
|
|
fi
|
|
|
|
# shellcheck disable=SC1091
|
|
source /etc/os-release
|
|
|
|
if [[ "${NAME}" == "Fedora" ]] && [[ "${VERSION_ID}" -lt 30 ]]; then
|
|
export BUILDMOD=yes
|
|
fi
|
|
|
|
if [ ${KPATCH_SLOW} -eq 1 ]; then
|
|
make integration-slow 2>&1
|
|
else
|
|
make integration-quick 2>&1
|
|
fi
|
|
|
|
rc=${PIPESTATUS[0]}
|
|
rm -rf "${LOGDIR}"
|
|
mkdir -p "${LOGDIR}"
|
|
cp ./test/integration/*.log "${LOGDIR}"
|
|
|
|
exit "${rc}"
|