2012-04-01 8 views
0

Sobald TFS-Build gelöscht wird, versuche ich Cruisecontrol zu verwenden, um den Build korrekt in den IIS-Ordner zu verschieben. Ich plane, es ein Batch-Skript ausführen, die dann 2-3 andere Skripts intern aufrufen wird "Aufruf" ich das Batch-Skript.Cruisecontrol Status mit verketteten Batch-Dateien

Ich muss die Batch-Dateien von einander aufrufen, weil ich auch einige Parameter von einem Skript zum nächsten übergeben.

Kann ich irgendwie eine aussagekräftige Statusmeldung auf dem cruisecontrol-Dashboard aus den verschiedenen Batchdateien anzeigen und ändern, wenn die nächste Batchdatei aufgerufen wird?

Ein bisschen über unser Setup:

Ich sollte hinzufügen, dass wir TFS für die Versionskontrolle und bauen sollen verwenden. TFS hat seinen eigenen dedizierten Drop-Server, der, sobald wir einen Build in die Warteschlange gestellt haben, erfolgreich erstellt und gelöscht wird. Auf diesen Code können wir über einen freigegebenen Netzwerkordner des Anwendungsservers zugreifen, auf dem IIS konfiguriert ist.

Problem ist, dass sobald der Build abgeschlossen ist, müssen wir den Code auf unserem Anwendungsserver, auf dem IIS ausgeführt wird. Jetzt gibt es mehrere kleine Schritte, bevor der Code in die Umgebung übertragen werden kann. Zum Beispiel müssen wir ein paar DLLs manuell hinzufügen und eine Sicherungskopie des aktuell laufenden Codes erstellen. Also, Schritte, posten den TFS-Build, sind diejenigen, die ich versuche, mit CruiseControl auotmate.

+2

Verwenden Sie Team Build (TFS) _and_ CruiseControl.Net? Wenn ja warum? –

+0

Ein bisschen mehr Details über unser Setup hinzugefügt. Bitte lassen Sie mich wissen, wenn Sie weitere Informationen benötigen, um meine Abfrage besser zu verstehen –

Antwort

0

Ich würde CruiseControl zusammen fallen lassen und Team Build als einziger Build-Controller verwenden. Mit dem Zusatz TFS Build Extensions können Sie ganz einfach einen Kopierteil des Jobs einrichten, der aus den Binärdateien in einen beliebigen Ordner in Ihrer Domäne kopiert wird. Sie könnten auch von der Verwendung der Powershell-Aufgabe profitieren. Ohne genau zu wissen, was Ihre Batch-Dateien tun, bin ich mir ziemlich sicher, dass Sie sie durch ein Powershell-Skript ersetzen können (das aus der Ferne ausgeführt werden kann).

+0

Ich möchte keine Anwendung auf IIS bereitstellen, jedes Mal, wenn ein Build trigerred ist. Ich muss den spezifischen Build nur bei Bedarf bereitstellen. Es kann also 10 Builds geben, die aus TFS erstellt wurden, aber ich möchte vielleicht nur die letzte Version bereitstellen. –

+0

Wenn Sie im Voraus wissen, dass ein bestimmter Build auf dem IIS bereitgestellt wird, kann dieser Bereitstellungsschritt leicht mit einem Prozessparameter für Team Build gesteuert werden. Wenn es danach entschieden wird (abhängig von der Qualität des Builds), wäre ein separater Build-Workflow für den Bereitstellungsteil meine Lösung. Es gibt viel zu gewinnen, wenn man nur einen Build-Engine hat, um den man sich kümmern muss. –

+0

tbergstedt, kann TFS also meine Bedürfnisse erfüllen? a) Wenn nötig, erstellen Sie UND kopieren Sie Code auf einem anderen Server im IIS-Ordner. b) Bevor Sie Code auf den IIS-Server kopieren, fügen Sie dem bin-Ordner einige zusätzliche DLLs als flache Kopie hinzu c) Kopieren Sie vor dem Kopieren in den IIS-Ordner den installierten Code im IIS-Ordner in einen neuen Ordner d) Bevor diese Kopie beginnt, stoppen Sie IIS, und starten Sie IIS nach dem Kopieren. e) ... Kann TFS sogar auf die Ordnerstruktur eines anderen Servers zugreifen, um all dies zu tun?f) Erstellen Sie auch deploybare Ordner für RDLs und SQl-Skripte, die in TFS eingecheckt sind. –

0

ich denke, es gibt nur 3 Status von CC.Net, grün, gelb, rot.

Was ich tun würde, ist ein E-Mail-Schritt zu Ihrem Prozess hinzufügen, die E-Mails, die nach Abschluss jedes Schritts. Sie könnten auch einen Twitter-Account einrichten und den Status mit LinqToTwitter oder etwas anderem twittern. Um dies zu tun, müssten Sie wahrscheinlich eine Konsolenanwendung schreiben und die Konsolen-App aus Ihrer Fledermaus-Datei aufrufen, die das Tweeten ausführen würde, aber das wäre ziemlich cool.