| Index: scripts/slave/recipes/infra/infra_continuous.py
|
| diff --git a/scripts/slave/recipes/infra/infra_continuous.py b/scripts/slave/recipes/infra/infra_continuous.py
|
| deleted file mode 100644
|
| index dc25937c381a971269a77064311e589ec23f72d6..0000000000000000000000000000000000000000
|
| --- a/scripts/slave/recipes/infra/infra_continuous.py
|
| +++ /dev/null
|
| @@ -1,221 +0,0 @@
|
| -# Copyright 2014 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.
|
| -
|
| -from recipe_engine.recipe_api import Property
|
| -
|
| -DEPS = [
|
| - 'cipd',
|
| - 'depot_tools/bot_update',
|
| - 'depot_tools/depot_tools',
|
| - 'file',
|
| - 'depot_tools/gclient',
|
| - 'recipe_engine/json',
|
| - 'recipe_engine/path',
|
| - 'recipe_engine/platform',
|
| - 'recipe_engine/properties',
|
| - 'recipe_engine/python',
|
| - 'recipe_engine/step',
|
| -]
|
| -
|
| -
|
| -def build_cipd_packages(api, repo, rev, mastername, buildername, buildnumber):
|
| - # Build packages locally.
|
| - api.python(
|
| - 'cipd - build packages',
|
| - api.path['checkout'].join('build', 'build.py'),
|
| - ['--builder', api.properties.get('buildername')])
|
| -
|
| - # Verify they are good.
|
| - api.python(
|
| - 'cipd - test packages integrity',
|
| - api.path['checkout'].join('build', 'test_packages.py'))
|
| -
|
| - # Upload them, attach tags.
|
| - tags = [
|
| - 'buildbot_build:%s/%s/%s' % (mastername, buildername, buildnumber),
|
| - 'git_repository:%s' % repo,
|
| - 'git_revision:%s' % rev,
|
| - ]
|
| - try:
|
| - return api.python(
|
| - 'cipd - upload packages',
|
| - api.path['checkout'].join('build', 'build.py'),
|
| - [
|
| - '--no-rebuild',
|
| - '--upload',
|
| - '--service-account-json',
|
| - api.cipd.default_bot_service_account_credentials,
|
| - '--json-output', api.json.output(),
|
| - '--builder', api.properties.get('buildername'),
|
| - ] + ['--tags'] + tags)
|
| - finally:
|
| - step_result = api.step.active_result
|
| - output = step_result.json.output or {}
|
| - p = step_result.presentation
|
| - for pkg in output.get('succeeded', []):
|
| - info = pkg['info']
|
| - title = '%s %s' % (info['package'], info['instance_id'])
|
| - p.links[title] = info.get('url', 'http://example.com/not-implemented-yet')
|
| -
|
| -
|
| -def build_luci(api):
|
| - go_bin = api.path['checkout'].join('go', 'bin')
|
| - go_env = api.path['checkout'].join('go', 'env.py')
|
| - api.file.rmcontents('clean go bin', go_bin)
|
| -
|
| - api.python(
|
| - 'build luci-go', go_env,
|
| - ['go', 'install', 'github.com/luci/luci-go/client/cmd/...'])
|
| -
|
| - files = sorted(api.file.listdir('listing go bin', go_bin))
|
| - absfiles = [api.path.join(go_bin, i) for i in files]
|
| - api.python(
|
| - 'upload go bin',
|
| - api.depot_tools.upload_to_google_storage_path,
|
| - ['-b', 'chromium-luci'] + absfiles)
|
| - for name, abspath in zip(files, absfiles):
|
| - sha1 = api.file.read(
|
| - '%s sha1' % str(name), abspath + '.sha1',
|
| - test_data='0123456789abcdeffedcba987654321012345678')
|
| - api.step.active_result.presentation.step_text = sha1
|
| -
|
| -
|
| -PROPERTIES = {
|
| - 'mastername': Property(),
|
| - 'buildername': Property(),
|
| - 'buildnumber': Property(default=-1, kind=int),
|
| -}
|
| -
|
| -def RunSteps(api, mastername, buildername, buildnumber):
|
| - if buildername.startswith('infra-internal-continuous'):
|
| - project_name = 'infra_internal'
|
| - repo_name = 'https://chrome-internal.googlesource.com/infra/infra_internal'
|
| - elif buildername.startswith('infra-continuous'):
|
| - project_name = 'infra'
|
| - repo_name = 'https://chromium.googlesource.com/infra/infra'
|
| - else: # pragma: no cover
|
| - raise ValueError(
|
| - 'This recipe is not intended for builder %s. ' % buildername)
|
| -
|
| - api.gclient.set_config(project_name)
|
| - bot_update_step = api.bot_update.ensure_checkout(force=True)
|
| - api.gclient.runhooks()
|
| -
|
| - # Whatever is checked out by bot_update. It is usually equal to
|
| - # api.properties['revision'] except when the build was triggered manually
|
| - # ('revision' property is missing in that case).
|
| - rev = bot_update_step.presentation.properties['got_revision']
|
| -
|
| - with api.step.defer_results():
|
| - # Run Linux tests everywhere, Windows tests only on public CI.
|
| - if api.platform.is_linux or project_name == 'infra':
|
| - api.python(
|
| - 'infra python tests',
|
| - 'test.py',
|
| - ['test'],
|
| - cwd=api.path['checkout'])
|
| -
|
| - # Run Glyco tests only on public Linux\Mac CI.
|
| - if project_name == 'infra' and not api.platform.is_win:
|
| - api.python(
|
| - 'Glyco tests',
|
| - api.path['checkout'].join('glyco', 'tests', 'run_all_tests.py'),
|
| - [],
|
| - cwd=api.path['checkout'])
|
| -
|
| - # This downloads Go third parties, so that the next step doesn't have junk
|
| - # output in it.
|
| - api.python(
|
| - 'go third parties',
|
| - api.path['checkout'].join('go', 'env.py'),
|
| - ['go', 'version'])
|
| - # Note: env.py knows how to expand 'python' into sys.executable.
|
| - api.python(
|
| - 'infra go tests',
|
| - api.path['checkout'].join('go', 'env.py'),
|
| - ['python', api.path['checkout'].join('go', 'test.py')])
|
| -
|
| - if buildnumber != -1:
|
| - build_cipd_packages(api, repo_name, rev, mastername, buildername,
|
| - buildnumber)
|
| - else:
|
| - result = api.step('cipd - not building packages', None)
|
| - result.presentation.status = api.step.WARNING
|
| -
|
| - # Only build luci-go executables on 64 bits, public CI.
|
| - if project_name == 'infra' and buildername.endswith('-64'):
|
| - build_luci(api)
|
| -
|
| -
|
| -def GenTests(api):
|
| - cipd_json_output = {
|
| - 'succeeded': [
|
| - {
|
| - 'info': {
|
| - 'instance_id': 'abcdefabcdef63ad814cd1dfffe2fcfc9f81299c',
|
| - 'package': 'infra/tools/some_tool/linux-bitness',
|
| - },
|
| - 'pkg_def_name': 'some_tool',
|
| - },
|
| - ],
|
| - 'failed': [],
|
| - }
|
| -
|
| - yield (
|
| - api.test('infra') +
|
| - api.properties.git_scheduled(
|
| - path_config='kitchen',
|
| - buildername='infra-continuous',
|
| - buildnumber=123,
|
| - mastername='chromium.infra',
|
| - repository='https://chromium.googlesource.com/infra/infra',
|
| - ) +
|
| - api.override_step_data(
|
| - 'cipd - upload packages', api.json.output(cipd_json_output))
|
| - )
|
| - yield (
|
| - api.test('infra_win') +
|
| - api.properties.git_scheduled(
|
| - path_config='kitchen',
|
| - buildername='infra-continuous',
|
| - buildnumber=123,
|
| - mastername='chromium.infra',
|
| - repository='https://chromium.googlesource.com/infra/infra',
|
| - ) +
|
| - api.platform.name('win')
|
| - )
|
| - yield (
|
| - api.test('infra_internal') +
|
| - api.properties.git_scheduled(
|
| - path_config='kitchen',
|
| - buildername='infra-internal-continuous',
|
| - buildnumber=123,
|
| - mastername='internal.infra',
|
| - repository=
|
| - 'https://chrome-internal.googlesource.com/infra/infra_internal',
|
| - ) +
|
| - api.override_step_data(
|
| - 'cipd - upload packages', api.json.output(cipd_json_output))
|
| - )
|
| - yield (
|
| - api.test('infra-64') +
|
| - api.properties.git_scheduled(
|
| - path_config='kitchen',
|
| - buildername='infra-continuous-64',
|
| - buildnumber=123,
|
| - mastername='chromium.infra',
|
| - repository='https://chromium.googlesource.com/infra/infra',
|
| - )
|
| - )
|
| -
|
| - yield (
|
| - api.test('infra_swarming') +
|
| - api.properties.git_scheduled(
|
| - path_config='kitchen',
|
| - buildername='infra-continuous-32',
|
| - buildnumber=-1,
|
| - mastername='chromium.infra',
|
| - repository='https://chromium.googlesource.com/infra/infra',
|
| - )
|
| - )
|
|
|