buildbot-worker(7) Services Administration buildbot-worker(7)

buildbot-worker - worker instances creation, upgrade and management

Buildbot worker instances are located under individual folders in /var/lib/buildbot/workers. This manual explains how to manage them.

To create a new Buildbot worker instance named $NAME, use the following commands:

buildbot-worker create-worker \
	/var/lib/buildbot/workers/$NAME <master> <name> <passwd>
chown -R buildbot: /var/lib/buildbot/workers/$NAME

After which you may start the worker instance. Depending on the init system you use, this is done differently.

To start the instance:

systemctl start buildbot-worker@$NAME.service

To enable automatic start on boot:

systemctl enable buildbot-worker@$NAME.service

If you want to tune the way the instance is started (e.g., to change the user that runs the process), you may use a systemd drop-in:

mkdir -p /etc/systemd/system/buildbot-worker@$NAME.service.d
editor /etc/systemd/system/buildbot-worker@$NAME.service.d/user.conf

With the following contents:

[Service]
User=my-user
Group=my-group

First, you need to edit /etc/default/buildbot-worker and configure your instance. The syntax is pretty self explanatory, but here is an example:

# 1-enabled, 0-disabled
WORKER_ENABLED[1]=1
# short name printed on start/stop
WORKER_NAME[1]="$NAME"
# user to run worker as
WORKER_USER[1]="buildbot"
# basedir to worker (absolute path)
WORKER_BASEDIR[1]="/var/lib/buildbot/workers/$NAME"
# buildbot-worker options
WORKER_OPTIONS[1]=""
# prefix command, i.e. nice, linux32, dchroot
WORKER_PREFIXCMD[1]=""

After which, you may start the instance:

service buildbot-worker start $NAME

By default, it will automatically start on boot.

When installing new versions, each worker instance is automatically restarted. No additional action is required.

Since version 0.9.0 of Buildbot "slave"-based terminology is deprecated in favor of "worker"-based terminology.

If you are upgrading from a 0.8.x version, all old buildbot-slave instances in /var/lib/buildbot/slaves must be manually migrated. The simplest way of doing that is to create new workers re-using the same <master>, <name> and <passwd> arguments. See the CREATION section of this manual for more details.

Once migrated, you may safely delete the old "slave" directory:

rm -rf /var/lib/buildbot/slaves/$NAME

/var/lib/buildbot/workers/$NAME

Working directory for the $NAME Buildbot worker instance.

/etc/systemd/system/buildbot-worker@$NAME.service.d

Directory containing customization drop-ins for the $NAME Buildbot worker instance service.

/etc/default/buildbot-worker

The worker instances services definition for sysvinit users.

buildbot-worker(1), systemctl(1), systemd.unit(5), service(8)

Robin Jarry <robin@jarry.cc>

2024-01-15