Was Sie in Ihrer Frage besprechen, sind tatsächlich 3 verschiedene Konzepte:
Die kontinuierliche Integration in ihrem Kern besteht darin, kleine Änderungen vorzunehmen und diese Änderungen häufig mit der "globalen Wahrheit" zu synchronisieren. Anstatt einen Checkout durchzuführen und eine Woche zu warten, sollte ein Entwickler an Aufgaben arbeiten, die innerhalb eines Tages erledigt werden können, damit sein Code nicht zu weit vom Haupt-Repository abweicht.
Um dies zu erreichen, ohne seinem Team Schmerzen zu bereiten (dh das Einchecken einer Quelle, die keine bestehende Funktionalität aufbaut oder bricht). Der Entwickler muss sicherstellen, dass sein Code den Build nicht "unterbricht". Wenn dies manuell durchgeführt wird, erhöht sich der zusätzliche Aufwand für den Entwicklungsprozess (stellen Sie sich ein Projekt vor, dessen Erstellung lange dauert und / oder das viele Abhängigkeiten aufweist, bei denen eine Änderung an einer Codezeile die Anwendung auf unerwartete Weise beeinflussen kann).
Um diese Situation zu entschärfen, verwenden wir andere Techniken, um diesen Overhead zu beseitigen.
Wir verwenden automatisierte Builds, um die Quelle auszuchecken und zu erstellen. Optional führen wir automatisierte Tests durch , um zu überprüfen, ob die Anwendung ordnungsgemäß funktioniert (dieser Schritt ist nur so nützlich wie die Testsuite).
Ein weiterer Schritt kontinuierliche Abgabe richtet sich Ihr Problem mit Datenbank und andere Sorgen. Die Idee dabei ist, eine gewisse Versionierungsstufe für die Datenbank und andere Faktoren der Umgebung bereitzustellen, damit wir so schnell wie möglich bestätigen können, dass die Anwendung in einer Umgebung arbeitet, die so produktionsnah wie möglich ist .
builds
undbuild
wusste nicht, welchen ich verwenden sollte.