Confirmed users
213
edits
(→Team: adds Tom Prince to the team) |
(→Subpages: Mark Releng Docs as not outdated anymore) |
||
| (28 intermediate revisions by 9 users not shown) | |||
| Line 28: | Line 28: | ||
= Contacting Release Engineering = | = Contacting Release Engineering = | ||
Our team is located on | Our team is located on 2 continents and in 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 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 # | * To ask a general question, ping in #firefox-ci on Matrix, or email release@mozilla.com | ||
* To request status on an existing request, set the "needinfo" flag in the bug. | * To request status on an existing request, set the "needinfo" flag in the bug. | ||
Our team works normal business hours for our respective time zones. If you need to escalate an issue that is both '''urgent''' ''and'' '''important''', use the following methods: | Our team works normal business hours for our respective time zones. If you need to escalate an issue that is both '''urgent''' ''and'' '''important''', use the following methods: | ||
# Use # | # Use #firefox-ci on Matrix or email release@mmozilla.com, starting your message with 'URGENT:'. If no response in 15 minutes, then | ||
# Be sure the bug severity is set to "<tt> | # Be sure the bug severity is set to "<tt>S1</tt>" | ||
# Call | # Call [https://people.mozilla.org/p/jlorenzo Johan Lorenzo] (Paris time). | ||
If you get voice mail, please leave your callback number. | If you get voice mail, please leave your callback number. | ||
| Line 61: | Line 59: | ||
| [https://twitter.com/bhearsum @bhearsum] | | [https://twitter.com/bhearsum @bhearsum] | ||
| [http://hearsum.ca/blog Ben's blog] | | [http://hearsum.ca/blog Ben's blog] | ||
|} | |} | ||
| Line 145: | Line 88: | ||
== Uploading == | == Uploading == | ||
As important release artifacts are created, they are then uploaded to [ | As important release artifacts are created, they are then uploaded to [https://archive.mozilla.org/ archive.m.o] where they can served from and live permanently for historical or longstanding support reasons. | ||
Like signing, uploading is | Like signing, uploading is integrated with Taskcluster thanks to [https://github.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 == | == Install & Update Tests == | ||
| Line 172: | Line 114: | ||
== Best Practices == | == Best Practices == | ||
* [[ReleaseEngineering/Python Standards|Python Standards]] - Our Python coding standards | |||
* [[ReleaseEngineering/Development Best Practices|Development Best Practices]] - read this when you're starting something new | * [[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/Deployment|Deployment]] - How we deploy our tools, and how do we update them. | ||
| Line 194: | Line 137: | ||
See the [[Buildduty|Buildduty home page]] and [[Buildduty/manifesto|manifesto]] for more information. | See the [[Buildduty|Buildduty home page]] and [[Buildduty/manifesto|manifesto]] for more information. | ||
== | == CI Duty == | ||
CI Duty provides support for Firefox's release infrastructure and is currently handled by Releng | |||
See the [[ | See the [[CIDuty]] for more information. | ||
= Releng Applications = | = Releng Applications = | ||
| Line 222: | Line 165: | ||
below pages should be deleted or be given a "warning" outdated box where appropriate. | below pages should be deleted or be given a "warning" outdated box where appropriate. | ||
== VCS Sync == | == VCS Sync == | ||
| Line 266: | Line 189: | ||
== Testing == | == Testing == | ||
* [[ReleaseEngineering:IntermittentErrors | Intermittent Errors]] | * [[ReleaseEngineering:IntermittentErrors | Intermittent Errors]] | ||
* [[ReleaseEngineering/ | * [[ReleaseEngineering/How To/Request a loaner | Requesting a loaner]] | ||
* [[ReleaseEngineering/Testing a new Signing Server | Testing a new Signing Server]] | * [[ReleaseEngineering/Testing a new Signing Server | Testing a new Signing Server]] | ||
* [[ReleaseEngineering:TestingTechniques | Testing your changes]] | |||
= Subpages = | = Subpages = | ||
* [[ReleaseEngineering/Presentations|Presentations]] | * [[ReleaseEngineering/Presentations|Presentations]] | ||
* [[ReleaseEngineering/How Tos|How Tos]] | * [[ReleaseEngineering/How Tos|How Tos]] | ||
* [ | * [https://docs.mozilla-releng.net/en/latest/ Releng Docs] | ||
* [[Special:PrefixIndex/{{FULLPAGENAME}}/]] - all subpages of [[{{FULLPAGENAME}}]] in the wiki | * [[Special:PrefixIndex/{{FULLPAGENAME}}/]] - all subpages of [[{{FULLPAGENAME}}]] in the wiki | ||
* [[ReleaseEngineering/Obsolete Pages]] | * [[ReleaseEngineering/Obsolete Pages]] | ||
* [[ReleaseEngineering/Day_1_Checklist|day 1 checklist]] | * [[ReleaseEngineering/Day_1_Checklist|day 1 checklist]] | ||
* [[ReleaseEngineering/Day_-1_Checklist|day -1 checklist]] | * [[ReleaseEngineering/Day_-1_Checklist|day -1 checklist]] | ||
= Run the tasks to staging pools (OSX/Linux) = | |||
* Clone mozilla-central to local machine: hg clone ssh://hg.mozilla.org/mozilla-central | |||
* Add the following changes to taskcluster/taskgraph/transforms/task.py file: | |||
<pre> | |||
diff --git a/taskcluster/taskgraph/transforms/task.py b/taskcluster/taskgraph/transforms/task.py | |||
--- a/taskcluster/taskgraph/transforms/task.py | |||
+++ b/taskcluster/taskgraph/transforms/task.py | |||
@@ -1717,16 +1717,48 @@ def add_index_routes(config, tasks): | |||
index_type = index.get('type', 'generic') | |||
task = index_builders[index_type](config, task) | |||
del task['index'] | |||
yield task | |||
@transforms.add | |||
+def set_worker_type(config, tasks): | |||
+ for task in tasks: | |||
+ level = str(config.params['level']) | |||
+ | |||
+ provisioner_id, worker_type = get_worker_type( | |||
+ config.graph_config, | |||
+ task['worker-type'], | |||
+ level, | |||
+ ) | |||
+ task['worker-type'] = '/'.join([provisioner_id, worker_type]) | |||
+ yield task | |||
+ | |||
+ | |||
+@transforms.add | |||
+def use_beta_workertypes(config, tasks): | |||
+ """ | |||
+ This transform uses a dictionary of worker type names to worker type names | |||
+ in order to map one set of worker types to another set. This is typically | |||
+ useful when you want to run a try push against a staging set of worker | |||
+ types, that you want to test before rolling them out to production. | |||
+ """ | |||
+ find_replace_dict = { | |||
+ "releng-hardware/gecko-t-osx-1014": "releng-hardware/gecko-t-osx-1014-staging", | |||
+ "releng-hardware/gecko-t-linux-talos": "releng-hardware/gecko-t-linux-talos-b" | |||
+ } | |||
+ for task in tasks: | |||
+ if task['worker-type'] in find_replace_dict: | |||
+ task['worker-type'] = find_replace_dict[task['worker-type']] | |||
+ yield task | |||
+ | |||
+ | |||
+@transforms.add | |||
def build_task(config, tasks): | |||
for task in tasks: | |||
level = str(config.params['level']) | |||
provisioner_id, worker_type = get_worker_type( | |||
config.graph_config, | |||
task['worker-type'], | |||
level, | |||
</pre> | |||
* Commit the changes using the following commit message: hg commit -m "<commit_message>; try: -b do -p macosx64 -u all -t none". The <commit_message> will be a message that will describe your action, like: Run all tests on OSX staging workers. | |||
** To run different tests or on a different platform, use https://mozilla-releng.net/trychooser/ | |||
** Do _not_ run unnecessay tests or you may end up on the [https://catlee.github.io/highscores/highscores.html hiscore board]. | |||
* Push the changes into try repository: hg push -f -r . ssh://hg.mozilla.org/try | |||
* You will receive an email like this: | |||
<pre> | |||
Thank you for your try submission. It's the best! | |||
Results will be displayed on Treeherder as they come in: | |||
https://treeherder.mozilla.org/#/jobs?repo=try&revision=6657878a04024803ce0aae0601627810b2d8d95e | |||
It looks like this submission has talos jobs. You can compare the performance of your push against a baseline revision here: | |||
https://treeherder.mozilla.org/perf.html#/comparechooser?newProject=try&newRevision=6657878a04024803ce0aae0601627810b2d8d95e | |||
Once completed, all build and log artifacts will be available through the Treeherder URL above. | |||
All Taskcluster based artifacts can also be found in the Taskcluster Artifact Index: | |||
e.g. https://tools.taskcluster.net/index/artifacts/gecko.v2.try.revision.6657878a04024803ce0aae0601627810b2d8d95e | |||
Summary: Test linux generic-worker; try: -b do -p linux64 -u none -t chromez-e10s | |||
</pre> | |||
==== Notes ==== | |||
* A useful link for try syntax: https://mozilla-releng.net/trychooser/ | |||
* To see the hosts from the staging pool: | |||
* OSX hosts: https://tools.taskcluster.net/provisioners/releng-hardware/worker-types/gecko-t-osx-1010-beta | |||
* Linux hosts: https://tools.taskcluster.net/provisioners/releng-hardware/worker-types/gecko-t-linux-talos-b | |||