Bambou vs Hudson (aka Jenkins) vs Tout autre système CI

Quelqu’un a-t-il de l’expérience avec Hudson et Bamboo? Des reflections sur les forces et les faiblesses relatives de ces produits?

Ok, puisque les gens continuent à mentionner d’autres produits de CI, je vais ouvrir cette page. Voici mon problème général Je veux configurer un système CI pour un nouveau projet. Ce projet aura probablement des composants Java (WARs et JAR), des modules python et peut-être même un composant .NET. Je veux donc un serveur CI capable de:

  1. Gérer plusieurs langues,
  2. Déployer des artefacts sur les serveurs (c’est-à-dire déployer la guerre si tous les tests unitaires réussissent).
  3. Je voudrais aussi quelque chose qui a intégré avec un outil de couverture de code décent.
  4. Les bons rapports sont agréables, mais pas essentiels.
  5. Mécanismes de notification multiples en cas de problème
  6. Je ne suis pas inquiet pour l’hébergement. Je vais soit l’exécuter sur un serveur local ou sur une instance Amazon.
  7. En outre, cela peut-être une tarte dans le ciel, mais y a-t-il quelque chose qui peut aussi construire des applications iPhone?

Disclaimer: Je travaille sur Bamboo et je ne vais donc pas commenter les fonctionnalités des autres produits CI car mon expérience avec eux est limitée.

Pour répondre à vos besoins spécifiques:

Gérer plusieurs langues

Bamboo prend en charge plusieurs langues. Les clients l’utilisent avec Java, .Net, PHP, JavaScript, etc. Cela étant dit, la plupart des serveurs de compilation sont assez génériques pour au moins exécuter un script qui peut lancer votre processus de construction.

Déployer des artefacts sur les serveurs (c’est-à-dire déployer la guerre si tous les tests unitaires réussissent).

Bamboo 2.7 prend en charge les étapes de génération, qui vous permettent de diviser votre version en une phase de test unitaire et une étape de déploiement. Si la phase de test unitaire réussit, la génération passera à la phase de déploiement. Dans Bamboo 3.0, nous prendrons en charge le partage d’artefacts entre les étapes, ce qui vous permettra de créer un artefact (par exemple, votre guerre) dans la première étape et d’utiliser cet artefact dans les étapes suivantes pour le test et le déploiement.

Je voudrais aussi quelque chose qui a intégré avec un outil de couverture de code décent.

Bamboo prend en charge Clover et dispose également d’un plug-in pour Cobertura .

Les bons rapports sont agréables, mais pas essentiels.

Bamboo a tout un tas de rapports qui sont gentils, mais pas essentiels 🙂

Mécanismes de notification multiples en cas de problème

Bamboo peut vous informer par e-mail, RSS, IM, un plug-in IDE ou un joli wallboard visible par toute l’équipe.

Je ne suis pas inquiet pour l’hébergement. Je vais soit l’exécuter sur un serveur local ou sur une instance Amazon.

D’expérience, il est généralement moins coûteux d’héberger votre propre serveur CI. Mais si vous avez besoin de faire évoluer votre produit, Bamboo facilite la dissortingbution de vos builds à des agents locaux supplémentaires ou à la montée en charge d’Amazon via des agents Elastic.

En outre, cela peut-être une tarte dans le ciel, mais y a-t-il quelque chose qui peut aussi construire des applications IPhone?

Semblable à la réponse à votre première question, la plupart des serveurs CI pourront créer des applications iPhone à certains égards. Il est toutefois possible qu’un peu plus de scripts soient nécessaires.

Prix: Bamboo n’est pas gratuit (sauf notre licence de démarrage gratuite) / libre / open-source, mais vous obtiendrez le code source de Bamboo si vous achetez une licence commerciale et un support complet. Par rapport au coût de la puissance de calcul et à la maintenance potentielle requirejse pour un serveur CI, le coût d’une licence Bamboo est plutôt faible.

J’espère que cela t’aides.

Je n’ai pas utilisé Bamboo, mais j’ai utilisé Hudson, Cruise et TFS et de tous, Hudson était de loin le meilleur. Il est ridiculement facile à configurer et dispose d’une interface graphique Web très agréable pour la configuration des projets. Ce qui est génial avec Hudson, c’est qu’il supporte à peu près tous les langages et toutes les fonctionnalités que vous pourriez souhaiter, à condition que l’utilisateur ait écrit un plug-in pour cela, ce qu’ils ont probablement.

http://wiki.hudson-ci.org/display/HUDSON/Plugins

Nous l’avons utilisé pour exécuter des builds .NET, Java et C ++ sur des intervalles de temps ainsi que des checkins SVN avec des faisceaux de test automatisés et c’était génial. Avant la fin, je travaillais sur le développement de l’iPhone juste avant mon départ et je crois qu’ils utilisaient Hudson pour ça aussi.

De plus, c’est gratuit!

Bamboo vs Hudson, à un niveau très superficiel, semble se résumer à:

  • Bamboo: Facile à utiliser et beau
  • Jenkins: rude sur les bords, mais beaucoup plus souple que Bamboo

Bamboo et Jenkins ont tous deux de nombreux bogues (vous rencontrerez des problèmes), mais au moins avec Jenkins, vous aurez beaucoup plus de chances de trouver une solution tant qu’il ne sera pas corrigé. Avec Bamboo, vous êtes bloqué dans l’attente d’une mise à jour.

Disclaimer: Je travaille avec Jenkins.

Dans notre organisation (assez grande, plus de 100 développeurs), nous avons également trouvé ces deux fonctionnalités très utiles:

  1. Plugin CAS avec stratégie de sécurité masortingcielle
  2. Construire un plug-in de pipeline
  3. Calendrier de sortie LTS.

A propos de vos questions:

  1. D’accord
  2. SCP PLUGIN ou SSH PLUGIN
  3. Nous utilisons FINDBUGS, le plug-in de collecteur d’parsing statique, les plug-ins d’parsing de code statique et le plug-in de scanner de tâches.
  4. Précédent au point 3 + Jenkins DocLinks plugin
  5. Nous utilisons l’email Jenkins Email Extension Plugin, mais il supporte également d’autres systèmes, comme rss, twitter publish, sms …
  6. Nous courons dans un hébergement Tomcat, localement.
  7. Oui.

Eh bien, je n’ai pas encore utilisé Bamboo, mais une différence est que Hudson est un logiciel libre / libre / open-source.

Si vous êtes prêt à payer pour cela, Anthill fait tout ce que vous regardez. Nous l’utilisons dans mon entreprise pour notre équipe web, et c’est assez puissant.

Gérer plusieurs langues

Hors de la boîte, il automatise vos scripts existants et gère les artefacts qu’ils produisent quelle que soit la langue.

Déployer des artefacts sur les serveurs (c’est-à-dire déployer la guerre si tous les tests unitaires réussissent).

Le déploiement peut être ajouté comme une étape de votre processus de construction. Je ne suis pas sûr que vous souhaitiez vous déployer directement en production, mais vous le pouvez certainement si la direction vous le dit.

Je voudrais aussi quelque chose qui a intégré avec un outil de couverture de code décent.

Ils intègrent Clover, Cobertura, Emma, ​​Checkstyle, CodeSonar, Coverity, FindBugs, Fortify, Klocwork, PMD et Sonar.

Les bons rapports sont agréables, mais pas essentiels.

Je ne suis pas sûr des rapports disponibles mais il y a un onglet Rapports (je n’y vais pas :-))

Mécanismes de notification multiples en cas de problème

Je sais qu’il peut faire du courrier électronique (et donc du sms), s’intègre à quelques services de messagerie instantanée.

Je ne suis pas inquiet pour l’hébergement. Je vais soit l’exécuter sur un serveur local ou sur une instance Amazon.

J’ai vu une démonstration de leur lancement d’une session cloud à partir d’une image, avec un agent de déploiement. Nous l’exécutons sur une machine Linux typique, mais je sais que certaines personnes l’exécutent sur un serveur VMWare.

En outre, cela peut-être une tarte dans le ciel, mais y a-t-il quelque chose qui peut aussi construire des applications IPhone?

Cela tomberait probablement sous le premier.