Hätte ja gerne direkt geantwortet, aber aus dem UM-Netz ist das Forum gerade nicht erreichbar?
wusel@luggage:~$ traceroute forum.freifunk.net
traceroute to forum.freifunk.net (185.66.195.242), 30 hops max, 60 byte packets
[…]
4 81.210.137.136 (81.210.137.136) 18.746 ms 19.081 ms 19.016 ms
5 de-bfe18a-rd02-ae0-0.aorta.net (84.116.191.146) 23.560 ms 23.888 ms 23.870 ms
6 de-fra01b-rc1-ae65-0.aorta.net (84.116.191.125) 24.708 ms 22.412 ms 22.284 ms
7 de-fra03b-ri1-ae10-0.aorta.net (84.116.132.178) 19.306 ms 21.314 ms 20.725 ms
8 213.46.179.50.aorta.net (213.46.179.50) 19.343 ms 22.093 ms 20.539 ms
9 * * *
10 * * *
11 * * *
[…]
Somit also per Mail:
»Es hängt halt ein wenig von den Anforderungen ab. Die versuche ich gerade herauszufinden ;-).«
Ja, viele Wege führen nach Rom; ich hab’ einfach ein Script, welches den ganzen Kladderadatsch durchbaut und gut. Initial hatte ich nur 841 + VM gebaut (spart ja doch einiges an Zeit und Platz), mittlerweile fällt aus einem Build i. d. R. komplett alles raus.
»Gibt es zu diesem Vorgang etwas an Dokumentation? Oder mal einen groben Ablauf wie man das selbst mal ausprobieren kann?«
Es wird gebaut, und dann die Manifeste für „rawhide“ bis „stable“ angelegt und vorsigniert; per „promote.sh“-Skript wandert ggf. ein Build von Stufe X nach Stufe X+1 („rawhide“ → „experimental“ → „testing“ → „stable“; parallel dazu gibt’s derzeit noch „tng“, bei dem in der site.conf per sed die Batman-Version auf v15 gesetzt und fastd durch Tunneldigger ersetzt wird: das Setup, auf welches wir „demnächst“ schwenken wollen.)
Alle Autoupdate-Zweige sind Autoupdate-fähig, sodaß es Geräte im Netz gibt, die auf „rawhide“ stehen und sich ggf. binnen weniger Stunden automatisch auf den neuesten Build aktualisieren (das testet das Autoupdate-Procedere automagisch mit, birgt aber auch ein hohes Risiko des Brickens). Sprich: alles Gluon-Bordmittel soweit 
»Generell: Wo sind die hauptsächlichen Painpoints. Wenn es die Buildzeit nun nicht ist…«
Umständlich für mich ist das Testen des Setup-Modes; grundlegender Test kann per VM erfolgen, für alles mit WLAN braucht’s aber dann doch einen echten Knoten, zudem muß im Nachgang auch die jeweilige Funktion getestet werden (Privates Netz; WiFi-Mesh an/aus; …).
»Das wäre IMHO der zweite Schritt. Dazu bräuchte es halt auch einen geeigneten Test Kanal - also wo überhaupt neue Firmwares verteilt werden können. Oder gibt es soetwas schon?«
Siehe oben, »experimental« ist quasi der Alphatest-Kanal (FW konnte auf mind. 1 Gerät erfolgreich geflasht werden, wohl kein Totalausfall), »testing« der Betatest-Kanal (FW hat mehrere Geräte nicht gebrickt, also mal in (semi-)produktivem Umfeld ausprobieren; vorzugsweise werden hier auch Speizialfeatures (Nachtabschaltung, Config-Override, …) benutzt und von den Betreibern überwacht).
Nach $variabler_Zeit in »testing« entscheidet dann ein Gruppen-Bauchgefühl, ob die Firmware nach „stable“ geschoben wird, wo das Netz sich i. d. R. binnen 24h dann drauf aktualisiert.
Wie gesagt, $hier wird nicht nach Releases neu gebaut; die getesteten Binaries werden durch die Unterverzeichnisse des Firmwareservers „nach oben“ (stable) geschoben, das jeweilige Manifest, was ja auch schon zur Bauzeit erstellt wurde, dabei auch nur umbenannt und den Erfordernissen entsprechend signiert. Damit heißen unsere „stable“-Firmwares so nur auf dem Firmware-Server, aber irgendwas ist ja immer. In einer separaten Datei werden die benutzten Hashes der Repos gespeichert, sodaß ein rebuild einer bestimmten Version prinzipiell möglich wäre (GPL und so); es käme aber wegen anderem Buildhost und anderen Zeiten kein binär identisches Image raus.
Works for us
HTH,
-kai