Skip to content

BuildBot

robnagler edited this page Apr 11, 2017 · 1 revision

BuildBot

Install and start buildbot:

pip install 'buildbot[bundle]'
mkdir buildbot
cd buildbot
buildbot create-master master
cd master
cp master.cfg.sample master.cfg
emacs master.cfg
# config should come from a template
buildbot start master
cd ..
buildbot create-worker wrkr localhost wrkr passwd
emacs wrkr/buildbot.tac
# wrkr is name of worker host. localhost is master's host
# update passwd
buildbot start wrkr

Logs

  • {master,wrkr}/twistd.log is where most messages go
  • master/http.log is the requests to the simple http server

Security

BuildBot doesn't protect the site from anonymous access. Name the site simply, because it is always visible:

c['title'] = "RadiaSoft"
c['titleURL'] = "http://radiasoft.net"

GitHub oauth/hook setup is:

c['www'] = dict(
    port=8010,
    plugins=dict(waterfall_view={}, console_view={}),
    auth= util.GitHubAuth(
        '<CLIENT_ID>',
        '<CLIENT_KEY',
    ),
    authz=util.Authz(
        allowRules=[
            util.AnyEndpointMatcher(role='admins', defaultDeny=False),
            util.AnyEndpointMatcher(role='none-existent', defaultDeny=True),
        ],
        roleMatchers=[
            util.RolesFromUsername(
                roles=['admins'],
                usernames=[
                    '<ADMIN-1>',
                ],
            ),
        ],
    ),
    change_hook_dialects={
        'github': {
            # generate this key, and add to hook on github.com settings
            'secret': '<RANDOM-KEY>',
            'strict': True,
        },
    },
)

Remove changes.GitPoller, becuase the hook does that.

If you want all commits run, comment out the change_filter:

#        change_filter=util.ChangeFilter(
#            branch='master',
#        ),

And change SingleBranchScheduler to AnyBranchScheduler.

Clone this wiki locally