So wie es viele große Projekte machen, wie z.B. Firefox.
Niemand kompiliert selbst, sondern es wird regelmäßig durch einen Build-Server erledigt und das Ergebnis dann irgendwo bereit gestellt.
Nightly Build, bzw. Daily Build usw.
https://de.wikipedia.org/wiki/Nightly_Build
https://de.wikipedia.org/wiki/Testautomatisierung
PS: Zwar noch nicht für den Delphi-Code, aber schonmal für den Datenbank-Teil,
hängt am GIT-Push (damals
SVN-Commit) ein Event, welches einen Build-Server (CI / Continuous Integration) angestoßen, welcher eine Test-Datenbank erzeugt und verschiedene Tests laufen lässt.
Sowas kann man auch für das Erstellen machen. Bei uns werden die paar Mio Zeilen (noch mit XE, aber ich bin gerade damit beschäftigt es auf 10.4 umzustellen) eigener und fremder Code im FinalBuilder erzeugt, samt den Setups und der Hilfedateien.,
und sowas geht auch in einem Server.
Inzwischen haben wir auch ein paar
GUI-Tests (noch als eigenständiges Programm > TestComplete von Smartbear).
Jetzt könnte man also automatisch in einem Server den Quellcode auschecken, über das Build-Script die Delphi-Projekte (EXE/
DLL/
BPL) erzeugen, jede Nacht einmal alles Tests ausführen und hätte morgens die Ergesnisse ... geht durch eine kleine Änderung irgendeine bekannte Funktion kaputt, für die es auch einen Test gibt, dann bekommt es nicht erst der Kunde mit.
Wenn das Build/Compile dann aber nur noch über den Server liefe, dann mußt du nach einer Änderung erst bis morgen warten, bis du siehst, ob ein z.B. Semikolon fehlt.
Wir kompilieren den Großteil lokal über FinalBuilder und jeder nur noch die eine
DLL/
BPL/EXE im Delphi, an welcher gerade gearbeitet wird.
Das dauert im Delphi (XE mit IDESpeedPack) einige Minuten und im FinalBuilder in unter 2 Minuten (nur der Delphi-Code), da dort alle Fremdkomponenten und mehrere eigene
DLL/EXE und viele der
BPL parallel (multithreated) kompiliert werden.