def continueStartVC(self, ignored, branch, revision, patch): slavever = self.slaveVersion("repo") if not slavever: raise BuildSlaveTooOldError("slave is too old, does not know " "about repo") cmd = RemoteCommand("repo", self.args) self.startCommand(cmd)
def startVC(self, branch, revision, patch): slavever = self.slaveVersion("hg") if not slavever: raise BuildSlaveTooOldError("slave is too old, does not know " "about hg") if self.repourl: # we need baseURL= to use dirname branches assert self.branchType == 'inrepo' or not branch self.args['repourl'] = self.repourl if branch: self.args['branch'] = branch else: self.args['repourl'] = self.baseURL + (branch or '') self.args['revision'] = revision self.args['patch'] = patch self.args['clobberOnBranchChange'] = self.clobberOnBranchChange self.args['branchType'] = self.branchType revstuff = [] if branch is not None and branch != self.branch: revstuff.append("[branch]") self.description.extend(revstuff) self.descriptionDone.extend(revstuff) cmd = RemoteCommand("hg", self.args) self.startCommand(cmd)
def startVC(self, branch, revision, patch): self.args['branch'] = branch self.args['repourl'] = self.repourl self.args['revision'] = revision self.args['patch'] = patch # check if there is any patchset we should fetch from Gerrit if self.build.hasProperty("event.patchSet.ref"): # GerritChangeSource self.args['gerrit_branch'] = self.build.getProperty( "event.patchSet.ref") self.updateSourceProperty("gerrit_branch", self.args['gerrit_branch']) else: try: # forced build change = self.build.getProperty("gerrit_change", '').split('/') if len(change) == 2: self.args['gerrit_branch'] = "refs/changes/%2.2d/%d/%d" \ % (int(change[0]) % 100, int(change[0]), int(change[1])) self.updateSourceProperty("gerrit_branch", self.args['gerrit_branch']) except: pass slavever = self.slaveVersion("git") if not slavever: raise BuildSlaveTooOldError("slave is too old, does not know " "about git") cmd = RemoteCommand("git", self.args) self.startCommand(cmd)
def startVC(self, branch, revision, patch): warnings = [] self.checkCompatibility() self.args['svnurl'] = self.getSvnUrl(branch) self.args['revision'] = revision self.args['patch'] = patch self.args['always_purge'] = self.always_purge # Set up depth if specified if self.depth is not None: self.args['depth'] = self.depth if self.username is not None: self.args['username'] = self.username if self.password is not None: self.args['password'] = self.password if self.extra_args is not None: self.args['extra_args'] = self.extra_args revstuff = [] # revstuff.append(self.args['svnurl']) if self.args['svnurl'].find('trunk') == -1: revstuff.append("[branch]") if revision is not None: revstuff.append("r%s" % revision) if patch is not None: revstuff.append("[patch]") self.description.extend(revstuff) self.descriptionDone.extend(revstuff) cmd = RemoteCommand("svn", self.args) self.startCommand(cmd, warnings)
def startVC(self, branch, revision, patch): warnings = [] slavever = self.slaveVersion("bk") if not slavever: m = "slave does not have the 'bk' command" raise BuildSlaveTooOldError(m) if self.bkurl: assert not branch # we need baseURL= to use branches self.args['bkurl'] = self.bkurl else: self.args['bkurl'] = self.baseURL + branch self.args['revision'] = revision self.args['patch'] = patch self.args['branch'] = branch if self.extra_args is not None: self.args['extra_args'] = self.extra_args revstuff = [] revstuff.append("[branch]") if revision is not None: revstuff.append("r%s" % revision) if patch is not None: revstuff.append("[patch]") self.description.extend(revstuff) self.descriptionDone.extend(revstuff) cmd = RemoteCommand("bk", self.args) self.startCommand(cmd, warnings)
def startVC(self, branch, revision, patch): if self.slaveVersionIsOlderThan("cvs", "1.39"): # the slave doesn't know to avoid re-using the same sourcedir # when the branch changes. We have no way of knowing which branch # the last build used, so if we're using a non-default branch and # either 'update' or 'copy' modes, it is safer to refuse to # build, and tell the user they need to upgrade the buildslave. if (branch != self.branch and self.args['mode'] in ("update", "copy")): m = ("This buildslave (%s) does not know about multiple " "branches, and using mode=%s would probably build the " "wrong tree. " "Refusing to build. Please upgrade the buildslave to " "buildbot-0.7.0 or newer." % (self.build.slavename, self.args['mode'])) log.msg(m) raise BuildSlaveTooOldError(m) if self.slaveVersionIsOlderThan("cvs", "2.10"): if self.args['extra_options'] or self.args['export_options']: m = ("This buildslave (%s) does not support export_options " "or extra_options arguments to the CVS step." % (self.build.slavename)) log.msg(m) raise BuildSlaveTooOldError(m) # the unwanted args are empty, and will probably be ignored by # the slave, but delete them just to be safe del self.args['export_options'] del self.args['extra_options'] if branch is None: branch = "HEAD" self.args['cvsroot'] = self.cvsroot self.args['branch'] = branch self.args['revision'] = revision self.args['patch'] = patch if self.args['branch'] == "HEAD" and self.args['revision']: # special case. 'cvs update -r HEAD -D today' gives no files # TODO: figure out why, see if it applies to -r BRANCH self.args['branch'] = None # deal with old slaves warnings = [] slavever = self.slaveVersion("cvs", "old") if slavever == "old": # 0.5.0 if self.args['mode'] == "export": self.args['export'] = 1 elif self.args['mode'] == "clobber": self.args['clobber'] = 1 elif self.args['mode'] == "copy": self.args['copydir'] = "source" self.args['tag'] = self.args['branch'] assert not self.args['patch'] # 0.5.0 slave can't do patch cmd = RemoteCommand("cvs", self.args) self.startCommand(cmd, warnings)
def startVC(self, branch, revision, patch): slavever = self.slaveVersion("p4") assert slavever, "slave is too old, does not know about p4" args = dict(self.args) args['p4base'] = self.p4base args['branch'] = branch or self.branch args['revision'] = revision args['patch'] = patch cmd = RemoteCommand("p4", args) self.startCommand(cmd)
def startVC(self, branch, revision, patch): slavever = self.slaveVersion("mtn") if not slavever: raise BuildSlaveTooOldError("slave is too old, does not know " "about mtn") self.args['repourl'] = self.repourl if branch: self.args['branch'] = branch self.args['revision'] = revision self.args['patch'] = patch cmd = RemoteCommand("mtn", self.args) self.startCommand(cmd)
def startVC(self, branch, revision, patch): slavever = self.slaveVersion("darcs") if not slavever: m = "slave is too old, does not know about darcs" raise BuildSlaveTooOldError(m) if self.slaveVersionIsOlderThan("darcs", "1.39"): if revision: # TODO: revisit this once we implement computeSourceRevision m = "0.6.6 slaves can't handle args['revision']" raise BuildSlaveTooOldError(m) # the slave doesn't know to avoid re-using the same sourcedir # when the branch changes. We have no way of knowing which branch # the last build used, so if we're using a non-default branch and # either 'update' or 'copy' modes, it is safer to refuse to # build, and tell the user they need to upgrade the buildslave. if (branch != self.branch and self.args['mode'] in ("update", "copy")): m = ("This buildslave (%s) does not know about multiple " "branches, and using mode=%s would probably build the " "wrong tree. " "Refusing to build. Please upgrade the buildslave to " "buildbot-0.7.0 or newer." % (self.build.slavename, self.args['mode'])) raise BuildSlaveTooOldError(m) if self.repourl: assert not branch # we need baseURL= to use branches self.args['repourl'] = self.repourl else: self.args['repourl'] = self.baseURL + branch self.args['revision'] = revision self.args['patch'] = patch revstuff = [] if branch is not None and branch != self.branch: revstuff.append("[branch]") self.description.extend(revstuff) self.descriptionDone.extend(revstuff) cmd = RemoteCommand("darcs", self.args) self.startCommand(cmd)
def startVC(self, branch, revision, patch): slavever = self.slaveVersion("bzr") if not slavever: m = "slave is too old, does not know about bzr" raise BuildSlaveTooOldError(m) if self.repourl: assert not branch # we need baseURL= to use branches self.args['repourl'] = self.repourl else: self.args['repourl'] = self.baseURL + branch self.args['revision'] = revision self.args['patch'] = patch revstuff = [] if branch is not None and branch != self.branch: revstuff.append("[" + branch + "]") if revision is not None: revstuff.append("r%s" % revision) self.description.extend(revstuff) self.descriptionDone.extend(revstuff) cmd = RemoteCommand("bzr", self.args) self.startCommand(cmd)
def __init__(self, remote_command, args): RemoteCommand.__init__(self, remote_command, args) self.rc = None self.stderr = ''
def startVC(self, branch, revision, patch): slavever = self.slaveVersion("p4sync") assert slavever, "slave is too old, does not know about p4" cmd = RemoteCommand("p4sync", self.args) self.startCommand(cmd)
def __init__(self, step, remote_command, args): RemoteCommand.__init__(self, remote_command, args) callback = lambda arg: step.step_status.addLog('stdio') self.useLogDelayed('stdio', callback, True)