mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2025-12-30 16:40:13 +01:00
contrib/rh-bkr: add jenkins.sh script to schedule beaker job from CI/Jenkins
Also support new environment variables or fix handling so that they become usable as parameters from Jenkins
This commit is contained in:
parent
2b19146b6a
commit
517e901b98
2 changed files with 79 additions and 7 deletions
|
|
@ -17,7 +17,6 @@ import urllib
|
|||
import glob
|
||||
import uuid
|
||||
import nitrate
|
||||
import sets
|
||||
|
||||
|
||||
devnull = open(os.devnull, 'w')
|
||||
|
|
@ -53,7 +52,7 @@ def is_sequence(arg):
|
|||
hasattr(arg, "__iter__"))
|
||||
|
||||
def seq_unique(seq):
|
||||
s = sets.Set()
|
||||
s = set()
|
||||
for i in seq:
|
||||
if i not in s:
|
||||
s.add(i)
|
||||
|
|
@ -592,7 +591,8 @@ class CmdSubmit(CmdBase):
|
|||
self.parser.add_argument('--job', '-j', help='beaker xml job file')
|
||||
self.parser.add_argument('--job-default', '-J', action='store_true', help='Use default job file. Only has effect if --job is not specified')
|
||||
self.parser.add_argument('--verbose', '-v', action='count', help='print more information')
|
||||
self.parser.add_argument('--reservesys', '-R', action='store_true', help='add task /distribution/reservesys')
|
||||
self.parser.add_argument('--reservesys', '-R', action='store_true', help='add task /distribution/reservesys (same as --reservesys-time=86400')
|
||||
self.parser.add_argument('--reservesys-time', help='add task /distribution/reservesys with a duration in second')
|
||||
self.parser.add_argument('--disable-selinux', action='store_true', help='add kernel option selinux=0 to disable AVC checks ($SELINUX_DISABLED)')
|
||||
self.parser.add_argument('--var', '-V', action='append', help='Set template replacements (alternative to setting via environment variables')
|
||||
self.parser.add_argument('--hosttype', help='The host type. Known values are \'veth\', \'dcb\', \'infiniband\', and \'wifi\'. Anything else uses the default. This determines the $HOSTREQUIRES template')
|
||||
|
|
@ -844,13 +844,18 @@ class CmdSubmit(CmdBase):
|
|||
v = self._get_var('RESERVESYS')
|
||||
if v is not None:
|
||||
return v
|
||||
if not self.options.reservesys:
|
||||
duration = self._get_var('RESERVE')
|
||||
if self.options.reservesys:
|
||||
duration = '86400'
|
||||
if self.options.reservesys_time:
|
||||
duration = self.options.reservesys_time
|
||||
if not duration:
|
||||
return ""
|
||||
return '<reservesys duration="86400"/>'
|
||||
return '<reservesys duration="%s"/>' % (duration)
|
||||
|
||||
def _get_var_for_ARCH(self, key):
|
||||
v = self._get_var('ARCH')
|
||||
if v is not None:
|
||||
if v:
|
||||
return v
|
||||
v = self._get_var('DISTRO_ARCH')
|
||||
if v is not None:
|
||||
|
|
@ -861,7 +866,7 @@ class CmdSubmit(CmdBase):
|
|||
v = self._get_var('SELINUX_DISABLED')
|
||||
if v is not None:
|
||||
return v
|
||||
if self.options.disable_selinux:
|
||||
if self.options.disable_selinux or self._get_var('SELINUX') == 'false':
|
||||
return 'selinux=0'
|
||||
return ''
|
||||
|
||||
|
|
|
|||
67
contrib/rh-bkr/jenkins.sh
Executable file
67
contrib/rh-bkr/jenkins.sh
Executable file
|
|
@ -0,0 +1,67 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
set -x
|
||||
|
||||
DIR="$(dirname "$(readlink -f "$0")")"
|
||||
|
||||
# We allow and expect the following environment variable
|
||||
# set by jenkins:
|
||||
# ARCH= // one of x86_64, ppc64, ppc64le, s390x, aarch64
|
||||
# RPM_URLS= // space separated list of --rpm arguments
|
||||
# BUILD_ID= // if non-empty, build NetworkManager from source and install it
|
||||
# RESERVE= // number of seconds to reserve the system (or empty)
|
||||
# SELINUX= // if set to 'false', boot with selinux=0
|
||||
# PROFILE=
|
||||
# HOSTYPE=
|
||||
# TESTS=
|
||||
# ARGS=
|
||||
|
||||
RPM=()
|
||||
for r in $RPM_URLS; do
|
||||
RPM+=(--rpm "$r")
|
||||
done
|
||||
|
||||
if [ -n "$BUILD_ID" ]; then
|
||||
BUILD_ID=(--build-id "$BUILD_ID")
|
||||
else
|
||||
BUILD_ID=()
|
||||
fi
|
||||
|
||||
if [ -n "$PROFILE" -a "$PROFILE" != "--" ]; then
|
||||
PROFILE=(--profile "$PROFILE")
|
||||
else
|
||||
PROFILE=()
|
||||
fi
|
||||
|
||||
if [ -n "$HOSTTYPE" -a "$HOSTTYPE" != "--" ]; then
|
||||
HOSTTYPE=(--hosttype "$HOSTTYPE")
|
||||
else
|
||||
HOSTTYPE=()
|
||||
fi
|
||||
|
||||
_ARGS=()
|
||||
for r in $ARGS; do
|
||||
_ARGS+=("$r")
|
||||
done
|
||||
|
||||
export WHITEBOARD="$BUILD_URL"
|
||||
|
||||
python -u \
|
||||
"$DIR"/bkr.py submit -v -v \
|
||||
-J \
|
||||
--var "WHITEBOARD=Test NetworkManager $BUILD_URL" \
|
||||
"${RPM[@]}" \
|
||||
"${BUILD_ID[@]}" \
|
||||
--var "ARCH=$ARCH" \
|
||||
--var "RESERVE=$RESERVE" \
|
||||
--var "SELINUX=$SELINUX" \
|
||||
"${PROFILE[@]}" \
|
||||
"${HOSTTYPE[@]}" \
|
||||
--var "TESTS=$TESTS" \
|
||||
--bkr-write-job-id 'beaker_job_id' \
|
||||
--bkr-wait-completion \
|
||||
--bkr-job-results 'results.txt' \
|
||||
--no-test \
|
||||
"${_ARGS[@]}"
|
||||
|
||||
Loading…
Add table
Reference in a new issue