The `disableConcurrentBuilds` pipeline option tells Jenkins to force
subsequent builds _of the same job_ to wait in queue until the one
running has completed. This is sufficient when there is only one
branch/project in development at a time. In order to prevent multiple
projects from running simultaneously, we need to acquire a global lock;
all projects need to have this same option in order for it to be
effective.
Recompiling the entire OS for every build takes way too long for
development purposes. Since we build binary packages anyway, let's keep
them around between builds by storing them on a Kubernetes persistent
volume.
Eventually, I want add a build parameter to wipe out the binary package
storage to force a from-scratch build. We'll use that option for robust
periodic builds, once development has slowed down.
I don't know what this is for; I think it has something to do with
containers, possibly for `systemd-npsawn`? It spawns a bunch of
processes and wastes several megabytes of RAM.
Deleting the initial password for `root` so we can log in to the serial
console for debugging.
Enabling _wpa_supplicant_ to connect to WiFi automatically.
We need the Broadcom firmware from the _linux-firmware_ package (and
nothing else). We also need _wpa_supplicant_, to configure the WiFi
connection. Finally, we need to configure _systemd-networkd_ to manage
the network device.
Need to add `rootwait` because the Raspberry Pi SD card reader is really
slow and does not initialize in time for the kernel to load the root
filesystem from it.