The Gatekeeper, or a project gating system
Go to file
Clark Boylan 4419672188 Don't generate layouts on non live items
Non live items in Zuul queues never run jobs. They are dependency tree
markers to ensure that we contruct the correct final git states that do
run jobs. Previously we were generating layouts (necessary for running
jobs) on all of the non live items in queues which generated (n^2+n)/2
layouts when we only need a single layout for the terminal item.

Fix this by only generating layouts on live items. This introduces a
slightly new process for getting the correct layout on a child item.
The live child item can:
  Use pipeline layout when itself and items ahead do not modify layout
  Use its parent layout if parent item is live
  Generate its own layout if parent item is not live

The result is some cases where zuul would treat the parent items as
having syntax errors as a merge error in the child item now become
syntax errors in the child item. This is due to waiting to generate that
layout in the child rather than step by step.

The test that checked the old behavior described above has been updated
to reflect the new behavior introduced by this change.

Change-Id: I0d650eef9f7d1d0af46afcbabd76a1f2baf74efa
2018-04-30 10:16:31 -07:00
doc Cache configuration objects in addition to YAML dicts 2018-04-27 09:04:43 -07:00
etc Fix zuul systemd files 2018-04-27 18:27:24 -04:00
playbooks Remove zuul-tox-py35 2018-04-12 12:39:14 -05:00
releasenotes/notes Late bind projects 2018-04-27 09:04:35 -07:00
tests Don't generate layouts on non live items 2018-04-30 10:16:31 -07:00
tools Pin node to version 8: LTS stable 2018-04-24 15:47:15 -07:00
web Upgrade to webpack 4 2018-04-10 10:11:19 -05:00
zuul Don't generate layouts on non live items 2018-04-30 10:16:31 -07:00
.babelrc Use yarn and webpack to manage zuul-web javascript 2018-03-04 07:20:40 -06:00
.eslintrc Use yarn and webpack to manage zuul-web javascript 2018-03-04 07:20:40 -06:00
.gitignore Use yarn and webpack to manage zuul-web javascript 2018-03-04 07:20:40 -06:00
.gitreview Updated .gitreview location 2012-12-16 20:34:13 +00:00
.mailmap Fix pep8 E127 violations 2012-09-26 14:23:10 +00:00
.testr.conf Revert "Switch to stestr" 2018-03-21 07:50:08 -07:00
.zuul.yaml Merge "Remove zuul-tox-py35" 2018-04-13 18:21:06 +00:00
COPYING Update README and add GPL license 2018-03-19 09:25:52 -07:00
LICENSE Initial commit. 2012-05-29 14:49:32 -07:00
MANIFEST.in Use yarn and webpack to manage zuul-web javascript 2018-03-04 07:20:40 -06:00
README.rst Use git.zuul-ci.org 2018-03-28 09:41:44 -07:00
TESTING.rst Update test instructions 2018-04-18 16:12:55 +02:00
bindep.txt Support regex matching of github status 2018-04-13 18:15:19 +02:00
package.json Remove docker instructions and build:docker helper command 2018-04-12 17:39:37 +00:00
requirements.txt Support regex matching of github status 2018-04-13 18:15:19 +02:00
setup.cfg Remove zuul-cloner command 2018-04-12 11:49:13 -04:00
setup.py Partial sync with OpenStack requirements. 2013-09-25 15:30:37 -07:00
test-requirements.txt Merge "Update in-development releasenotes title" 2018-04-10 18:28:24 +00:00
tox.ini Use nodeenv for npm and yarn in tox 2018-04-12 12:38:55 -05:00
webpack.config.js Use yarn and webpack to manage zuul-web javascript 2018-03-04 07:20:40 -06:00
yarn.lock Upgrade to webpack 4 2018-04-10 10:11:19 -05:00

README.rst

Zuul

Zuul is a project gating system.

The latest documentation for Zuul v3 is published at: https://docs.openstack.org/infra/zuul/

If you are looking for the Edge routing service named Zuul that is related to Netflix, it can be found here: https://github.com/Netflix/zuul

If you are looking for the Javascript testing tool named Zuul, it can be found here: https://github.com/defunctzombie/zuul

Getting Help

There are two Zuul-related mailing lists:

zuul-announce

A low-traffic announcement-only list to which every Zuul operator or power-user should subscribe.

zuul-discuss

General discussion about Zuul, including questions about how to use it, and future development.

You will also find Zuul developers in the #zuul channel on Freenode IRC.

Contributing

To browse the latest code, see: https://git.zuul-ci.org/cgit/zuul/tree/ To clone the latest code, use git clone https://git.zuul-ci.org/zuul

Bugs are handled at: https://storyboard.openstack.org/#!/project/679

Code reviews are handled by gerrit at https://review.openstack.org

After creating a Gerrit account, use git review to submit patches. Example:

# Do your commits
$ git review
# Enter your username if prompted

Join #zuul on Freenode to discuss development or usage.

License

Zuul is free software. Most of Zuul is licensed under the Apache License, version 2.0. Some parts of Zuul are licensed under the General Public License, version 3.0. Please see the license headers at the tops of individual source files.

Python Version Support

Zuul v3 requires Python 3. It does not support Python 2.

As Ansible is used for the execution of jobs, it's important to note that while Ansible does support Python 3, not all of Ansible's modules do. Zuul currently sets ansible_python_interpreter to python2 so that remote content will be executed with Python 2.