Quels CI pourraient créer des bibliothèques écrites dans des projets C ++ / VBA et .NET (C #)?

9

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.

Tatranskymedved
la source
3
Il serait utile que vous puissiez préciser ce que vous recherchez dans votre outil CI. Quelles sont vos exigences, quels sont vos besoins? Par exemple: à partir de quelles langues construirez-vous des artefacts? Êtes-vous intéressé par un modèle SaaS ou préférez-vous héberger votre propre CI? Il existe d'autres outils CI, pourquoi l'avez-vous cloué à ces trois? Nous donner plus d'informations permettra des réponses plus adaptées à vos besoins, sinon, vous obtiendrez des réponses génériques que vous pouvez déjà Google: hackernoon.com/…
Alexandre
1
Écoutez, votre question est très large car vous n'avez pas essayé ces outils. Vous pouvez facilement les installer dans un conteneur avec quelques commandes et les essayer. Si vous n'avez presque aucune expérience, vous pouvez à peu près choisir au hasard, acquérir de l'expérience avec un seul outil, puis si cela ne fonctionne plus pour vous, vous pouvez venir poser une question plus précise sur les fonctionnalités dont vous avez besoin et quels outils pourraient en avoir ou lesquels plugin dont vous avez besoin pour votre outil actuel pour obtenir cette fonctionnalité.
Jiri Klouda
2
Avec l'édition, je vais pour l'instant fermer ceci en double de cette question: stackoverflow.com/questions/1438390/comparison-of-ci-servers
Jiri Klouda
1
Le problème avec la question demandant des attributs clés dans le logiciel d'intégration continue est que vous obtiendrez la même réponse qu'avec la sélection de presque tous les autres outils. Par exemple, la réponse d'avi pourrait tout aussi bien être appliquée à l'outil de révision de code ou au système de contrôle de version ou au wiki ou à peu près n'importe quoi.
Jiri Klouda
1
bon lien pour jenkins Vs teamcity cela aidera à déterminer quel outil CI aller pour linkedin.com/pulse/jenkins-vs-teamcity-amir-najjar
Ashish Karpe

Réponses:

12

En général, il existe cinq différences principales entre les différentes solutions logicielles CI.

  1. 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?

  2. 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?

  3. 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?

  4. 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?

  5. 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?

avi
la source
Votre liste ne tient pas compte du fait que les services gérés peuvent avoir des limitations arbitraires non documentées ou des bogues qui peuvent être difficiles ou incontournables. D'après mon expérience, Circle CI et Jenkins ont ce type de limitations qui peuvent annuler complètement les avantages d'un service géré.
Michael Le Barbier Grünewald
Très bonne liste. J'ajouterais également l'extensibilité / plugins. Même si vous le mentionnez implicitement dans la communauté, je dirais qu'ils peuvent être exclusifs car certains outils fournissent leurs propres plugins alors qu'ils peuvent avoir une forte communauté de support.
gumol
6

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 CircleCIet TravisCIcomme celles-ci ne prennent en charge que le cloud GitHubet / ou Bitbucket.

Jenkinspossè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).

Dan Cornilescu
la source