2009-05-13 8 views
2

Je souhaite créer un projet de développement de développeur, puis le publier sur le serveur et, après une publication réussie, créer mon projet de test sur ce développeur. L'idée de base est d'exécuter ce processus chaque fois qu'un développeur s'engage sur quelque chose sur Svn.Publication automatisée du travail de développeur à l'aide de cc.net

Actuellement, j'utilise CC.net et MSBuild. Toute personne ayant une idée de comment accomplir ce travail.

Étape 1. Developer commit sur SVN Étape 2. Les changements sur Svn Détecte et prendre une mise à jour sur le serveur Étape Construire 3. Construire le projet avec les changements récents Étape 4. Publier sur le serveur Etape 5. puis Exécuter des tests sur la publication récente (Je fais ce processus avec succès en utilisant cc.net, msbuild et nunit)

Répondre

1

Si vous utilisez la balise Project, vous pouvez également inclure "dans" l'éditeur pour cela. Par exemple:

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

J'ai essayé d'utiliser cette méthode, mais ce n'est pas la publication, mais plutôt la copie de tous les fichiers dans le répertoire source vers le répertoire de destination. Ce que je veux, c'est publier webite sur un serveur. Une idée de comment le faire – sam

1

La section éditeur CC.Net sera exécuté, peu importe si la construction réussit ou échoue. Vous devez ajouter le 'Publier pour construire le serveur' comme une tâche, sous la section des tâches - en le mettant après votre dernière étape de construction. Cela entraînera CC.Net à publier uniquement pour créer le serveur lorsque toutes les tâches précédentes sont terminées, sans générer de code d'erreur.

Généralement, si vous savez ce qui est nécessaire dans un fichier .bat DOS pour «publier pour créer un serveur», procédez comme suit;

<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> 

Comme slawekg souligne, vous pouvez utiliser le buildpublisher, qui exécutera ne si la construction réussit, mais je trouve toujours à l'aide d'un fichier batch pour faire la copie plus configurable que ce qui est disponible à l'aide buildpublisher .

+0

Comment écrire un fichier Dos .bat pour la publication. Pouvez-vous m'envoyer le code? – sam

0

Vous pourriez également envisager d'écrire le "push" dans votre script MS Build. Cela vous donnerait la flexibilité et le contrôle dont parle Sam et garantira toujours que la publication ne se produira que si la génération réussit.

Questions connexes