22
33BuildBot is our legacy build scheduler.
44
5- The buildbot master runs at
5+ The buildbot controller runs at
66[ build.voidlinux.org] ( https://build.voidlinux.org ) and provides
77unified scheduling to all other build tasks in the fleet. BuildBot
88also exposes a web interface.
99
1010The current status of the build infrastructure can be found on the
11- build waterfall. This view shows what each of the buildslaves is
11+ build waterfall. This view shows what each of the builders is
1212doing right now, and uses traffic light colors for build state. A
1313purple builder is usually a reason to contact void-ops and figure out
1414what's wrong with the build host.
@@ -18,18 +18,44 @@ failed without needing to push a new commit. Not all committers have
1818access to restart failed builds this way. If you believe that you
1919should have this access, contact maldridge@.
2020
21- ## Moving a buildslave
21+ ## Moving a builder
2222
23- Don't.
23+ First, all builds need to be paused until the move can be completed.
24+ Builders must be moved in the groups they currently are in (glibc, musl,
25+ and aarch64). Sync the hostdir host volume to the new location, then
26+ migrate the nomad job to the new host.
2427
25- In the event that this is unavoidable, all builds need to be paused
26- until the move can be completed. In the even the builder that needs
27- to be moved is on the musl cluster, all musl builders will need to be
28- moved with it. Similarly, the aarch64 builders must always move as a
29- pair.
28+ ## Updating buildbot
29+
30+ The buildbot controller and builders should be kept at the same buildbot
31+ version.
32+
33+ 1 . Update the buildbot version in both the ` buildbot ` and
34+ ` buildbot-builder ` Dockerfiles.
35+ 2 . Rebuild the service containers by triggering a build for the
36+ ` infra-buildbot ` and ` infra-buildbot-builder ` containers in CI.
37+ 3 . Update the nomad jobs to use the new containers and restart them
38+ with the task meta variable ` db-upgrade = "true" ` . This will run
39+ any necessary migrations on startup.
40+ 4 . Re-set ` db-upgrade = "false" ` . The job does not need to be
41+ redeployed, but on the next deployment, it will not run the upgrade.
42+
43+ ## Future Plans
44+
45+ Buildbot 4 uses the database to store logs. Currently, we are using the sqlite
46+ backend. If this causes performance issues in the future, we should switch to
47+ [ postgres] ( https://docs.buildbot.net/current/manual/deploy.html#using-a-database-server ) .
48+ To migrate the database from sqlite, the steps appear to be:
49+
50+ 1 . Ensure the sqlite database is fully upgraded by running the controller task with
51+ ` db-upgrade = "true" ` .
52+ 2 . Set up a postgres server with a buildbot user (see Buildbot's documentation linked
53+ above).
54+ 3 . Run ` buildbot copydb postgres://buildbot:passw0rd@ip/buildbot /path/to/buildbot/basedir ` .
55+ 4 . Update the buildbot configuration to use the new database url.
3056
3157## EOL
3258
33- BuildBot is slated for replacement this fall/winter . The system will
34- be replaced by the Distributed XBPS Package Builder (dxpb) which will
35- resolve many of the long standing problems in the buildbot.
59+ BuildBot is slated for replacement in the future . The system will
60+ be replaced by the Distributed XBPS Package Builder (dxpb) or nbuild
61+ which will resolve many of the long standing problems in the buildbot.
0 commit comments