Frage

Ich habe verschiedene Strategien erforscht innerhalb einiger Nant Integrationstests ausgeführt Build-Skripte. Typischerweise wird eine Anzahl verschiedener Skripte sind in einer monolithischen Build gekettet, die separate Ziele hat: Staging (eine Staging-Version bauen, wie Build), bauen (nur das Zeug bauen), Integration (die Sachen bauen und die Integrationstests laufen). Das funktioniert recht gut, nimmt das Build-Ziel etwa ein Drittel der Zeit als Integrationsziel laufen und es ist nicht schmerzhaft lang, so finde ich mich nicht abgeneigt, es häufig zu laufen.

Die Integration Ziel auf der anderen Seite dauert lange genug, dass ich will es nicht sehr oft tun - im Idealfall kurz bevor ich bin bereit, ein deploy zu tun. Scheint dies wie eine vernünftige Strategie? IOW, mache ich es richtig?

Der Plan ist, um schließlich dieses Projekt zu Continuous Integration zu bewegen. Ich bin neu in der ganzen Continuous Integration Sache, aber ich denke, dass ich das Konzept der „brechen die Build“ zu verstehen, so frage ich mich, was einige gute Praktiken sind, um zu holen, um das Beste daraus zu machen?

Jede gute Quellen für zu diesem Thema lesen würde auch geschätzt werden. Dank!

War es hilfreich?

Lösung

Ja, Sie auf dem richtigen Weg sind. Was Sie jetzt tun müssen, ist Ihr Nant Ziel zu einem automatisierten Prozess zu anschließen. Ich empfehle entweder Team Stadt oder Cruise Control für als CI-Tool. Sobald Sie Ihren automatisierten Server-Setup haben, können Sie Ihre bauen und Unit-Tests auf jedem Check-in (Continuous Integration) laufen. Ihre Integrationstests konnten dann in der Nacht oder über das Wochenende laufen, da sie in der Regel länger dauern, zu laufen. Wenn Ihre Integrationstests erfolgreich sind, können Sie dann einen Job haben, die zu einem gewissen QA oder anderen Server bereitstellen werden.

Andere Tipps

Klingt wie Sie 99% der Weg dorthin sind. Mein Rat ist, nur in tauchen und beginnen, es zu tun. Sie werden viel mehr lernen, indem sie tatsächlich den Sprung und tun es als durch darüber nachzudenken, ob Sie es richtig machen.

Ihr Unternehmen derzeit mit CruiseControl- und ich persönlich denke, es ist toll.

Sehen Sie diese im Zusammenhang Thread Was ein guter Prozess CI Build ist?

Sie befinden sich auf dem richtigen Weg sind. Wenn Sie ein anständiges CI-Tool verwenden, sollten Sie jedes Setup einzurichten als separates Projekt in der Lage sein, den nächsten Schritt in der Kette löst ... das heißt sucessfull Build löst Tests, die Trigger-Einsatz, die Integration auslöst usw.

Auf diese Weise Ihre ealiest "break" stoppt die Linie so zu sprechen.

Wir verwenden CruiseControl- zu bauen, Unit-Test, konfigurieren und bereitstellen, führen Integrationstests und Code-Coverage, führen Abnahmetests und Paket für die Freigabe. Dies ist mit einem System von 8 oder so Web-Service und ein Dutzend oder so Datenbanken, die alle mit interralated Konfiguration und Bereitstellung Abhängigkeiten über mehrere Umgebungen mit unterschiedlichen Konfigurationen (anythin von Einzelbox Boxen für jede Komponente redundent)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top