def test_has_svn_change_source(): BuildmasterConfig['change_source'].append(SVNPoller(svnurl='svn+ssh://test1.example.com')) BuildmasterConfig['change_source'].append(SVNPoller(svnurl='svn+ssh://test2.example.com')) assert has_svn_change_source('svn+ssh://test2.example.com') assert not has_svn_change_source('http://foobar.com') BuildmasterConfig['change_source'] = []
def test1(self): base = "svn+ssh://svn.twistedmatrix.com/svn/Twisted/trunk" s = SVNPoller(base + "/") self.failUnlessEqual(s.svnurl, base) # certify slash-stripping prefix = s.determine_prefix(prefix_output) self.failUnlessEqual(prefix, "trunk") self.failUnlessEqual(s._prefix, prefix)
def testChanges(self): base = "file:///home/warner/stuff/Projects/BuildBot/trees/svnpoller/_trial_temp/test_vc/repositories/SVN-Repository/sample" s = SVNPoller(base, split_file=split_file) s._prefix = "sample" doc = s.parse_logs(make_changes_output(3)) newlast, logentries = s._filter_new_logentries(doc, 1) # so we see revisions 2 and 3 as being new self.failUnlessEqual(newlast, 3) changes = s.create_changes(logentries) self.failUnlessEqual(len(changes), 2) self.failUnlessEqual(changes[0].branch, "branch") self.failUnlessEqual(changes[0].revision, '2') self.failUnlessEqual(changes[1].branch, "branch") self.failUnlessEqual(changes[1].files, ["main.c"]) self.failUnlessEqual(changes[1].revision, '3') # and now pull in r4 doc = s.parse_logs(make_changes_output(4)) newlast, logentries = s._filter_new_logentries(doc, newlast) self.failUnlessEqual(newlast, 4) # so we see revision 4 as being new changes = s.create_changes(logentries) self.failUnlessEqual(len(changes), 1) self.failUnlessEqual(changes[0].branch, None) self.failUnlessEqual(changes[0].revision, '4') self.failUnlessEqual(changes[0].files, ["version.c"])
def testFirstTime(self): base = "file:///home/warner/stuff/Projects/BuildBot/trees/svnpoller/_trial_temp/test_vc/repositories/SVN-Repository/sample" s = SVNPoller(base, split_file=split_file) s._prefix = "sample" doc = s.parse_logs(make_changes_output(4)) logentries = s.get_new_logentries(doc) # SVNPoller ignores all changes that happened before it was started self.failUnlessEqual(len(logentries), 0) self.failUnlessEqual(s.last_change, 4)
def watch(self, url, branch): repo_url = '%s/%s' % (url, branch) if not has_svn_change_source(repo_url): BuildmasterConfig['change_source'].append(SVNPoller( svnurl=repo_url, pollInterval=300 + randrange(0, 60), histmax=5)) BuildmasterConfig['schedulers'].append(SingleBranchScheduler( name=scheduler_name(self, 'svn-' + hashify(repo_url)), treeStableTimer=60, builderNames=[self.name], change_filter=ChangeFilter(repository=repo_url)))
def test1(self): base = "file:///home/warner/stuff/Projects/BuildBot/trees/svnpoller/_trial_temp/test_vc/repositories/SVN-Repository/sample" s = SVNPoller(base) s._prefix = "sample" output = make_changes_output(4) doc = s.parse_logs(output) newlast, logentries = s._filter_new_logentries(doc, 4) self.failUnlessEqual(newlast, 4) self.failUnlessEqual(len(logentries), 0) newlast, logentries = s._filter_new_logentries(doc, 3) self.failUnlessEqual(newlast, 4) self.failUnlessEqual(len(logentries), 1) newlast, logentries = s._filter_new_logentries(doc, 1) self.failUnlessEqual(newlast, 4) self.failUnlessEqual(len(logentries), 3) newlast, logentries = s._filter_new_logentries(doc, None) self.failUnlessEqual(newlast, 4) self.failUnlessEqual(len(logentries), 0)
from buildbot.changes.gitpoller import GitPoller from buildbot.changes.svnpoller import SVNPoller ####### CHANGESOURCES sources = [] sources.append( SVNPoller( project="JaCoCo", svnurl= "http://eclemma.svn.sourceforge.net/svnroot/eclemma/jacoco/trunk", pollinterval=10 * 60))
def test2(self): base = "svn+ssh://svn.twistedmatrix.com/svn/Twisted" s = SVNPoller(base) self.failUnlessEqual(s.svnurl, base) prefix = s.determine_prefix(prefix_output_2) self.failUnlessEqual(prefix, "")
def test4(self): base = "file:///home/warner/stuff/Projects/BuildBot/trees/svnpoller/_trial_temp/test_vc/repositories/SVN-Repository/sample/trunk" s = SVNPoller(base) self.failUnlessEqual(s.svnurl, base) prefix = s.determine_prefix(prefix_output_4) self.failUnlessEqual(prefix, "sample/trunk")
if len(pieces) > 1 and pieces[0] == 'trunk': return (None, '/'.join(pieces[1:])) elif len(pieces) > 2 and pieces[0] == 'branches': return ('/'.join(pieces[0:2]), '/'.join(pieces[2:])) else: return None from buildbot.changes.svnpoller import SVNPoller c['change_source'] = [] c['change_source'].append( SVNPoller( svnurl=ea_svnurl, split_file=ea_split_file_branches, pollInterval=60, # check every minute histmax=10, # check up to 10 revisions revlinktmpl= "http://code.google.com/p/eathena-project/source/detail?r=%s")) ####### SCHEDULERS # Configure the Schedulers, which decide how to react to incoming changes. In this # case, just kick off a 'runtests' build from buildbot.schedulers.triggerable import Triggerable from buildbot.schedulers.basic import AnyBranchScheduler from buildbot.schedulers.forcesched import ForceScheduler from buildbot.schedulers.trysched import Try_Userpass from buildbot.changes import filter
"http://buildbot.schat.me/", 'slavePortnum': 9989, 'slaves': [ BuildSlave("lucid", schat_passwords.LUCID), BuildSlave("lucid64", schat_passwords.LUCID64), BuildSlave("win32", schat_passwords.WIN32), BuildSlave("macosx", schat_passwords.MACOSX), BuildSlave("master", schat_passwords.MASTER), BuildSlave("precise", schat_passwords.PRECISE), BuildSlave("precise64", schat_passwords.PRECISE64), ], 'change_source': [ SVNPoller( svnurl="https://schat.googlecode.com/svn", split_file=split_file_branches, pollinterval=60, ), ], 'status': [ html.WebStatus( http_port="tcp:8010:interface=127.0.0.1", authz=authz, revlink='http://code.google.com/p/schat/source/detail?r=%s'), ], 'db': { 'db_url': "sqlite:///state.sqlite", } } c['properties'] = {