From 8de56711b83d37b5bc354434f19d85032dd58c2b Mon Sep 17 00:00:00 2001 From: Pierre Tardy <tardyp@gmail.com> Date: Tue, 20 Dec 2016 16:36:45 +0100 Subject: [PATCH] add worker --- pypy/master/requirements.txt | 2 +- pypy/worker/Dockerfile | 2 ++ pypy/worker/buildbot.tac | 40 ++++++++++++++++++++++++++++++++++++ pypy/worker/requirements.txt | 1 + 4 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 pypy/worker/Dockerfile create mode 100644 pypy/worker/buildbot.tac create mode 100644 pypy/worker/requirements.txt diff --git a/pypy/master/requirements.txt b/pypy/master/requirements.txt index 076bba6..8f0cd62 100644 --- a/pypy/master/requirements.txt +++ b/pypy/master/requirements.txt @@ -1,2 +1,2 @@ -buildbot[bundle]==0.9.2 +buildbot==0.8.14 psycopg2cffi-compat diff --git a/pypy/worker/Dockerfile b/pypy/worker/Dockerfile new file mode 100644 index 0000000..3bc96e1 --- /dev/null +++ b/pypy/worker/Dockerfile @@ -0,0 +1,2 @@ +from pypy:2-onbuild +CMD ["twistd", "-ny", "buildbot.tac"] diff --git a/pypy/worker/buildbot.tac b/pypy/worker/buildbot.tac new file mode 100644 index 0000000..7278a77 --- /dev/null +++ b/pypy/worker/buildbot.tac @@ -0,0 +1,40 @@ +import fnmatch +import os +import sys + +from twisted.application import service +from twisted.python.log import FileLogObserver +from twisted.python.log import ILogObserver + +from buildslave.bot import BuildSlave + +# setup worker +basedir = os.path.abspath(os.path.dirname(__file__)) +application = service.Application('buildbot-worker') + + +application.setComponent(ILogObserver, FileLogObserver(sys.stdout).emit) +# and worker on the same process! +buildmaster_host = os.environ.get("BUILDMASTER", 'localhost') +port = int(os.environ.get("BUILDMASTER_PORT", 9989)) +workername = os.environ.get("WORKERNAME", 'docker') +passwd = os.environ.get("WORKERPASS") + +# delete the password from the environ so that it is not leaked in the log +blacklist = os.environ.get("WORKER_ENVIRONMENT_BLACKLIST", "WORKERPASS").split() +for name in list(os.environ.keys()): + for toremove in blacklist: + if fnmatch.fnmatch(name, toremove): + del os.environ[name] + +keepalive = 600 +umask = None +maxdelay = 300 +allow_shutdown = None +usepty=False + +s = BuildSlave(buildmaster_host, port, workername, passwd, basedir, + keepalive, usepty, umask=umask, maxdelay=maxdelay, + allow_shutdown=allow_shutdown) + +s.setServiceParent(application) diff --git a/pypy/worker/requirements.txt b/pypy/worker/requirements.txt new file mode 100644 index 0000000..1e8d1a6 --- /dev/null +++ b/pypy/worker/requirements.txt @@ -0,0 +1 @@ +buildbot-slave==0.8.14