You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
depot_tools/recipes/recipe_modules/gclient/examples/full.py

131 lines
3.4 KiB
Python

# Copyright 2013 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.
PYTHON_VERSION_COMPATIBILITY = 'PY2+3'
DEPS = [
'gclient',
'recipe_engine/assertions',
'recipe_engine/buildbucket',
'recipe_engine/context',
'recipe_engine/file',
'recipe_engine/path',
'recipe_engine/properties',
'recipe_engine/step',
]
TEST_CONFIGS = [
'android',
'boringssl',
'build_internal',
'build_internal_scripts_slave',
'catapult',
'celab',
'crashpad',
'crossbench',
'custom_tabs_client',
'dart',
'dawn',
'emscripten_releases',
'expect_tests',
'gerrit',
'gerrit_plugins_binary_size',
'gerrit_plugins_buildbucket',
'gerrit_plugins_chromium_behavior',
'gerrit_plugins_chromium_binary_size',
'gerrit_plugins_chumpdetector',
'gerrit_plugins_code_coverage',
'gerrit_plugins_git_numberer',
'gerrit_plugins_landingwidget',
'gerrit_plugins_tricium',
'gerrit_test_cq_normal',
'gyp',
'infra',
'infra_superproject',
'infra_internal_superproject',
'infradata_master_manager',
'infradata_config',
'infradata_rbe',
'internal_deps',
'luci_gae',
'luci_go',
'luci_py',
'master_deps',
'nacl',
'devtools',
'openscreen',
'pdfium',
'recipes_py',
'recipes_py_bare',
'slave_deps',
'tint',
'webports',
'with_branch_heads',
'with_tags',
]
DEPS_CONTENT = """
git_dependencies = 'SYNC'
"""
def RunSteps(api):
file_changes = api.gclient.roll_deps(
'foo', {'foo': '2222222222222222222222222222222222222222'},
test_data=DEPS_CONTENT)
api.assertions.assertEqual(file_changes['foo'],
b'2222222222222222222222222222222222222222')
file_changes = api.gclient.roll_deps(
DEPS_CONTENT, {'src/bar': '2222222222222222222222222222222222222222'},
strip_prefix_for_gitlink='src/',
test_data=DEPS_CONTENT)
# We expect src/ to be stripped from src/bar.
api.assertions.assertEqual(file_changes['bar'],
b'2222222222222222222222222222222222222222')
for config_name in TEST_CONFIGS:
api.gclient.make_config(config_name)
src_cfg = api.gclient.make_config(CACHE_DIR=api.path['cache'].join('git'))
soln = src_cfg.solutions.add()
soln.name = 'src'
soln.url = 'https://chromium.googlesource.com/chromium/src.git'
soln.revision = api.buildbucket.gitiles_commit.id
soln.custom_vars = {'string_var': 'string_val', 'true_var': True}
src_cfg.parent_got_revision_mapping['parent_got_revision'] = 'got_revision'
api.gclient.c = src_cfg
api.gclient.checkout()
api.gclient.spec_alias = 'Angle'
bl_cfg = api.gclient.make_config()
soln = bl_cfg.solutions.add()
soln.name = 'Angle'
soln.url = 'https://chromium.googlesource.com/angle/angle.git'
bl_cfg.revisions['src/third_party/angle'] = 'refs/heads/lkgr'
bl_cfg.got_revision_mapping['src/blatley'] = 'got_blatley_revision'
with api.context(cwd=api.path['start_dir'].join('src', 'third_party')):
api.gclient.checkout(
gclient_config=bl_cfg)
api.gclient.got_revision_reverse_mapping(bl_cfg)
api.gclient.break_locks()
del api.gclient.spec_alias
api.gclient.runhooks()
def GenTests(api):
yield api.test('basic')
yield api.test('revision') + api.buildbucket.ci_build(revision='abc')
yield api.test('tryserver') + api.buildbucket.try_build()