summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Add configbaserock/adamcoldrick/mason-plugin-prototypeMason Test Runner2014-11-122-0/+56
|
* Merge "add support for getting status of individual changes"Jenkins2014-10-152-3/+152
|\
| * add support for getting status of individual changesSean Dague2014-10-012-3/+152
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This expands the rest API for zuul for selecting a portion of the zuul data. The supported urls are: - /status: return a complex data structure that represents the entire queue / pipeline structure of the system - /status.json (backwards compatibility): same as /status - /status/change/X,Y: return status just for gerrit change X,Y In the individual status case the changes are returned as a simple array, and not in the pipeline structure. Tests are added to demonstrate this working, as well as ensure 404 is correctly returned when invalid urls are provided. Co-Authored-By: Joshua Hesketh <joshua.hesketh@rackspace.com> Change-Id: Ib8d80530cc99c222226f73046c17ab0bbf6e080b
* | Fix docu after config repo splitAndreas Jaeger2014-10-061-2/+2
|/ | | | | | | Use new location for OpenStack's layout.yaml file. Change all occcurences of github in the file to use git.openstack.org Change-Id: I416fe33563e0df32b8d175b5694243550ee9e63a
* Add precedence to merge jobsJames E. Blair2014-09-252-8/+15
| | | | | | | When creating a merge job, give it the precedence of the associated pipeline. Change-Id: I96c6a942a08f603ae7cce442427ae171d7e76d78
* Merge "Rename doc environment to docs"Jenkins2014-09-161-1/+1
|\
| * Rename doc environment to docsMonty Taylor2014-09-081-1/+1
| | | | | | | | | | | | | | | | As per the governance resolution https://review.openstack.org/119875, projects should have a docs environment in their tox.ini testing interface. Rename the doc environment to docs. Change-Id: I5908033d835d35a0650b77b01ff727d81eb79eb0
* | Merge "Add check for ref being a string before applying regex"Jenkins2014-09-161-3/+4
|\ \
| * | Add check for ref being a string before applying regexYolanda Robla2014-08-271-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Incorrect filter by ref in zuul layout could end on applying a regex to a None value, causing an error and zuul crashing. That is not an usual thing but could happen and zuul crashes because of that. Add the comparison for ref not being None before applying the regex, as it was done for comment comparison. Change-Id: Ie58bb288a1f7609564283a0062e08ecc45b28cd0
* | | Merge "Display only first 7 chars for git commit id"Jenkins2014-09-161-3/+15
|\ \ \
| * | | Display only first 7 chars for git commit idJoshua Hesketh2014-09-101-3/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On the status page, if a job was queued via a timer or some way other than a gerrit change id, the git commit id would be too long for the change box. Limit it to 7 chars. Co-Authored-By: Sergey Lukjanov <slukjanov@mirantis.com> Change-Id: I4f54845675d11e4f76240cf4bf7b48f28f3e7d6a
* | | | Merge "Fix status page overlap"Jenkins2014-09-111-0/+1
|\ \ \ \ | |/ / /
| * | | Fix status page overlapJoshua Hesketh2014-08-211-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | If the job name was too long the progress bar would float under the next job. Fix this be clearing the flots in each job line. Change-Id: Ie476cd97ee6207fac84051e0580871590bccbc0f
* | | | Merge "Fix zuul javascript cookie load"Jenkins2014-09-111-1/+1
|\ \ \ \ | |/ / /
| * | | Fix zuul javascript cookie loadJoshua Hesketh2014-08-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The default filter value for the status page was not being set correctly. As such the filter would incorrectly remove all results. When no cookie is set, make sure the filter is blank. Change-Id: I4868db8b357373d1fd94dc6ffc7528692b75dd8d
* | | | Make keystone and swift clients optional test reqsJeremy Stanley2014-09-102-2/+2
| |_|/ |/| | | | | | | | | | | | | | | | | | | | | | | Since keystoneclient pulls in lxml which needs various system library headers to build its bindings, and swiftclient depends on keystoneclient, and zuul handles these as optional dependencies, make them test requirements. Change-Id: I5c7db10644dcf2810cbfdfe8c11d4790909c04cf
* | | Merge "Clean up bad layout files in zuul tests"Jenkins2014-09-0416-6/+17
|\ \ \
| * | | Clean up bad layout files in zuul testsClark Boylan2014-08-2116-6/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Clean up the bad layout files in the zuul tests by removing a redundant file (bad_pipeline and bad_pipeline1.yaml were identical). Annotate the reason the layout is bad in each file. Finally remove a redundant swift section. Both bad switf sections were failing for the same reason, a missing name entry. Change-Id: I0fd09da1fb0ec7443fa7d12a3b31809546a01afd
* | | | Merge "Add cache-dir argument to cloner"Jenkins2014-09-024-3/+94
|\ \ \ \
| * | | | Add cache-dir argument to clonerJames E. Blair2014-08-274-3/+94
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Clone repos from cache-dir if they exist, then reset their origins to be the git base url and update from there. Change-Id: Ic42961aa5da9e4a66524ec14758d421944403f91
* | | | | Merge "Cloner: add project-specific branch overrides"Jenkins2014-09-023-5/+112
|\ \ \ \ \ | |/ / / /
| * | | | Cloner: add project-specific branch overridesJames E. Blair2014-08-273-5/+112
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a facility to override the indicated branch for a specific project. In OpenStack, this is used to specify that tempest should always use its master branch even though it has stable branches (we no longer use stable branches for tempest). It may also be useful in some kinds of compatibility cross-testing. The test for this is taken from 'test_multi_branch_project_override' in devstack-gate. Change-Id: I958af233d1def3b1c7362e1b2ddc77c108766358
* | | | | Merge "Cloner: add upgrade test"Jenkins2014-09-023-0/+172
|\ \ \ \ \ | |/ / / /
| * | | | Cloner: add upgrade testJames E. Blair2014-08-273-0/+172
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is the 'test_grenade_forward' and 'test_upgrade_backward' tests from d-g. Both scenarios are covered because they both simulate havana->master upgrades, just changing which of them is the 'current' change. Since we examine the states of all changes, in the course of running the test we check the results for both when a current change is havana and master. This also covers the 'test_branch_override' case from d-g. Change-Id: I95abd62279bd44e88a608ad908f4876d11d50ec2
* | | | | Merge "Cloner: default to ZUUL_BRANCH"Jenkins2014-09-024-47/+156
|\ \ \ \ \ | |/ / / /
| * | | | Cloner: default to ZUUL_BRANCHJames E. Blair2014-08-274-47/+156
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The cloner takes an argument for the "indicated branch", however, that argument has a default value of None, rendering it optional. In the original setup method from devstack gate, that argument was not optional, instead, it was typically set to ZUUL_BRANCH unless it needed to be specified otherwise, for example for grenade. Effectively, if omitted the (optional) branch argument to the cloner it would use the 'master' branch in preference to the ZUUL_BRANCH for projects that do not have a zuul ref. This is not the desired behavior in the simple case (or quite likely any case), and therefore should not be the default behavior for the cloner. Resolve this by having the cloner treat the indicated branch as ZUUL_BRANCH unless it is specified in the branch argument. In doing this, the logic in the cloner is slightly simplified and now more closely matches that in the setup_project function in devstack-gate. Rename the cloner test to 'test_one_branch' to match the pattern from devstack-gate tests. This test encompases the 'test_one_on_master' and 'test_two_on_master' tests from d-g. They are combined because in these tests we are able to iterate over the Zuul builds and check the state for each build in turn, which is a more complete form of testing than what was employed in d-g. Add the 'test_multi_branch' test to the cloner. This encompases 'test_multi_branch_on_master' (with an additional fourth project with no changes), as well as 'test_multi_branch_on_stable'. Change-Id: Ib26bced46073bd61298c52c836a20085511201f3
* | | | | Merge "Fix cloner test"Jenkins2014-09-021-26/+17
|\ \ \ \ \ | |/ / / /
| * | | | Fix cloner testJames E. Blair2014-08-251-26/+17
| | |_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The cloner test was incorrectly asserting that project2 should always be at the commit specified for change B. However, when testing change A, project2's repo should be at master. The cloner actually works as intended, the reason the assertion passed is that the cloner was being run _after_ the gate jobs finished, meaning that the master branch of project2 actually was the commit specified for change B -- because it had merged. Correct this by moving the build release to the end of the test, so that the test operates entirely within the time that the jobs are building (before anything merges). Change the checks that the commits are correct so that they assert the different and correct values for each of the builds being tested. Additionally, remove some unecessary actions from the test (adding additional patchsets and specifying a clone map that is not used). Change-Id: I7575e8b84925115393cef81d6b02a3532913ffed
* | | | Clarify docs for optional template pipelinesSteven Dake2014-08-281-0/+4
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The documentation could be read to imply a check, gate, et cetera pipeline must contain a job, when in fact pipeline definition is optional in templates. . Inform the reader of the documentation as it isn't entirely clear for folks maintaing projects where the developer is not a zuul developer. Change-Id: If386e9431d486f8cea2ebde52c555305e1278c7d
* | | Handle latest testtools tearDown checksClark Boylan2014-08-221-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Latest testtools checks that you only call tearDown once (it also checks that setUp is only called once). Zuul's test framework was calling tearDown from a cleanup which resulted in tearDown being called twice. Once by the test framework and once by zuul's testclasses cleanups. Just remove the explicit tearDown call in the cleanups and let the larger python tooling call tearDown for us. Change-Id: Id8eaa9da5153fdfe9b9f852d2c57838736cb7040
* | | Merge "BuildSet now has a representation"Jenkins2014-08-221-0/+16
|\ \ \
| * | | BuildSet now has a representationAntoine Musso2014-08-181-0/+16
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I had Zuul Scheduler report warning messages such as: zuul.Scheduler: Build set <zuul.model.BuildSet object at 0x1a9a310> is not current Which is not very meaningful. This adds a __repr__ to BuildSet which shows up: - the QueueItem representation - number of builds in the set - merge state The merge states are internally stored using integer constants. I have duplicated the information in a dict to lookup the int as a meaningful string. That is not pretty :( Change-Id: I0e087e4cb3f4c1da4ef40d0805793f737af1765e
* | | Merge "Maintain the trigger cache after reconfiguring"Jenkins2014-08-223-8/+38
|\ \ \ | |_|/ |/| |
| * | Maintain the trigger cache after reconfiguringJames E. Blair2014-08-163-8/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A previous change removed the trigger cache cleanup. When Zuul is live-reconfigured, it creates new Project objects and attaches them to all changes currently in pipelines. Because the cache contained changes outside of pipelines, those changes were not being updated with new Project objects. This restores the maintainCache method and uses it during the reconfigure event to clear the cache of all changes not currently in pipelines. This corrects the error introduced by the previous change as well as gives Zuul an opportunity to release unused memory (as now the cache will at least be emptied on each reconfiguration). The project-change-merged test is updated to explicitly test this situation. Change-Id: I67736fca08f2e14ab733bd9f143820da19839ef9
* | | Handle random PYTHONHASHSEED values.Clark Boylan2014-08-213-6/+1
| |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Voluptions does a depth first in order traversal of the data structures it is checking and fails fast. This means it will die when it hits the first error and return only that error. The test_layouts test is checking that different bad layout files fail in unique ways. This check breaks when the python hashseed is random resulting in different depth first traversals which can result in returning the same error twice if bad layout files have common errors. Fix this by trimming down the errors in each layout file to a single error this way the order of the errors hit never matters. Fix a string typo in test_layouts while we are in there. Change-Id: Ie7587ebac4d22063a6819c68011f7fb67a49fcc0
* | Merge "Make smtp test more robust"Jenkins2014-08-181-0/+1
|\ \ | |/ |/|
| * Make smtp test more robustJames E. Blair2014-08-151-0/+1
| | | | | | | | | | | | | | It may have ended up with changes still in the pipeline because it uses the timer trigger. Change-Id: Ieb46d7b5b7020e62e7d3baa704e3f75f9f87dca1
* | Merge "Update gerrit change attributes even if merged"Jenkins2014-08-161-4/+4
|\ \
| * | Update gerrit change attributes even if mergedSteve Varnau2014-08-151-4/+4
| |/ | | | | | | | | | | | | | | | | | | Function updateChange short-cuts dependency checking for merged changes, but some attributes that need to be updated were after the short-cut return. This resulted in zuul saying status is MERGED, but then not matching Changeish filter for status MERGED. Closes-Bug: 1356662 Change-Id: I954b2716a5af75a959d4129ba88d7dae0750d2a5
* | Stop removing changes from the cacheJames E. Blair2014-08-152-10/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The zuul trigger ends up querying a large number of changes on each merge, most of which are not in any pipelines. To avoid needlessly querying gerrit for data that do not change, keep all changes that Zuul ever sees in the cache. We could consider removing changes that are both not in pipelines and closed (ie, keep all open changes), but we still end up querying a number of merged changes each time due to Zuul following dependencies of open changes. Change-Id: Ie78df9aa43ec5ac35bdea79dcdafdfdd41d51d5b
* | Fix queries for Zuul triggerJames E. Blair2014-08-154-9/+23
|/ | | | | | | | | | | | | | | | Against a live gerrit, we observed that sometimes gerrit may not return data for a change. In the case of the zuul trigger's project-change-merged event, it's best to just ignore errors for those changes and proceed. Also, the gerrit trigger was attempting to parse the timing results from the query. The test did not catch this because it did not supply them in the mocked method. Correct this as well. Also, double check that the query used was the one expected in the test. Change-Id: I792127d29f67f53a419eb94e9e0afb83b6e1bcb2
* Merge "Add a Zuul trigger"Jenkins2014-08-1514-8/+434
|\
| * Add a Zuul triggerJames E. Blair2014-08-1514-8/+434
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds the ability for a pipelite to have multiple triggers. This also adds a "Zuul" trigger which is used to generate trigger events based on internal actions Zuul has taken. It supports two event types: * parent-change-enqueued: This can be used so that other pipelines can enqueue children of parents that are enqueued in a different pipeline. Specifically, this lets OpenStack enqueue changes in check when their parents are enqueued in gate (which may be necessary because of our clean check rules). This could be used to replace the internal logic that enqueues children in dependent pipelines (moving that into explicit configuration instead). One can also imagine a future 'change-enqueued' event so that a pipeline could react directly to a change in another. * project-change-merged: This can be used to trigger changes on all open changes for a project when a change is merged to that project. Specifically, this lets us perform light-weight merge checks on all open changes whenever a change is merged. Change-Id: I2a67699dbed92a6b9c143a77795cb126f1f4dd57
* | Merge "Add pipeline source"Jenkins2014-08-158-62/+66
|\ \ | |/
| * Add pipeline sourceJames E. Blair2014-08-068-62/+66
| | | | | | | | | | | | | | | | | | | | | | | | | | | | A TriggerEvent may originate from a trigger that does not represent the canonical location of the project source. For instance, the timer trigger strangely depends on the gerrit trigger to actually handle Git operations behind the scenes. Instead, make an explicit association between pipelines and their source triggers so that their event trigger does not need to have that implicit association. This is a step toward having pipelines support multiple triggers (they already support multiple reporters). Change-Id: Ie80ffde411fe40fddfc4496b7adb0004f660c48c
* | Merge "Make swiftclient an optional dependency"Jenkins2014-08-142-4/+8
|\ \
| * | Make swiftclient an optional dependencyAntoine Musso2014-06-182-4/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I can not use the switclient on my installation and need a way to prevent the swiftclient import entirely. The only usage of the swiftclient module is to establish a connection which only happen if there is a [swift] section in the configuration. Moving the import from the top of the file next to its only usage would make sure my installs never has to get swiftclient installed. Change-Id: Ie2ef84f86f9f57796a85758147ba87d8b22c3e55
* | | Merge "Provide swift credentials without requiring a connection"Jenkins2014-08-142-17/+36
|\ \ \ | |/ /
| * | Provide swift credentials without requiring a connectionJoshua Hesketh2014-05-152-17/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To generate the hmac details for the swift FormPost middleware you do not need to actually connect to swift if you know the URL key and storage path. Change the configuration to reflect this and only connect if required. Change-Id: Iad5008ca2707ef5310b172fe3b6844e51bee2372
* | | add support for draft-published eventKhai Do2014-08-131-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Gerrit 2.4 did not provide a stream event for draft patchsets therefore it was not supported in zuul either. We've just upgraded to Gerrit 2.8 which does provide a new draft-published stream event. This change will make zuul aware of the draft-published event. Change-Id: Ica363b4672cfce375d64463636d84e92c2949fd6 Partial-Bug: #1255166