Jenkins contre Travis-CI. Lequel utiliseriez-vous pour un projet Open Source? [fermé]

270

Pour mon projet, je dois choisir entre Jenkins et Travis-CI. J'utilise Jenkins depuis des années, mais j'ai également lu de bonnes critiques sur Travis-CI.

Lequel utiliseriez-vous pour un projet Open Source? Quels sont les principaux avantages ou avantages des deux?

Juan Luis
la source

Réponses:

293

Travis-ci et Jenkins, alors que les deux sont des outils d'intégration continue sont très différents.

Travis est un service hébergé (gratuit pour l'open source) pendant que vous devez héberger, installer et configurer Jenkins.

Travis n'a pas d' emploi comme à Jenkins. Les commandes à exécuter pour tester le code proviennent d'un fichier nommé .travis.ymlqui se trouve le long de votre code de projet. Cela permet d'avoir facilement un code de test différent par branche, car chaque branche peut avoir sa propre version du fichier .travis.yml.

Vous pouvez avoir une fonctionnalité similaire avec Jenkins si vous utilisez l'un des plugins suivants:

  • Travis YML Plugin - avertissement: ne semble pas être populaire, probablement pas complet par rapport au vrai Travis.
  • Jervis - une modification de Jenkins pour le faire lire des jobs de création à partir d'un .jervis.ymlfichier trouvé à la racine du code du projet. S'il .jervis.ymln'existe pas, il reviendra à utiliser le .travis.ymlfichier à la place.

Il existe d'autres services hébergés que vous pourriez également envisager pour une intégration continue (liste non exhaustive):


Comment choisir ?

Vous voudrez peut-être rester avec Jenkins parce que vous le connaissez ou ne voulez pas dépendre de tiers pour votre système d'intégration continue. Sinon, je laisserais tomber Jenkins et irais avec l'un des services CI hébergés gratuits car ils vous épargnent beaucoup de problèmes (héberger, installer, configurer, préparer des travaux)

Selon l'endroit où votre référentiel de code est hébergé, je ferais les choix suivants:

  • en interne → Jenkins ou gitlab-ci
  • Github.com → Travis-CI

Pour configurer Travis-CI sur un projet github, tout ce que vous avez à faire est de:

  • ajoutez un fichier .travis.yml à la racine de votre projet
  • créez un compte sur travis-ci.com et activez votre projet

Les fonctionnalités que vous obtenez sont:

  • Travis exécutera vos tests pour chaque poussée effectuée sur votre repo
  • Travis exécutera vos tests à chaque demande de pull des contributeurs fera
Thomasleveil
la source
25
D'après mon expérience, l'utilisation de Jenkins sur Travis vous évitera également beaucoup de problèmes ( .travis.yml!) J'ai plusieurs projets Github pour lesquels je gère mon propre Jenkins, et je ne le regrette pas du tout. Si vous avez la possibilité d'exécuter votre propre Jenkins, j'encourage fortement cette option. C'est agréable d'avoir un contrôle à 100% de votre environnement CI.
Simon Forsberg
21
Le plugin Jenkins Pipeline (qui est destiné à remplacer les projets de style libre dans la plupart des situations) permet au script groovy du pipeline d'être placé dans un fichier (généralement nommé "Jenkinsfile") dans votre projet, lui permettant les mêmes fonctionnalités que celles mentionnées dans Travis-CI ci-dessus, avec en prime le soutien de l'équipe Jenkins.
KhainTCore
48

J'ai travaillé sur Travis et Jenkins: je vais énumérer certaines des fonctionnalités des deux:

Configurer CI pour un projet

Travis arrive en première place. C'est très simple à installer. La configuration avec GitHub prend moins d'une minute.

  1. Connectez-vous à GitHub
  2. Créer un Web Hook pour Travis ( modifier:
  3. Revenez à Travis et connectez-vous avec vos identifiants GitHub
  4. Synchronisez votre dépôt GitHub et activez les demandes Push et Pull.

Jenkins:

  1. Créer un environnement (Master Jenkins)
  2. Créer des crochets Web
  3. Configurer chaque tâche (prend du temps par rapport à Travis)

Re-exécution des builds

Travis: toute personne disposant d'un accès en écriture sur GitHub peut relancer la build en cliquant sur `redémarrer la build

Jenkins: relancez les builds en fonction d'une phrase. Vous fournissez le texte de phrase dans la description PR / commit, comme reverify jenkins.

Environnement de contrôle

Travis: Travis fournit un environnement hébergé. Il installe le logiciel requis pour chaque build. C'est un processus qui prend du temps.

Jenkins: Configuration unique. Installe tous les logiciels requis sur un nœud / machine esclave, puis crée / teste sur un environnement préinstallé.

Créer des journaux:

Travis: prend en charge les journaux de construction à placer dans Amazon S3.

Jenkins: Facile à installer avec le plugin de génération d'artefacts.

rameshthoomu
la source
Pourriez-vous s'il vous plaît dire, Qu'est-ce que S3?
Pooja
@Pooja Amazon S3
adrianN
30

Je suggérerais Travis pour le projet Open source. C'est simple à configurer et à utiliser.

Étapes simples à configurer:

  1. Devrait avoir un compte GITHUB et s'inscrire sur le site Web de Travis CI en utilisant votre compte GITHUB.
  2. Ajoutez un .travis.ymlfichier à la racine de votre projet. Ajoutez Travis en tant que service dans la page des paramètres de votre référentiel.

Désormais, chaque fois que vous vous engagez dans votre référentiel, Travis créera votre projet. Vous pouvez suivre des étapes simples pour commencer avec Travis CI.

appsntech
la source
7
Une mise en garde pour l'utilisation de Travis CI pour Open Source: il exécute ses versions et ses tests sur Linux ou OSX, pas sur Windows. Donc, si votre projet est, par exemple, .NET ou PowerShell, il devra être écrit dans une version multiplateforme de .NET (Mono ou .NET Core) ou PowerShell (PowerShell Core) pour que vous puissiez utiliser Travis CI . Un outil de CI hébergé plus convivial pour Windows est Appveyor ..
Simon Tewsi