Ravi Mistry | 01b48e7 | 2017-05-17 14:28:06 -0400 | [diff] [blame] | 1 | # Copyright 2017 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 | """Update meta/config of the specified Skia repo.""" |
| 6 | |
| 7 | |
| 8 | import argparse |
| 9 | import json |
| 10 | import os |
| 11 | import subprocess |
| 12 | import sys |
| 13 | import urllib2 |
| 14 | |
| 15 | import git_utils |
| 16 | |
| 17 | |
Ravi Mistry | 01b48e7 | 2017-05-17 14:28:06 -0400 | [diff] [blame] | 18 | SKIA_REPO_TEMPLATE = 'https://skia.googlesource.com/%s.git' |
| 19 | |
Ravi Mistry | c95e54b | 2019-11-14 15:46:47 -0500 | [diff] [blame] | 20 | CQ_INCLUDE_CHROMIUM_BUCKETS = [ |
| 21 | 'luci.chromium.try', |
Hal Canary | 287a3fe | 2017-05-18 11:29:04 -0400 | [diff] [blame] | 22 | ] |
Ravi Mistry | 01b48e7 | 2017-05-17 14:28:06 -0400 | [diff] [blame] | 23 | |
| 24 | |
Ravi Mistry | c95e54b | 2019-11-14 15:46:47 -0500 | [diff] [blame] | 25 | def addChromiumBuckets(f): |
| 26 | for bucket in CQ_INCLUDE_CHROMIUM_BUCKETS: |
| 27 | f.write('[bucket "%s"]\n' % bucket) |
Ravi Mistry | 01b48e7 | 2017-05-17 14:28:06 -0400 | [diff] [blame] | 28 | |
| 29 | |
Eric Boren | cff9f95 | 2017-10-17 09:18:18 -0400 | [diff] [blame] | 30 | def main(): |
| 31 | parser = argparse.ArgumentParser() |
Eric Boren | cff9f95 | 2017-10-17 09:18:18 -0400 | [diff] [blame] | 32 | parser.add_argument("--repo_name") |
| 33 | parser.add_argument("--tasks_json") |
| 34 | args = parser.parse_args() |
| 35 | |
| 36 | skia_repo = SKIA_REPO_TEMPLATE % args.repo_name |
Ravi Mistry | 01b48e7 | 2017-05-17 14:28:06 -0400 | [diff] [blame] | 37 | with git_utils.NewGitCheckout(repository=skia_repo): |
| 38 | # Fetch and checkout the meta/config branch. |
| 39 | subprocess.check_call(['git', 'fetch', skia_repo, 'refs/meta/config:cfg']) |
| 40 | subprocess.check_call(['git', 'checkout', 'cfg']) |
| 41 | |
| 42 | # Create list of tryjobs from tasks_json. |
| 43 | tryjobs = [] |
Eric Boren | cff9f95 | 2017-10-17 09:18:18 -0400 | [diff] [blame] | 44 | with open(args.tasks_json) as tasks_json: |
Ravi Mistry | 01b48e7 | 2017-05-17 14:28:06 -0400 | [diff] [blame] | 45 | data = json.load(tasks_json) |
| 46 | for job in data['jobs'].keys(): |
| 47 | if not job.startswith('Upload-'): |
| 48 | tryjobs.append(job) |
| 49 | tryjobs.sort() |
| 50 | |
| 51 | # Write to buildbucket.config. |
| 52 | buildbucket_config = os.path.join(os.getcwd(), 'buildbucket.config') |
| 53 | with open(buildbucket_config, 'w') as f: |
| 54 | |
Eric Boren | cff9f95 | 2017-10-17 09:18:18 -0400 | [diff] [blame] | 55 | if args.repo_name == 'skia': |
Ravi Mistry | c95e54b | 2019-11-14 15:46:47 -0500 | [diff] [blame] | 56 | addChromiumBuckets(f) |
Ravi Mistry | 01b48e7 | 2017-05-17 14:28:06 -0400 | [diff] [blame] | 57 | |
| 58 | # Adding all Skia jobs. |
Ravi Mistry | f6e3eaf | 2020-02-05 16:19:25 -0500 | [diff] [blame] | 59 | f.write('[bucket "luci.skia.skia.primary"]\n') |
Ravi Mistry | 01b48e7 | 2017-05-17 14:28:06 -0400 | [diff] [blame] | 60 | for job in tryjobs: |
| 61 | f.write('\tbuilder = ' + job + '\n') |
| 62 | |
Eric Boren | 32f8478 | 2018-04-23 08:20:57 -0400 | [diff] [blame] | 63 | subprocess.check_call(['git', 'add', 'buildbucket.config']) |
| 64 | try: |
| 65 | subprocess.check_call( |
| 66 | ['git', 'commit', '-m', 'Update builders in buildbucket.config']) |
| 67 | except subprocess.CalledProcessError: |
| 68 | print 'No changes to buildbucket.config' |
| 69 | return |
Ravi Mistry | 01b48e7 | 2017-05-17 14:28:06 -0400 | [diff] [blame] | 70 | |
Eric Boren | 32f8478 | 2018-04-23 08:20:57 -0400 | [diff] [blame] | 71 | subprocess.check_call(['git', 'push', skia_repo, 'cfg:refs/meta/config']) |
Ravi Mistry | 01b48e7 | 2017-05-17 14:28:06 -0400 | [diff] [blame] | 72 | |
| 73 | |
| 74 | if '__main__' == __name__: |
Eric Boren | cff9f95 | 2017-10-17 09:18:18 -0400 | [diff] [blame] | 75 | main() |