web-dev-qa-db-fra.com

À quoi sert un référentiel d'artefacts?

Partout où vous lisez livraison continue ou intégration continue il est recommandé d'utiliser un référentiel d'artefacts pour stocker les artefacts même si Jenkins les stocke déjà pour chaque build .

Alors pourquoi est-il recommandé d'utiliser un référentiel d'artefacts? Existe-t-il une solution fluide pour travailler avec les artefacts des builds Jenkins, par exemple pour utiliser ces artefacts pour le déploiement?

36
user1338413

Un référentiel d'artefacts et des outils d'intégration continue servent deux fins différentes et l'une ne peut pas être remplacée par l'autre. Vérifiez cette vidéo de Artifactory , l'un des fournisseurs de référentiels d'artefacts, pour savoir pourquoi utiliser un référentiel d'artefacts.

Jenkins stocke les artefacts sous forme de fichiers simples sans versioning tandis que les artefacts dans un référentiel d'artefacts peuvent être contrôlés par version. Vous avez donc beaucoup plus de flexibilité pour récupérer les artefacts et les gouverner. Lisez ceci très bon article sur pourquoi nous en avons besoin. Certes, toutes ces choses ne sont pas prises en charge par des outils d'intégration continue comme Jenkins.

De plus, vous pouvez également consulter le plugin Artifactory pour Jenkins qui intègre les deux.

30
Shiva Kumar

Un référentiel d'artefacts est nécessaire, mais le dépôt d'artefacts est une pièce conceptuelle et pas toujours un outil distinct. Avec Jenkins, vous devriez avoir des signatures MD5 et (je pense) un moyen de télécharger les fichiers que vous voulez (appel de service Web, non?) À partir de votre serveur distant. Certes, si vous faites quelque chose de simple comme utiliser le plug-in de pipeline de génération Jenkins, il devrait être en mesure d'accéder facilement aux bonnes versions des fichiers.

Sinon, si vous utilisez un outil de déploiement distinct, les meilleurs regroupent un référentiel d'artefacts.

Quoi qu'il en soit, vous voulez ce que les gens d'ITIL appellent une bibliothèque définitive de médias/logiciels. Définitif dans la mesure où les bits sont sécurisés, fiables et officiels. Et une bibliothèque en ce sens qu'ils peuvent être facilement consultés et accessibles. Lorsque vous travaillez avec un référentiel d'artefacts, vous devez vous assurer qu'il est correctement sécurisé. Il est sauvegardé. Il est accessible pour vos déploiements (y compris en production). Si vous regardez Jenkins et qu'il répond à vos critères dans ces catégories, considérez que vous avez terminé. Si cela fait défaut, et je ne serais pas surpris si c'était le cas, alors vous avez besoin d'un outil dédié comme le référentiel Maven, ou quelque chose fourni avec les outils de déploiement.

Pour plus de mes randonnées sur le sujet, il y a un webcast enregistré . Les diapositives pour cela sont sur Slideshare .

2
EricMinick

Je n'ai pas gardé à jour avec Jenkins, nous utilisons toujours une version du CI quand il s'appelait à l'origine Hudson.

Dans vos projets, vous devez normalement pointer vers votre propre référentiel d'artefacts où vous pouvez récupérer et déployer vos propres projets (d'entreprise).

À l'aide d'un référentiel d'artefacts avec votre serveur CI, il peut ensuite déployer des instantanés et des versions correctement créés qui peuvent être disponibles pour d'autres développeurs.

0
wenic