Currently when an experiment is ready to release a new version of their .xpi file, they send it to me and I upload it to S3 with all the appropriate hashes and redirects and fluff in place. I’d like to get out of the way of new versions and get that automated.
My proposal is:
-
Experiments have a script at
bin/build-add-on.sh
which creates a .xpi file in the current working directory and has an exit status of 0 on success. -
Experiment maintainers add a hook to their repository which pings Mozilla’s Jenkins instance on commit.
-
Mozilla’s Jenkins sees the ping, verifies it is on a branch called “production”, updates to the latest code, runs that script, sorts out all the hashes builds an
updates.json
file, and uploads the .json, .xpi, and /latest/ redirect to S3.
In short, we’d be asking Experiment Maintainers to add a consistently named script (which could just call a gulp task or whatever), use a “production” branch, and add a GitHub hook.
Any comments?