import os from buildbot.buildslave import BuildSlave from buildbot.schedulers.forcesched import ForceScheduler from buildbot.config import BuilderConfig from buildbot.process.factory import BuildFactory from buildbot.steps.shell import ShellCommand from buildbot.status import html from buildbot.status.web import authz, auth PORT_WEB = 8010 # Buildbot webserver port PORT_MASTER = 9989 # Port where buildbot master listen buildworkers TEST_USER = 'buildbot' # Credential to authenticate build triggers TEST_PWD = 'docker' # Credential to authenticate build triggers BUILDER_NAME = 'docker' BUILDPASSWORD = 'pass-docker' # Credential to authenticate buildworkers GOPATH = '/data/docker' DOCKER_PATH = '{0}/src/github.com/dotcloud/docker'.format(GOPATH) c = BuildmasterConfig = {} c['title'] = "Docker" c['titleURL'] = "waterfall" c['buildbotURL'] = "http://localhost:{0}/".format(PORT_WEB) c['db'] = {'db_url':"sqlite:///state.sqlite"} c['slaves'] = [BuildSlave('buildworker', BUILDPASSWORD)] c['slavePortnum'] = PORT_MASTER c['schedulers'] = [ForceScheduler(name='trigger',builderNames=[BUILDER_NAME])] # Docker test command test_cmd = "GOPATH={0} make -C {1} test".format(GOPATH,DOCKER_PATH) # Builder factory = BuildFactory() factory.addStep(ShellCommand(description='Docker',logEnviron=False, usePTY=True,command=test_cmd)) c['builders'] = [BuilderConfig(name=BUILDER_NAME,slavenames=['buildworker'], factory=factory)] # Status authz_cfg=authz.Authz(auth=auth.BasicAuth([(TEST_USER,TEST_PWD)]), forceBuild='auth') c['status'] = [html.WebStatus(http_port=PORT_WEB, authz=authz_cfg)]