Bei der kontinuierlichen Integration, was ist der beste Weg, um mit externen Anwendungsabhängigkeiten beschäftigen

StackOverflow https://stackoverflow.com/questions/119724

Frage

unsere Teamcity Continuous Integration Server Bei der Verwendung haben wir einige Probleme aufgedeckt, dass wir nicht sicher, die beste Art und Weise zu handhaben. Nämlich, wie externe Anwendungen zu verweisen, die unsere Anwendung auf dem CI-Server erfordert.

Dies wurde zunächst mit einer Abhängigkeit von Crystal Reports aufgedeckt, und so gingen wir und installiert Crystal Reports auf dem Server das unmittelbare Problem beheben. Allerdings, wie wir mehr Anwendungen über zu dem CI-Server verschieben wir finden, mehr Abhängigkeiten.

Was ist die beste Strategie hier? Ist es auch weiterhin die erforderlichen Anwendungen auf dem Server zu installieren?

Danke

War es hilfreich?

Lösung

Wo möglich, den externen Abhängigkeiten Teil Ihres Build-System machen. Zum Beispiel überprüfen Sie das Installationsprogramm in Ihrem Versionskontrollsystem und einen Schritt, der sie überprüft, und es läuft im Silent-Modus (viele Installateure einen Modus ohne Benutzeraktion unterstützen manchmal die Commandline / s verwendet wird).

Auf diese Weise, wenn Sie eine andere Maschine zu bauen für eine Filiale einrichten müssen oder nur für neue Hardware alles ist wiederholbar.

Andere Tipps

Wenn Ihr baut die tatsächliche Anwendung erfordern die Build abgeschlossen ist, dann sollten Sie wahrscheinlich auch weiterhin die Anwendung auf dem Build-Server installieren.

Wenn Sie nur Verweise auf DLLs oder Baugruppen aus der Anwendung benötigen, dann, was wir in meiner Firma getan haben, ist installierbar ‚SDKs‘ der Referenzen für eine bestimmte Anwendung hin und installieren Sie sie auf unsere Entwicklung und bauen Maschinen in die zum Erstellen bekannte Bibliotheksverzeichnisse, dass unsere Lösungen Referenz.

Auf der Maschine zu bauen, unser Pre-Build-Schritte, um die richtige Version der Abhängigkeiten installieren und dann reinigen, wenn wir fertig sind.

Vor kurzem haben wir auf die Verwendung von virtuellen Maschinen für unsere Build-Maschinen bewegt, die unser Build-Prozess aktiviert. Diese VMs erhält das auf sie installiert SDKs als Pre-Build, und dann wieder in ihren SCHNAPPSCHUSS Zustand nach dem Build. Wir hatten einige Abhängigkeiten, die fast unmöglich waren zu deinstallieren, so das machte für einen sauberen Ausgangspunkt jedes Mal.

Wenn Sie Maven verwenden zu bauen, können Sie Ihre Abhängigkeiten in der pom.xml-Datei definieren. Sie werden dann automatisch bei Bedarf heruntergeladen werden.

Ich bin nicht sicher, ob ich das richtig gefolgt ...

Ich gehe davon aus Ihrer Anwendung ist abhängig von dieser externen App, während Gebäude? In diesem Fall sollte es auf der Maschine zu tun CI sein ...

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