Skip to content
Snippets Groups Projects
Commit 8e84a344 authored by Aki Sasaki's avatar Aki Sasaki
Browse files

bug 1423081 - snap support. r=callek

MozReview-Commit-ID: BPZrBDJxLYu

--HG--
extra : rebase_source : b3d1af05be248bb6df59f4441296f3c6014d803c
extra : histedit_source : 52145ce664c0ca6ab26b0eaac2ceb5c5163b1139
parent 8c774453
No related branches found
No related tags found
No related merge requests found
......@@ -54,6 +54,7 @@ treeherder:
'p': 'Partial generation'
'ps': 'Partials signing'
'Rel': 'Release promotion'
'Snap': 'Snap image generation'
try:
# We have a few platforms for which we want to do some "extra" builds, or at
......
# 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/.
loader: taskgraph.loader.transform:loader
transforms:
- taskgraph.transforms.release_deps:transforms
- taskgraph.transforms.release_snap:transforms
- taskgraph.transforms.task:transforms
kind-dependencies:
- post-beetmover-dummy
job-defaults:
description: Generates snap image
run-on-projects: [] # to make sure this never runs as part of CI
shipping-phase: promote
scopes:
by-project:
mozilla-beta: ["secrets:get:project/releng/snapcraft/firefox/edge"]
default: []
treeherder:
platform: linux64/opt
kind: build
tier: 3
index:
type: release
routes:
- index.releases.v1.{branch}.{revision}.{product}.{underscore_version}.build{build_number}.snap
- index.releases.v1.{branch}.latest.{product}.latest.snap
worker-type: aws-provisioner-v1/gecko-{level}-b-linux
worker:
implementation: docker-worker
os: linux
max-run-time: 7200
docker-image: mozillareleases/firefox-snapcraft@sha256:107cc7a89d45ce6df30f44fe0dfd0b375b3ab443b75e92efc77c4f7bc5da8717
artifacts:
- name: public/build
type: directory
path: /home/worker/artifacts/
command:
- /bin/bash
- -cx
- >
apt-get update &&
apt-get dist-upgrade -y &&
curl -o scripts.tar.bz2 {config_params[head_repository]}/archive/{config_params[head_rev]}.tar.bz2/taskcluster/docker/firefox-snap/ &&
mkdir scripts &&
tar xvfj scripts.tar.bz2 -C scripts --strip-components 4 &&
cd scripts &&
./runme.sh
env:
VERSION: "{release_config[version]}"
BUILD_NUMBER: "{release_config[build_number]}"
PUSH_TO_CHANNEL:
by-project:
mozilla-beta: "edge"
default: ""
CANDIDATES_DIR:
by-project:
maple:
https://net-mozaws-stage-delivery-firefox.s3.amazonaws.com/pub/{task[shipping-product]}/candidates
default:
https://net-mozaws-prod-delivery-firefox.s3.amazonaws.com/pub/{task[shipping-product]}/candidates
LC_ALL: C.UTF-8
LANG: C.UTF-8
taskcluster-proxy: true
notifications:
completed:
subject: "COMPLETED: [{task[shipping-product]} {release_config[version]} build{release_config[build_number]}/{config[params][project]}] {task_def[metadata][name]} task"
message: "COMPLETED: [{task[shipping-product]} {release_config[version]} build{release_config[build_number]}/{config[params][project]}] {task_def[metadata][name]} task"
plugins:
by-project:
mozilla-beta: ["log_collect"]
mozilla-release: ["log_collect"]
default: []
failed:
subject: "FAILED: [{task[shipping-product]} {release_config[version]} build{release_config[build_number]}/{config[params][project]}] {task_def[metadata][name]} task"
message: "FAILED: [{task[shipping-product]} {release_config[version]} build{release_config[build_number]}/{config[params][project]}] {task_def[metadata][name]} task"
plugins:
by-project:
mozilla-beta: ["log_collect", "ses"]
mozilla-release: ["log_collect", "ses"]
default: ["ses"]
emails:
by-project:
mozilla-beta: ["release-automation-notifications@mozilla.com"]
mozilla-release: ["release-automation-notifications@mozilla.com"]
try: ["{task_def[metadata][owner]}"]
maple: ["release+tcstaging@mozilla.com"]
default: []
exception:
subject: "EXCEPTION: [{task[shipping-product]} {release_config[version]} build{release_config[build_number]}/{config[params][project]}] {task_def[metadata][name]} task"
message: "EXCEPTION: [{task[shipping-product]} {release_config[version]} build{release_config[build_number]}/{config[params][project]}] {task_def[metadata][name]} task"
plugins:
by-project:
mozilla-beta: ["log_collect", "ses"]
mozilla-release: ["log_collect", "ses"]
default: ["ses"]
emails:
by-project:
mozilla-beta: ["release-automation-notifications@mozilla.com"]
mozilla-release: ["release-automation-notifications@mozilla.com"]
try: ["{task_def[metadata][owner]}"]
maple: ["release+tcstaging@mozilla.com"]
default: []
jobs:
firefox:
shipping-product: firefox
treeherder:
symbol: Snap(BF)
index:
product: firefox
......@@ -79,9 +79,9 @@ cat signing_manifest.json
# TODO: Don't filter out non-beta releases
# TODO: Parametrize channel depending on beta vs release
# TODO: Make this part an independent task
if [[ $VERSION =~ ^[0-9]+\.0b[0-9]+$ ]]; then
if [ "$PUSH_TO_CHANNEL" != "" ]; then
echo "Beta version detected. Uploading to Ubuntu Store (no channel)..."
bash "$SCRIPT_DIRECTORY/fetch_macaroons.sh" 'http://taskcluster/secrets/v1/secret/project/releng/snapcraft/firefox/edge'
bash "$SCRIPT_DIRECTORY/fetch_macaroons.sh" 'http://taskcluster/secrets/v1/secret/project/releng/snapcraft/firefox/$PUSH_TO_CHANNEL'
snapcraft push "$TARGET_FULL_PATH"
else
echo "Non-beta version detected. Nothing else to do."
......
# 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/.
from __future__ import absolute_import, print_function, unicode_literals
from taskgraph.transforms.base import TransformSequence
from taskgraph.util.scriptworker import get_release_config
from taskgraph.util.schema import resolve_keyed_by
transforms = TransformSequence()
@transforms.add
def format(config, tasks):
""" Apply format substitution to worker.env and worker.command.
"""
format_params = {
'release_config': get_release_config(config),
'config_params': config.params,
}
for task in tasks:
format_params['task'] = task
command = task.get('worker', {}).get('command', [])
task['worker']['command'] = [x.format(**format_params) for x in command]
env = task.get('worker', {}).get('env', {})
for k in env.keys():
resolve_keyed_by(env, k, 'snap envs', project=config.params['project'])
task['worker']['env'][k] = env[k].format(**format_params)
resolve_keyed_by(task, 'scopes', 'snap scopes', project=config.params['project'])
yield task
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment