1import os 2from buildbot.buildslave import BuildSlave 3from buildbot.schedulers.forcesched import ForceScheduler 4from buildbot.config import BuilderConfig 5from buildbot.process.factory import BuildFactory 6from buildbot.steps.shell import ShellCommand 7from buildbot.status import html 8from buildbot.status.web import authz, auth 9 10PORT_WEB = 8010 # Buildbot webserver port 11PORT_MASTER = 9989 # Port where buildbot master listen buildworkers 12TEST_USER = 'buildbot' # Credential to authenticate build triggers 13TEST_PWD = 'docker' # Credential to authenticate build triggers 14BUILDER_NAME = 'docker' 15BUILDPASSWORD = 'pass-docker' # Credential to authenticate buildworkers 16GOPATH = '/data/docker' 17DOCKER_PATH = '{0}/src/github.com/dotcloud/docker'.format(GOPATH) 18 19c = BuildmasterConfig = {} 20 21c['title'] = "Docker" 22c['titleURL'] = "waterfall" 23c['buildbotURL'] = "http://localhost:{0}/".format(PORT_WEB) 24c['db'] = {'db_url':"sqlite:///state.sqlite"} 25c['slaves'] = [BuildSlave('buildworker', BUILDPASSWORD)] 26c['slavePortnum'] = PORT_MASTER 27 28c['schedulers'] = [ForceScheduler(name='trigger',builderNames=[BUILDER_NAME])] 29 30# Docker test command 31test_cmd = "GOPATH={0} make -C {1} test".format(GOPATH,DOCKER_PATH) 32 33# Builder 34factory = BuildFactory() 35factory.addStep(ShellCommand(description='Docker',logEnviron=False, 36 usePTY=True,command=test_cmd)) 37c['builders'] = [BuilderConfig(name=BUILDER_NAME,slavenames=['buildworker'], 38 factory=factory)] 39 40# Status 41authz_cfg=authz.Authz(auth=auth.BasicAuth([(TEST_USER,TEST_PWD)]), 42 forceBuild='auth') 43c['status'] = [html.WebStatus(http_port=PORT_WEB, authz=authz_cfg)] 44