| # Copyright 2016 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_MODULES.recipe_engine.path import CONFIG_CTX |
| |
| |
| @CONFIG_CTX() |
| def infra_common(c): |
| c.dynamic_paths['checkout'] = None |
| |
| |
| @CONFIG_CTX(includes=['infra_common']) |
| def infra_buildbot(c): |
| """Used on BuildBot by "annotated_run".""" |
| c.base_paths['root'] = c.START_DIR[:-4] |
| c.base_paths['cache'] = c.base_paths['root'] + ( |
| 'build', 'slave', 'cache') |
| c.base_paths['git_cache'] = c.base_paths['root'] + ( |
| 'build', 'slave', 'cache_dir') |
| c.base_paths['cleanup'] = c.START_DIR[:-1] + ('build.dead',) |
| c.base_paths['goma_cache'] = c.base_paths['root'] + ( |
| 'build', 'slave', 'goma_cache') |
| for token in ('build_internal', 'build', 'depot_tools'): |
| c.base_paths[token] = c.base_paths['root'] + (token,) |
| |
| |
| @CONFIG_CTX(includes=['infra_common']) |
| def infra_kitchen(c): |
| """Used on BuildBot by "remote_run" when NOT running Kitchen.""" |
| c.base_paths['root'] = c.START_DIR |
| # TODO(phajdan.jr): have one cache dir, let clients append suffixes. |
| |
| b_dir = c.START_DIR |
| while b_dir and b_dir[-1] != 'b': |
| b_dir = b_dir[:-1] |
| |
| if c.PLATFORM in ('linux', 'mac'): |
| c.base_paths['cache'] = ('/', 'b', 'c') |
| c.base_paths['builder_cache'] = c.base_paths['cache'] + ('b',) |
| for path in ('git_cache', 'goma_cache'): |
| c.base_paths[path] = c.base_paths['cache'] + (path,) |
| elif b_dir: |
| c.base_paths['cache'] = b_dir + ('c',) |
| c.base_paths['builder_cache'] = c.base_paths['cache'] + ('b',) |
| for path in ('git_cache', 'goma_cache'): |
| c.base_paths[path] = c.base_paths['cache'] + (path,) |
| else: # pragma: no cover |
| c.base_paths['cache'] = c.base_paths['root'] + ('c',) |
| c.base_paths['builder_cache'] = c.base_paths['cache'] + ('b',) |
| c.base_paths['git_cache'] = c.base_paths['root'] + ('cache_dir',) |
| for path in ('goma_cache',): |
| c.base_paths[path] = c.base_paths['cache'] + (path,) |
| |
| |
| @CONFIG_CTX() |
| def infra_generic(c): |
| """Used by Kitchen runs on both SwarmBucket and "remote_run"+Kitchen. |
| |
| The default path values (ones not set explicitly here) are either installed by |
| Kitchen directly, or are recipe engine defaults. Note that in "kitchen", |
| the "start_dir" is ephemeral. |
| """ |
| c.base_paths['builder_cache'] = c.base_paths['cache'] + ('builder',) |
| c.base_paths['git_cache'] = c.base_paths['cache'] + ('git',) |
| c.base_paths['goma_cache'] = c.base_paths['cache'] + ('goma',) |