ReleaseEngineering:Autoland
Autoland is a system of tools running on a virtual machine that polls bugzilla for a whiteboard tag requesting autolanding. Upon finding the whiteboard tag, the module will pull either all the non-obsolete patches attached to the bug or any attachment ids (must be attached to the current autoland-specified bug) you request in the whiteboard tag and then it applies those patches to the tip of mozilla-central and pushes to try on your behalf. The results are tracked in the bug where autolanding has been requested.
What does it do?
Polls individual bugs for a custom whiteboard tag and when finding valid tags, makes an automated landing to try for you. It will report details in the bug about the try push and the build results when complete.
How does it work?
Insert a whiteboard tag so the scripts will pick up that this bug has patches you'd like landed (we can only work with one bug at a time right now). Our automation will pull tip of mozilla-central, import your patch(es), then push to try on your behalf. You will not receive an email about your try push, your revision will be posted back to the bug when the push completes.
Tag syntax
Our system looks for three separate components in your whiteboard tag. The most important is 'autoland' which is how the bug will get queued up for autolanding in the first place.
If you put nothing other than 'autoland', the automation will grab all non-obsolete patches attached to the bug and import them to tip of mozilla-central and push the changes to try.
To provide more customization the whiteboard tag can include two other sections, one for try syntax and one for a specific list of attachmentIDs (patches) to import.
Note: for attachment id you need to grab the ID from the link on the bug, just the digit, the scripts build the url Future improvements to this system include getting a BMO extension that will allow for selecting which patches with a better UI (checkboxes next to each patch) and a submit button that will populate the whiteboard tag for you
Sample Valid tags
[autoland] [autoland-try] # as eventually there will be autoland-$branch capabilities [autoland:$attachmentID(,$attachmentID)] # several attachmentIDs should be comma-separated [autoland:-p linux -u none] # try syntax will get put in the commit comments to control what builds your push gets [autoland:$attachmentID:-p win32 -b o] # specifying both attachementID(s) and try syntax (use : to separate)
Can I still use try syntax to customize my builds?
Yes! In your whiteboard tag you can include the try syntax (note you do not need the 'try:' part)
Examples:
# no attachmentIDs listed [autoland:-p linux -u none] # with attachmentIDs listed [autoland-try:409589:-p all -u mochitests]
Can I specify the order in which to apply patches?
Yes. If you would like your patches applied in a particular order then you can list them in the whiteboard tag as:
[autoland:1,2,3]
and they will be applied in that order (for patch in patches where patches is 1,2,3.split(','))
Can I land to a branch other than try?
Not yet, but that feature will be coming soon
Can I land automatically through an API instead of through bugzilla?
Not yet, but that feature will be coming soon