예제 #1
0
        'BUILD_CONFIG': 'Release',
      },
      'upload': {
        'bucket': 'v8-android',
        'path': lambda api: ('v8_android_perf_rel/full-build-linux_%s.zip'
                             % api.properties['revision']),
      },
      'set_component_rev': {'name': 'src/v8', 'rev_str': '%s'},
    }
  },
})

from recipe_engine.recipe_api import Property

PROPERTIES = {
  'mastername': Property(),
  'buildername': Property(),
  'revision': Property(default='HEAD'),
}

def _RunStepsInternal(api, mastername, buildername, revision):
  bot_config = BUILDERS[mastername][buildername]
  droid = api.chromium_android

  default_kwargs = {
    'REPO_URL': 'svn://svn-mirror.golo.chromium.org/chrome/trunk/src',
    'INTERNAL': False,
    'REPO_NAME': 'src',
    'BUILD_CONFIG': bot_config.get('target', 'Debug'),
  }
  default_kwargs.update(bot_config.get('kwargs', {}))
예제 #2
0
    'recipe_engine/path',
    'recipe_engine/platform',
    'recipe_engine/step',
    'recipe_engine/version',
]

from recipe_engine.recipe_api import Property
from recipe_engine.config import ConfigGroup, Single

PROPERTIES = {
    '$depot_tools/osx_sdk':
    Property(
        help='Properties specifically for the infra osx_sdk module.',
        param_name='sdk_properties',
        kind=ConfigGroup(  # pylint: disable=line-too-long
            # XCode build version number. Internally maps to an XCode build id like
            # '9c40b'. See
            #
            #   https://chrome-infra-packages.appspot.com/p/infra_internal/ios/xcode/mac/+/
            #
            # For an up to date list of the latest SDK builds.
            sdk_version=Single(str),

            # The CIPD toolchain tool package and version
            toolchain_pkg=Single(str),
            toolchain_ver=Single(str),
        ),
        default={},
    )
}
예제 #3
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.

DEPS = [
    'build',
    'isolate',
    'recipe_engine/context',
    'recipe_engine/json',
    'recipe_engine/path',
    'recipe_engine/platform',
    'recipe_engine/properties',
    'recipe_engine/python',
    'recipe_engine/raw_io',
    'recipe_engine/step',
    'swarming_client',
    'test_utils',
]

from recipe_engine.recipe_api import Property

PROPERTIES = {
    'show_shards_in_collect_step': Property(default=False, kind=bool),
    'show_isolated_out_in_collect_step': Property(default=True, kind=bool),
}

# TODO(phajdan.jr): provide coverage (http://crbug.com/693058).
DISABLE_STRICT_COVERAGE = True
예제 #4
0
# 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 = [
    'recipe_engine/properties',
    'recipe_engine/python',
    'recipe_engine/raw_io',
    'recipe_engine/step',
]

PROPERTIES = {
    # New Gerrit patch properties.
    'patch_storage':
    Property(kind=str, default=None),
    'patch_gerrit_url':
    Property(kind=str, default=None),
    'patch_repository_url':
    Property(kind=str, default=None),
    'patch_ref':
    Property(kind=str, default=None),

    # Non-patch jobs properties.
    'repository':
    Property(kind=str,
             help='Full url to a Git repository',
             default=None,
             param_name='repo_url'),
    'refspec':
    Property(kind=str, help='Refspec to checkout', default='master'),
예제 #5
0
# Copyright 2018 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 = [
    'recipe_engine/cipd',
    'recipe_engine/context',
    'recipe_engine/json',
    'recipe_engine/path',
    'recipe_engine/step',
]

from recipe_engine.recipe_api import Property
from recipe_engine.config import ConfigGroup, Single

PROPERTIES = {
    '$depot_tools/windows_sdk':
    Property(
        help='Properties specifically for the infra windows_sdk module.',
        param_name='sdk_properties',
        kind=ConfigGroup(
            # CIPD instance ID, tag or ref for the Windows SDK version.
            version=Single(str), ),
        default={'version': 'uploaded:2018-06-13'},
    )
}
예제 #6
0
"""Recipe for testing Recipes."""

from recipe_engine.recipe_api import Property

DEPS = [
    'infra/jiri',
    'recipe_engine/context',
    'recipe_engine/path',
    'recipe_engine/properties',
    'recipe_engine/python',
    'recipe_engine/step',
]

PROPERTIES = {
    'patch_gerrit_url':
    Property(kind=str, help='Gerrit host', default=None),
    'patch_project':
    Property(kind=str, help='Gerrit project', default=None),
    'patch_ref':
    Property(kind=str, help='Gerrit patch ref', default=None),
    'project':
    Property(kind=str, help='Jiri remote manifest project', default=None),
    'manifest':
    Property(kind=str, help='Jiri manifest to use'),
    'remote':
    Property(kind=str, help='Remote manifest repository'),
}


def RunSteps(api, patch_gerrit_url, patch_project, patch_ref, project,
             manifest, remote):
예제 #7
0
# a different roll (typically a manual roll) has already rolled past it.
REGEXP_ROLL_TOO_OLD = r'Already at .+ refusing to roll backwards to .+'
ROLL_STATUS_IN_PROGRESS = 'In progress'
ROLL_STATUS_STOPPED = 'Stopped'
ROLL_STATUS_IDLE = 'Idle'
ROLL_STATUSES = (
    (REGEXP_ISSUE_CREATED, ROLL_STATUS_IN_PROGRESS),
    (REGEXP_ROLL_ACTIVE, ROLL_STATUS_IN_PROGRESS),
    (REGEXP_ROLL_STOPPED, ROLL_STATUS_STOPPED),
    (REGEXP_ROLL_TOO_OLD, ROLL_STATUS_IDLE),
)

from recipe_engine.recipe_api import Property

PROPERTIES = {
    "test_arb_is_stopped": Property(default=None),
}


def RunSteps(api, test_arb_is_stopped):
    # Check out Chrome.
    gclient_cfg = api.gclient.make_config()
    s = gclient_cfg.solutions.add()
    s.name = 'src'
    s.url = 'https://chromium.googlesource.com/chromium/src.git'
    gclient_cfg.got_revision_mapping['src/third_party/skia'] = 'got_revision'

    api.gclient.checkout(gclient_config=gclient_cfg)

    src_dir = api.path['checkout']
    api.step('git config user.name',
예제 #8
0
    return repo_path


PROJECTS_TO_TRY = [
    'build',
    'build_limited_scripts_slave',
    'recipe_engine',
    'depot_tools',
]

PROPERTIES = {
    'patches':
    Property(kind=str,
             param_name='patches_raw',
             default="",
             help="Patches to apply. Format is"
             "project1:https://url.to.codereview/123456#ps01 where"
             "url.to.codereview is the address of the code review site"
             ", 123456 is the issue number, and ps01 is the patchset"
             "number"),
    # This recipe can be used as a tryjob by setting the rietveld, issue, and
    # patchset properties, like a normal tryjob. If those are set, it will use
    # those, as well as any data sent in the regular properties, as patches to
    # apply.
    "rietveld":
    Property(kind=str,
             default="",
             help="The Rietveld instance the issue is from"),
    "issue":
    Property(kind=str,
             default=None,
             help="The Rietveld issue number to pull data from"),
예제 #9
0
from recipe_engine.recipe_api import Property

DEPS = [
    'recipe_engine/buildbucket',
    'recipe_engine/context',
    'recipe_engine/file',
    'recipe_engine/path',
    'recipe_engine/platform',
    'recipe_engine/properties',
    'recipe_engine/step',
]

PROPERTIES = {
    'repository':
    Property(
        kind=str,
        default='https://android.googlesource.com/platform/external/perfetto'),
}

ARTIFACTS = ['trace_processor_shell']


def RunSteps(api, repository):
    builder_cache_dir = api.path['cache'].join('builder')
    src_dir = builder_cache_dir.join('perfetto')

    # Fetch the Perfetto repo.
    with api.step.nest('git'), api.context(infra_steps=True):
        api.file.ensure_directory('ensure source dir', src_dir)
        api.step('init', ['git', 'init', src_dir])
        with api.context(cwd=src_dir):
예제 #10
0
DEPS = [
    'depot_tools/osx_sdk',
    'depot_tools/tryserver',
    'infra_checkout',
    'recipe_engine/buildbucket',
    'recipe_engine/context',
    'recipe_engine/json',
    'recipe_engine/platform',
    'recipe_engine/properties',
    'recipe_engine/runtime',
]

PROPERTIES = {
    'GOARCH':
    Property(default=None,
             kind=str,
             help="set GOARCH environment variable for go build+test"),
}

LUCI_GO_PATH_IN_INFRA = 'infra/go/src/go.chromium.org/luci'


def RunSteps(api, GOARCH):
    co = api.infra_checkout.checkout('luci_go',
                                     patch_root=LUCI_GO_PATH_IN_INFRA)
    is_presubmit = 'presubmit' in api.buildbucket.builder_name.lower()
    if is_presubmit:
        co.commit_change()
    co.gclient_runhooks()

    env = {}
예제 #11
0
    'recipe_engine/file',
    'recipe_engine/json',
    'recipe_engine/path',
    'recipe_engine/properties',
    'recipe_engine/python',
    'recipe_engine/runtime',
    'recipe_engine/step',
    'depot_tools/bot_update',
    'depot_tools/gclient',
    'depot_tools/git',
    'depot_tools/tryserver',
]

PROPERTIES = {
    'upstream_id':
    Property(kind=str, help='ID of the project to patch'),
    'upstream_url':
    Property(kind=str, help='URL of git repo of the upstream project'),
    'downstream_id':
    Property(
        kind=str,
        help=(
            'ID of the project that includes |upstream_id| in its recipes.cfg '
            'to be tested with upstream patch')),
    'downstream_url':
    Property(kind=str, help='URL of the git repo of the downstream project'),
}

NONTRIVIAL_ROLL_FOOTER = 'Recipe-Nontrivial-Roll'
MANUAL_CHANGE_FOOTER = 'Recipe-Manual-Change'
BYPASS_FOOTER = 'Recipe-Tryjob-Bypass-Reason'
                'gclient_apply_config': ['android', 'perf'],
                'bucket': 'chrome-perf',
            },
            'android_webview_arm64_aosp_perf_bisect': {
                'recipe_config': 'main_builder_rel_mb',
                'gclient_apply_config': ['android', 'perf'],
                'bucket': 'chrome-perf',
                'webview': True,
            },
        },
    },
})

from recipe_engine.recipe_api import Property

PROPERTIES = {'mastername': Property(), 'buildername': Property(),}

def RunSteps(api, mastername, buildername):
  master_dict = BUILDERS.get(mastername, {})
  bot_config = master_dict.get('builders', {}).get(buildername)
  # The following lines configures android bisect bot to to checkout codes,
  # executes runhooks, provisions devices and runs legacy bisect script.
  recipe_config = bot_config.get('recipe_config', 'perf')
  kwargs = {
      'REPO_NAME': 'src',
      'REPO_URL': REPO_URL,
      'INTERNAL': False,
      'BUILD_CONFIG': 'Release',
      'TARGET_PLATFORM': 'android',
  }
  kwargs.update(bot_config.get('kwargs', {}))
예제 #13
0
DEPS = [
    'build/gitiles',
    'build/url',
    'depot_tools/bot_update',
    'depot_tools/gclient',
    'depot_tools/gsutil',
    'recipe_engine/path',
    'recipe_engine/properties',
    'recipe_engine/python',
    'recipe_engine/raw_io',
    'recipe_engine/step',
]

PROPERTIES = {
    'buildername': Property(kind=str),
}

BUILDERS = freeze({
    'V8 lkgr finder': {
        'project': 'v8',
        'allowed_lag': 4,
        'lkgr_status_gs_path': 'chromium-v8/lkgr-status',
        'repo': 'https://chromium.googlesource.com/v8/v8',
        'ref': 'refs/heads/lkgr',
    },
})


def RunSteps(api, buildername):
    botconfig = BUILDERS[buildername]
예제 #14
0
# Copyright 2017 The LUCI Authors. All rights reserved.
# Use of this source code is governed under the Apache License, Version 2.0
# that can be found in the LICENSE file.

DEPS = [
    'properties',
]

from recipe_engine.recipe_api import Property
from recipe_engine.config import ConfigGroup, Single

PROPERTIES = {
    '$recipe_engine/runtime':
    Property(
        help='Properties specifically for the runtime module',
        param_name='properties',
        kind=ConfigGroup(
            # Whether build is running on LUCI stack.
            is_luci=Single(bool),
            # Whether build is running in experimental mode.
            is_experimental=Single(bool),
        ),
        default={},
    ),
}
예제 #15
0
from recipe_engine.config import List, Single, ConfigList, ConfigGroup
from recipe_engine.recipe_api import Property

DEPS = [
    'cipd',
    'json',
    'path',
    'platform',
    'properties',
    'service_account',
    'step',
]

PROPERTIES = {
    'use_pkg':
    Property(default=False, kind=bool),
    'pkg_files':
    Property(default=(), kind=List(str)),
    'pkg_dirs':
    Property(default=(),
             kind=ConfigList(lambda: ConfigGroup(
                 path=Single(str),
                 exclusions=List(str),
             ))),
    'pkg_vars':
    Property(default=None, kind=dict),
    'ver_files':
    Property(default=(), kind=List(str)),
    'install_mode':
    Property(default=None),
    'refs':
    'recipe_engine/buildbucket',
    'recipe_engine/context',
    'recipe_engine/file',
    'recipe_engine/json',
    'recipe_engine/path',
    'recipe_engine/properties',
    'recipe_engine/raw_io',
    'recipe_engine/step',
    'depot_tools/gclient',
    'depot_tools/git',
    'depot_tools/gitiles',
]

PROPERTIES = {
    'source_repo':
    Property(help='The URL of the repo to be mirrored with submodules'),
    'target_repo':
    Property(help='The URL of the mirror repo to be built/maintained'),
}

COMMIT_USERNAME = '******'
COMMIT_EMAIL_ADDRESS = \
    '*****@*****.**'

SHA1_RE = re.compile(r'[0-9a-fA-F]{40}')


def RunSteps(api, source_repo, target_repo):
    _, source_project = api.gitiles.parse_repo_url(source_repo)

    # NOTE: This name must match the definition in cr-buildbucket.cfg. Do not
예제 #17
0
  'recipe_engine/step',

  'depot_tools/git',

  'file',
  'gsutil',
  'zip',
]

from recipe_engine.recipe_api import Property

REPO_URL='https://chromium.googlesource.com/chromium/tools/depot_tools.git'
DOC_UPLOAD_URL='gs://chrome-infra-docs/flat/depot_tools/docs/'

PROPERTIES = {
  'revision': Property(
    kind=str, help='The revision of depot_tools to check out'),
}

def RunSteps(api, revision):
  # prepare the output dir and zip paths
  api.path['checkout'] = api.path['slave_build'].join('depot_tools')
  zip_out = api.path['slave_build'].join('depot_tools.zip')

  with api.step.nest('clean workspace'):
    api.file.rmtree('rm depot_tools', api.path['checkout'])
    api.file.remove('rm depot_tools.zip', zip_out, ok_ret=(0, 1))

    # generate the new directory
    api.step('mk depot_tools', ['mkdir', api.path['checkout']])

  with api.step.nest('clone + checkout'):
예제 #18
0
        'lkgr_status_gs_path': 'chromium-v8/chromium-lkgr-status',
    },
    'V8 lkgr finder': {
        'project': 'v8',
        'repo': 'https://chromium.googlesource.com/v8/v8',
        'ref': 'refs/heads/lkgr',
        'lkgr_status_gs_path': 'chromium-v8/lkgr-status',
        'allowed_lag': 4,
    },
})

PROPERTIES = {
    'project':
    Property(
        kind=str,
        default=None,
        help='Project for which LKGR should be calculated.',
    ),
    'repo':
    Property(kind=str,
             default=None,
             help='Repo for which LKGR should be updated.'),
    'ref':
    Property(kind=str, default=None, help='LKGR ref to update.'),
    'config':
    Property(
        kind=dict,
        default=None,
        help='Config dict to use. See infra.services.lkgr_finder for more.',
    ),
    'lkgr_status_gs_path':
예제 #19
0
DEPS = [
    'cipd',
    'recipe_engine/context',
    'recipe_engine/json',
    'recipe_engine/path',
    'recipe_engine/raw_io',
    'recipe_engine/step',
]

from recipe_engine.recipe_api import Property

PROPERTIES = {
    'isolate_server': Property(default='https://isolateserver.appspot.com'),
}
예제 #20
0
DEPS = [
    'recipe_engine/json',
    'recipe_engine/platform',
    'recipe_engine/properties',
    'recipe_engine/raw_io',
    'recipe_engine/step',
]

from recipe_engine.recipe_api import Property

PROPERTIES = {
    'buildername': Property(default=None),
    'buildnumber': Property(default=None),
}
예제 #21
0
from recipe_engine.recipe_api import Property

DEPS = [
    'depot_tools/gclient',
    'recipe_engine/context',
    'recipe_engine/file',
    'recipe_engine/json',
    'recipe_engine/path',
    'recipe_engine/properties',
    'recipe_engine/python',
    'recipe_engine/step',
]

PROPERTIES = {
    'target_repo':
    Property(kind=str, help='Which repo to work with. Required.'),
    'cycle_time_sec':
    Property(default=10 * 60,
             kind=Single((int, float)),
             help='How long to run gsubtreed for.'),
    'max_error_count':
    Property(default=5,
             kind=Single((int, float)),
             help='How many consecutive errors are tolerated before gsubtreed '
             'quits with error'),
}


def RunSteps(api, target_repo, cycle_time_sec, max_error_count):
    assert target_repo
    cycle_time_sec = max(0, int(cycle_time_sec))
예제 #22
0
    'chromium_tests',
    'filter',
    'findit',
    'depot_tools/gclient',
    'recipe_engine/json',
    'recipe_engine/path',
    'recipe_engine/platform',
    'recipe_engine/properties',
    'recipe_engine/python',
    'recipe_engine/raw_io',
    'recipe_engine/step',
]

PROPERTIES = {
    'target_mastername':
    Property(kind=str, help='The target master to match compile config to.'),
    'target_buildername':
    Property(kind=str, help='The target builder to match compile config to.'),
    'good_revision':
    Property(kind=str, help='The last known good chromium revision.'),
    'bad_revision':
    Property(kind=str, help='The first known bad chromium revision.'),
    'compile_targets':
    Property(kind=List(basestring),
             default=None,
             help='The failed compile targets, eg: browser_tests, '
             'obj/path/to/source.o, gen/path/to/generated.cc, etc.'),
    'buildbucket':
    Property(default=None,
             help='The buildbucket property in which we can find build id. '
             'We need to use build id to get compile_targets.'),
예제 #23
0
    'recipe_engine/buildbucket',
    'recipe_engine/cipd',
    'recipe_engine/context',
    'recipe_engine/file',
    'recipe_engine/json',
    'recipe_engine/path',
    'recipe_engine/platform',
    'recipe_engine/properties',
    'recipe_engine/python',
    'recipe_engine/raw_io',
    'recipe_engine/step',
    'windows_sdk',
]

PROPERTIES = {
    'repository': Property(kind=str, default='https://gn.googlesource.com/gn'),
}


def RunSteps(api, repository):
    src_dir = api.path['start_dir'].join('gn')

    with api.step.nest('git'), api.context(infra_steps=True):
        api.step('init', ['git', 'init', src_dir])

        with api.context(cwd=src_dir):
            build_input = api.buildbucket.build_input
            ref = (build_input.gitiles_commit.id
                   if build_input.gitiles_commit else 'refs/heads/master')
            # Fetch tags so `git describe` works.
            api.step('fetch', ['git', 'fetch', '--tags', repository, ref])
            'api_level': 23,
            'partition_size': '1024M',
            'sdcard_size': '512M',
            'provision_settings': {
                'disable_location': True,
                'disable_network': True,
                'disable_system_chrome': True,
                'remove_system_webview': True,
            },
            'sample_gtest_suite': ['sample_test', 'sample_isolate_file'],
        }
    }
})

PROPERTIES = {
    'buildername': Property(),
    'mastername': Property(),
}


def RunSteps(api, mastername, buildername):
    builder = BUILDERS[mastername][buildername]
    api.chromium_android.configure_from_properties(
        builder['config'],
        REPO_NAME='src',
        REPO_URL=REPO_URL,
        INTERNAL=False,
        BUILD_CONFIG=builder['target'])

    api.emulator.set_config('base_config')
    api.gclient.set_config('chromium')
예제 #25
0
  'depot_tools/bot_update',
  'depot_tools/cipd',
  'depot_tools/gclient',
  'recipe_engine/context',
  'recipe_engine/file',
  'recipe_engine/path',
  'recipe_engine/properties',
  'recipe_engine/python',
  'recipe_engine/runtime',
  'recipe_engine/step',
]

PROPERTIES = {
  'workflow': Property(
      kind=str,
      help=('Path to the dataflow workflow you would like to '
            'execute. Will be appended to the infra checkout path. '
            'The path should begin with "packages/dataflow".')),
  'job_name': Property(
      kind=str,
      help=('Name that appears on the Dataflow console. Must match '
            'the regular expression [a-z]([-a-z0-9]{0,38}[a-z0-9])')),
  'gcp_project_id': Property(
      kind=str,
      help=('Name of Google Cloud Project under which the Dataflow '
            'job will be executed.')),
  'num_workers': Property(
      kind=Single((int, float)),
      default=3,
      help=('Number of GCE instances used to run job.')),
  'timeout': Property(
예제 #26
0
    'recipe_engine/platform',
    'recipe_engine/properties',
    'recipe_engine/python',
    'recipe_engine/raw_io',
    'recipe_engine/runtime',
    'recipe_engine/source_manifest',
    'recipe_engine/step',
    'rietveld',
    'tryserver',
]

from recipe_engine.recipe_api import Property

PROPERTIES = {
    # Gerrit patches will have all properties about them prefixed with patch_.
    'patch_issue': Property(default=None),  # TODO(tandrii): add kind=int.
    'patch_set': Property(default=None),  # TODO(tandrii): add kind=int.
    'patch_gerrit_url': Property(default=None),
    'patch_repository_url': Property(default=None),
    'patch_ref': Property(default=None),

    # TODO(tAndrii): remove legacy Gerrit fields.
    # Legacy Gerrit fields.
    'event.patchSet.ref': Property(default=None, param_name='gerrit_ref'),

    # Rietveld-only fields.
    'rietveld': Property(default=None),  # Stores Url of Rietveld server.
    'issue': Property(default=None),
    'patchset': Property(default=None),
    'repository': Property(default=None),
예제 #27
0
        'REPO_NAME': 'src',
        'REPO_URL': 'https://chromium.googlesource.com/chromium/src.git',
        'Internal': False,
    }
    kwargs.update(
        recipe_config.get('chromium_config_kwargs',
                          {'BUILD_CONFIG': 'Release'}))

    api.chromium_android.configure_from_properties('base_config', **kwargs)
    api.chromium.set_config('base_config', **kwargs)
    api.chromium.apply_config(recipe_config['chromium_config'])
    api.chromium.apply_config('clobber')


PROPERTIES = {
    'buildername': Property(),
}


def RunSteps(api, buildername):
    recipe_config = DETERMINISTIC_BUILDERS[buildername]
    enable_isolate = True

    targets = recipe_config.get('targets', ['chromium_swarm_tests'])
    if recipe_config.get('chromium_config_kwargs'):
        target_platform = recipe_config['chromium_config_kwargs'].get(
            'TARGET_PLATFORM')
    else:
        target_platform = recipe_config.get('platform')

    if target_platform in ('linux', 'mac', 'win'):
예제 #28
0
파일: full.py 프로젝트: Kryndex/recipes-py
# Copyright 2017 The LUCI Authors. All rights reserved.
# Use of this source code is governed under the Apache License, Version 2.0
# that can be found in the LICENSE file.

from recipe_engine.recipe_api import Property

DEPS = [
    'platform',
    'properties',
    'raw_io',
    'service_account',
    'path',
]

PROPERTIES = {
    'key_path': Property(),
    'scopes': Property(),
    'lifetime_sec': Property(),
}


def RunSteps(api, key_path, scopes, lifetime_sec):
    if key_path:
        account = api.service_account.from_credentials_json(key_path)
    else:
        account = api.service_account.default()
    account.get_access_token(scopes, lifetime_sec)


def GenTests(api):
    def props(key_path=None, scopes=None, lifetime_sec=None):
예제 #29
0
    'isolate',
    'recipe_engine/json',
    'recipe_engine/path',
    'recipe_engine/platform',
    'recipe_engine/properties',
    'recipe_engine/python',
    'recipe_engine/raw_io',
    'recipe_engine/step',
    'swarming',
    'test_results',
    'test_utils',
]

PROPERTIES = {
    'target_mastername':
    Property(kind=str, help='The target master to match compile config to.'),
    'target_testername':
    Property(
        kind=str,
        help='The target tester to match test config to. If the tests are run '
        'on a builder, just treat the builder as a tester.'),
    'good_revision':
    Property(kind=str, help='The last known good revision.'),
    'bad_revision':
    Property(kind=str, help='The first known good revision.'),
    'tests':
    Property(
        kind=Dict(value_type=list),
        help='The failed tests, the test name should be full name, e.g.: {'
        '  "browser_tests": ['
        '    "suite.test1", "suite.test2"'
예제 #30
0
from recipe_engine.recipe_api import Property

DEPS = [
    'infra/goma',
    'infra/jiri',
    'recipe_engine/context',
    'recipe_engine/path',
    'recipe_engine/properties',
    'recipe_engine/raw_io',
    'recipe_engine/step',
]

PROPERTIES = {
    'category':
    Property(kind=str, help='Build category', default=None),
    'patch_gerrit_url':
    Property(kind=str, help='Gerrit host', default=None),
    'patch_project':
    Property(kind=str, help='Gerrit project', default=None),
    'patch_ref':
    Property(kind=str, help='Gerrit patch ref', default=None),
    'patch_storage':
    Property(kind=str, help='Patch location', default=None),
    'patch_repository_url':
    Property(kind=str, help='URL to a Git repository', default=None),
    'project':
    Property(kind=str, help='Jiri remote manifest project', default=None),
    'manifest':
    Property(kind=str, help='Jiri manifest to use'),
    'remote':