Je travaille dans le département informatique de la société d'automatisation / développement et nous sommes sur le point d'implémenter / ajouter du CI dans notre ensemble d'outils. Et nous avons du mal à choisir celui-là.
En ce moment, nous avons pensé à ces systèmes:
- Jenkins
- CircleCI
- TravisCI
Question: Quels sont les principaux attributs du logiciel de CI que les systèmes devraient avoir et sur la base desquels nous devrions les comparer?
EDIT: Nous attendons de CI les choses standard: De la construction des applications, l'exécution des tests (Unité / Intégration / Performance / ..), la sauvegarde des statistiques et la fourniture d'informations soit par email / sur la page (rapports).
Le problème est que nous ne savons pas s'il y a plus de fonctionnalités et si c'est quoi? C'est ce que je rechercherais sous les mots "attributs clés" . Les noms ci-dessus sont juste pour référence, je cherche la réponse "pourquoi utiliser ceci ou cela" trop simplifié "utiliser ceci ou cela" .
Nous développons en environnement .NET (C #) avec quelques bibliothèques écrites en C ++ / VBA.
la source
Réponses:
En général, il existe cinq différences principales entre les différentes solutions logicielles CI.
Coût : le logiciel est-il open source et gratuit ou propriétaire? Votre équipe DevOps dispose-t-elle déjà d'un budget pour les logiciels ou êtes-vous censé comparer des options gratuites?
Maintenance : le logiciel doit-il être hébergé par vous-même et entretenu, ou est-il proposé en tant que service? Si vous devez l'héberger par vous-même, avez-vous les membres de l'équipe disponibles qui peuvent exécuter la maintenance? S'il est fourni en tant que service, où réside votre code?
Sécurité : existe-t-il des problèmes de sécurité ou de conformité concernant l'emplacement d'hébergement des machines de génération? Les autorisations requises par le logiciel CI dans votre SCM sont-elles bien comprises?
Communauté : le logiciel CI a-t-il une bonne communauté autour de lui avec les plugins et le support des technologies que vous utilisez? Est-il facile d'obtenir de l'aide ou de dépanner en cas de problème?
UX : Quelle est la facilité d'utilisation du logiciel? Le logiciel CI prend-il en charge les scripts stockés dans votre SCM pour les tâches que vous devez effectuer? Le signalement est-il facile à comprendre ou nécessitera-t-il une formation?
la source
Le système SCM que vous utilisez peut être essentiel pour faire votre choix CI.
L'utilisation d'une solution privée / intranet, par exemple, exclut à peu près
CircleCI
etTravisCI
comme celles-ci ne prennent en charge que le cloudGitHub
et / ouBitbucket
.Jenkins
possède des plugins prenant en charge de nombreux systèmes SCM, voir Quels sont les outils SCM pris en charge par Jenkins? . Mais l'utilisation d'un système SCM moins populaire ou enveloppé / personnalisé peut nécessiter le développement d'un nouveau plugin.Les particularités de votre infrastructure / infrastructure de test / construction peuvent également être importantes, pour des raisons similaires (configuration, emplacement / méthode d'accès et compatibilité / support).
la source