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

Side by Side Diff: server/git_kernel.py

Issue 3541002: Revert "Merge remote branch 'cros/upstream' into tempbranch2" (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/autotest.git
Patch Set: Created 10 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « server/git.py ('k') | server/hosts/remote.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #
2 # Copyright 2007 IBM Corp. Released under the GPL v2
3 # Authors: Ryan Harper <ryanh@us.ibm.com>
4 #
5
1 """ 6 """
2 This module defines the GitKernel class 7 This module defines the GitKernel class
3
4 @author: Ryan Harper (ryanh@us.ibm.com)
5 @copyright: IBM 2007
6 """ 8 """
7 9
8 import os, logging 10 __author__ = """
11 ryanh@us.ibm.com (Ryan Harper)
12 """
13
14
15 import os
9 import git, source_kernel 16 import git, source_kernel
10 17
11 18
12 class GitKernel(git.InstallableGitRepo): 19 class GitKernel(git.GitRepo):
13 """ 20 """
14 This class represents an installable git kernel repo. 21 This class represents a git kernel repo.
15 22
16 It is used to pull down a local copy of a git repo, check if the local repo 23 It is used to pull down a local copy of a git repo, check if the local repo
17 is up-to-date, if not update and then build the kernel from the git repo. 24 is up-to-date, if not update and then build the kernel from the git repo.
25
18 """ 26 """
19 def __init__(self, repodir, giturl, weburl): 27 def __init__(self, repodir, giturl, weburl):
20 super(GitKernel, self).__init__(repodir, giturl, weburl) 28 git.GitRepo.__init__(self, repodir, giturl, weburl)
21 self._patches = [] 29 self.__patches = []
22 self._config = None 30 self.__config = None
23 self._build = None 31 self.__build = None
24 self._branch = None
25 self._revision = None
26 32
27 33
28 def configure(self, config): 34 def configure(self, config):
29 self._config = config 35 self.__config = config
30 36
31 37
32 def patch(self, patch): 38 def patch(self, patch):
33 self._patches.append(patch) 39 self.__patches.append(patch)
34 40
35 41
36 def checkout(self, revision, local=None): 42 def install(self, host, build=True, builddir=None):
37 """ 43 # use tmpdir if no builddir specified
38 Checkout the commit id, branch, or tag. 44 # NB: pass a builddir to install() method if you
39 45 # need to ensure the build remains after the completion
40 @param revision: Name of the git remote branch, revision or tag 46 # of a job
41 @param local: Name of the local branch, implies -b
42 """
43 logging.info('Checking out %s', revision)
44 super(GitKernel, self).checkout(revision)
45 self._revision = super(GitKernel, self).get_revision()
46 self._branch = super(GitKernel, self).get_branch()
47 logging.info('Checked out %s on branch %s', self._revision,
48 self._branch)
49
50
51 def show_branch(self):
52 """
53 Print the current local branch name.
54 """
55 self._branch = super(GitKernel, self).get_branch()
56 logging.info(self._branch)
57
58
59 def show_branches(self, all=True):
60 """
61 Print the local and remote branches.
62
63 @param all: Whether to show all branches (True) or only local branches
64 (False).
65 """
66 self._branch = super(GitKernel, self).get_branch()
67 logging.info(super(GitKernel, self).get_branch(all=all))
68
69
70 def show_revision(self):
71 """
72 Show the current git revision.
73 """
74 self._revision = super(GitKernel, self).get_revision()
75 logging.info(self._revision)
76
77
78 def install(self, host, build=True, builddir=None, revision=None):
79 """
80 Install the git tree in a host.
81
82 @param host: Host object
83 @param build: Whether to build the source tree
84 @param builddir: Specify a build dir. If no build dir is specified,
85 the job temporary directory will be used, so the build won't
86 be persistent.
87 @param revision: Desired commit hash. If ommited, will build from HEAD
88 of the branch.
89 """
90 if revision:
91 self.checkout(revision)
92 self._revision = super(GitKernel, self).get_revision()
93 logging.info('Checked out revision: %s', self._revision)
94
95 if not builddir: 47 if not builddir:
96 self._build = os.path.join(host.get_tmp_dir(), "build") 48 self.__build = os.path.join(host.get_tmp_dir(),"build")
97 logging.warning('Builddir %s is not persistent (it will be erased ' 49 print 'warning: builddir %s is not persistent' %(self.__build)
98 'in future jobs)', self._build)
99 50
100 # push source to host for install 51 # push source to host for install
101 logging.info('Pushing %s to host', self.source_material) 52 print 'pushing %s to host' %(self.source_material)
102 host.send_file(self.source_material, self._build) 53 host.send_file(self.source_material, self.__build)
54 remote_source_material= os.path.join(self.__build,
55 os.path.basename(self.source_material))
103 56
104 # use a source_kernel to configure, patch, build and install. 57 # use a source_kernel to configure, patch, build and install.
105 sk = source_kernel.SourceKernel(self._build) 58 sk = source_kernel.SourceKernel(remote_source_material)
106 59
107 if build: 60 if build:
108 # apply patches 61 # apply patches
109 for p in self._patches: 62 for p in self.__patches:
110 sk.patch(p) 63 sk.patch(p)
111 64
112 # configure 65 # configure
113 sk.configure(self._config) 66 sk.configure(self.__config)
114 67
115 # build 68 # build
116 sk.build(host) 69 sk.build(host)
117 70
118 # install 71 # install
119 sk.install(host) 72 sk.install(host)
OLDNEW
« no previous file with comments | « server/git.py ('k') | server/hosts/remote.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698