blob: 34dc70266c17b3a77934773226ec52f601b0f8a0 [file] [log] [blame]
#!/usr/bin/env lucicfg
# Copyright 2019 The Flutter Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""
Configurations for the recipes repository.
This is mainly for bundling the recipes at https://flutter.googlesource.com/recipes/
into a CIPD bundle.
The documentation about recipe bundle:
https://chrome-internal.googlesource.com/infra/infra_internal/+/master/doc/recipe_bundler.md
"""
load("//lib/accounts.star", "accounts")
load("//lib/builder_groups.star", "builder_groups")
load("//lib/common.star", "common")
load("//lib/repos.star", "repos")
def _setup():
console_name = 'recipes'
luci.console_view(name=console_name, repo=repos.FLUTTER_RECIPES)
executable = luci.recipe(
name="recipes",
cipd_package='flutter/recipe_bundles/flutter.googlesource.com/recipes',
cipd_version='refs/heads/master',
)
# Builder configuration to validate recipe changes in presubmit.
common.builder(
name="recipes-unittest-only",
builder_group=builder_groups.recipes_try,
# This builder is very quick to run, so we run it on every CQ attempt to
# minimize the chances of expectation file conflicts between CLs that land
# around the same time.
cq_disable_reuse=True,
executable=executable,
execution_timeout=10 * time.minute,
location_regexp_exclude=[
common.LOCATION_REGEXP_MARKDOWN, common.LOCATION_REGEXP_OWNERS
],
properties={
"remote": repos.FLUTTER_RECIPES,
"unittest_only": True,
},
service_account=accounts.FLUTTER_TRY,
)
# Autoroller builder. This is used to roll flutter recipes dependencies.
common.builder(
name="recipe-deps-roller",
builder_group=builder_groups.recipes_prod,
executable=luci.recipe(
name="recipe_autoroller",
cipd_package=
"infra/recipe_bundles/chromium.googlesource.com/infra/infra",
cipd_version="git_revision:647d5e58ec508f13ccd054f1516e78d7ca3bd540"
),
execution_timeout=20 * time.minute,
properties={
"db_gcs_bucket": "flutter-recipe-roller-db",
"projects": {
"flutter": "https://flutter.googlesource.com/recipes",
}.items(),
},
schedule="with 1h interval",
console_category=console_name,
console_short_name='aroll',
)
# Recipes builder. This is used to create a bundle of the cipd package.
common.builder(
name="recipes-bundler",
builder_group=builder_groups.recipes_prod,
executable=luci.recipe(
name="recipe_bundler",
cipd_package=
"infra/recipe_bundles/chromium.googlesource.com/infra/infra",
cipd_version="git_revision:647d5e58ec508f13ccd054f1516e78d7ca3bd540"
),
execution_timeout=20 * time.minute,
properties={
'package_name_prefix':
'flutter/recipe_bundles',
'package_name_internal_prefix':
'flutter_internal/recipe_bundles',
'recipe_bundler_vers':
'git_revision:2ed88b2c854578b512e1c0486824175fe0d7aab6',
'repo_specs': [
'flutter.googlesource.com/recipes=FETCH_HEAD,refs/heads/master',
],
}.items(),
console_category=console_name,
console_short_name='bdlr',
)
recipes_config = struct(setup=_setup, )