Confirmed users
4,467
edits
| Line 247: | Line 247: | ||
==Component Descriptions and Implementation Notes== | ==Component Descriptions and Implementation Notes== | ||
=== | ===AutolandQueue=== | ||
A polling script that will pull all bugs from bugzilla with whiteboard tags matching: | A polling script that will pull all bugs from bugzilla with whiteboard tags matching: | ||
[autoland-$branch] | [autoland-$branch] | ||
[autoland-$branch:$patchID:$patchID] | [autoland-$branch:$patchID:$patchID] | ||
Default behaviour would be to take [autoland-$branch] and grab all non-obsolete, non r- patches | Default behaviour would be to take [autoland-$branch] and grab all non-obsolete, non r- patches and create a patchset db object that is then picked out of the queue to be sent to hgpusher for landing on $branch, results are returned from hgpusher to the AutolandQueue module and analyzed for further actions (like try->mozilla-{central,inbound}). To override or search for regressions the API will support directly inserting a patchset to create a custom autoland run. | ||
===HgPusher=== | ===HgPusher=== | ||
Accepts a branch, patch id(s) and can clone the branch, apply the patches and report back | Listens for messages that specify a branch push is requested. Accepts a branch, patch id(s) and can clone the branch, apply the patches and report back to the AutolandQueue via message the results of the push (success == revision or FAIL). | ||
* Input(s): | * Input(s): AutolandQueue Messages, command line | ||
* Output(s): | * Output(s): hg.mozilla.org, AutolandQueue Messages, stdout | ||
===SchedulerDBPoller=== | ===SchedulerDBPoller=== | ||
Regularly polls the scheduler DB ( | Regularly polls the scheduler DB (cronjob) and checks for completed buildruns for any actively monitored branches. There should be a list to check against for what branches need to be watched. The incomplete runs from the last N units of time are kept by revision in a local cache file to check for completion. When an observed branch has a completed buildrun the SchedulerDBPoller can check two things: | ||
* if | * if a --post-to-bugzilla flag is present and a bug number is provided following that flag, then the revision will be kept in a local cache and watched until completion (or time out), when done a bug comment will be posted and a message sent out that this revision is complete in case AutolandQueue is interested in that revision | ||
* Input(s): command line | * Input(s): command line | ||
* Output(s): | * Output(s): AutolandQueue, stdout | ||
=== | ===Bugzilla Autolanding Extension=== | ||
In a discussion with Mconnor, the suggestion for user interaction with AutolandQueue is to have radio buttons by each attachment (with a bit of select all/none js) so that you could pick your patches for autolanding and have an input field & submit button to send something like: | |||
[autoland-try:1234:2345:3456] (greasemonkey script for picking patches) | |||
[autoland-mozilla-inbound:1234] | |||
to the queue which would signify the final push destination and the attachment ids to use for the patch set. Whether this is something we can do with Bugzilla would need investigating so at first we are implementing this with whiteboard tags & polling with the bugzilla API for these tags. | |||
We have initiated discussion with the owners of the Bugzilla module about creating an extension that users could enable on their bugzilla account to be able to use a UI similar to what is described above. | |||
===MessageQueue=== | ===MessageQueue=== | ||
This is a util that manages the creation of message queues and routing used by the Autolanding system. It ensures that the right modules receive the right messages. | |||
===AutolandDB=== | ===AutolandDB=== | ||
Keeps track of the state of an autoland-triggered push from start to finish. | |||
===LDAPTool=== | ===LDAPTool=== | ||