| # Copyright 2019 The Fuchsia Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| """Recipe for triggering buildbucket builds.""" |
| |
| from recipe_engine.config import List |
| from recipe_engine.recipe_api import Property |
| |
| DEPS = [ |
| 'recipe_engine/buildbucket', |
| 'recipe_engine/properties', |
| 'recipe_engine/raw_io', |
| 'recipe_engine/step', |
| 'recipe_engine/swarming', |
| ] |
| |
| PROPERTIES = { |
| 'builders': |
| Property( |
| kind=List(basestring), |
| help='List of builders to trigger', |
| default=[]), |
| 'interval': |
| Property( |
| kind=int, help='Delay between requests when waiting', default=None), |
| 'timeout': |
| Property( |
| kind=int, help='Time to wait for the builds to end', default=None), |
| } |
| |
| |
| def RunSteps(api, builders, interval, timeout): |
| api.buildbucket.run( |
| [ |
| api.buildbucket.schedule_request( |
| builder, swarming_parent_run_id=api.swarming.task_id) |
| for builder in builders |
| ], |
| collect_interval=interval, |
| timeout=timeout, |
| ) |
| |
| |
| def GenTests(api): |
| yield (api.test('default') + api.buildbucket.ci_build( |
| bucket='ci', |
| git_repo='https://fuchsia.googlesource.com/example', |
| revision='a' * 40, |
| ) + api.properties(builders=['builder'])) |