diff --git a/taskcluster/ci/balrog/kind.yml b/taskcluster/ci/balrog/kind.yml index 4b7e82f644789947f48a9063ec2e06fb00c1ca2b..d1ab821ede6438f81fa2b339de6be03a4f8a13ae 100644 --- a/taskcluster/ci/balrog/kind.yml +++ b/taskcluster/ci/balrog/kind.yml @@ -17,3 +17,46 @@ kind-dependencies: only-for-attributes: - nightly - signed + +job-template: + notifications: + completed: + subject: "COMPLETED: [{task[shipping-product]} {release_config[version]} build{release_config[build_number]}/{config[params][project]}] {task_def[metadata][name]} task" + message: "COMPLETED: [{task[shipping-product]} {release_config[version]} build{release_config[build_number]}/{config[params][project]}] {task_def[metadata][name]} task" + plugins: + by-project: + mozilla-beta: ["log_collect"] + mozilla-release: ["log_collect"] + default: [] + + failed: + subject: "FAILED: [{task[shipping-product]} {release_config[version]} build{release_config[build_number]}/{config[params][project]}] {task_def[metadata][name]} task" + message: "FAILED: [{task[shipping-product]} {release_config[version]} build{release_config[build_number]}/{config[params][project]}] {task_def[metadata][name]} task" + plugins: + by-project: + mozilla-beta: ["log_collect", "ses"] + mozilla-release: ["log_collect", "ses"] + default: ["ses"] + emails: + by-project: + mozilla-beta: ["release-automation-notifications@mozilla.com"] + mozilla-release: ["release-automation-notifications@mozilla.com"] + try: ["{task_def[metadata][owner]}"] + maple: ["release+tcstaging@mozilla.com"] + default: [] + + exception: + subject: "EXCEPTION: [{task[shipping-product]} {release_config[version]} build{release_config[build_number]}/{config[params][project]}] {task_def[metadata][name]} task" + message: "EXCEPTION: [{task[shipping-product]} {release_config[version]} build{release_config[build_number]}/{config[params][project]}] {task_def[metadata][name]} task" + plugins: + by-project: + mozilla-beta: ["log_collect", "ses"] + mozilla-release: ["log_collect", "ses"] + default: ["ses"] + emails: + by-project: + mozilla-beta: ["release-automation-notifications@mozilla.com"] + mozilla-release: ["release-automation-notifications@mozilla.com"] + try: ["{task_def[metadata][owner]}"] + maple: ["release+tcstaging@mozilla.com"] + default: [] diff --git a/taskcluster/taskgraph/transforms/balrog.py b/taskcluster/taskgraph/transforms/balrog.py index cc62e4d74a38430b0f4230d6bf8967d4b39b14e8..8e63fd7f14d95a63d4a3bdbabaad8a9d7ea9cdc6 100644 --- a/taskcluster/taskgraph/transforms/balrog.py +++ b/taskcluster/taskgraph/transforms/balrog.py @@ -11,7 +11,8 @@ from taskgraph.transforms.base import TransformSequence from taskgraph.util.attributes import copy_attributes_from_dependent_job from taskgraph.util.schema import validate_schema, Schema from taskgraph.util.scriptworker import (get_balrog_server_scope, - get_balrog_channel_scopes) + get_balrog_channel_scopes, + get_phase) from taskgraph.transforms.task import task_description_schema from voluptuous import Any, Required, Optional @@ -38,6 +39,13 @@ balrog_description_schema = Schema({ # taskcluster/taskgraph/transforms/task.py for the schema details, and the # below transforms for defaults of various values. Optional('treeherder'): task_description_schema['treeherder'], + + # Shipping product / phase + Optional('shipping-product'): task_description_schema['shipping-product'], + Optional('shipping-phase'): task_description_schema['shipping-phase'], + + # Notifications + Optional('notifications'): task_description_schema['notifications'], }) @@ -93,6 +101,7 @@ def make_task_description(config, jobs): server_scope = get_balrog_server_scope(config) channel_scopes = get_balrog_channel_scopes(config) + phase = get_phase(config) task = { 'label': label, @@ -107,6 +116,9 @@ def make_task_description(config, jobs): 'attributes': attributes, 'run-on-projects': dep_job.attributes.get('run_on_projects'), 'treeherder': treeherder, + 'shipping-phase': job.get('shipping-phase', phase), + 'shipping-product': job.get('shipping-product'), + 'notifications': job.get('notifications'), } yield task