zuul/zuul
James E. Blair 1edfd97943 Fix implied branch matchers and tags
Adding an implied branch matcher to jobs on in-repo project defs
works great when an item *has* a branch.  But some items, such as
tags, don't.  With recent changes, it is now impossible for a
project to add a job in-repo that runs in a tag pipeline.

To correct this, we need to drop some of the optimizations which
assumed we could match the implied branch against existing branch
matchers, and instead, when adding a job in-repo, simply add a new
kind of branch matcher, an ImpliedBranchMatcher, that is evaluated
in a boolean 'and' with any existing branch matchers.

The ImpliedBranchMatcher only fails if the item has a branch, and
the branch doesn't match.  If the item doesn't have a branch, it
always succeeds.

This means that when a project adds a job to a tag pipeline in-repo,
it will most likely only have the ImpliedBranchMatcher, which will
simply succeed.

It also means that the multiple project configurations present in
the project's multiple branches can all add jobs to tag pipelines,
and so to remove such a job, changes may need to be made to all
branches of a project.  However, there's not much that can be done
about that at the moment.

Change-Id: Id51ddfce7ef0a6d5e3273da784e407ac72a669db
2017-12-01 15:54:24 -08:00
..
ansible Do late decoding of log stream buffer 2017-10-27 07:59:32 +02:00
cmd Fix scheduler reconfiguration handler 2017-12-01 11:47:57 -08:00
connection Fix for pep8 E722 and ignore E741 2017-10-23 10:50:32 -07:00
driver Merge "Prime github app install map on connection load" into feature/zuulv3 2017-11-03 21:50:50 +00:00
execution_context Add wrapper driver execution context 2017-08-18 16:35:12 -07:00
executor Merge "Don't set job var override_checkout if null" into feature/zuulv3 2017-12-01 20:16:51 +00:00
lib Switch to threading model of socketserver 2017-11-03 10:45:15 -04:00
manager Fix implied branch matchers and tags 2017-12-01 15:54:24 -08:00
merger Add support for override-checkout, deprecate override-branch 2017-10-30 15:00:11 -07:00
reporter Return executor errors to user 2017-07-18 14:19:11 -07:00
source Optionally limit github to protected branches 2017-08-03 11:50:26 +02:00
sphinx Add zuul-sphinx as a requirement 2017-08-07 14:56:17 -07:00
trigger Remove use of six library 2017-06-19 10:34:57 -05:00
web web: add Cache-Control to static files 2017-11-29 06:22:27 +00:00
__init__.py Initial commit. 2012-05-29 14:49:32 -07:00
change_matcher.py Fix implied branch matchers and tags 2017-12-01 15:54:24 -08:00
configloader.py Add support for override-checkout, deprecate override-branch 2017-10-30 15:00:11 -07:00
exceptions.py Support post jobs by supporting rev checkout 2016-07-12 12:51:51 +10:00
model.py Fix implied branch matchers and tags 2017-12-01 15:54:24 -08:00
nodepool.py Only autohold failed builds 2017-10-23 12:53:01 -07:00
rpcclient.py New client command for printing autohold requests 2017-10-16 12:41:57 -04:00
rpclistener.py web: add /{tenant}/status route 2017-11-06 14:41:12 +00:00
scheduler.py Don't shrink windows on reconfiguration 2017-12-01 09:42:14 -08:00
version.py Migrate to pbr. 2013-06-25 19:04:30 +00:00
webapp.py Improve error handling in webapp /keys 2017-11-01 10:00:50 -07:00
zk.py Better exception handling during autohold 2017-10-13 11:26:45 -04:00