Firefox/Go Faster/Release Pipeline: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
(→‎Shipping Infrastructure: Add caveat regarding number of people assigned to the "Shipping Infra")
(Add a proposal.)
Line 1: Line 1:
== Testing | CI ==
== Testing | CI ==
see: mrrrgn, selenamarie, catlee


We need a unified system in place for testing addons , the trick is that addons are not going to live in tree. Fortunately the solution to hooking multiple repositories into our current system is in progress: https://bugzilla.mozilla.org/show_bug.cgi?id=1158272
== Proposal ==
The initial pipeline should be very lightweight. Tests/Builds can be run via a TaskCluster GitHub bridge. Where pull requests trigger tests, and tagged pushes trigger builds and an attempt to upload to whatever service hosts the addon packages. A/B testing and allowing public access to addons will need to be handled by hand after this process is completed.
===Questions:===
  - Can we get away with doing only Linux initially? There is no good solution for Mac/Windows via TaskCluster at the moment and buildbot changes are not generally within the realm of "light weight."


Each team will be able to configure their own automated tests by leaving a "travis ci" like configuration file in their repository.
== Bugs ==
(mrrrgn) [https://bugzilla.mozilla.org/show_bug.cgi?id=1158272 TC->GitHub bridge]


== Release Triggering ==
== Release Triggering ==

Revision as of 16:08, 7 July 2015

Testing | CI

Proposal

The initial pipeline should be very lightweight. Tests/Builds can be run via a TaskCluster GitHub bridge. Where pull requests trigger tests, and tagged pushes trigger builds and an attempt to upload to whatever service hosts the addon packages. A/B testing and allowing public access to addons will need to be handled by hand after this process is completed.

Questions:

 - Can we get away with doing only Linux initially? There is no good solution for Mac/Windows via TaskCluster at the moment and buildbot changes are not generally within the realm of "light weight."

Bugs

(mrrrgn) TC->GitHub bridge

Release Triggering

see: ???

Developers will need a system for notifying us when they are ready for a release to be rolled out. We also need procedures for things like tagging.

- Could this be a self-serve UI? - Could this be related to .taskclusterrc and tied to either release tagging or pinning to a revision?

Shipping Infrastructure

See: mrrrgn, JP, ??? (we'll probably need help from other RelEng members)

We could use AMO or Balrog for hosting addons.

Balrog Needed Features / Status:

AMO Needed Features / Status:

There are some difficulties around using it, but it seems possible to create a working prototype without actually changing its code base (though it will require a workflow with human intervention).

tl;dr: We'll need a special "GoFast" addon type with improved permissions, and a few REST endpoints (instead of crufty old web forms).

Ability to host multiple addon versions at the same time.

Status: This is supported but only for "listed" [public] addons.

Ability to partially roll out updates

Status: The AMO system relies on manifests which map addon versions to supported platforms. Normally users will always get the latest version, but it is possible to package addons with a custom "updateURL" which firefox will use to search for new versions.

We will also need to build our own service for managing version manifests. The service could be a proxy (more flexible) or a web app (easier to manage) depending on what our needs seem to be as the project progresses.

To use updateURL with a listed update, we will need administrator intervention.

API for uploading addons

This is currently a multi-part web form. This will need to be turned into an API asap.

Signing Addons

Signing happens just after an App is uploaded to AMO. Currently addons will be put into a "review queue" with a three month backlog. We can bypass this via an administrator's intervention.