Changes

Jump to: navigation, search

ReleaseEngineering

4,171 bytes added, 00:34, 31 January 2018
Releng home page, 2018 edition
* [https://treeherder.mozilla.org/ Treeherder]
* [https://bugzilla.mozilla.org/enter_bug.cgi?product=Release%20Engineering&component=Other File a new RelEng bug]
* [[ReleaseEngineering/Maintenance | RelEng Changes]] - what did RelEng break?
* [https://secure.pub.build.mozilla.org Mozilla Release Engineering Resources]
</div>
<br clear="all" />
<h2>Quick Links For Us</h2>
* [[ReleaseEngineering/How To|How Tos]]
* [https://tools.taskcluster.net/ Taskcluster Tools]* [ReleaseEngineeringhttps://mozilla-releng.net/Buildduty|BuilddutyReleng Services]* [https://ship-it.mozilla.org/ Ship It]* [https://aus4-admin.mozilla.org/ Balrog]
</div>
</div>
* Developing world-class, scalable, open, secure, and maintainable infrastructure for application builds and tests, on a diverse set of desktop and mobile platforms
 
* Building fast and reliable pipelines to transform source code into shipped products
= Contacting Release Engineering =
Our team is located on 3 continents and in 4 5 time zones. This allows us to provide better service, especially if you contact us using one of the following methods:
* To request a new service, please [https://bugzilla.mozilla.org/enter_bug.cgi?product=Release%20Engineering file a bug]
* To ask a general question, ping in #releng on IRC, or email release@m.c
# Call one or more of the following people (nagios page preferred if you have access):
#* [https://phonebook.mozilla.org/#search/catlee Chris AtLee] Eastern Time
#* [https://phonebook.mozilla.org/#search/jlund Jordan Lund] Pacific Time
If you get voice mail, please leave your callback number.
|
|
|-
| Kim Moir
| [https://mozillians.org/u/kmoir kmoir]
| [http://twitter.com/kmoir @kmoir]
| [http://relengofthenerds.blogspot.com Releng of the Nerds]
|-
| Michael Shal
| [https://mozillians.org/u/mshal/ mshal]
|
| [http://gittup.org/blog/ Mike Shal's blog]
|-
| Nick Thomas
* [[ReleaseEngineering/Interns|Interns]]
= Documentation Releng Offerings = As mentioned above, Releng offer pipelines to transform source code into shipped products. The following sections break down how that happens. Each section can be understood as both isolated and combined parts. == Initiating a Release == To start a release, [[Release Management]] submit a form in [[ReleaseEngineering/Applications/Ship It|Ship It]] with what product they would like to release, what revision to use, and a number of other inputs. == Configuring & Scheduling ==* [[ReleaseEngineering/How TosApplications/Ship It|How TosShip It]] then creates [https://docs.taskcluster.net/manual/tasks Taskcluster tasks] that are needed to take a builds and release them to users. These tasks make up the release graph that are derived from templates within [https://firefox-source-docs.mozilla.org/taskcluster/taskcluster/index.html taskgraph] and are submitted via [https://firefox-source-docs.mozilla.org/taskcluster/taskcluster/actions.html action tasks].  == Signing == The signing of build artifacts and binaries. Some features of this: * signing is done through a client/server model* integrated with Taskcluster thanks to [https://github.com/mozilla-releng/signingscript signingscript] in conjunction with [https://github.com/mozilla- releng/scriptworker scriptworker], a collection securely managed [https://docs.taskcluster.net/manual/tasks/workertypes Taskcluster worker type]. signingscript tasks are part of instructions the task graph that is generated from [[ReleaseEngineering/Applications/Ship It|Ship It]]* keys are generated with modern standards* keys are secured by our infra and rotated regularly* coming soon: self served signing through exposed API  == Uploading == As important release artifacts are created, they are then uploaded to [http://archive.mozilla.org/ archive.m.o] (FTP replacement) where they can served from and live permanently for specific taskshistorical or longstanding support reasons. Like signing, uploading is:* integrated with Taskcluster thanks to [httphttps://mozgithub.com/mozilla-releng/beetmoverscript beetmoverscript] in conjunction with [https://github.com/mozilla-releng/scriptworker scriptworker], a securely managed [https://docs.taskcluster.net/manual/tasks/workertypes Taskcluster worker type]. signingscript tasks are part of the task graph that is generated from [[ReleaseEngineering/Applications/Ship It|Ship It]] == Install & Update Tests == Like product tests, releases likewise need tests. This ensures that initial downloads install correctly on all supported platforms and updates work as expected, all before actually releasing. Right now this is done through our Update and Final Verify tests. Which, like all other sections are part of the release graph. TODO: link to documentation and source of these  == Shipping & Updates == Finally, we release the product via both initial downloads and as new updates. For Desktop Firefox:* Initial installs are served via updating the download page, mozilla.com ([[Mozilla.com/Bedrock|Bedrock]]) and updating [[Bouncer]], Mozilla's mirroring and redirection server.* Updates are handled by our own application, [http://mozilla-balrog.readthedocs.orgio/en/latest/ Releng Docsindex.html Balrog]. Balrog is our server side component of the update system** this is integrated with Taskcluster thanks to [https://github.com/mozilla-releng/balrogscript balrogscript] in conjunction with [https://github.com/mozilla-releng/scriptworker scriptworker] for overviews, detailsa securely managed [https://docs.taskcluster.net/manual/tasks/workertypes Taskcluster worker type]. balrogscript tasks are part of the task graph that is generated from [[ReleaseEngineering/Applications/Ship It|Ship It]] For Android Products, and backgroundincluding Firefox:* releases are submitted to the Play Store** this is integrated with Taskcluster thanks to [https://github.com/mozilla-releng/pushapkscript pushapkscript] in conjunction with [https://github.com/mozilla-releng/scriptworker scriptworker], a securely managed [https://docs.taskcluster.net/manual/tasks/workertypes Taskcluster worker type].pushapkscript tasks are part of the task graph that is generated from [[ReleaseEngineering/Applications/Ship It|Ship It]] = Development = == Best Practices ==
* [[ReleaseEngineering/Development Best Practices|Development Best Practices]] - read this when you're starting something new
* [[ReleaseEngineering/Deployment|Deployment]] - How we deploy our tools, and how do we update them.
* [[ReleaseEngineering/Wiki Guidelines|Wiki Guidelines]] - how to wiki garden for fun and profit
 
== Bugzilla ==
* [[ReleaseEngineering/Bugzilla/Flags|Flags]]
* [[ReleaseEngineering/Bugzilla/Whiteboard|Whiteboard]]
* [[ReleaseEngineering/Bugzilla/Triage|Triage]]
 
 
= Operations =
 
Release Engineering has historically been involved with the Build and Release pipeline of a product. As part of that, we have some responsibility to help ensure that the build (continuous integration) and release (deployment) pipeline infrastructure is in good running health. We have two functional groups that monitor and respond to any operational issues that come up.
 
== Buildduty ==
 
Buildduty provides support for Firefox's build and test infrastructure
 
The role of Buildduty has grown beyond Release Engineering's scope. There is a dedicated team of 6 people, providing 24/7 support of Mozilla's build and test infrastructure.
 
See the [[Buildduty|Buildduty home page]] and [[Buildduty/manifesto|manifesto]] for more information.
 
== Releaseduty ==
 
Releaseduty provides support for Firefox's release infrastructure and is currently handled by Releng
 
See the [[ReleaseEngineering/Releaseduty home page]] for more information.
 
= Releng Applications =
* [[ReleaseEngineering/Applications|Applications]] - Various applications and services that RelEng provides
*TODO update application list with: Services, Scriptworker, ChainOfTrust = Mozilla Applications =  * [[Taskcluster]] - our task execution tool for providing continuous integration and release pipelines* [[ReleaseEngineeringEngineeringProductivity/Projects/DeploymentTreeherder|DeploymentTreeherder]] - How we deploy our toolsaggregates all the build, test, and how do we update them.release tasks as a reporting dashboard* [[ReleaseEngineering/OverviewArchitectureDiagramPuppetAgain|Overview Architecture DiagramPuppetAgain]] - an architecture diagram that gives a high level overview of systems involved in producing releases of Mozilla's software Release Operations tool and puppet configs for configurating build and release machines. Both for workers and hosting applications* TODO - add Release Operations replacement for Slaveapi: Controller = External Third Party Dependencies = * AWS* Heroku* Papertrail* Nagios* Sentry = Deprecated =
* [[ReleaseEngineering/Buildbot Migration|Buildbot Migration]] - What builds are produced below pages should be deleted or be given a "warning" outdated box where? Buildbot, TaskCluster, or other?appropriate.
== Buildbot ==
** [[ReleaseEngineering/Buildbot_Database_Schemas|Buildbot Database Schemas]]
== Taskcluster VCS Sync == ** [https:[ReleaseEngineering/VCSSync/docs.taskcluster.net/ Taskcluster docsHowTo|HowTo]** [https://tools.taskcluster.net/ Taskcluster tools]** [[ReleaseEngineering/How_ToVCSSync/Verify_a_New_Taskcluster_Platform History| Verification steps for a new taskcluster platformHistory]]
== Releases ==
* [[ReleaseEngineering/Applications#slavealloc|Slave Allocator]]
* [[ReleaseEngineering/Official Platform Support Checklist|Official Platform Support Checklist]]
 
== Configuration Management ==
* [[ReleaseEngineering/PuppetAgain | PuppetAgain]]
 
== Buildduty ==
* [[ReleaseEngineering/Buildduty_manifesto| Check Buildduty manifesto]]
* [[ReleaseEngineering/Buildduty_actionable| Check Buildduty actionable]]
* [[ReleaseEngineering/Buildduty| How To: So you're on buildduty...]]
* [[ReleaseEngineering/Managing Buildbot with Fabric|Managing Buildbot with Fabric]]
* [[Auto-tools/Projects/Treeherder|Treeherder wiki page]]
* [[Clobbering_the_Tree | Clobbering the Tree]]
* [[ReleaseEngineering/Bugzilla/Triage | Bug Triage]]
* [[ReleaseEngineering:RelEngITSharedDowntime | RelEng+IT shared downtime]]
* [[ReleaseEngineering:ProjectBranchPlanning|Project Branch Planning: how to request a new project branch]]
** [[ReleaseEngineering/DisposableProjectBranches | Disposable Project Branch Bookings]]
* [[Build:TinderboxErrors| Build and Test Log Error/Warning Reference: Debugging red and orange in results]]
== Tryserver ==
* [[ReleaseEngineering/RequestingASlave | Requesting A Slave]]
* [[ReleaseEngineering/Testing a new Signing Server | Testing a new Signing Server]]
 
== Bugzilla ==
* [[ReleaseEngineering/Bugzilla/Flags|Flags]]
* [[ReleaseEngineering/Bugzilla/Whiteboard|Whiteboard]]
* [[ReleaseEngineering/Bugzilla/Triage|Triage]]
 
== VCS Sync ==
* [[ReleaseEngineering/VCSSync/HowTo|HowTo]]
* [[ReleaseEngineering/VCSSync/History|History]]
= Subpages =
* [[ReleaseEngineering/Breakout SessionsPresentations|Presentations]]* [[ReleaseEngineering/Blackbox SessionsHow Tos|How Tos]]* [http://moz-releng-docs.readthedocs.org/en/latest/ Releng Docs] '''''outdated'''''* [[Special:PrefixIndex/{{FULLPAGENAME}}/]] - all subpages of [[{{FULLPAGENAME}}]]in the wiki* [[ReleaseEngineering/PresentationsBuildbot Migration|Buildbot Migration]]- '''''outdated''''' What builds are produced where? Buildbot, TaskCluster, or other?
* [[ReleaseEngineering/Obsolete Pages]]
* [[Special:PrefixIndex/{{FULLPAGENAME}}/]] - all subpages of [[{{FULLPAGENAME}}]] in the wiki
* [[ReleaseEngineering/NoReboots]]
* [[ReleaseEngineering/Day_1_Checklist|day 1 checklist]]
* [[ReleaseEngineering/Day_-1_Checklist|day -1 checklist]]
Confirm
502
edits

Navigation menu