def startVC(self, branch, revision, patch): warnings = [] args = copy.copy(self.args) if args.get('gclient_spec'): self.adjustGclientSpecForBlink(branch, revision, args) self.adjustGclientSpecForNaCl(branch, revision, patch, args) self.adjustGclientSpecForV8(branch, revision, patch, args) self.adjustGclientSpecForWebRTC(branch, revision, patch, args) try: # parent_cr_revision might be set, but empty. if self.getProperty('parent_cr_revision'): revision = 'src@' + self.getProperty('parent_cr_revision') except KeyError: pass self.setProperty('primary_repo', args['primary_repo'], 'Source') args['revision'] = revision args['branch'] = branch if patch: args['patch'] = patch elif args.get('patch') is None: del args['patch'] args['project'] = self.build.getSourceStamp().project cmd = buildstep.LoggedRemoteCommand('gclient', args) self.startCommand(cmd, warnings)
def copy(self): cmd = buildstep.LoggedRemoteCommand('rmdir', {'dir': self.workdir}) cmd.useLog(self.stdio_log, False) d = self.runCommand(cmd) self.workdir = 'source' d.addCallback(lambda _: self.incremental()) def copy(_): cmd = buildstep.LoggedRemoteCommand('cpdir', { 'fromdir': 'source', 'todir': 'build' }) cmd.useLog(self.stdio_log, False) d = self.runCommand(cmd) return d d.addCallback(copy) def resetWorkdir(_): self.workdir = 'build' return 0 d.addCallback(resetWorkdir) return d
def clobber(self, _): cmd = buildstep.LoggedRemoteCommand('rmdir', {'dir': self.workdir}) cmd.useLog(self.stdio_log, False) d = self.runCommand(cmd) d.addCallback(lambda _: self._dovccmd( ['clone', '--noupdate', self.repourl, "."])) d.addCallback(self._update) return d
def copy(_): cmd = buildstep.LoggedRemoteCommand('cpdir', {'fromdir': 'source', 'todir':'build', 'logEnviron': self.logEnviron,}) cmd.useLog(self.stdio_log, False) d = self.runCommand(cmd) return d
def copy(self): cmd = buildstep.LoggedRemoteCommand('rmdir', { 'dir': self.workdir, 'logEnviron': self.logEnviron, }) cmd.useLog(self.stdio_log, False) wfd = defer.waitForDeferred(self.runCommand(cmd)) yield wfd wfd.getResult() if cmd.rc != 0: raise buildstep.BuildStepFailed() # temporarily set workdir = 'source' and do an incremental checkout try: old_workdir = self.workdir self.workdir = 'source' wfd = defer.waitForDeferred(self.incremental(None)) yield wfd wfd.getResult() except: # finally doesn't work in python-2.4 self.workdir = old_workdir raise self.workdir = old_workdir # if we're copying, copy; otherwise, export from source to build if self.method == 'copy': cmd = buildstep.LoggedRemoteCommand( 'cpdir', { 'fromdir': 'source', 'todir': self.workdir, 'logEnviron': self.logEnviron }) else: cmd = buildstep.RemoteShellCommand( '', ['svn', 'export', 'source', self.workdir], env=self.env, logEnviron=self.logEnviron) cmd.useLog(self.stdio_log, False) wfd = defer.waitForDeferred(self.runCommand(cmd)) yield wfd wfd.getResult() if cmd.rc != 0: raise buildstep.BuildStepFailed()
def start(self): slavever = self.slaveVersion('stat') if not slavever: raise BuildSlaveTooOldError("slave is too old, does not know " "about stat") cmd = buildstep.LoggedRemoteCommand('stat', {'file': self.file}) d = self.runCommand(cmd) d.addCallback(lambda res: self.commandComplete(cmd)) d.addErrback(self.failed)
def _sourcedirIsUpdatable(self): cmd = buildstep.LoggedRemoteCommand('stat', {'file': self.workdir + '/CVS', 'logEnviron': self.logEnviron}) cmd.useLog(self.stdio_log, False) d = self.runCommand(cmd) def _fail(tmp): if cmd.rc != 0: return False return True d.addCallback(_fail) return d
def clobber(self): cmd = buildstep.LoggedRemoteCommand('rmdir', {'dir': self.workdir, 'logEnviron': self.logEnviron}) cmd.useLog(self.stdio_log, False) d = self.runCommand(cmd) def checkRemoval(res): if res != 0: raise RuntimeError("Failed to delete directory") return res d.addCallback(lambda _: checkRemoval(cmd.rc)) d.addCallback(lambda _: self.doCheckout(self.workdir)) return d
def removeFiles(self, files): for filename in files: cmd = buildstep.LoggedRemoteCommand('rmdir', { 'dir': filename, 'logEnviron': self.logEnviron, }) cmd.useLog(self.stdio_log, False) wfd = defer.waitForDeferred(self.runCommand(cmd)) yield wfd wfd.getResult() if cmd.rc != 0: yield cmd.rc return yield 0
def startVC(self, branch, revision, patch): warnings = [] args = copy.copy(self.args) args['revision'] = revision args['branch'] = branch if args.get('gclient_spec'): args['gclient_spec'] = args['gclient_spec'].replace( '$$WK_REV$$', str(revision or '')) if patch: args['patch'] = patch elif args.get('patch') is None: del args['patch'] cmd = buildstep.LoggedRemoteCommand('gclient', args) self.startCommand(cmd, warnings)
def clobber(self): cmd = buildstep.LoggedRemoteCommand('rmdir', { 'dir': self.workdir, 'logEnviron': self.logEnviron, }) cmd.useLog(self.stdio_log, False) wfd = defer.waitForDeferred(self.runCommand(cmd)) yield wfd wfd.getResult() if cmd.rc != 0: raise buildstep.BuildStepFailed() wfd = defer.waitForDeferred( self._dovccmd(['checkout', self.svnurl, '.'])) yield wfd wfd.getResult()
def parseAndRemove(stdout): files = [] for filename in self.getUnversionedFiles(stdout, self.keep_on_purge): filename = self.workdir + '/' + str(filename) files.append(filename) if len(files) == 0: d = defer.succeed(0) else: if not self.slaveVersionIsOlderThan('rmdir', '2.14'): d = self.removeFiles(files) else: cmd = buildstep.LoggedRemoteCommand( 'rmdir', { 'dir': files, 'logEnviron': self.logEnviron, }) cmd.useLog(self.stdio_log, False) d = self.runCommand(cmd) d.addCallback(lambda _: cmd.rc) return d
def copy(self): cmd = buildstep.LoggedRemoteCommand('rmdir', { 'dir': 'build', 'logEnviron': self.logEnviron, }) cmd.useLog(self.stdio_log, False) d = self.runCommand(cmd) d.addCallback(lambda _: self.incremental()) def copy(_): cmd = buildstep.LoggedRemoteCommand( 'cpdir', { 'fromdir': 'source', 'todir': 'build', 'logEnviron': self.logEnviron, }) cmd.useLog(self.stdio_log, False) d = self.runCommand(cmd) return d d.addCallback(copy) return d
def startVC(self, branch, revision, patch): warnings = [] args = copy.copy(self.args) wk_revision = revision try: # parent_wk_revision might be set, but empty. if self.getProperty('parent_wk_revision'): wk_revision = self.getProperty('parent_wk_revision') except KeyError: pass nacl_revision = revision try: # parent_nacl_revision might be set, but empty. if self.getProperty('parent_got_nacl_revision'): nacl_revision = self.getProperty('parent_got_nacl_revision') except KeyError: pass try: # parent_cr_revision might be set, but empty. if self.getProperty('parent_cr_revision'): revision = 'src@' + self.getProperty('parent_cr_revision') except KeyError: pass self.setProperty('primary_repo', args['primary_repo'], 'Source') args['revision'] = revision args['branch'] = branch if args.get('gclient_spec'): args['gclient_spec'] = args['gclient_spec'].replace( '$$WK_REV$$', str(wk_revision or '')) args['gclient_spec'] = args['gclient_spec'].replace( '$$NACL_REV$$', str(nacl_revision or '')) if patch: args['patch'] = patch elif args.get('patch') is None: del args['patch'] cmd = buildstep.LoggedRemoteCommand('gclient', args) self.startCommand(cmd, warnings)
def start(self): args = dict((name, self.build.render(value)) for name, value in self.args.iteritems()) cmd = buildstep.LoggedRemoteCommand('apply_issue', args) self.startCommand(cmd)