Eine typische Lösung besteht darin, einen CI-Build (Continuous Integration) auf einem Build-Server auszuführen: Er analysiert den Quellcode, erstellt einen Build (im Debug-Modus) und führt Tests aus, misst die Testabdeckung usw.
Ein anderer Build-Typ, der normalerweise als "Nightly Build" bezeichnet wird, ist das langsame Erstellen von Codedokumenten, Erstellen eines Setup-Pakets, Bereitstellen in einer Testumgebung und Ausführen automatischer Tests (Rauch- oder Akzeptanztests) für die Testumgebung usw.
Nun die Frage:
- Ist es besser, einen dritten separaten "Release Build" als Release Build zu haben?
- Oder "Nightly Build" im Release-Modus und verwenden Sie es als Release?
Was setzen Sie in Ihrem Unternehmen ein?
(Der Release-Build sollte auch eine Art Tag zur Quellcodeverwaltung der potenziellen Produktversion hinzufügen.)
quelle
Eine Sache, die ich unbedingt machen möchte, ist, den nächtlichen Build in den Release-Modus zu versetzen und nicht in den Debug-Modus. Bei Protokollierungsframeworks wie log4net, die System.Diagnostics.Debug ersetzen, bestehen die Hauptunterschiede zwischen Release- und Debug-Modus in der Lebensdauer von Objekten und in der Codeoptimierung.
Wenn Sie Ihrem nächtlichen Build nicht tatsächlich einen Debugger hinzufügen, würde ich dies auch vorschlagen.
Der Prozess, dem wir folgen, ist, dass der nächtliche Build jede Nacht ausgeführt wird. Wenn dies funktioniert, können wir denselben Build auf unseren anderen Servern bereitstellen (kein Neuaufbau, nehmen Sie einfach die Installationspakete und führen Sie sie aus). Wenn wir ein Problem mit dem nächtlichen Build haben, checken wir die Änderungen an einem Zweig ein und führen tagsüber einen nächtlichen Build von diesem Zweig aus. Die Tests können dann erneut ausgeführt werden.
quelle