8
votes

Langue-agnostique Server automatisé et serveur de test pour plusieurs projets

Pour faciliter nos tests de libération, nous recherchons un système de construction automatiquement et (unité) tester nos projets logiciels sur une variété d'architectures. Nos contraintes sont:

  1. Le code à construire est écrit en plusieurs langues, y compris Python, Java et C.
  2. Nous avons plusieurs architectures distinctes de déploiement.
  3. Nous avons plusieurs projets que nous aimerions construire et tester de manière indépendante.
  4. Notre système de contrôle source est Subversion et le système doit s'intégrer à cela.
  5. La solution devrait idéalement être une source ouverte.

    Nous avons regardé:

    • artefactory + continuum : agréable à certains égards, mais est fortement centrée Java, avec un support de python limité ou inexistant.

    • Buildbot : Cela nous donne presque toutes les fonctionnalités dont nous avons besoin, sauf cela ne prend pas en charge plusieurs projets, qui est un pot-casseur pour nous.

      Que recommanderiez-vous? Qu'est-ce que vous utilisez?


5 commentaires

Perl répond-il à votre définition de "Build and Test Server"?


Perl? Je ne suis pas sûr de comprendre. Peux-tu élaborer?


Il s'agissait d'une suggestion que vous devriez avoir à rouler votre propre système de construction enveloppé dans une faible tentative d'humour.


Buildbot prend en charge plusieurs projets. J'ai eu une configuration qui construisait un module Nkernel Linux pour ARM & X86, Applications utilisateurpace pour Linux dans les mêmes arcs, le pilote Windows (toutes ces écrites en C) et une application Windows TaskTray écrit à Delphi.


@rasjani: vraiment? C'est intéressant. Comment avez-vous atteint cela? Avez-vous dû écrire un code de construction étendu pour gérer les multiples projets?


5 Réponses :


4
votes

Avez-vous regardé Hudson ? Je l'ai utilisé sur des projets .NET avec beaucoup de succès, même si c'est un outil central un peu Java. Il prend en charge Subversion et possède une communauté plugin active et diversifiée qui lui permet de travailler avec beaucoup de langues différentes. Sa source ouverte et elle s'exécute sur de nombreuses plateformes .J'ai trouvé qu'il est relativement facile à configurer et à gérer.


1 commentaires

J'ai été prototypage cela, et cela semble que cela puisse correspondre à la facture. Accepter cette réponse car il ne semble pas y avoir beaucoup d'autres bonnes alternatives ...



1
votes

Depuis que je m'éloigne de Buildbot, j'utilise Cruisecontrol et j'en ai été content dans certaines degré. Mes projets actuels consistent en un bâtiment C ++ & Ruby (avec certaines extensions C) à plusieurs architectures et et que seuls les gripe sont que la plupart des fonctionnalités nécessitent une fourmi. Et actuellement une instance célibataire de CC consiste à construire environ 40 projets différents .. Construisez des phases que nous avons consistées à être exécutées des instances, des tests fonctionnels, d'obtenir une couverture de code et de la mise à jour de la base de données de packages, de la création d'une intégration IRC, de la création et du référentiel de logiciels Packaqge. Mise à jour (Debian)

Seule la gripe est que la plupart des fonctionnalités de fantaisie nécessiteraient que la construction (au moins dans la boucle de construction CC) se produise avec la fourmi.

J'ai aussi évalué Hudson, il semble être un peu plus flexible que Cruisecontrol, mais je n'aime pas personnellement l'interface de configuration de celle-ci.


3 commentaires

Ps. La raison pour s'éloigner de Buildbot était également à la configuration être "si flexible" que la configuration initiale prend beaucoup de temps. Jusqu'à présent, je pense toujours que c'est le meilleur choix pour les projets plus importants.


Rasjani, il serait assez facile de porter la plupart de ces fonctionnalités CC Fanier pour les autres constructeurs. Poste à ce sujet sur la liste de diffusion de Cruisecontrol et peut-être que nous pouvons obtenir ceux qui vous sont ajoutés.


Jeffrey: Je suis actif sur la liste de diffusion et j'ai soumis ma part de suggestions. Mais l'ambiance globale est que, puisque IM en utilisant la configuration "peu orthodoxe", par exemple, je n'utilise pas la fourmi, la plupart de mes affaires ont été ignorées. Mais cela dit, je suis satisfait du logiciel, je peux corriger ma configuration dans degré que cela fait ce dont j'ai besoin de sorte que je suis toujours un chanteur heureux =)



1
votes

Je suis un développeur sur Cruisecontrol et je travaille pour Urbancode qui fait AnthillPro , afin que je puisse parler aux atouts de ceux-ci. Je suis également l'un des organisateurs de CITCON donc je suis assez familier avec presque Toutes les offres de l'espace .

Cruisecontrol ou Hudson sont tous deux très bons outils Open Source CI. Je trouve CC vraiment facile à personnaliser et à étendre et il y a beaucoup de plugins qui ont été ajoutés au cours de sa durée de vie de 8 ans. Hudson est plus récent et plus facile pour la plupart des gens de commencer; Il est simple d'avoir votre premier projet en cours d'exécution à l'aide de la configuration de l'interface graphique pendant que CC nécessite de faire la rémunération dans les fichiers XML. Hudson possède également une communauté de plug-in active et ajoute rapidement de nouvelles capacités.

Cependant, en fonction de la complexité et des exigences de vos projets, vous pourriez trouver un outil commercial comme AnthillPro serait un meilleur ajustement. Les raisons de la mise à niveau de CC ou de Hudson à AHP varient d'une société à la société, mais certaines réponses typiques incluent la possibilité de configurer les déploiements de libre-service avec le contrôle d'accès par environnement, le désir de chaîner plusieurs bâtiments / flux de travail ensemble, la gestion de la dépendance intégrée, la référentiel d'artefact, ou la possibilité de Tirez ensemble les données d'un tas d'outils différents & s'appuie sur le cycle de vie.

Tout le monde n'a pas besoin de ces capacités, mais les personnes qui trouvent la mise à niveau pour valent valoir l'argent.


0 commentaires

0
votes

Pourquoi ne pas regarder Usine CI .


2 commentaires

Jetez un coup d'œil à ce lien, il montrent une étrange page orientale.


@Blashadow merci, j'ai mis à jour le lien.



11
votes

Jetez un coup d'œil à TeamCity . Fonctionne comme un charme pour nous.


2 commentaires

Vous devez payer si vous avez plus de 20 emplois et plus de 20 employés qui utilisent l'outil. Jenkins est gratuit et n'a aucune limite


Si votre temps a de la valeur, Jenkins a certainement quelques limitations.