Bug 1486970 - Create revision and pushlog-id index routes for cron decision tasks. r=dustin,aki

This hardcodes the push info in .taskgraph.yml for cron so that we don't break Chain Of Trust (signing)
on other branches (uplifts) when we adjust scriptworker to start passing in this data to json-e.

This allows us to incrementally roll this out without needing a flag day, and will be needed on all production branches.

Differential Revision: https://phabricator.services.mozilla.com/D4501

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Justin Wood 2018-09-14 16:47:09 +00:00
Родитель 550968fbb9
Коммит d3a9739ed5
1 изменённых файлов: 13 добавлений и 6 удалений

Просмотреть файл

@ -13,6 +13,12 @@ tasks:
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'}}
# Hardcode cron push info for now, so that we can transition to using real values without breaking callers of Chain of Trust
_pushId: {$if: 'tasks_for == "cron"', then: '-1', else: {$eval: 'push.pushlog_id'}}
# action tasks can fail because of no pushdate or push comment information in context, so include them in
# hardcodes (even though they don't use these variables)
_pushDate: {$if: 'tasks_for == "cron" || tasks_for == "action"', then: '0', else: {$eval: 'push.pushdate'}}
_pushComment: {$if: 'tasks_for == "cron" || tasks_for == "action"', then: '', else: {$eval: 'push.comment'}}
in:
taskId: {$if: 'tasks_for != "action"', then: '${as_slugid("decision")}'}
taskGroupId:
@ -63,12 +69,12 @@ tasks:
routes:
$flatten:
- "tc-treeherder.v2.${repository.project}.${push.revision}.${push.pushlog_id}"
- "tc-treeherder.v2.${repository.project}.${push.revision}.${_pushId}"
- $if: 'tasks_for == "hg-push"'
then:
- "index.gecko.v2.${repository.project}.latest.taskgraph.decision"
- "index.gecko.v2.${repository.project}.revision.${push.revision}.taskgraph.decision"
- "index.gecko.v2.${repository.project}.pushlog-id.${push.pushlog_id}.decision"
- "index.gecko.v2.${repository.project}.pushlog-id.${_pushId}.decision"
- "notify.email.${ownerEmail}.on-failed"
- "notify.email.${ownerEmail}.on-exception"
# These are the old index routes for the decision task.
@ -80,9 +86,10 @@ tasks:
then:
- "notify.email.taskcluster-notifications+action-task@mozilla.com.on-failed"
- "notify.email.taskcluster-notifications+action-task@mozilla.com.on-exception"
- "index.gecko.v2.${repository.project}.pushlog-id.${push.pushlog_id}.actions.${ownTaskId}"
- "index.gecko.v2.${repository.project}.pushlog-id.${_pushId}.actions.${ownTaskId}"
else: # cron
- "index.gecko.v2.${repository.project}.latest.taskgraph.decision-${cron.job_name}"
# These are the old index routes for the decision task.
- "index.gecko.v2.${repository.project}.latest.firefox.decision-${cron.job_name}"
scopes:
@ -114,7 +121,7 @@ tasks:
GECKO_HEAD_REPOSITORY: '${repoUrl}'
GECKO_HEAD_REF: '${push.revision}'
GECKO_HEAD_REV: '${push.revision}'
GECKO_COMMIT_MSG: {$if: 'tasks_for != "action"', then: '${push.comment}'}
GECKO_COMMIT_MSG: {$if: 'tasks_for != "action"', then: '${_pushComment}'}
HG_STORE_PATH: /builds/worker/checkouts/hg-store
TASKCLUSTER_CACHES: /builds/worker/checkouts
- $if: 'tasks_for == "action"'
@ -157,8 +164,8 @@ tasks:
cd /builds/worker/checkouts/gecko &&
ln -s /builds/worker/artifacts artifacts &&
./mach --log-no-times taskgraph decision
--pushlog-id='${push.pushlog_id}'
--pushdate='${push.pushdate}'
--pushlog-id='${_pushId}'
--pushdate='${_pushDate}'
--project='${repository.project}'
--message="$GECKO_COMMIT_MSG"
--owner='${ownerEmail}'