87 lines
2.2 KiB
Bash
Executable file
87 lines
2.2 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
usage () {
|
|
echo "Usage: $PROGRAM_NAME [-h] [-l|-r] [fedora-version ...]"
|
|
echo ' -h ... This short help'
|
|
echo ' -l ... Run in local virtual machines (this is the default)'
|
|
echo ' -r ... Run remotely in the testing-farm'
|
|
echo ' fedora-version ... fedora release number or "rawhide". If not given'
|
|
echo ' then all active releases and Rawhide will be used.'
|
|
echo 'Note: Only the x86_64 architecture will be used.'
|
|
}
|
|
|
|
PROGRAM_NAME=${0##*/}
|
|
LOCAL=true
|
|
FEDORAS=''
|
|
|
|
while getopts ':hlr' OPTION; do
|
|
case "$OPTION" in
|
|
'?')
|
|
echo "ERROR: Invalid option: -$OPTARG" >&2
|
|
usage
|
|
exit 1
|
|
;;
|
|
h)
|
|
usage
|
|
exit 0
|
|
;;
|
|
l)
|
|
LOCAL=true
|
|
;;
|
|
r)
|
|
LOCAL=false
|
|
;;
|
|
-)
|
|
break
|
|
;;
|
|
esac
|
|
done
|
|
shift $(( $OPTIND - 1 ))
|
|
FEDORAS="$@"
|
|
|
|
for i in $FEDORAS; do
|
|
if [[ "$i" =~ ^[1-9][0-9]*$ ]] || [[ "$i" = rawhide ]]; then
|
|
: # looks good
|
|
else
|
|
echo "ERROR: '$i' doesn't look like a Fedora version" >&2
|
|
usage
|
|
exit 1
|
|
fi
|
|
done
|
|
|
|
set -o errexit
|
|
set -o pipefail
|
|
|
|
if [[ -z "$FEDORAS" ]]; then
|
|
FEDORAS=$(fedpkg releases-info -f | tr ' ' \\012 | sed -e 's|^f||' | sort -rV | tr \\012 ' ' | tr -d '[:cntrl:]')
|
|
FEDORAS="rawhide $FEDORAS"
|
|
fi
|
|
|
|
for i in $FEDORAS; do
|
|
|
|
if [[ "$i" = rawhide ]]; then
|
|
CONTEXT_DISTRO=fedora-rawhide
|
|
LOCAL_PROVISION_DISTRO=fedora-rawhide
|
|
REMOTE_PROVISION_DISTRO=Fedora-Rawhide-Nightly
|
|
else
|
|
CONTEXT_DISTRO=fedora-$i
|
|
LOCAL_PROVISION_DISTRO=fedora-$i
|
|
REMOTE_PROVISION_DISTRO=Fedora-${i}-Updated
|
|
fi
|
|
|
|
if $LOCAL; then
|
|
CMD="tmt -c distro=$CONTEXT_DISTRO -c arch=x86_64 run -arv provision -h virtual -i $LOCAL_PROVISION_DISTRO -m 4096 -a x86_64 plans -n all_tests"
|
|
else
|
|
CMD="testing-farm request --arch=x86_64 --compose=$REMOTE_PROVISION_DISTRO -c distro=$CONTEXT_DISTRO -c arch=x86_64 --plan=all_tests"
|
|
fi
|
|
|
|
DECORATION=$(echo "$CMD" | sed 's|.|#|g')
|
|
|
|
echo
|
|
echo "##${DECORATION}##"
|
|
echo "# $CMD #"
|
|
echo "##${DECORATION}##"
|
|
echo
|
|
|
|
$CMD || true
|
|
done
|