This is an old revision of the document!
Table of Contents
Buildbot Worker
Buildbot Worker melden sich beim Buildbot Master mit ihrem Namen und einem Passwort an. Sobald der Master einen Build-Auftrag erhält, gibt er die auszuführenden Schritte an seine Worker weiter.
Allgemeine Verwaltung
Dateien, wie z. B. Skripte finden sich hier: https://github.com/nplab/Misc/tree/master/buildbot/bb-worker
Zugriff
SSH Zugriff (ipfw Firewall auf gw-tuexen schränkt Zugriff ein, lässt SSH aber durch). Buildbot Worker laufen unter Nutzer buildbot.
sudo su buildbot cd ~/bb-worker
Erstellen
Zum Erstellen der Worker gibt es das Skript create_worker.sh. Das führt die Befehle zum Erstellen des Workers aus.
Soll z. B. ein freebsd Worker für sctplab/usrsctp zu erstellt werden, ist das der Folgende:
buildbot-worker create-worker sctplab-usrsctp buildbot.nplab.de:19989 freebsd buildbotsBuildBuilts
Dadurch wird ein Verzeichnis sctplab-usrsctp erstellt mit einer buildbot.tac Datei, die Einstellungen enthält.
Starten
Zum Starten bzw. Neustarten gibt es das Skript start_worker.sh. Das führt die Befehle zum Neustarten aller Worker auf dem System aus.
Um z. B. einen Worker für sctplab/usrsctp neu zu starten, sind das die Folgenden:
buildbot@buildbot:~/bb-worker % buildbot-worker stop sctplab-usrsctp buildbot@buildbot:~/bb-worker % buildbot-worker start sctplab-usrsctp
Worker Systeme
Einige Worker laufen als bhyve VM und einige auf eigener Hardware.
FreeBSD
VM (gleiche wie für den Master)
OpenBSD
VM 212.201.121.118
NetBSD
VM 212.201.121.113
Linux (Ubuntu)
VM 212.201.121.114
macOS
Mac mini neben dem Drucker. 212.201.121.116
Raspbian Linux (ARM)
Raspberry Pi im Rumpus Room. 212.201.121.112
Windows
VM 212.201.121.115
Zugriff
Zugriff per Remote Desktop mit Nutzer weinrank und Standard root-Passwort (Nutzer buildbot hat auch das Standard root-Passwort). Wird blockiert von ipfw Firewall auf gw-tuexen. Deshalb nur aus einem internen Netz z. B. aus dem roten Netz.
Worker starten
In der Remote Desktop Session von weinrank für jeden Worker einmal cmd als Nutzer buildbot starten.
runas /savecred /user:buildbot %windir%\system32\cmd.exe
Darin den Worker starten mit:
cd \users\buildbot\bb-worker buildbot-worker start sctplab-usrsctp
Worker installieren
FreeBSD
Installation auf FreeBSD 13.1-RELEASE-p3.
Benötigte Software installieren.
pkg install py39-buildbot-worker automake autotools cmake valgrind bash git python bison
Wechseln als buildbot Nutzer.
sudo su buildbot
Soft Link zum bb-worker Verzeichnis im github Repository erstellen (siehe Installation master).
cd ~ ln -s Misc/buildbot/bb-worker bb-worker
Worker erstellen mit WORKERNAME=freebsd
./create-worker.sh
coverity installieren.
cd ~ fetch https://.../cov-analysis-freebsd64-2022.06.tar.gz tar xzf cov-analysis-freebsd64-2022.06.tar.gz mv cov-analysis-freebsd64-2022.6.0 cov-analysis
Ubuntu
Installation auf Ubuntu 22.04.1 LTS.
Nutzer buildbot erstellen.
adduser --disabled-password buildbot
Pakete aktualisieren und benötigte Software installieren
apt update apt upgrade apt install git buildbot-worker autotools-dev libtool-bin make cmake libsctp-dev bison flex python3 cppcheck
Zum Nutzer buildbot wechseln.
sudo su buildbot
Buildbot Worker erstellen mit WORKERNAME = ubuntu.
cd ~ mkdir bb-worker cd bb-worker ./create-worker.sh
OpenBSD
Installation auf OpenBSD 7.2.
Benötigte Software installieren.
pkg_add buildbot-worker git automake autoconf libtool cmake bash
Um Variablen für die Versionen zu setzen, folgende Zeilen in /etc/profile hinzufügen.
export AUTOCONF_VERSION=2.69 export AUTOMAKE_VERSION=1.16
Nutzer buildbot ohne Passwort erstellen und zum Nutzer wechseln.
adduser buildbot sudo su buildbot
Worker erstellen mit WORKERNAME = openbsd
cd ~ mkdir bb-worker cd bb-worker ./create-worker.sh
NetBSD
Installation auf NetBSD 9.3.
buildbot-worker installieren
cd /usr/pkgsrc/devel/buildbot-worker make install ln /usr/pkg/bin/buildbot-worker-3.10 /usr/pkg/bin/buildbot-worker
Übrige benötigte Software installieren.
pkgin install git mozilla-rootcerts-openssl automake autoconf libtool cmake bash
Nutzer buildbot erstellen und zum Nutzer wechseln.
useradd -m -s /bin/ksh buildbot sudo su buildbot
Worker erstellen mit WORKERNAME = netbsd
cd ~ mkdir bb-worker cd bb-worker ./create-worker.sh
Windows
Software zum Bauen
Installiert werden muss git, Visual Studio Community mit dem C++ Desktop Workkit und MSYS2 64 bit mit mingw-w64.
Der Installer zu git kann über https://git-scm.com/ heruntergeladen werden.
Der Visual Studio Installer kann bei Microsoft heruntergeladen werden. Bei der Installation den C++ Desktop Workkit auswählen.
MSYS2 kann hier heruntergeladen werden. Nach der Installation lässt sich über das Startmenü eine MSYS2 MSYS Konsole starten. Darin folgende Befehle ausführen, um Pakete zu aktualisieren und mingw zu installieren.
pacman -Syuu pacman -S --needed base-devel mingw-w64-x86_64-toolchain pacman -S --needed base-devel mingw-w64-x86_64-cmake pacman -S --needed base-devel mingw-w64-i686-toolchain pacman -S --needed base-devel mingw-w64-i686-cmake
Worker erstellen
Python 32 Bit installieren.
cmd als Nutzer buildbot starten (z. B. als Verknüpfung auf dem Desktop).
runas /savecred /user:buildbot %windir%\system32\cmd.exe
Darin folgende Befehle ausführen:
cd \users\buildbot\bb-worker python -m venv venv-bs pip install --upgrade pip pip install pywin32 pip install buildbot-worker buildbot-worker create-worker sctplab-usrsctp buildbot.nplab.de:19989 windows buildbotsBuildBuilts buildbot-worker create-worker msvoelker-usrsctp buildbot.nplab.de:49989 windows buildbotsBuildBuilts
