diff options
author | Jenkins <jenkins@review.openstack.org> | 2017-08-03 22:16:09 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2017-08-03 22:16:09 +0000 |
commit | b1439a554fb9b1922e411e6a71f9fed42baf2fee (patch) | |
tree | 04ac99122b4898f0f77a0e71c466c97750bee1ef /zuul/manager | |
parent | 66ed17def4a607372ce8454b12dc50372d23bdd4 (diff) | |
parent | 289f5930facc76a9d5f3328a3c0a11be59eca596 (diff) | |
download | zuul-b1439a554fb9b1922e411e6a71f9fed42baf2fee.tar.gz |
Merge "Ensure ref-updated jobs run with their ref" into feature/zuulv3
Diffstat (limited to 'zuul/manager')
-rw-r--r-- | zuul/manager/__init__.py | 24 | ||||
-rw-r--r-- | zuul/manager/independent.py | 3 |
2 files changed, 15 insertions, 12 deletions
diff --git a/zuul/manager/__init__.py b/zuul/manager/__init__.py index dfb3238a2..8282f86a4 100644 --- a/zuul/manager/__init__.py +++ b/zuul/manager/__init__.py @@ -13,6 +13,7 @@ import logging from zuul import exceptions +from zuul import model class DynamicChangeQueueContextManager(object): @@ -483,20 +484,18 @@ class PipelineManager(object): def scheduleMerge(self, item, files=None, dirs=None): build_set = item.current_build_set - if not hasattr(item.change, 'branch'): - self.log.debug("Change %s does not have an associated branch, " - "not scheduling a merge job for item %s" % - (item.change, item)) - build_set.merge_state = build_set.COMPLETE - return True - self.log.debug("Scheduling merge for item %s (files: %s, dirs: %s)" % (item, files, dirs)) build_set = item.current_build_set build_set.merge_state = build_set.PENDING - self.sched.merger.mergeChanges(build_set.merger_items, - item.current_build_set, files, dirs, - precedence=self.pipeline.precedence) + if isinstance(item.change, model.Change): + self.sched.merger.mergeChanges(build_set.merger_items, + item.current_build_set, files, dirs, + precedence=self.pipeline.precedence) + else: + self.sched.merger.getRepoState(build_set.merger_items, + item.current_build_set, + precedence=self.pipeline.precedence) return False def prepareItem(self, item): @@ -675,12 +674,13 @@ class PipelineManager(object): build_set = event.build_set item = build_set.item build_set.merge_state = build_set.COMPLETE + build_set.repo_state = event.repo_state if event.merged: build_set.commit = event.commit build_set.files.setFiles(event.files) - build_set.repo_state = event.repo_state elif event.updated: - build_set.commit = item.change.newrev + build_set.commit = (item.change.newrev or + '0000000000000000000000000000000000000000') if not build_set.commit: self.log.info("Unable to merge change %s" % item.change) item.setUnableToMerge() diff --git a/zuul/manager/independent.py b/zuul/manager/independent.py index 06c9a01a1..7b0a9f53c 100644 --- a/zuul/manager/independent.py +++ b/zuul/manager/independent.py @@ -44,6 +44,9 @@ class IndependentPipelineManager(PipelineManager): if hasattr(change, 'number'): history = history or [] history.append(change.number) + else: + # Don't enqueue dependencies ahead of a non-change ref. + return True ret = self.checkForChangesNeededBy(change, change_queue) if ret in [True, False]: |