2019-01-08 00:58:02 +00:00
|
|
|
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
|
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
|
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
|
|
version: 1
|
|
|
|
policy:
|
|
|
|
pullRequests: public
|
|
|
|
tasks:
|
|
|
|
- $if: 'tasks_for == "cron"'
|
|
|
|
then:
|
|
|
|
$let:
|
|
|
|
decision_task_id: {$eval: as_slugid("decision_task")}
|
|
|
|
expires_in: {$fromNow: '1 year'}
|
2019-01-11 22:38:55 +00:00
|
|
|
repository: ${event.repository.html_url}
|
2019-01-08 00:58:02 +00:00
|
|
|
scheduler_id: focus-nightly-sched
|
2019-02-07 13:50:46 +00:00
|
|
|
|
|
|
|
head_rev: ${event.release.tag_name}
|
|
|
|
head_branch: ${event.release.target_commitish}
|
|
|
|
|
2019-01-08 00:58:02 +00:00
|
|
|
is_mozilla_mobile_repo:
|
2019-01-11 22:38:55 +00:00
|
|
|
$eval: event.repository.html_url == 'https://github.com/mozilla-mobile/fenix'
|
2019-01-08 00:58:02 +00:00
|
|
|
track:
|
2019-01-11 22:38:55 +00:00
|
|
|
$if: event.repository.html_url == 'https://github.com/mozilla-mobile/fenix'
|
2019-01-08 00:58:02 +00:00
|
|
|
then: 'nightly'
|
|
|
|
else: 'staging-nightly'
|
2019-01-11 22:38:55 +00:00
|
|
|
decision_worker_type:
|
|
|
|
$if: event.repository.html_url == 'https://github.com/mozilla-mobile/fenix'
|
|
|
|
then: mobile-3-decision
|
|
|
|
else: mobile-1-decision
|
|
|
|
build_worker_type:
|
|
|
|
$if: event.repository.html_url == 'https://github.com/mozilla-mobile/fenix'
|
2019-02-07 10:22:15 +00:00
|
|
|
then: mobile-3-b-fenix
|
|
|
|
else: mobile-1-b-fenix
|
2019-02-07 13:50:46 +00:00
|
|
|
|
2019-01-08 00:58:02 +00:00
|
|
|
in:
|
|
|
|
taskId: ${decision_task_id}
|
|
|
|
taskGroupId: ${decision_task_id} # Must be explicit because of Chain of Trust
|
|
|
|
created: {$fromNow: ''}
|
|
|
|
deadline: {$fromNow: '2 hours'}
|
|
|
|
expires: ${expires_in}
|
|
|
|
schedulerId: ${scheduler_id} # Must be explicit because of Chain of Trust
|
|
|
|
provisionerId: aws-provisioner-v1
|
2019-01-11 22:38:55 +00:00
|
|
|
workerType: ${decision_worker_type}
|
2019-01-08 00:58:02 +00:00
|
|
|
requires: all-completed # Must be explicit because of Chain of Trust
|
|
|
|
priority: medium
|
|
|
|
retries: 5
|
|
|
|
scopes:
|
|
|
|
$flatten:
|
|
|
|
- queue:scheduler-id:${scheduler_id}
|
2019-01-11 22:38:55 +00:00
|
|
|
- queue:create-task:highest:aws-provisioner-v1/${build_worker_type}
|
2019-01-11 00:01:05 +00:00
|
|
|
- project:mobile:fenix:releng:signing:format:autograph_apk
|
2019-01-08 00:58:02 +00:00
|
|
|
- $if: is_mozilla_mobile_repo
|
|
|
|
then:
|
|
|
|
- queue:create-task:highest:scriptworker-prov-v1/mobile-signing-v1
|
|
|
|
- queue:create-task:highest:scriptworker-prov-v1/mobile-pushapk-v1
|
|
|
|
- project:mobile:fenix:releng:signing:cert:release-signing
|
|
|
|
- project:mobile:fenix:releng:googleplay:product:fenix
|
|
|
|
- queue:route:index.project.mobile.fenix.signed-nightly.*
|
2019-02-02 00:39:30 +00:00
|
|
|
- secrets:get:project/mobile/fenix/sentry
|
2019-01-08 00:58:02 +00:00
|
|
|
else:
|
|
|
|
- queue:create-task:highest:scriptworker-prov-v1/mobile-signing-dep-v1
|
|
|
|
- queue:create-task:highest:scriptworker-prov-v1/mobile-pushapk-dep-v1
|
|
|
|
- project:mobile:fenix:releng:signing:cert:dep-signing
|
|
|
|
- project:mobile:fenix:releng:googleplay:product:fenix:dep
|
|
|
|
- queue:route:index.project.mobile.fenix.staging-signed-nightly.*
|
2019-02-02 00:39:30 +00:00
|
|
|
- secrets:get:garbage/staging/project/mobile/fenix/sentry
|
2019-01-08 00:58:02 +00:00
|
|
|
payload:
|
|
|
|
maxRunTime: 600 # Decision should remain fast enough to schedule a handful of tasks
|
|
|
|
image: mozillamobile/fenix:1.3
|
|
|
|
features:
|
|
|
|
taskclusterProxy: true
|
|
|
|
chainOfTrust: true
|
|
|
|
env:
|
2019-02-07 10:22:15 +00:00
|
|
|
BUILD_WORKER_TYPE: ${build_worker_type}
|
2019-02-07 13:50:46 +00:00
|
|
|
MOBILE_HEAD_BRANCH: ${head_branch}
|
2019-02-07 10:22:15 +00:00
|
|
|
MOBILE_HEAD_REPOSITORY: ${repository}
|
2019-02-07 13:50:46 +00:00
|
|
|
MOBILE_HEAD_REV: ${head_rev}
|
2019-01-08 00:58:02 +00:00
|
|
|
MOBILE_TRIGGERED_BY: ${event.sender.login}
|
2019-02-07 10:22:15 +00:00
|
|
|
SCHEDULER_ID: ${scheduler_id}
|
|
|
|
TASK_ID: ${decision_task_id}
|
2019-01-08 00:58:02 +00:00
|
|
|
command:
|
|
|
|
- /bin/bash
|
|
|
|
- --login
|
|
|
|
- -cx
|
|
|
|
- >-
|
2019-02-07 13:50:46 +00:00
|
|
|
git fetch ${repository} ${head_branch}
|
|
|
|
&& git config advice.detachedHead false
|
|
|
|
&& git checkout ${head_rev}
|
2019-01-11 00:01:05 +00:00
|
|
|
&& python automation/taskcluster/decision_task_nightly.py \
|
2019-01-08 00:58:02 +00:00
|
|
|
--track ${track} \
|
|
|
|
--commit \
|
2019-02-07 13:50:46 +00:00
|
|
|
--output /opt/fenix/app/build/outputs/apk \
|
2019-01-08 00:58:02 +00:00
|
|
|
--apk arm/release/app-arm-release-unsigned.apk \
|
|
|
|
--apk x86/release/app-x86-release-unsigned.apk \
|
|
|
|
--date ${now}
|
|
|
|
artifacts:
|
|
|
|
public/task-graph.json:
|
|
|
|
type: file
|
2019-02-07 13:50:46 +00:00
|
|
|
path: /opt/fenix/task-graph.json
|
2019-01-08 00:58:02 +00:00
|
|
|
expires: ${expires_in}
|
|
|
|
public/actions.json:
|
|
|
|
type: file
|
2019-02-07 13:50:46 +00:00
|
|
|
path: /opt/fenix/actions.json
|
2019-01-08 00:58:02 +00:00
|
|
|
expires: ${expires_in}
|
|
|
|
public/parameters.yml:
|
|
|
|
type: file
|
2019-02-07 13:50:46 +00:00
|
|
|
path: /opt/fenix/parameters.yml
|
2019-01-08 00:58:02 +00:00
|
|
|
expires: ${expires_in}
|
|
|
|
extra:
|
|
|
|
cron: {$json: {$eval: 'cron'}}
|
|
|
|
tasks_for: ${tasks_for}
|
|
|
|
metadata:
|
|
|
|
name: Fenix Nightly Decision Task
|
|
|
|
description: Decision task scheduled by cron task [${cron.task_id}](https://tools.taskcluster.net/tasks/${cron.task_id})
|
|
|
|
owner: ${event.sender.login}@users.noreply.github.com
|
2019-02-07 13:50:46 +00:00
|
|
|
source: ${repository}/raw/${head_rev}/.taskcluster.yml
|