Question

Nos versions et tests automatisés utilisent de plus en plus de ressources, d’autant plus que nous prenons en charge de nombreuses plates-formes et effectuons des tests à la fois de débogage et d’optimisation. Je recherche donc un support d’outils permettant un "pipeline" plus progressif. approche afin que nous puissions obtenir des commentaires et des résultats plus rapidement. Certaines caractéristiques idéales incluent:

  1. Prise en charge du retour d'information incrémentiel afin que nous puissions voir les résultats de la construction, les tests unitaires, les tests rapides, les tests en cours d'exécution plus longs, l'analyse statique, etc., au fur et à mesure de leur disponibilité.

  2. Dépendance des tâches: si la construction échoue, les tests ne doivent pas être exécutés, mais d'autres tâches peuvent l'être (comme des peluches ou autre).

  3. Prise en charge de plusieurs outils de construction et de test (y compris les outils personnalisés).

  4. Prise en charge de plusieurs plates-formes (Linux, Mac, éventuellement Windows).

  5. Certaines fonctions d'archivage seraient très utiles, telles que les fichiers journaux, la sortie / la sortie de test, etc. De manière générale, cela peut devenir trop volumineux et certaines données seraient idéalement purgées après X jours ou Y nombreuses générations.

Tous les indicateurs ou conseils personnels sont grandement appréciés.

Était-ce utile?

La solution

Vous pouvez consulter Jenkins (anciennement Hudson) .

Autres conseils

J'utilise Anthill , mais vous devez payer pour cela.

Automated Build Studio s'en rapproche, bien que ce soit probablement ' t une option pour vous en raison de sa nature uniquement vitrée.

  1. Oui. L'interface Web fournit des informations incrémentielles au fur et à mesure de l'exécution des versions, à la fois en détail et en pourcentage.
  2. Oui. Le processus de construction est une hiérarchie de tâches. Vous pouvez déterminer si une tâche est fail-continue ou fail-abort.
  3. Oui. Les tâches peuvent être à peu près n'importe quoi. La boîte à outils des tâches qui l'accompagne est assez complète.
  4. Non. Le serveur de construction doit être une machine Windows. Vous pouvez toutefois commencer à créer à partir du serveur Web.
  5. Oui. Chaque version est journalisée en détail, de manière hiérarchique, il est donc facile de localiser ce qui s'est passé à chaque étape.

Je pense que buildbot fera tout ce que vous voulez:

  1. L'interface Web affiche les résultats des commandes.
  2. Dépendances de tâches complètes
  3. Outils entièrement personnalisés - scripts python, mais principalement des scripts shell
  4. Nous l'utilisons actuellement sous Linux, Mac, Solaris et HP-UX
  5. Il enregistre tout, je ne sais pas comment / s'il purge les choses.

Vous devrez vous entendre sur l'option de thinkworks: cliquez sur "Gestion agile des versions". http://www.thoughtworks-studios.com/go-agile-release-management

Il existe une édition de communauté (gratuite) et quelques fonctionnalités intéressantes dans l'édition d'entreprise, telles que les configurations d'environnement et le déploiement d'artefacts spécifiques (versions) dans des environnements spécifiques.

La configuration de ma JetBrains TeamCity correspond à ce dont vous avez besoin.

Sous un seul projet, j'ai configuré plusieurs configurations de construction différentes.

La différence entre chaque configuration de construction réside dans le choix des cibles de construction (j'utilise NAnt) et dans le déclenchement.

J'ai un " Intégration XYZ " configuration qui effectue une construction de débogage et exécute des tests NUnit. Cela se déclenche 60 secondes après la fin de l’enregistrement, ce qui donne un retour rapide à l’équipe de développement.

J'ai également un " XYZ Daily " configuration qui construit un débogage, exécute des tests NUnit, puis construit des MSI et compile de la documentation. Comme vous pouvez probablement le deviner, cela ne se fait qu'une fois par jour.

Vous pouvez faire la même chose, mais avec un plus grand nombre de configurations.

Nous utilisons la solution de Hericus Software Zed Builds and Bugs Management et il peut gérer ce que vous décrivez. Nos versions principales consistent en plus de 61 étapes distinctes couvrant les compilations pour Java, C ++, C # et les versions d'installation pour 5 plates-formes de système d'exploitation différentes. Certaines des étapes sont exécutées en parallèle, certaines peuvent échouer sans provoquer l’échec de la construction entière, et beaucoup d’entre elles sont exécutées à distance sur différentes machines.

1) Oui. Au fur et à mesure que les étapes sont exécutées pour une construction, vous pouvez immédiatement voir les résultats de cette étape sans avoir à attendre la fin de la construction.

2) Oui. Vous pouvez définir si l'échec d'une étape entraîne ou non une défaillance complète de la génération. La possibilité de créer " enfant " ou " sous " des constructions appelées par un " parent " ou " maître " La construction permet une extrême flexibilité.

3) Oui. Nous utilisons des makefiles, des solutions ant, C # et plusieurs scripts personnalisés qui s’intègrent parfaitement.

4) Oui. Le serveur de génération est java et ne requiert qu'un JDK 1.6. Par conséquent, toutes les plates-formes fonctionnent pour le serveur de génération principal ou les serveurs de génération par satellite.

5) Oui. Tout ce qui a été copié dans le build " status " le répertoire est enregistré. Cela inclut la sortie / erreur standard de commande qui peut être vérifiée à partir du site Web. Vous choisissez le nombre de " dev " construire l'historique à conserver en termes de nombre de constructions. Vous pouvez également promouvoir un build en "QA". Dans ce cas, il ne sera pas supprimé tant qu'il n'aura pas été supprimé de "QA". A partir de l’assurance qualité, vous pouvez promouvoir un build en " Production " qui conservera tous les artefacts de construction jusqu'à ce que vous décidiez de les supprimer.

essayez la croisière de Thoughtworks

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