ReleaseEngineering: Difference between revisions

→‎Subpages: Mark Releng Docs as not outdated anymore
(adds mhentges to releng wiki team list)
(→‎Subpages: Mark Releng Docs as not outdated anymore)
 
(15 intermediate revisions by 7 users not shown)
Line 28: Line 28:


= Contacting Release Engineering =
= Contacting Release Engineering =
Our team is located on 3 continents and in 5 time zones. This allows us to provide better service, especially if you contact us using one of the following methods:
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 #ci on IRC, or email release@m.c
* 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 #ci in IRC or email release@m.c, starting your message with 'URGENT:'. If no response in 15 minutes, then
# 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>blocker</tt>"
# Be sure the bug severity is set to "<tt>S1</tt>"
# Call one or more of the following people (nagios page preferred if you have access):
# Call [https://people.mozilla.org/p/jlorenzo Johan Lorenzo] (Paris time).
#* [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.
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]
|-
| Justin Wood
| [https://mozillians.org/en-US/u/Callek/ Callek]
|
| [http://blog.drapostles.org/ "Callek's Blog"]
|-
| Chris AtLee
| [https://mozillians.org/u/catlee catlee]
| [https://twitter.com/chrisatlee @chrisatlee]
| [https://atlee.ca/blog/ chris' random ramblings]
|-
| Jordan Lund
| [https://mozillians.org/u/jlund jlund]
|
| [http://jordan-lund.ghost.io/ ghost blog]
|-
| Nick Thomas
| [https://mozillians.org/u/nthomas nthomas]
| [https://twitter.com/nthomasftang @nthomasftang]
| [http://ftangftang.wordpress.com/ F'tang F'tang Release wrangling at the bottom of the world]
|-
| Rail Aliiev
| [https://mozillians.org/u/rail rail]
| [https://twitter.com/railaliiev @railaliiev]
| [http://rail.merail.ca/ Rail's blog]
|-
| Aki Sasaki
| [https://mozillians.org/en-US/u/aki/ aki]
| [https://twitter.com/escapewindow @escapewindow]
| [http://escapewindow.dreamwidth.org/ escapewindow]
|-
| Mihai Tabara
| [https://mozillians.org/en-US/u/mtabara/ mtabara]
| [https://twitter.com/mihaitabara @mihaitabara]
|
|-
| Rok Garbas
|
| [https://twitter.com/garbas @garbas]
| [https://garbas.si/ Rok's blog]
|-
| Johan Lorenzo
| [https://mozillians.org/u/jlorenzo/ jlorenzo]
|
| [https://johanlorenzo.github.io/blog/ Johan's blog]
|-
| Simon Fraser
| [https://mozillians.org/en-US/u/sfraser/ sfraser]
| [https://twitter.com/simonfr @simonfr]
| [https://www.underhenge.org/ Simon's blog]
|-
| Tom Prince
| [https://mozillians.org/en-US/u/tom.prince tprince]
|
|
|-
| Mitchell Hentges
| [https://mozillians.org/en-US/u/mitch9654 mhentges]
|
|
|}
|}


Line 199: 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.


== Releaseduty ==
== CI Duty ==


Releaseduty provides support for Firefox's release infrastructure and is currently handled by Releng
CI Duty provides support for Firefox's release infrastructure and is currently handled by Releng


See the [[ReleaseEngineering/Releaseduty home page]] for more information.
See the [[CIDuty]] for more information.


= Releng Applications =
= Releng Applications =
Line 227: 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.
== Buildbot ==
* Master
** [[ReleaseEngineering/Master Naming|Master Naming]]
** [[ReleaseEngineering/Master Setup|Master Setup]]
** [[ReleaseEngineering/Upgrading Buildbot|Upgrading Buildbot]]
** [[ReleaseEngineering/Preproduction|Preproduction]]
** [https://intranet.mozilla.org/RelEngWiki/index.php/Masters Masters] (authentication required)
** [[ReleaseEngineering/Queue directories|Queue directories]]
* Slave
** [[ReleaseEngineering/Buildslave Versions|Buildslave Versions]]
** [[ReleaseEngineering/Buildslave Startup Process|Buildslave Startup Process]]
** [[ReleaseEngineering/Slave_Naming|Slave naming]]
* Development
** [[ReleaseEngineering/Virtualenv|Virtualenv]] - How to set up and use python virtual environments
** [[ReleaseEngineering:TestingTechniques|Methods for testing your changes]]
** [[ReleaseEngineering/Buildbot Best Practices|Buildbot Best Practices]]
** [[ReleaseEngineering/Landing Buildbot Master Changes|Landing Buildbot Master Changes]]
* References
** [[ReleaseEngineering/Buildbot_Database_Schemas|Buildbot Database Schemas]]


== VCS Sync ==
== VCS Sync ==
Line 272: Line 190:
== Testing ==
== Testing ==
* [[ReleaseEngineering:IntermittentErrors | Intermittent Errors]]
* [[ReleaseEngineering:IntermittentErrors | Intermittent Errors]]
* [[ReleaseEngineering/RequestingASlave | Requesting A Slave]]
* [[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]]
* [http://moz-releng-docs.readthedocs.org/en/latest/ Releng Docs] '''''outdated'''''
* [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/Buildbot Migration|Buildbot Migration]] - '''''outdated''''' What builds are produced where? Buildbot, TaskCluster, or other?
* [[ReleaseEngineering/Obsolete Pages]]
* [[ReleaseEngineering/Obsolete Pages]]
* [[ReleaseEngineering/Day_1_Checklist|day 1 checklist]]
* [[ReleaseEngineering/Day_1_Checklist|day 1 checklist]]
Line 292: Line 210:
--- a/taskcluster/taskgraph/transforms/task.py
--- a/taskcluster/taskgraph/transforms/task.py
+++ b/taskcluster/taskgraph/transforms/task.py
+++ b/taskcluster/taskgraph/transforms/task.py
@@ -1582,16 +1582,44 @@ def add_index_routes(config, tasks):
@@ -1717,16 +1717,48 @@ def add_index_routes(config, tasks):
         index_type = index.get('type', 'generic')
         index_type = index.get('type', 'generic')
         task = index_builders[index_type](config, task)
         task = index_builders[index_type](config, task)
 
         del task['index']
         del task['index']
         yield task
         yield task
 
 
  @transforms.add
  @transforms.add
+def replace_level_in_workertype(config, tasks):
+def set_worker_type(config, tasks):
+    """
+    This transform replaces {level} in workerType name with actual scm level.
+    """
+    for task in tasks:
+    for task in tasks:
+        level = str(config.params['level'])
+        level = str(config.params['level'])
+        task['worker-type'] = task['worker-type'].format(level=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
+        yield task
+
+
+
+@transforms.add
+@transforms.add
Line 319: Line 241:
+    """
+    """
+    find_replace_dict = {
+    find_replace_dict = {
+        "releng-hardware/gecko-t-osx-1010":      "releng-hardware/gecko-t-osx-1010-beta",
+        "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"
+    }
+    }
+    # Replace releng-hardware/gecko-t-osx-1010 worker-type with releng-hardware/gecko-t-osx-1010-beta
+    # for Linux, replace releng-hardware/gecko-t-linux-talos with releng-hardware/gecko-t-linux-talos-b
+    for task in tasks:
+    for task in tasks:
+        if task['worker-type'] in find_replace_dict:
+        if task['worker-type'] in find_replace_dict:
+            task['worker-type'] = find_replace_dict[task['worker-type']]
+            task['worker-type'] = find_replace_dict[task['worker-type']]
+        yield task
+        yield task
+
+
+
+@transforms.add
+@transforms.add
Line 332: Line 254:
     for task in tasks:
     for task in tasks:
         level = str(config.params['level'])
         level = str(config.params['level'])
        worker_type = task['worker-type'].format(level=level)
 
         provisioner_id, worker_type = worker_type.split('/', 1)
         provisioner_id, worker_type = get_worker_type(
        project = config.params['project']
            config.graph_config,
            task['worker-type'],
        routes = task.get('routes', [])
            level,
</pre>
</pre>


Confirmed users
213

edits