2008-11-17 6 views
5

C++ Je voudrais configurer un serveur de build pour le code C non géré ++ développé dans Visual Studio 2005. Le serveur de build devrait être en mesure de faire ce qui suit:solution de construction pour

  • surveiller un dépôt Subversion pour les changements de code et planifier une construction
  • code Commander de l'unité Subversion et exécuter des tests
  • fournir une sorte de rapport sur la construction et le succès des changements de version précédente

J'ai d'abord été lookin g pour utiliser CruiseControl avec Ant. Y a-t-il une meilleure solution? Peut-être CruiseControl.Net, et NAnt?

Répondre

0

Je viens de commencer à utiliser Visual Build Professional et je suis très impressionné, vous pouvez télécharger un essai 30 jours entièrement en vedette d'ici:

http://www.kinook.com/VBP/

SVN est entièrement trop pris en charge.

0

Nous utilisons FinalBuilder pour construire nos projets Visual Studio 2005, y compris l'empaquetage des exe et dll finaux avec InstallShield et leur mise en place sur un serveur partagé.

Nous effectuons également un telnet (à partir de FinalBuilder) vers un certain nombre d'autres plates-formes (Unix/Linux/OpenVMS) et démarrons des générations distantes en y exécutant des fichiers makefile.

Nous n'utilisons pas la génération continue, mais un serveur FinalBuilder gère cela et vient gratuitement avec la licence FinalBuilder Professional.

Nous sommes très heureux avec FinalBuilder, il est assez facile de se familiariser avec et assez puissant pour résoudre la plupart des problèmes.

2

NAnt prend un peu de travail pour construire C++ efficacement. C'est vraiment un système de construction .NET à travers et à travers. Nous construisons notre titre sur quatre plates-formes C++ plus un ensemble d'outils .NET, et il nous a fallu un certain temps pour adapter NAnt à nos besoins. Par exemple, l'analyse de dépendance Cnt de NAnt est si cassée que nous avons dû écrire la nôtre. Et il y a beaucoup de problèmes de performance que nous avons dû résoudre.

Alors ne sautez pas dedans avec les deux pieds là-dessus. Faites des tests préliminaires pour vous assurer que vous pouvez vraiment faire ce que vous voulez et avoir une idée de ce que vous aurez à modifier pour C++.

En outre, nous utilisons CruiseControl.NET également pour certains trucs NUnit que nous avons intégrés dans un de nos outils qui dirige le jeu que nous développons. Très content de ça, c'était facile à mettre en place. Gros pouces ici.

Lors d'un concert précédent, j'ai utilisé Final Builder dans le scénario exact que vous décrivez - sur le serveur de build. Les versions locales ont été réalisées à l'aide de Visual Studio. C'est un produit assez génial que je considérerais sérieusement si vous avez un peu d'argent à dépenser. Nous n'avons eu que de bons résultats.

Dans ma société actuelle, nous sommes allés avec NAnt parce que nous ne voulions pas acheter FB pour chaque ingénieur de l'équipe. Nous n'avons pas aimé comment FB est une source fermée. Nous sommes donc 100% Nant et nous l'aimons. Il m'a juste fallu du temps pour la mettre en forme!

+0

Nous avons utilisé NAnt avec beaucoup de succès en tant qu'outil de construction mais * pas * en tant qu'analyseur de dépendances - comme vous l'avez dit, NAnt ne fonctionne pas bien à cet égard. Nous l'avons simplement utilisé pour appeler msdev et bjam. – MattyT

0

Nous utilisons CruiseControl.Net et NAnt (et Subversion) et nous sommes satisfaits des résultats.

0

Les projets Visual Studio 2005 peuvent parfaitement être exécutés à partir de la ligne de commande! Il suffit de faire

devenv.com whatever.sln /build 'Release|Win32' /project whatever 

(remplacer whatever avec votre nom de projet et Release|Win32 avec la configuration et la plate-forme dont vous avez besoin). Cela peut être géré de manière triviale par CruiseControl ou Jenkins ou autre.

0

Dans Visual Studio 2010, Microsoft a finalement mis à niveau le format des fichiers de projet Visual C++ (.vcproj) vers son format de clone NAnt basé sur XML MSBuild, maintenant nommé .vcxproj. Cela signifie que les projets C++ compileront sans trop d'effort en utilisant la tâche.

Si vous pouvez prévoir que vous allez seulement avoir une petite équipe et un nombre limité de builds, je recommanderais TeamCity (http://www.jetbrains.com/teamcity/) avec NAnt. TeamCity est un serveur CI basé sur Java (plus facile à déployer sur un serveur de build Linux) qui prend en charge des agents de build séparés (vous pouvez donc avoir plusieurs machines virtuelles Windows ou une boîte dédiée exécutant vos builds). La prise en charge par TeamCity des versions basées sur MSBuild, NAnt et Ant est excellente et dispose d'une interface graphique AJAX très agréable à utiliser et qui vous permet de configurer et de configurer des projets à partir de votre navigateur. Si vous franchissez le seuil de 20 projets de l'édition gratuite, cela devient déraisonnablement coûteux. Jenkins avec NAnt, Ant, MSBuild ou l'un des nombreux autres systèmes de construction que Jenkins peut prendre en charge est l'autre option que je peux recommander. Jenkins est Open Source et gère des projets illimités, comme TeamCity, il peut fonctionner sur un serveur tout en envoyant des builds à des agents de build séparés et il a des plugins pour de nombreux outils C++ (pensez à l'analyse statique, test unitaire et packaging).

L'interface Web de Jenkins n'est pas aussi pratique et belle que TeamCity, mais elle est largement utilisée et possède des plugins pour presque tout.

2

Comme personne ne l'a mentionné, Jenkins est un bon CI et devient de plus en plus fréquent (être libre ne fait pas mal non plus):

http://jenkins-ci.org/

Facile à installer, utiliser et surveiller et intègre gentiment avec beaucoup de choses (SVN, GIT etc). Aussi très personnalisable. Prend 5 minutes pour le faire fonctionner.

Questions connexes