1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- # Copyright 2014 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.
- """Create a CL to update the SKP version."""
- import argparse
- import os
- import subprocess
- import sys
- import urllib2
- import git_utils
- COMMIT_MSG = '''Update SKP version
- Automatic commit by the RecreateSKPs bot.
- TBR=rmistry@google.com
- NO_MERGE_BUILDS
- '''
- SKIA_REPO = 'https://skia.googlesource.com/skia.git'
- def main(target_dir):
- # We're going to sync a new, clean Skia checkout to upload the CL to update
- # the SKPs. However, we want to use the scripts from the current checkout,
- # in order to facilitate running this as a try job.
- infrabots_dir = os.path.dirname(os.path.realpath(__file__))
- skp_dir = os.path.join(infrabots_dir, 'assets', 'skp')
- upload_py = os.path.join(skp_dir, 'upload.py')
- with git_utils.NewGitCheckout(repository=SKIA_REPO):
- # First verify that there are no gen_tasks diffs.
- tmp_infrabots_dir = os.path.join(os.getcwd(), 'infra', 'bots')
- tmp_gen_tasks = os.path.join(tmp_infrabots_dir, 'gen_tasks.go')
- try:
- subprocess.check_call(['go', 'run', tmp_gen_tasks, '--test'])
- except subprocess.CalledProcessError as e:
- print >> sys.stderr, (
- 'gen_tasks.go failed, not uploading SKP update:\n\n%s' % e.output)
- sys.exit(1)
- # Upload the new version, land the update CL as the recreate-skps user.
- with git_utils.GitBranch(branch_name='update_skp_version',
- commit_msg=COMMIT_MSG,
- commit_queue=True):
- upload_cmd = ['python', upload_py, '-t', target_dir]
- if args.chromium_path:
- chromium_revision = subprocess.check_output(
- ['git', 'rev-parse', 'HEAD'], cwd=args.chromium_path).rstrip()
- upload_cmd.extend([
- '--extra_tags', 'chromium_revision:%s' % chromium_revision])
- subprocess.check_call(upload_cmd)
- # We used upload.py from the repo that this script lives in, NOT the temp
- # repo we've created. Therefore, the VERSION file was written in that repo
- # so we need to copy it to the temp repo in order to commit it.
- src = os.path.join(skp_dir, 'VERSION')
- dst = os.path.join(
- os.getcwd(), 'infra', 'bots', 'assets', 'skp', 'VERSION')
- subprocess.check_call(['cp', src, dst])
- subprocess.check_call(['go', 'run', tmp_gen_tasks])
- subprocess.check_call([
- 'git', 'add', os.path.join('infra', 'bots', 'tasks.json')])
- if '__main__' == __name__:
- parser = argparse.ArgumentParser()
- parser.add_argument("--target_dir")
- parser.add_argument("--chromium_path")
- args = parser.parse_args()
- main(args.target_dir)
|