mirror of
https://git.launchpad.net/~ubuntu-release/britney/+git/britney2-ubuntu
synced 2025-03-12 11:51:09 +00:00
Implement 'run_boottest' flag, similarly to 'run_autopkgset'.
This commit is contained in:
commit
8d0cc0f292
@ -62,6 +62,10 @@ SMOOTH_UPDATES = badgers
|
||||
|
||||
REMOVE_OBSOLETE = no
|
||||
|
||||
ADT_ENABLE = yes
|
||||
ADT_ENABLE = no
|
||||
ADT_DEBUG = no
|
||||
ADT_ARCHES = amd64 i386
|
||||
|
||||
BOOTTEST_ARCHES = armhf
|
||||
BOOTTEST_ENABLE = yes
|
||||
BOOTTEST_DEBUG = yes
|
||||
|
19
britney.py
19
britney.py
@ -1368,6 +1368,7 @@ class Britney(object):
|
||||
# the starting point is that we will update the candidate and run autopkgtests
|
||||
update_candidate = True
|
||||
run_autopkgtest = True
|
||||
run_boottest = True
|
||||
|
||||
# if the version in unstable is older, then stop here with a warning in the excuse and return False
|
||||
if source_t and apt_pkg.version_compare(source_u[VERSION], source_t[VERSION]) < 0:
|
||||
@ -1381,6 +1382,7 @@ class Britney(object):
|
||||
excuse.addhtml("%s source package doesn't exist" % (src))
|
||||
update_candidate = False
|
||||
run_autopkgtest = False
|
||||
run_boottest = False
|
||||
|
||||
# retrieve the urgency for the upload, ignoring it if this is a NEW package (not present in testing)
|
||||
urgency = self.urgencies.get(src, self.options.default_urgency)
|
||||
@ -1399,6 +1401,7 @@ class Britney(object):
|
||||
excuse.addreason("remove")
|
||||
update_candidate = False
|
||||
run_autopkgtest = False
|
||||
run_boottest = False
|
||||
|
||||
# check if there is a `block' or `block-udeb' hint for this package, or a `block-all source' hint
|
||||
blocked = {}
|
||||
@ -1478,6 +1481,7 @@ class Britney(object):
|
||||
else:
|
||||
update_candidate = False
|
||||
run_autopkgtest = False
|
||||
run_boottest = False
|
||||
excuse.addreason("age")
|
||||
|
||||
if suite in ['pu', 'tpu']:
|
||||
@ -1513,6 +1517,8 @@ class Britney(object):
|
||||
update_candidate = False
|
||||
if arch in self.options.adt_arches.split():
|
||||
run_autopkgtest = False
|
||||
if arch in self.options.boottest_arches.split():
|
||||
run_boottest = False
|
||||
excuse.addreason("arch")
|
||||
excuse.addreason("arch-%s" % arch)
|
||||
excuse.addreason("build-arch")
|
||||
@ -1555,6 +1561,8 @@ class Britney(object):
|
||||
update_candidate = False
|
||||
if arch in self.options.adt_arches.split():
|
||||
run_autopkgtest = False
|
||||
if arch in self.options.boottest_arches.split():
|
||||
run_boottest = False
|
||||
|
||||
# if there are out-of-date packages, warn about them in the excuse and set update_candidate
|
||||
# to False to block the update; if the architecture where the package is out-of-date is
|
||||
@ -1581,6 +1589,8 @@ class Britney(object):
|
||||
update_candidate = False
|
||||
if arch in self.options.adt_arches.split():
|
||||
run_autopkgtest = False
|
||||
if arch in self.options.boottest_arches.split():
|
||||
run_boottest = False
|
||||
excuse.addreason("arch")
|
||||
excuse.addreason("arch-%s" % arch)
|
||||
if uptodatebins:
|
||||
@ -1598,11 +1608,13 @@ class Britney(object):
|
||||
excuse.addreason("no-binaries")
|
||||
update_candidate = False
|
||||
run_autopkgtest = False
|
||||
run_boottest = False
|
||||
elif not built_anywhere:
|
||||
excuse.addhtml("%s has no up-to-date binaries on any arch" % src)
|
||||
excuse.addreason("no-binaries")
|
||||
update_candidate = False
|
||||
run_autopkgtest = False
|
||||
run_boottest = False
|
||||
|
||||
# if the suite is unstable, then we have to check the release-critical bug lists before
|
||||
# updating testing; if the unstable package has RC bugs that do not apply to the testing
|
||||
@ -1635,6 +1647,7 @@ class Britney(object):
|
||||
["<a href=\"http://bugs.debian.org/%s\">#%s</a>" % (urllib.quote(a), a) for a in new_bugs])))
|
||||
update_candidate = False
|
||||
run_autopkgtest = False
|
||||
run_boottest = False
|
||||
excuse.addreason("buggy")
|
||||
|
||||
if len(old_bugs) > 0:
|
||||
@ -1653,6 +1666,7 @@ class Britney(object):
|
||||
excuse.force()
|
||||
update_candidate = True
|
||||
run_autopkgtest = True
|
||||
run_boottest = True
|
||||
|
||||
# if the package can be updated, it is a valid candidate
|
||||
if update_candidate:
|
||||
@ -1662,6 +1676,7 @@ class Britney(object):
|
||||
# TODO
|
||||
excuse.addhtml("Not considered")
|
||||
excuse.run_autopkgtest = run_autopkgtest
|
||||
excuse.run_boottest = run_boottest
|
||||
|
||||
self.excuses.append(excuse)
|
||||
return update_candidate
|
||||
@ -1895,7 +1910,7 @@ class Britney(object):
|
||||
debug=boottest_debug)
|
||||
for excuse in self.excuses:
|
||||
# Skip already invalid excuses.
|
||||
if not excuse.is_valid:
|
||||
if not excuse.run_boottest:
|
||||
continue
|
||||
# Also skip removals, binary-only candidates, proposed-updates
|
||||
# and unknown versions.
|
||||
@ -1927,7 +1942,7 @@ class Britney(object):
|
||||
forces[0].user))
|
||||
status = 'PASS'
|
||||
statuses.add(status)
|
||||
# No boottest attemps requested, it's not relevant in this
|
||||
# No boottest attempts requested, it's not relevant in this
|
||||
# context, rely on other checks to judge promotion.
|
||||
if not statuses:
|
||||
continue
|
||||
|
@ -1,70 +0,0 @@
|
||||
# Configuration file for britney
|
||||
|
||||
# Paths for control files
|
||||
TESTING = data/%(SERIES)
|
||||
UNSTABLE = data/%(SERIES)-proposed
|
||||
PARTIAL_UNSTABLE = yes
|
||||
|
||||
# Output
|
||||
NONINST_STATUS = data/%(SERIES)/non-installable-status
|
||||
EXCUSES_OUTPUT = output/%(SERIES)/excuses.html
|
||||
EXCUSES_YAML_OUTPUT = output/%(SERIES)/excuses.yaml
|
||||
UPGRADE_OUTPUT = output/%(SERIES)/output.txt
|
||||
HEIDI_OUTPUT = output/%(SERIES)/HeidiResult
|
||||
|
||||
# List of release architectures
|
||||
ARCHITECTURES = amd64 arm64 armhf i386 powerpc ppc64el
|
||||
|
||||
# if you're not in this list, arch: all packages are allowed to break on you
|
||||
NOBREAKALL_ARCHES = amd64
|
||||
|
||||
# if you're in this list, your packages may not stay in sync with the source
|
||||
OUTOFSYNC_ARCHES =
|
||||
|
||||
# if you're in this list, your uninstallability count may increase
|
||||
BREAK_ARCHES =
|
||||
|
||||
# if you're in this list, you are a new architecture
|
||||
NEW_ARCHES =
|
||||
|
||||
# priorities and delays
|
||||
MINDAYS_LOW = 0
|
||||
MINDAYS_MEDIUM = 0
|
||||
MINDAYS_HIGH = 0
|
||||
MINDAYS_CRITICAL = 0
|
||||
MINDAYS_EMERGENCY = 0
|
||||
DEFAULT_URGENCY = medium
|
||||
|
||||
# hint permissions
|
||||
HINTS_CJWATSON = ALL
|
||||
HINTS_ADCONRAD = ALL
|
||||
HINTS_KITTERMAN = ALL
|
||||
HINTS_LANEY = ALL
|
||||
HINTS_JRIDDELL = ALL
|
||||
HINTS_STEFANOR = ALL
|
||||
HINTS_STGRABER = ALL
|
||||
HINTS_VORLON = ALL
|
||||
HINTS_FREEZE = block block-all
|
||||
|
||||
HINTS_UBUNTU-TOUCH/DIDROCKS = block unblock
|
||||
HINTS_UBUNTU-TOUCH/EV = block unblock
|
||||
HINTS_UBUNTU-TOUCH/KEN-VANDINE = block unblock
|
||||
HINTS_UBUNTU-TOUCH/LOOL = block unblock
|
||||
HINTS_UBUNTU-TOUCH/MATHIEU-TL = block unblock
|
||||
HINTS_UBUNTU-TOUCH/OGRA = block unblock
|
||||
|
||||
# support for old libraries in testing (smooth update)
|
||||
# use ALL to enable smooth updates for all the sections
|
||||
#
|
||||
# naming a non-existent section will effectively disable new smooth
|
||||
# updates but still allow removals to occur
|
||||
SMOOTH_UPDATES = badgers
|
||||
|
||||
REMOVE_OBSOLETE = no
|
||||
|
||||
ADT_ENABLE = no
|
||||
ADT_DEBUG = no
|
||||
ADT_ARCHES = amd64 i386
|
||||
|
||||
BOOTTEST_ENABLE = yes
|
||||
BOOTTEST_DEBUG = yes
|
@ -92,7 +92,15 @@ class TestBoottestEnd2End(TestBase):
|
||||
def setUp(self):
|
||||
super(TestBoottestEnd2End, self).setUp()
|
||||
self.britney_conf = os.path.join(
|
||||
PROJECT_DIR, 'britney_boottest.conf')
|
||||
PROJECT_DIR, 'britney.conf')
|
||||
old_config = None
|
||||
with open(self.britney_conf, 'r') as fp:
|
||||
self.old_config = fp.read()
|
||||
config = self.old_config.replace(
|
||||
'ADT_ENABLE = yes', 'ADT_ENABLE = no')
|
||||
with open(self.britney_conf, 'w') as fp:
|
||||
fp.write(config)
|
||||
|
||||
self.data.add('libc6', False, {'Architecture': 'armhf'}),
|
||||
|
||||
self.data.add(
|
||||
@ -110,6 +118,11 @@ class TestBoottestEnd2End(TestBase):
|
||||
'pyqt5:armhf 1.0',
|
||||
])
|
||||
|
||||
def tearDown(self):
|
||||
""" Replace the old_config. """
|
||||
with open(self.britney_conf, 'w') as fp:
|
||||
fp.write(self.old_config)
|
||||
|
||||
def create_manifest(self, lines):
|
||||
"""Create a manifest for this britney run context."""
|
||||
path = os.path.join(
|
||||
|
Loading…
x
Reference in New Issue
Block a user