Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(86)

Unified Diff: slave/skia_slave_scripts/utils/sync_skia_in_chrome.py

Issue 648353002: Remove Skia's forked buildbot code (Closed) Base URL: https://skia.googlesource.com/buildbot.git@master
Patch Set: Address comment Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: slave/skia_slave_scripts/utils/sync_skia_in_chrome.py
diff --git a/slave/skia_slave_scripts/utils/sync_skia_in_chrome.py b/slave/skia_slave_scripts/utils/sync_skia_in_chrome.py
deleted file mode 100644
index 77281abe1940083a97ed77f6447bf51fa504b59d..0000000000000000000000000000000000000000
--- a/slave/skia_slave_scripts/utils/sync_skia_in_chrome.py
+++ /dev/null
@@ -1,194 +0,0 @@
-#!/usr/bin/env python
-# Copyright (c) 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.
-
-""" Create (if needed) and sync a nested checkout of Skia inside of Chrome. """
-
-from config_private import SKIA_GIT_URL
-from optparse import OptionParser
-from py.utils.git_utils import GIT
-from py.utils import git_utils
-from py.utils import misc
-from py.utils import shell_utils
-
-import gclient_utils
-import os
-import re
-import shlex
-import sys
-import urllib2
-
-
-CHROME_GIT_URL = 'https://chromium.googlesource.com/chromium/src.git'
-CHROME_LKGR_URL = 'http://chromium-status.appspot.com/git-lkgr'
-FETCH = 'fetch.bat' if os.name == 'nt' else 'fetch'
-GCLIENT = 'gclient.bat' if os.name == 'nt' else 'gclient'
-GCLIENT_FILE = '.gclient'
-PATH_TO_SKIA_IN_CHROME = os.path.join('src', 'third_party', 'skia', 'src')
-DEFAULT_FETCH_TARGET = 'chromium'
-
-# Sync Chrome to LKGR.
-CHROME_REV_LKGR = 'CHROME_REV_LKGR'
-# Sync Chrome to origin/master.
-CHROME_REV_MASTER = 'CHROME_REV_MASTER'
-
-# Code revision specified by DEPS.
-SKIA_REV_DEPS = 'SKIA_REV_DEPS'
-# Sync to origin/master.
-SKIA_REV_MASTER = 'SKIA_REV_MASTER'
-
-
-def GetDepsVar(deps_filepath, variable):
- """Read the given DEPS file and return the value of the given variable.
-
- Args:
- deps_filepath: string; path to a DEPS file.
- variable: string; name of the variable whose value should be returned.
- Returns:
- string; value of the requested variable.
- """
- deps_vars = {}
- deps_vars['Var'] = lambda x: deps_vars['vars'][x]
- execfile(deps_filepath, deps_vars)
- return deps_vars['vars'][variable]
-
-
-def Sync(skia_revision=SKIA_REV_MASTER, chrome_revision=CHROME_REV_LKGR,
- fetch_target=DEFAULT_FETCH_TARGET,
- gyp_defines=None, gyp_generators=None):
- """ Create and sync a checkout of Skia inside a checkout of Chrome. Returns
- a tuple containing the actually-obtained revision of Skia and the actually-
- obtained revision of Chrome.
-
- skia_revision: revision of Skia to sync. Should be a commit hash or one of
- (SKIA_REV_DEPS, SKIA_REV_MASTER).
- chrome_revision: revision of Chrome to sync. Should be a commit hash or one
- of (CHROME_REV_LKGR, CHROME_REV_MASTER).
- fetch_target: string; Calls the fetch tool in depot_tools with the specified
- argument. Default is DEFAULT_FETCH_TARGET.
- gyp_defines: optional string; GYP_DEFINES to be passed to Gyp.
- gyp_generators: optional string; which GYP_GENERATORS to use.
- """
- # Figure out what revision of Skia we should use.
- if skia_revision == SKIA_REV_MASTER:
- output = git_utils.GetRemoteMasterHash(SKIA_GIT_URL)
- if output:
- skia_revision = shlex.split(output)[0]
- if not skia_revision:
- raise Exception('Could not determine current Skia revision!')
- skia_revision = str(skia_revision)
-
- # Use Chrome LKGR, since gclient_utils will force a sync to origin/master.
- if chrome_revision == CHROME_REV_LKGR:
- chrome_revision = urllib2.urlopen(CHROME_LKGR_URL).read()
- elif chrome_revision == CHROME_REV_MASTER:
- chrome_revision = shlex.split(
- git_utils.GetRemoteMasterHash(CHROME_GIT_URL))[0]
-
- # Run "fetch chromium". The initial run is allowed to fail after it does some
- # work. At the least, we expect the .gclient file to be present when it
- # finishes.
- if not os.path.isfile(GCLIENT_FILE):
- try:
- shell_utils.run([FETCH, fetch_target, '--nosvn=True'])
- except shell_utils.CommandFailedException:
- pass
- if not os.path.isfile(GCLIENT_FILE):
- raise Exception('Could not fetch %s!' % fetch_target)
-
- # Run "gclient sync"
- revisions = [('src', chrome_revision)]
- if skia_revision != SKIA_REV_DEPS:
- revisions.append(('src/third_party/skia', skia_revision))
-
- try:
- # Hack: We have to set some GYP_DEFINES, or upstream scripts will complain.
- os.environ['GYP_DEFINES'] = os.environ.get('GYP_DEFINES') or ''
- gclient_utils.Sync(
- revisions=revisions,
- jobs=1,
- no_hooks=True,
- force=True)
- except shell_utils.CommandFailedException as e:
- # We frequently see sync failures because a lock file wasn't deleted. In
- # that case, delete the lock file and try again.
- pattern = r".*fatal: Unable to create '(\S+)': File exists\..*"
- match = re.search(pattern, e.output)
- if not match:
- raise e
- file_to_delete = match.groups()[0]
- try:
- print 'Attempting to remove %s' % file_to_delete
- os.remove(file_to_delete)
- except OSError:
- # If the file no longer exists, just try again.
- pass
- gclient_utils.Sync(
- revisions=revisions,
- jobs=1,
- no_hooks=True,
- force=True)
-
- # Find the actually-obtained Chrome revision.
- os.chdir('src')
- actual_chrome_rev = shell_utils.run([GIT, 'rev-parse', 'HEAD'],
- log_in_real_time=False).rstrip()
-
-
- # Find the actually-obtained Skia revision.
- with misc.ChDir(os.path.join('third_party', 'skia')):
- actual_skia_rev = shell_utils.run([GIT, 'rev-parse', 'HEAD'],
- log_in_real_time=False).rstrip()
-
- # Run gclient hooks
- gclient_utils.RunHooks(gyp_defines=gyp_defines, gyp_generators=gyp_generators)
-
- # Fix the submodules so that they don't show up in "git status"
- # This fails on Windows...
- if os.name != 'nt':
- submodule_cmd = ('\'git config -f '
- '$toplevel/.git/config submodule.$name.ignore all\'')
- shell_utils.run(' '.join([GIT, 'submodule', 'foreach', submodule_cmd]),
- shell=True)
-
- # Verify that we got the requested revisions of Chrome and Skia.
- if skia_revision != actual_skia_rev and skia_revision != SKIA_REV_DEPS:
- raise Exception('Requested Skia revision %s but got %s!' % (
- repr(skia_revision), repr(actual_skia_rev)))
- if chrome_revision and chrome_revision != actual_chrome_rev:
- raise Exception('Requested Chrome revision %s but got %s!' % (
- repr(chrome_revision), repr(actual_chrome_rev)))
-
- return (actual_skia_rev, actual_chrome_rev)
-
-
-def Main():
- parser = OptionParser()
- parser.add_option('--skia_revision',
- help=('Desired revision of Skia. Defaults to the most '
- 'recent revision.'))
- parser.add_option('--chrome_revision',
- help=('Desired revision of Chrome. Defaults to the most '
- 'recent revision.'))
- parser.add_option('--destination',
- help=('Where to sync the code. Defaults to the current '
- 'directory.'),
- default=os.curdir)
- parser.add_option('--fetch_target',
- help=('Calls the fetch tool in depot_tools with the '
- 'specified target.'),
- default=DEFAULT_FETCH_TARGET)
- (options, _) = parser.parse_args()
- dest_dir = os.path.abspath(options.destination)
- with misc.ChDir(dest_dir):
- actual_skia_rev, actual_chrome_rev = Sync(
- skia_revision=options.skia_revision or SKIA_REV_MASTER,
- chrome_revision=options.chrome_revision or CHROME_REV_MASTER,
- fetch_target=options.fetch_target)
- print 'Chrome synced to %s' % actual_chrome_rev
- print 'Skia synced to %s' % actual_skia_rev
-
-
-if __name__ == '__main__':
- sys.exit(Main())
« no previous file with comments | « slave/skia_slave_scripts/utils/sync_bucket_subdir.py ('k') | slave/skia_slave_scripts/utils/upload_to_bucket.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698