security/nss/.taskcluster.yml
author Byron Campen [:bwc] <docfaraday@gmail.com>
Thu, 21 Feb 2019 16:42:12 +0000
changeset 460286 c414d82a532508523d40ce63111cb30b2a1076be
parent 459517 ac41d41f0494ecaa65593f168e3425069507a6bb
child 466274 19ede4b24924b2893bce5f19e405ad53da493065
permissions -rw-r--r--
Bug 1521879 - Part 1: IPC-based MediaTransport implementation r=mjf Differential Revision: https://phabricator.services.mozilla.com/D17273

# This file is rendered via JSON-e in a hook with context:
#   {
#     tasks_for: 'hg-push',
#     push: {owner, pushlog_id, pushdate},
#     repository: {url, project, level},
#     now,
#     ownTaskId: // taskId of the task that will be created
#   }
---
version: 1
tasks:
  - $let:
      # sometimes the push user is just `ffxbld` or the like, but we want an
      # email-like field..
      ownerEmail:
        $if: '"@" in push.owner'
        then: '${push.owner}'
        else: '${push.owner}@noreply.mozilla.org'
      # ensure there's no trailing `/` on the repo URL
      repoUrl:
        $if: 'repository.url[-1] == "/"'
        then: {$eval: 'repository.url[:-1]'}
        else: {$eval: 'repository.url'}
    in:
      taskId: '${ownTaskId}'
      taskGroupId: '${ownTaskId}'
      schedulerId: 'gecko-level-nss'
      created: {$fromNow: ''}
      deadline: {$fromNow: '1 day'}
      expires: {$fromNow: '14 days'}

      metadata:
        owner: mozilla-taskcluster-maintenance@mozilla.com
        source: "${repository.url}"
        name: "NSS Decision Task"
        description: |
            The task that creates all of the other tasks in the task graph

      workerType: "hg-worker"
      provisionerId: "aws-provisioner-v1"

      scopes:
        - 'assume:repo:${repoUrl[8:]}:branch:default'
        - 'queue:route:notify.email.${ownerEmail}.*'
      tags:
        createdForUser: "${ownerEmail}"

      routes:
        - "tc-treeherder-stage.v2.${repository.project}.${push.revision}.${push.pushlog_id}"
        - "tc-treeherder.v2.${repository.project}.${push.revision}.${push.pushlog_id}"

      payload:
        # TODO: use nssdev org , not djmitche, once the image is pushed there
        image: djmitche/nss-decision:0.0.3

        env:
          TC_OWNER: "${push.owner}"
          TC_SOURCE: "${repository.url}"
          TC_PROJECT: ${repository.project}
          NSS_PUSHLOG_ID: '${push.pushlog_id}'
          NSS_HEAD_REPOSITORY: '${repository.url}'
          NSS_HEAD_REVISION: '${push.revision}'

        maxRunTime: 1800

        command:
          - bash
          - -cx
          - >
            bin/checkout.sh &&
            nss/automation/taskcluster/scripts/extend_task_graph.sh

        features:
          taskclusterProxy: true

      extra:
        treeherder:
          symbol: D
          build:
            platform: nss-decision
          machine:
            platform: nss-decision