blob: 5141b0ec4513b39037ada7053069a23a2cdabcb9 [file] [log] [blame]
# Copyright 2023 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 = [
'flutter/cache', 'flutter/repo_util', 'recipe_engine/path',
'recipe_engine/properties', 'recipe_engine/file', 'recipe_engine/json',
'recipe_engine/step'
]
def RunSteps(api):
# Sets the engine environment and checkouts the source code.
checkout = api.path['cache'].join('builder', 'src')
api.file.rmtree('Clobber build output', checkout.join('out'))
builder_root = api.path['cache'].join('builder')
api.file.ensure_directory('Ensure checkout cache', builder_root)
env, env_prefixes = api.repo_util.engine_environment(builder_root)
# Engine path is used inconsistently across the engine repo. We'll start
# with [cache]/builder and will adjust it to start using it consistently.
env['ENGINE_PATH'] = api.path['cache'].join('builder')
cache_ttl = api.properties.get('cache_ttl', 3600 * 4)
cache_name = api.properties.get('cache_name')
if api.cache.requires_refresh(cache_name):
api.repo_util.engine_checkout(builder_root, env, env_prefixes)
paths = [
api.path['cache'].join(p)
for p in api.properties.get('cache_paths', [])
]
api.path.mock_add_directory(api.path['cache'].join('builder', 'fake'))
ignore_paths = [
api.path['cache'].join(p)
for p in api.properties.get('ignore_cache_paths', [])
]
for p in ignore_paths:
if api.path.exists(p):
api.file.rmtree(f'Removing path {p} from archive', p)
api.cache.write(cache_name, paths, cache_ttl)
def GenTests(api):
yield api.test(
'basic',
api.properties(cache_root='cache', cache_paths=['builder', 'git'], ignore_cache_paths=['builder/fake']),
api.step_data(
'gsutil cat',
stdout=api.json.output({}),
)
)