Was ist ihr Zweck?
Nehmen Sie die Last der Entwicklermaschinen und stellen Sie eine stabile, reproduzierbare Umgebung für Builds bereit.
Warum bauen die Entwickler das Projekt nicht auf ihren lokalen Computern auf oder?
Denn mit komplexer Software können erstaunlich viele Dinge schief gehen, wenn nur "kompiliert" wird. Probleme, auf die ich tatsächlich gestoßen bin:
- unvollständige Abhängigkeitsprüfungen verschiedener Art, die dazu führen, dass Binärdateien nicht aktualisiert werden.
- Veröffentlichen Sie Befehle, die unbemerkt fehlschlagen. Die Fehlermeldung im Protokoll wird ignoriert.
- Build mit lokalen Quellen, die noch nicht zur Quellcodeverwaltung verpflichtet sind (zum Glück noch keine "verdammten Kunden" -Nachrichtenfelder ..).
- Wenn Sie versuchen, das oben genannte Problem zu vermeiden, indem Sie aus einem anderen Ordner erstellen, werden einige Dateien aus dem falschen Ordner ausgewählt.
- Der Zielordner, in dem Binärdateien zusammengefasst sind, enthält zusätzliche veraltete Entwicklerdateien, die nicht in der Version enthalten sein sollten
Wir haben eine erstaunliche Stabilitätssteigerung, da alle öffentlichen Veröffentlichungen mit einem Zugriff von der Quellcodeverwaltung auf einen leeren Ordner beginnen. Vorher gab es viele "lustige Probleme", die "verschwunden sind, als Joe mir eine neue DLL gab".
Sind einige Projekte so groß, dass leistungsstärkere Maschinen erforderlich sind, um sie in angemessener Zeit zu erstellen?
Was ist "vernünftig"? Wenn ich einen Batch-Build auf meinem lokalen Computer ausführe, gibt es viele Dinge, die ich nicht tun kann. Anstatt Entwickler für die Fertigstellung von Builds zu bezahlen, zahlen Sie die IT, um bereits eine echte Build-Maschine zu kaufen.
Habe ich gerade nicht an Projekten gearbeitet, die groß genug sind?
Größe ist sicherlich ein Faktor, aber nicht der einzige.