blob: ba7c45e13113cc256ffc4964d01360d056eed191 [file] [log] [blame]
# Copyright 2016 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
DEPS = [
'flutter/flutter_deps',
'flutter/kms',
'flutter/repo_util',
'recipe_engine/context',
'recipe_engine/path',
'recipe_engine/platform',
'recipe_engine/properties',
'recipe_engine/step',
]
def RunSteps(api):
assert api.platform.is_linux, 'This recipe should only be run once per commit, on Linux'
checkout_path = api.path['start_dir'].join('flutter')
api.repo_util.checkout(
'flutter',
checkout_path=checkout_path,
# If either of these are None, repo_util.checkout will fall back to sane
# default
url=api.properties.get('git_url'),
ref=api.properties.get('git_ref'),
)
env, env_prefixes = api.repo_util.flutter_environment(checkout_path)
api.flutter_deps.required_deps(
env,
env_prefixes,
api.properties.get('dependencies', []),
)
conductor_dir = checkout_path.join('dev', 'conductor')
with api.context(env=env, env_prefixes=env_prefixes, cwd=conductor_dir):
roll_packages(api, conductor_dir)
def roll_packages(api, conductor_dir):
token_file = conductor_dir.join('token.txt')
api.kms.get_secret('pub-roller-github-token.encrypted', token_file)
autoroll_script = conductor_dir.join(
'bin',
'packages_autoroller',
)
# This should be an https url an ssh url cannot be authenticated via an
# access token
mirror_remote = api.properties.get(
'mirror_remote', 'https://github.com/fluttergithubbot/flutter.git')
api.step('run roll-packages script', [
autoroll_script,
'--token',
token_file,
'--mirror-remote',
mirror_remote,
])
def GenTests(api):
yield api.test(
'roll',
api.repo_util.flutter_environment_data(),
)