Closed Bug 1038875 Opened 10 years ago Closed 10 years ago

add builder that pushes releases live in balrog

Categories

(Release Engineering :: Release Automation: Other, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: bhearsum, Assigned: bhearsum)

Details

Attachments

(3 files)

We'll be shipping Balrog to the Beta channel soon. Rather than make people use the Balrog UI (whose rules.html page is still extremely slow), we should get a Buildbot builder to do it through the API. It should be similar to the postrelease builder in that it's not hooked up to any schedulers.

I think it would also be good to require a magic keyword to be present in the properties to avoid someone accidentally shipping hitting "force build" errantly.
I'm planning to give the reviews for this to Rail since it's all client side code, but do you have any thoughts or reasons why we shouldn't do this, Nick? I don't think we've ever talked about it...
Flags: needinfo?(nthomas)
Assignee: nobody → bhearsum
I feel slightly paranoid about this, but then remind myself it will remove some chances for human frailty to creep in. The magic keyword is a good idea for preventing oopsies.

Ideally, after ship-it is tracking status it can ensure that we have completed enough checks (eg update verify and final verification) before enabling the button to push updates.
Flags: needinfo?(nthomas)
(In reply to Nick Thomas [:nthomas] from comment #2)
> I feel slightly paranoid about this, but then remind myself it will remove
> some chances for human frailty to creep in. The magic keyword is a good idea
> for preventing oopsies.
> 
> Ideally, after ship-it is tracking status it can ensure that we have
> completed enough checks (eg update verify and final verification) before
> enabling the button to push updates.

Yeah, that's my thinking too. I'd go so far as to say that the server side should protect against somebody trying to forge that button press too.

I'll forge ahead here, and we can feel paranoid together!
This just adds releaseChannelRuleIds to release configs. It's empty for everything except beta for now. We may need additional IDs at some point because Firefox and MetroFirefox have different rules. I don't think we need it yet though, because we haven't shipped Metro to Beta.
Attachment #8458003 - Flags: review?(rail)
One thing of note here is removing "buildprops.json" as a magic string.

I also didn't bother adding a .sh wrapper for this - do you think that's okay? It seemed largely unnecessary to me.
Attachment #8458006 - Flags: review?(rail)
This script is pretty much a pared down version of balrog-release-pusher.py. It doesn't need to use the ReleaseCreator class, and therefore doesn't need as much information from the release config.
Attachment #8458008 - Flags: review?(rail)
Attachment #8458003 - Flags: review?(rail) → review+
Comment on attachment 8458006 [details] [diff] [review]
buildbotcustom work

Review of attachment 8458006 [details] [diff] [review]:
-----------------------------------------------------------------

::: process/release.py
@@ +1233,5 @@
> +                '-r', releaseConfigFile,
> +                '-a', balrog_api_root,
> +                '-u', balrog_username,
> +                '-c', 'oauth.txt',
> +                '-p', 'buildprops.json', 

Can you remove the trailing space when you land?
Attachment #8458006 - Flags: review?(rail) → review+
Attachment #8458008 - Flags: review?(rail) → review+
Attachment #8458003 - Flags: checked-in+
Attachment #8458006 - Flags: checked-in+
Attachment #8458008 - Flags: checked-in+
I landed things on default. It's likely that they'll go into production before 33.0b1, so we can test it there with that!
In production.
This worked perfectly fine in 32.0b1!
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: