Weshalb muss ein Build unbeaufsichtigt durchgeführt werden. (z.B. bei Uwe oder Freimatz)
Kommt sicher auf die Gegebenheiten an. Bei mir ist es einfach Bequemlichkeit und Überzeugung. Ein Build startet entweder von selbst, z.B. durch ein Push in das entsprechende Repository, oder mit einem Klick auf den passenden Button im Dashboard, z.B. um eine neues Release anzustoßen.
Bei mir werden alle erzeugten EXE-,
DLL- und Setup-Dateien (ja, sind auch EXE) automatisch im Build signiert (man weiß nie wer das
mal eben zum Testen in die Finger kriegt). Ausnahme, frühe Beta-Versionen bei einem neuen Delphi, solange das Build-System das noch nicht unterstützt - ist aber in der Regel nicht lang.
Pushe ich einen Branch, triggert das automatisch ein Build dieses Branches mit Vergabe einer eindeutigen Build-Nummer, mit der das ChangeSet auch gleich getagged wird. Durch den Automatismus wird sofort geprüft, ob die Änderungen auch vollständig im System sind (wer hat nicht schonmal vergessen eine neue Datei einzuchecken?) und sich auch alle zugehörigen Projekte erzeugen lassen und nicht nur das, an dem ich gerade gearbeitet habe. Da das allein durch das Push ausgelöst wird, kann ich sofort mit was anderem weitermachen. Läuft alles gut - sehr schön, falls nicht bekomme ich vom Build-System eine Nachricht und kann das zeitnah beheben (so ein roter Fleck im Dashboard ist halt schon recht lästig).
Für ein vollständiges Release wird manuell gestartet und da kann die Build-Zeit schon mal etwas länger dauern. Da werden Screenshots mit dem frischen Compilat gemacht, in die Dokumentation übernommen und als CHM und PDF bereitgestellt - alles in den unterstützen Sprachen. Die Setups werden dann automatisch hochgeladen und (wenn möglich automatisch) auf den zugehörigen Seiten bereitgestellt. Heißt, ich klicke auf den
Build Release Button des entsprechenden Projekts und der Rest läuft dann ganz alleine.
Jetzt kann man natürlich einwenden: Ist das nicht ein wenig
over-engineered für einen einzelnen Developer? Vielleicht, aber gerade wenn man allein ist, sollte man soviel wie möglich automatisieren, finde ich. Sobald das aber in einem Team stattfindet, bin ich fest davon überzeugt, dass man viel zu viel kostbare Zeit vergeudet, wenn man das
nicht so weit automatisiert. Wenn ich mir da die eine oder andere Software-Schmiede (oder Software-Team) ansehe in die ich mal reinschnuppern durfte, da gibt es oft noch ein gehöriges Potential die Entwickler effizienter zu machen. Stattdessen wird soviel Zeit in Routineaufgaben vergeudet - aber an den Kosten für Freiberufler sparen wollen...