← Back to team overview

canonical-ubuntu-qa team mailing list archive

[Merge] autopkgtest-cloud:esm-specials into autopkgtest-cloud:master

 

Brian Murray has proposed merging autopkgtest-cloud:esm-specials into autopkgtest-cloud:master.

Requested reviews:
  Canonical's Ubuntu QA (canonical-ubuntu-qa)

For more details, see:
https://code.launchpad.net/~ubuntu-release/autopkgtest-cloud/+git/autopkgtest-cloud/+merge/458030

This adds support for a package config file which contains a list of packages and arches whose tests should run for ESM releases even though those arches are not supported in ESM. This is useful for packages like ubuntu-advantage-tools which end up following the regular SRU process even though the release is out of standard support.
-- 
Your team Canonical's Ubuntu QA is requested to review the proposed merge of autopkgtest-cloud:esm-specials into autopkgtest-cloud:master.
diff --git a/charms/focal/autopkgtest-cloud-worker/autopkgtest-cloud/worker/worker b/charms/focal/autopkgtest-cloud-worker/autopkgtest-cloud/worker/worker
index fbd5383..ffae8f0 100755
--- a/charms/focal/autopkgtest-cloud-worker/autopkgtest-cloud/worker/worker
+++ b/charms/focal/autopkgtest-cloud-worker/autopkgtest-cloud/worker/worker
@@ -70,6 +70,7 @@ hostname = socket.gethostname()
 big_packages = set()
 long_tests = set()
 never_run = set()
+esm_specials = set()
 
 ARCH_RELEASE_ALLOW_MAPPING = {
     "trusty": ["amd64", "i386"],
@@ -291,13 +292,14 @@ def read_per_package_configs(cfg):
                     out.add(f"{package}/{arch}/{release}")
             return out
 
-    global big_packages, long_tests, never_run
+    global big_packages, long_tests, never_run, esm_specials
 
     dir = cfg.get("autopkgtest", "per_package_config_dir").strip()
 
     big_packages = read_per_package_file(os.path.join(dir, "big_packages"))
     long_tests = read_per_package_file(os.path.join(dir, "long_tests"))
     never_run = read_per_package_file(os.path.join(dir, "never_run"))
+    esm_specials = read_per_package_file(os.path.join(dir, "esm_specials"))
 
 
 def request_matches_per_package(package, arch, release, s):
@@ -655,6 +657,9 @@ def request(msg):
         if (
             release.lower() in ARCH_RELEASE_ALLOW_MAPPING
             and architecture not in ARCH_RELEASE_ALLOW_MAPPING[release.lower()]
+            and not request_matches_per_package(
+                pkgname, architecture, release, esm_specials
+            )
         ):
             os.makedirs(out_dir)
             # these will be written later on

Follow ups