.taskcluster.yml
author Ehsan Akhgari <ehsan@mozilla.com>
Fri, 03 Mar 2017 15:16:23 -0500
changeset 346288 69abc17ea32fd2b12a8bba5f7a34cb5de2b05133
parent 341144 43bf48f50829845e365bbdea8726684a3c8f7745
child 349311 b31c893d19a012af563970eca9f4eb4694a48ae0
permissions -rw-r--r--
Bug 1340710 - Part 5: Make nsIPrincipal.origin throw for about:blank codebase URI principals; r=bholley Two about:blank codebase URI principals are only equal if their object identities are the same, but not if their string serializations happen to be equal (as they always will be.) In order to ensure that we always get this right in places where we compare the origin properties of two principals to check for their equality, we should ensure that the origin getter would throw so that we never incorrectly conclude that two such principals are equal. We will soon start returning a null principal instead of a codebase principal under this situation.

---
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:*

# This file undergoes substitution to create tasks.  For on-push tasks, that
# substitution is done by mozilla-taskcluster.  For cron tasks, that substitution
# is done by `taskcluster/taskgraph/cron/decision.py`.  If you change any of the
# template parameters, please do so in all three places!
#
# Available template parameters:
#
# - now:            current time
# - 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:       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
# - shellquote:     quote the contents for injection into shell

# 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}}

      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}}'
          HG_STORE_PATH: /home/worker/checkouts/hg-store

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

        features:
          taskclusterProxy: true
          chainOfTrust: true

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

        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={{#shellquote}}{{{comment}}}{{/shellquote}}
              --owner='{{owner}}'
              --level='{{level}}'
              --base-repository='https://hg.mozilla.org/mozilla-central'
              --head-repository='{{{url}}}'
              --head-ref='{{revision}}'
              --head-rev='{{revision}}'

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

      extra:
        treeherder:
          symbol: D