2009-05-13 6 views
2

Ich möchte ein Entwickler-Build-Projekt erstellen und muss es dann auf dem Server veröffentlichen und nach einer erfolgreichen Veröffentlichung müssen mein Test-Projekt gegen diesen Entwickler zu veröffentlichen. Grundlegende Idee ist, diesen Prozess immer dann auszuführen, wenn ein Entwickler etwas auf Svn festlegt.Automatisierte Veröffentlichung von Entwickler arbeiten mit cc.net

Derzeit verwende ich CC.net und MSBuild. Irgendeine ahaving Idee, wie man diese Arbeit durchführt.

Schritt 1. Entwickler auf SVN Schritt 2. Änderungen auf Svn Erkennen und ein Update auf Build-Server Schritt 3. Erstellen Sie das Projekt mit den jüngsten Änderungen Schritt 4. es auf dem Server veröffentlichen nehmen Schritt 5 dann Führen Sie Tests gegen die aktuelle Veröffentlichung (ich bin erfolgreich diesen Prozess mit cc.net, Msbuild und Nunit)

Antwort

1

Wenn Sie den Projekt-Tag verwenden, können Sie auch "in it" den Verleger dafür. Zum Beispiel:

<project > 
<tasks> ... 
</tasks> 
<publishers> 
<buildpublisher> 
    <sourceDir>path with built binaries</sourceDir> 
    <publishDir>path that will be shared</publishDir> 
    </buildpublisher> 
</publishers> 
</project> 
+0

Ich habe versucht, diese Methode zu verwenden, aber es veröffentlicht nicht, es kopiert alle Dateien in Quellverzeichnis an Zielverzeichnis. Ich möchte Webite auf einem Server veröffentlichen. Irgendeine Idee, wie man das macht – sam

1

Der Verlag Abschnitt in CC.Net unabhängig ausgeführt wird, wenn der Build erfolgreich ist oder fehlschlägt. Sie müssen den 'zum Build Server veröffentlichen' als Aufgabe im Abschnitt Aufgaben hinzufügen - nach dem letzten Build-Schritt.

Dies führt dazu, dass CC.Net nur dann "publish to build server" erstellt, wenn alle vorherigen "Aufgaben" abgeschlossen sind, ohne dass ein Fehlercode angezeigt wird.

Wenn Sie wissen, was in einer DOS-.bat-Datei benötigt wird, um 'publish to build server' zu erstellen, gehen Sie folgendermaßen vor;

<tasks> 
    <msbuild> 
     <executable>C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe</executable> 
     <workingDirectory>c:\Somewhere</workingDirectory> 
     <projectFile>Something.sln</projectFile> 
     <buildArgs>/noconsolelogger /p:Configuration=Debug /v:m</buildArgs> 
     <targets>Build</targets> 
     <timeout>720</timeout> 
     <logger>C:\program files (x86)\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MsBuild.dll</logger> 
    </msbuild> 
    <exec> 
     <executable>C:\program files (x86)\CruiseControl.NET\server\PublishToServer.bat</executable> 
     <baseDirectory>C:\somewhere</baseDirectory> 
     <buildArgs></buildArgs> 
     <buildTimeoutSeconds>9000</buildTimeoutSeconds> 
    </exec> 
</tasks> 

Wie slawekg weist darauf hin, können Sie die buildpublisher verwenden, die nur ausgeführt wird, wenn der Build erfolgreich ist, aber ich finde immer noch eine Batch-Datei mit dem Kopieren mehr konfigurierbar als zu tun, was mit buildpublisher verfügbar ist .

+0

Wie man eine Dos .bat Akte für das Veröffentlichen schreibt. Können Sie mir bitte den Code schicken? – sam

0

Sie könnten auch den "Push" in Ihr MS Build Script schreiben. Dies würde Ihnen die Flexibilität und Kontrolle geben, über die Sam spricht, und dennoch sicherstellen, dass die Veröffentlichung nur dann erfolgt, wenn der Build erfolgreich ist.

Verwandte Themen