| 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)] |