blob: 3ec0f7022b6da1f716fe0c8c0e88ad04aa2552c6 [file] [log] [blame]
borenet1ed2ae42016-07-26 11:52:17 -07001# Copyright 2014 The Chromium Authors. All rights reserved.
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5"""Create a CL to update the SKP version."""
6
7
8import argparse
9import os
10import subprocess
11import sys
Ravi Mistrybadc1372016-11-23 08:38:18 -050012import urllib2
borenet1ed2ae42016-07-26 11:52:17 -070013
Ravi Mistrybd2d1112016-11-17 08:13:51 -050014import git_utils
borenet1ed2ae42016-07-26 11:52:17 -070015
borenet1ed2ae42016-07-26 11:52:17 -070016CHROMIUM_SKIA = 'https://chromium.googlesource.com/skia.git'
Ravi Mistrybadc1372016-11-23 08:38:18 -050017SKIA_COMMITTER_EMAIL = 'update-skps@skia.org'
18SKIA_COMMITTER_NAME = 'UpdateSKPs'
borenet1ed2ae42016-07-26 11:52:17 -070019COMMIT_MSG = '''Update SKP version
20
21Automatic commit by the RecreateSKPs bot.
22
Ravi Mistrybadc1372016-11-23 08:38:18 -050023TBR=%s
borenet1ed2ae42016-07-26 11:52:17 -070024NO_MERGE_BUILDS
Ravi Mistrybadc1372016-11-23 08:38:18 -050025''' % SKIA_COMMITTER_EMAIL
borenet1ed2ae42016-07-26 11:52:17 -070026SKIA_REPO = 'https://skia.googlesource.com/skia.git'
27
28
Ravi Mistrybadc1372016-11-23 08:38:18 -050029def main(target_dir, gitcookies):
30 with git_utils.NewGitCheckout(repository=CHROMIUM_SKIA):
31 if CHROMIUM_SKIA in subprocess.check_output(['git', 'remote', '-v']):
32 subprocess.check_call(['git', 'remote', 'set-url', 'origin', SKIA_REPO,
33 CHROMIUM_SKIA])
borenet1ed2ae42016-07-26 11:52:17 -070034
Ravi Mistrybadc1372016-11-23 08:38:18 -050035 # Download CIPD.
36 cipd_sha1 = os.path.join(os.getcwd(), 'infra', 'bots', 'tools', 'luci-go',
37 'linux64', 'cipd.sha1')
38 subprocess.check_call(['download_from_google_storage', '-s', cipd_sha1,
39 '--bucket', 'chromium-luci'])
borenet1ed2ae42016-07-26 11:52:17 -070040
Ravi Mistrybadc1372016-11-23 08:38:18 -050041 # First verify that there are no gen_tasks diffs.
42 gen_tasks = os.path.join(os.getcwd(), 'infra', 'bots', 'gen_tasks.go')
43 try:
44 subprocess.check_call(['go', 'run', gen_tasks, '--test'])
45 except subprocess.CalledProcessError as e:
46 print >> sys.stderr, (
47 'gen_tasks.go failed, not uploading SKP update:\n\n%s' % e.output)
48 sys.exit(1)
borenet8a91da92016-10-18 05:20:26 -070049
Ravi Mistrybadc1372016-11-23 08:38:18 -050050 # Skip GCE Auth in depot_tools/gerrit_utils.py. Use gitcookies instead.
51 os.environ['SKIP_GCE_AUTH_FOR_GIT'] = 'True'
52 os.environ['GIT_COOKIES_PATH'] = gitcookies
53 # Upload the new version, land the update CL as the update-skps user.
54 config_dict = {
55 'user.name': SKIA_COMMITTER_NAME,
56 'user.email': SKIA_COMMITTER_EMAIL,
57 'http.cookiefile': gitcookies,
58 }
59 with git_utils.GitLocalConfig(config_dict):
60 with git_utils.GitBranch(branch_name='update_skp_version',
61 commit_msg=COMMIT_MSG,
62 commit_queue=True):
63 upload_script = os.path.join(
64 os.getcwd(), 'infra', 'bots', 'assets', 'skp', 'upload.py')
65 subprocess.check_call(['python', upload_script, '-t', target_dir])
66 subprocess.check_call(['go', 'run', gen_tasks])
67 subprocess.check_call([
68 'git', 'add', os.path.join('infra', 'bots', 'tasks.json')])
borenet1ed2ae42016-07-26 11:52:17 -070069
70
71if '__main__' == __name__:
72 parser = argparse.ArgumentParser()
73 parser.add_argument("--target_dir")
Ravi Mistrybadc1372016-11-23 08:38:18 -050074 parser.add_argument("--gitcookies")
borenet1ed2ae42016-07-26 11:52:17 -070075 args = parser.parse_args()
Ravi Mistrybadc1372016-11-23 08:38:18 -050076 main(args.target_dir, args.gitcookies)