2016-05-12 21 views
0

Ich bin ziemlich neu in der Verwendung der kontinuierlichen Integration in einem normalen Entwicklungsprozess als Entwickler. Ich hatte jedoch die Aufgabe, ci in unser Software-Team einzuführen und habe daher einige Versuche unternommen, dies zu erreichen.Entwicklungsprozess mit Continuous Integration Servern

Derzeit haben wir folgendes: 0. BitBucket als unsere Quelle Repo 1. Team-Stadt 2. Proget Server 3. Octopus Deploy 4. Developement Prüfung vm 5. UAT Tests vm 6. Produktion vm

allgemein Im Prozess geht

  1. Liste item
  2. Check-out-Lösung von BitBucket
  3. Änderungen vornehmen.
  4. Commit
  5. Team-Stadt baut
  6. Team-Stadt schiebt Artefakte Proget als nuget Pakete
  7. Team-Stadt schafft Freisetzung in Octopus Deploy und Auslöser für automatische Implementierung auf die Entwicklung Test vm Bitbucket.
  8. Handbuch Octopus Push-to-UAT
  9. Handbuch Octopus Push-to-Produktion

Alles von der obersten Ebene für alle außer uns Entwickler gut aussieht.

Unser Problem ist nicht das Konzept, sondern das Leben mit dem Prozess. Der Grund ist, dass wir zwei Lösungen haben, bei denen die zweite auf ein kleines Paket der ersten Lösung von unserem ProGet Server verweist. Das bedeutet, dass jedes Mal, wenn die abhängige Lösung eine Modifikation in der ersten Lösung benötigt, wir auf den Zyklus warten müssen und dann das nugget-Paket in der zweiten aktualisieren, um die erforderlichen Änderungen durchzuführen.

Dies wird sehr frustrierend, wenn dieser Zyklus viele Zeit benötigt, bevor das gewünschte Ergebnis erreicht wird.

Was ich würde lieben, ist, beide Lösung auf dem PC des Entwicklers zu entwickeln, ohne auf das ci warten zu müssen, um das geänderte Paket zu bauen und zu veröffentlichen. Dies bedeutet, dass die DLL von der ersten Lösung lokal referenziert wird, aber wie kann ich das ändern, so dass die letzte Referenz vom ProGet-Server auf der CI-Box erstellt wird?

Kann mir jemand sagen, wie das geht?

Antwort

-1

Dieser Workflow kann ziemlich schwierig werden; Wir beobachten, dass viele Nutzer zu einem eher Infrastruktur-als-Code-Ansatz wechseln.

Betrachten Sie dieses Tutorial Deploying ASP.NET and Windows Service Applications with Otter - die Idee ist, dass das Erstellen der Lösung über MSBuild (entweder im Freigabemodus auf Ihrer Arbeitsstation oder in TeamCity) eine Paketdatei (UPack oder NuGet, spielt keine Rolle).

Dann können Sie als Entwickler einen Schritt hinzufügen, um Otter Romp zu verwenden, um das Paket lokal zu konfigurieren/bereitzustellen, und regulär Otter, um sicherzustellen, dass das Paket/die Konfiguration in anderen Umgebungen vorhanden ist. Auf diese Weise ist es ein konsistenter Ansatz von lokal zu dev zu testen.

Wie auch immer, dies beschreibt einen ganz anderen Ansatz, also ist es vielleicht keine gute Antwort auf Ihre Frage, aber Sie haben nach einer Prozessänderung gefragt, also habe ich eine Menge gesehen.

Siehe auch: KB#1114 - A Comparison: Octopus Deploy vs Otter

__

Haftungsausschluss ist mein Job bei Inedo :)