Question

J'installe actuellement un nouveau serveur de build et je suis intéressé par les suggestions de la communauté peut avoir sur les logiciels tels que Hudson ou CruiseControl.NET qui peuvent simplifier et ajouter de la valeur supplémentaire au processus de construction.

Auparavant, j'avais un serveur de build configuré à l'aide des fichiers batch personnalisé qui courraient msbuild et d'autres outils et ceux-ci ont été déclenchées par des crochets de subversion pour permettre un construit continue à faire par branche. L'idée était que finalement nous aussi exécuter des tests automatisés et / ou l'analyse statique, bien que nous ne fut jamais vraiment loin. Ce serveur a également agi en tant que notre référentiel de code source, une machine de test pour le projet Web construit, et un serveur web pour le tableau de bord personnalisé et un portail pour les développeurs de l'équipe.

A ce moment mes pensées sont à séparer certaines des responsabilités de l'ancien serveur de construction et au moins un serveur de construction qui est responsable seulement pour créer construit, un serveur Web qui est responsable d'agir en tant que site de tableau de bord de style intranet pour les développeurs , et peut-être un serveur Web supplémentaire que le dépôt Subversion. Si elle se révèle être meilleur ou plus facile de garder le code de Subversion sur le même serveur que Svnserve alors je vais probablement choisir de placer le dépôt Subversion sur le serveur Web, mais toujours garder le serveur de construction séparé. Ayant aucune expérience personnelle avec l'un des serveurs de construction populaire et des solutions CI là, je suis curieux de voir comment CruiseControl.NET, Hudson ou d'autres solutions pourraient convenir à ce type de configuration. Il semble que les deux CC.NET et Hudson ont des interfaces web par exemple, mais la documentation ne pas mise en page clairement comment cela se joue avec différentes configurations matérielles / système, donc je ne suis pas sûr si l'exige la partie Web pour être sur la construction serveur lui-même ou non.

En ce qui concerne les technologies que je traite avec .NET / C # code basé sur ce qui est un mélange de Web / WinForms / WPF et nous utilisons quelques référentiels Subversion séparés pour accueillir ces projets. De plus, il serait bon de soutenir Visual FoxPro et Visual Source Safe pour certaines applications héritées. Je voudrais aussi que pour obtenir plus de membres de l'équipe impliqués dans le suivi construit et les développeurs aimeraient éventuellement avoir créer des configurations pour construire leurs propres projets aussi bien avec autant de simplicité que possible. Aussi je dois mentionner que je n'ai aucune expérience mise en place d'une application Web Java dans IIS mais j'ai un peu d'expérience et de gérer la mise en place des applications ASP.NET si cela peut faire des produits à base de .NET plus favorable à moins que je peux être convaincu du contraire.

Mise à jour (après des recherches sur Hudson): Après toutes les recommandations pour Hudson je commencé à examiner ce qui est impliqué se lever et courir sur mes deux serveurs Windows 2008. D'après ce que je peux recueillir la partie Web (maître) irait sur mon serveur web, mais il semble que IIS est pas pris en charge si cela les choses grandement compliquer puisque je veux héberger sur la même machine que mes autres applications Web. Sur le serveur de build, j'installerait une deuxième copie de Hudson qui agirait comme un esclave et effectuent uniquement des builds sont déléguées par le maître. Pour obtenir ce travail que je serais Hudson installe en tant que service Windows et aurait aussi besoin d'installer certains utilitaires de compatibilité unix . Malheureusement, le UnxUtils lien de téléchargement semble être brisé quand je vérifié si bien que je ne peux pas vraiment aller de l'avant jusqu'à ce que je résolutive. Tout cela est vraiment sonnent tout aussi complexe sinon plus complexe que l'installation CruseControl.NET. Pour l'instant cela me laisse malheureusement à regarder dans CruiseControl.NET et TeamCity.

Mise à jour (environ TeamCity) : Après avoir examiné TeamCity un peu plus je réalisais que au moins la partie serveur est également écrit en Java et est déployée d'une manière très similaire à Hudson. Heureusement, il semble que Tomcat peut être utilisé pour servlets hôte à l'intérieur IIS bien que je ne peux pas trouver un bon guide tout droit pour décrire comment faire réellement accomplir cela. Alors que sauter pour l'instant je regardais plus loin quand je suis tombé sur ce qui ressemble à ce qui pourrait être un majeur accroc .

  

TeamCity édition professionnelle uniquement   soutient TeamCity défaut   L'authentification et ne prend pas en charge   la modification du système d'authentification.

Depuis l'authentification Windows est probablement la direction nous voulons aller, il est maintenant à la recherche comme il pourrait être de retour à l'évaluation CruiseControl.NET ou peut-être Hudson si je peux mettre la main sur les UnxUtils et aussi trouver plus d'informations sur la façon dont je peux hôte de la partie de tableau de bord d'Hudson au sein de ma configuration IIS existante. Tous les pointeurs?

Mise à jour (à propos de Jenkins) : J'ai fini par expérimenter assez avec Hudson que j'ai fini avec une configuration de serveur de build raisonnable que je suis satisfait et qui peut être étendue à faire beaucoup plus si je avoir besoin. Bien sûr, je suis allé la débandade de la conversion en Jenkins une fois Oracle a pris Hudson et Jenkins est ce que j'utilise aujourd'hui avec des petits bouts de Powershell pour aider à relier les choses ensemble. Je suis très satisfait de cette approche en ce moment et en plus d'être basé sur Java, Jenkins a un peu de soutien à d'autres environnements de développement tels que .NET et MSBuild.

Était-ce utile?

La solution

Je recommande fortement d'utiliser Hudson . Non seulement il vous permettra de créer des applications .NET sur une base continue, mais vous pouvez également exécuter une analyse de code et des tests unitaires ainsi. Il est facile à installer (déployer juste un fichier WAR à un serveur Web tel que Tomcat ) et a de nombreuses options de configuration. Il y a aussi un grand nombre de plug-ins disponibles que vous pouvez utiliser, beaucoup écrit par d'autres utilisateurs d'Hudson. Le meilleur de tous, il est libre et soutenu activement.

Autres conseils

Je vote pour TeamCity ici. Son est très, très facile de se se leva et en cours d'exécution, avec tous vos intègre des choses .NET sans aucun problème. Eux-mêmes builds sont exploités par des agents qui peuvent être sur le serveur de construction ou une autre machine en fonction des besoins - ils pourraient même être sur une machine dotée d'un système d'exploitation entièrement différent sur un autre réseau dans un pays différent.

Pour notre processus de prise de décision, nous avons commencé avec vue d'ensemble suivant.

http://confluence.public.thoughtworks.org/display / CC / CI + Fonction + matrice

Notre principal objectif était java, facile à configurer / utiliser même après personne a créé un emploi pendant 6 mois. Nous avons déménagé loin d'une ancienne version de Cruise Control, puisque personne ne savait vraiment comment l'utiliser. Certains des produits commerciaux sont bien si vous voulez aller au-delà de l'intégration continue juste. Jetez un coup d'oeil et de décider par vous-même.

Attention, je ne sais pas comment à jour cette matrice est. Ainsi, certains projets pourraient avoir mis en œuvre plus de fonctions en ce moment.

Une alternative intéressante pourrait être JIRA Studio par atlasien. Si vous utilisez la version hébergée vous n'avez pas beaucoup sur les questions de soutien et il est livré avec la subversion, le bambou et goodies (JIRA + GreenHopper, confluence, creuset, fisheye). http://www.atlassian.com/hosted/studio/

Je suis d'accord avec Wyatt Barnett. TeamCity est le meilleur choix. Il est très facile à configurer et à utiliser. De plus, TeamCity a un professionnel Free Edition. Auparavant, nous avons utilisé CruiseControl.NET sur notre projet. Ceci est aussi un outil puissant, mais il est très compliqué et difficile à comprendre.

Qu'est-ce que s.ermakovich dit: Les deux TeamCity et Hudson séparent l'interface Web des agents de construction. Vous ne devriez pas besoin d'installer IIS sur un agent de construction. Vous auriez besoin d'installer une machine virtuelle Java et le logiciel de l'agent sur un nœud de construction -. Très simple

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top