[Git][reproducible-builds/reprotest][master] 5 commits: Add --control-build parameter.

Holger Levsen gitlab at salsa.debian.org
Sat Oct 26 11:28:04 UTC 2019



Holger Levsen pushed to branch master at Reproducible Builds / reprotest


Commits:
52f6eeb2 by Iñaki Malerba at 2019-10-25T21:36:29Z
Add --control-build parameter.

Allow reusing a previous build as control_build to avoid building the
control package if a previous build is available.

Intended to be applied on the Salsa CI Pipeline.
https://salsa.debian.org/salsa-ci-team/pipeline/issues/118

- - - - -
a5479679 by Iñaki Malerba at 2019-10-25T21:58:50Z
Update Salsa CI

- - - - -
eccea35b by Holger Levsen at 2019-10-26T11:18:04Z
Merge branch 'mr-origin-8'

- - - - -
390ce5ef by Holger Levsen at 2019-10-26T11:26:05Z
prepare d/changelog for release

Signed-off-by: Holger Levsen <holger at layer-acht.org>

- - - - -
3827ada2 by Holger Levsen at 2019-10-26T11:26:18Z
release as 0.7.10

Signed-off-by: Holger Levsen <holger at layer-acht.org>

- - - - -


3 changed files:

- .gitlab-ci.yml
- debian/changelog
- reprotest/__init__.py


Changes:

=====================================
.gitlab-ci.yml
=====================================
@@ -1,12 +1,6 @@
-image: registry.salsa.debian.org/salsa-ci-team/ci-image-git-buildpackage:latest
+include:
+  - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/salsa-ci.yml
+  - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/pipeline-jobs.yml
 
-pages:
-  stage: deploy
-  except:
-    - tags
-  artifacts:
-    paths:
-    - public
-  script:
-   - gitlab-ci-git-buildpackage-all
-   - gitlab-ci-aptly
+variables:
+  SALSA_CI_DISABLE_APTLY: 0


=====================================
debian/changelog
=====================================
@@ -1,8 +1,15 @@
-reprotest (0.7.10) UNRELEASED; urgency=medium
+reprotest (0.7.10) unstable; urgency=medium
 
-  * WIP - changelog autogenerated before release.
+  [ Iñaki Malerba ]
+  * Add --control-build parameter.
+  * Update Salsa CI.
 
- -- Holger Levsen <holger at debian.org>  Sun, 15 Sep 2019 18:19:06 +0200
+  [ Holger Levsen ]
+  * setup.py: bump version number for the next release.
+  * Bump standards version to 4.4.1, no changes needed.
+  * Fix typo in previous changelog entry, thanks lintian.
+
+ -- Holger Levsen <holger at debian.org>  Sat, 26 Oct 2019 13:26:10 +0200
 
 reprotest (0.7.9) unstable; urgency=medium
 


=====================================
reprotest/__init__.py
=====================================
@@ -264,10 +264,10 @@ class TestbedArgs(collections.namedtuple('_TestbedArgs',
 
 
 class TestArgs(collections.namedtuple('_Test',
-    'build_command source_root artifact_pattern result_dir source_pattern no_clean_on_error diffoscope_args')):
+    'build_command source_root artifact_pattern result_dir source_pattern no_clean_on_error diffoscope_args control_build')):
     @classmethod
     def of(cls, build_command, source_root, artifact_pattern, result_dir=None,
-                source_pattern=None, no_clean_on_error=False, diffoscope_args=['diffoscope']):
+                source_pattern=None, no_clean_on_error=False, diffoscope_args=['diffoscope'], control_build=None):
         artifact_pattern = shell_syn.sanitize_globs(artifact_pattern)
         logger.debug("artifact_pattern sanitized to: %s", artifact_pattern)
 
@@ -275,7 +275,7 @@ class TestArgs(collections.namedtuple('_Test',
             source_pattern = shell_syn.sanitize_globs(source_pattern)
             logger.debug("source_pattern sanitized to: %s", source_pattern)
         return cls(build_command, source_root, artifact_pattern, result_dir,
-                   source_pattern, no_clean_on_error, diffoscope_args)
+                   source_pattern, no_clean_on_error, diffoscope_args, control_build)
 
     @coroutine
     def corun_builds(self, testbed_args):
@@ -286,7 +286,7 @@ class TestArgs(collections.namedtuple('_Test',
         .>>>     local_dist = proc.send((name, var))
         .>>>     ...
         """
-        build_command, source_root, artifact_pattern, result_dir, source_pattern, no_clean_on_error, diffoscope_args = self
+        build_command, source_root, artifact_pattern, result_dir, source_pattern, no_clean_on_error, diffoscope_args, control_build = self
         virtual_server_args, testbed_pre, testbed_init, testbed_build_pre, host_distro = testbed_args
 
         if not source_root:
@@ -354,13 +354,19 @@ class TestArgs(collections.namedtuple('_Test',
 
 def check(test_args, testbed_args, build_variations=Variations.of(VariationSpec.default())):
     # default argument [] is safe here because we never mutate it.
-    _, _, artifact_pattern, store_dir, _, _, diffoscope_args = test_args
+    _, _, artifact_pattern, store_dir, _, _, diffoscope_args, control_build = test_args
     with empty_or_temp_dir(store_dir, "store_dir") as result_dir:
         assert store_dir == result_dir or store_dir is None
         proc = test_args._replace(result_dir=result_dir).corun_builds(testbed_args)
 
         bnames = ["control"] + ["experiment-%s" % i for i in range(1, len(build_variations))]
-        local_dists = [proc.send(nv) for nv in zip(bnames, build_variations)]
+
+        if control_build:
+            local_dists = [control_build]
+        else:
+            local_dists = [proc.send(("control", build_variations[0]))]
+
+        local_dists += [proc.send(nv) for nv in zip(bnames[1:], build_variations[1:])]
 
         retcodes = collections.OrderedDict(
             (bname, run_diff(local_dists[0], dist, diffoscope_args, store_dir))
@@ -385,7 +391,7 @@ def check(test_args, testbed_args, build_variations=Variations.of(VariationSpec.
 
 def check_auto(test_args, testbed_args, build_variations=Variations.of(VariationSpec.default())):
     # default argument [] is safe here because we never mutate it.
-    _, _, _, store_dir, _, _, diffoscope_args = test_args
+    _, _, _, store_dir, _, _, diffoscope_args, _ = test_args
     with empty_or_temp_dir(store_dir, "store_dir") as result_dir:
         assert store_dir == result_dir or store_dir is None
         proc = test_args._replace(result_dir=result_dir).corun_builds(testbed_args)
@@ -425,7 +431,7 @@ def check_auto(test_args, testbed_args, build_variations=Variations.of(Variation
 
 def check_env(test_args, testbed_args, build_variations=Variations.of(VariationSpec.default())):
     # default argument [] is safe here because we never mutate it.
-    _, _, artifact_pattern, store_dir, _, _, diffoscope_args = test_args
+    _, _, artifact_pattern, store_dir, _, _, diffoscope_args, _ = test_args
     with empty_or_temp_dir(store_dir, "store_dir") as result_dir:
         assert store_dir == result_dir or store_dir is None
         proc = test_args._replace(result_dir=result_dir).corun_builds(testbed_args)
@@ -635,6 +641,9 @@ def cli_parser():
     group3.add_argument('--print-sudoers', action='store_true', default=False,
         help='Print a sudoers file for passwordless operation using the given '
         '--variations, useful for user_group.available, domain_host.use_sudo.')
+    group3.add_argument('--control-build',  default=None,
+        help='Override control build with artifacts located on this path. '
+        'Allows reusing previous build as baseline.')
 
     return parser
 
@@ -816,6 +825,7 @@ def run(argv, dry_run=None):
         diffoscope_args = None
     else:
         diffoscope_args = [diffoscope] + diffoscope_args
+    control_build = parsed_args.control_build
 
     if not artifact_pattern:
         print("No <artifact> to test for differences provided. See --help for options.")
@@ -823,7 +833,7 @@ def run(argv, dry_run=None):
 
     testbed_args = TestbedArgs.of(virtual_server_args, testbed_pre, testbed_init, testbed_build_pre, host_distro)
     test_args = TestArgs.of(build_command, source_root, artifact_pattern, store_dir,
-                            source_pattern, no_clean_on_error, diffoscope_args)
+                            source_pattern, no_clean_on_error, diffoscope_args, control_build)
 
     check_args = (test_args, testbed_args, build_variations)
     if dry_run:



View it on GitLab: https://salsa.debian.org/reproducible-builds/reprotest/compare/fa0e28658a081cb77ef217b269a1ce9d0fd2c076...3827ada286d703a8c066694091111ed7c069555b

-- 
View it on GitLab: https://salsa.debian.org/reproducible-builds/reprotest/compare/fa0e28658a081cb77ef217b269a1ce9d0fd2c076...3827ada286d703a8c066694091111ed7c069555b
You're receiving this email because of your account on salsa.debian.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.reproducible-builds.org/pipermail/rb-commits/attachments/20191026/4a060a58/attachment.htm>


More information about the rb-commits mailing list