blob: 670ca16380e87dcad670fa748dcc9cf38520abc3 [file] [log] [blame]
# Copyright 2013 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 = [
'git',
'recipe_engine/context',
'recipe_engine/file',
'recipe_engine/path',
'recipe_engine/platform',
'recipe_engine/properties',
'recipe_engine/raw_io',
'recipe_engine/step',
'recipe_engine/time',
]
def RunSteps(api):
url = 'https://fuchsia.googlesource.com/fuchsia.git'
api.git.checkout(
url,
path=api.properties.get('path'),
ref=api.properties.get('revision'),
recursive=True,
submodules=True,
submodule_force=True,
remote=api.properties.get('remote'),
file=api.properties.get('checkout_file'))
root_dir = api.properties.get('path') or api.path['start_dir'].join('fuchsia')
with api.context(cwd=root_dir):
api.git.get_hash()
api.git.get_timestamp()
# You can invoke arbitrary command on api.git.
api.git('status', config={'foo': 'bar'})
# You can use api.git.rebase to rebase the current branch onto another one
api.git.rebase(branch='master', remote='origin')
# Add a new file
api.file.write_text(
'drop file', root_dir.join('time.txt'), str(api.time.time()))
api.git('add', root_dir.join('time.txt'))
# Commit the change
api.git.commit('example change 1')
# Commit the change with the file named explicitly
api.git.commit('example change 2', files=[root_dir.join('time.txt')])
# Commit the change with all tracked files
api.git.commit('example change 3', all_tracked=True)
# Commit the change with all tracked and untracked files
api.git.commit('example change 4', all_files=True)
# Push it for review
api.git.push('HEAD:refs/for/master')
def GenTests(api):
yield api.test('basic')
yield api.test('basic_path') + api.properties(path=api.path['start_dir'].join('foo'))
yield api.test('basic_ref') + api.properties(revision='refs/foo/bar')
yield api.test('basic_branch') + api.properties(revision='refs/heads/testing')
yield api.test('basic_hash') + api.properties(
revision='abcdef0123456789abcdef0123456789abcdef01')
yield api.test('basic_file') + api.properties(checkout_file='README.md')