.taskcluster.yml
author Chris H-C <chutten@mozilla.com>
Mon, 04 Jul 2016 11:16:05 -0400
changeset 312997 df28918fe2361f0b54ca9ce4773a29c4c0675d06
parent 312519 f7c54584d7f7ff96c75365a2df94c27e5e0950bf
child 314011 fdc068413084b15bc0831482af66d9445dd59246
permissions -rw-r--r--
bug 1218576 - Support remote accumulation via JS histograms. r=gfritzsche The JS histograms, too, need to dispatch their accumulations from child to parent. JSHistograms_Add now only supports histograms that are in gHistogramsMap or that were created in the parent process. After bug 1288745, maybe we'll be able to change this to be less convoluted. MozReview-Commit-ID: 3qTH89YKbGP

---
version: 0
metadata:
  name: 'Taskcluster tasks for Gecko'
  description: "The taskcluster task graph for Gecko trees"
  owner: mozilla-taskcluster-maintenance@mozilla.com
  source: {{{source}}}

scopes:
  # Note the below scopes are insecure however these get overriden on the server
  # side to whatever scopes are set by mozilla-taskcluster.
  - queue:*
  - docker-worker:*
  - scheduler:*

# Available mustache parameters (see the mozilla-taskcluster source):
#
# - owner:          push user (email address)
# - source:         URL of this YAML file
# - url:            repository URL
# - project:        alias for the destination repository (basename of
#                   the repo url)
# - level:          SCM level of the destination repository
#                   (1 = try, 3 = core)
# - revision:       (short) hg revision of the head of the push
# - revision_hash:  (long) hg revision of the head of the push
# - comment:        comment of the push
# - pushlog_id:     id in the pushlog table of the repository
#
# and functions:
# - as_slugid:      convert a label into a slugId
# - from_now:       generate a timestamp at a fixed offset from now

# The resulting tasks' taskGroupId will be equal to the taskId of the first
# task listed here, which should be the decision task.  This gives other tools
# an easy way to determine the ID of the decision task that created a
# particular group.

tasks:
  - taskId: '{{#as_slugid}}decision task{{/as_slugid}}'
    task:
      created: '{{now}}'
      deadline: '{{#from_now}}1 day{{/from_now}}'
      expires: '{{#from_now}}365 day{{/from_now}}'
      metadata:
        owner: mozilla-taskcluster-maintenance@mozilla.com
        source: {{{source}}}
        name: "Gecko Decision Task"
        description: |
            The task that creates all of the other tasks in the task graph

      workerType: "gecko-decision"
      provisionerId: "aws-provisioner-v1"

      tags:
        createdForUser: {{owner}}

      scopes:
        # Bug 1269443: cache scopes, etc. must be listed explicitly
        - "docker-worker:cache:level-{{level}}-*"
        - "docker-worker:cache:tooltool-cache"
        # mozilla-taskcluster will append the appropriate assume:repo:<repo>
        # scope here.

      routes:
        - "index.gecko.v2.{{project}}.latest.firefox.decision"
        - "tc-treeherder.v2.{{project}}.{{revision}}.{{pushlog_id}}"
        - "tc-treeherder-stage.v2.{{project}}.{{revision}}.{{pushlog_id}}"

      payload:
        env:
          # checkout-gecko uses these to check out the source; the inputs
          # to `mach taskgraph decision` are all on the command line.
          GECKO_BASE_REPOSITORY: 'https://hg.mozilla.org/mozilla-unified'
          GECKO_HEAD_REPOSITORY: '{{{url}}}'
          GECKO_HEAD_REF: '{{revision}}'
          GECKO_HEAD_REV: '{{revision}}'

        cache:
          level-{{level}}-hg-shared: /home/worker/hg-shared
          level-{{level}}-checkouts: /home/worker/checkouts

        features:
          taskclusterProxy: true

        # Note: This task is built server side without the context or tooling that
        # exist in tree so we must hard code the version
        image: 'taskcluster/decision:0.1.6'

        maxRunTime: 1800

        # TODO use mozilla-unified for the base repository once the tc-vcs
        # tar.gz archives are created or tc-vcs isn't being used.
        command:
          - /home/worker/bin/run-task
          - '--vcs-checkout=/home/worker/checkouts/gecko'
          - '--'
          - bash
          - -cx
          - >
              cd /home/worker/checkouts/gecko &&
              ln -s /home/worker/artifacts artifacts &&
              ./mach --log-no-times taskgraph decision
              --pushlog-id='{{pushlog_id}}'
              --pushdate='{{pushdate}}'
              --project='{{project}}'
              --message='{{comment}}'
              --owner='{{owner}}'
              --level='{{level}}'
              --base-repository='https://hg.mozilla.org/mozilla-central'
              --head-repository='{{{url}}}'
              --head-ref='{{revision}}'
              --head-rev='{{revision}}'
              --revision-hash='{{revision_hash}}'

        artifacts:
          'public':
            type: 'directory'
            path: '/home/worker/artifacts'
            expires: '{{#from_now}}364 days{{/from_now}}'
          'public/docker_image_contexts':
            type: 'directory'
            path: '/home/worker/docker_image_contexts'
            expires: '{{#from_now}}7 days{{/from_now}}'

      extra:
        treeherder:
          symbol: D