Quest-ce quun référentiel dartefacts?

Quest-ce quun dépôt dartefacts? Si cest juste un endroit pour stocker des fichiers, est-ce que je ne peux pas simplement utiliser un système de contrôle de source?

Réponse

Pendant développement, vous générez une bonne quantité dartefacts différents. Ceux-ci peuvent inclure:

  • Le code source
  • Lapplication compilée
  • Un package déployable
  • Documentation

et potentiellement dautres aussi

Bien que vous puissiez utiliser un système de contrôle de source pour tous les stocker, il est généralement extrêmement inefficace, car les systèmes de contrôle de source sont généralement conçus pour gérer du texte et non des fichiers binaires. Vous pourrez peut-être les utiliser comme un simple mécanisme de stockage, si la plupart de vos versions sont basées sur du texte et que vous n’avez pas à stocker beaucoup de données binaires.

Les référentiels dartefacts sont cependant conçus pour stocker toutes sortes de fichiers, y compris les fichiers binaires. Cela comprend tout, des codes sources compressés, à la création de résultats, à des choses comme les images de docker. En outre, ils stockent généralement non seulement ces artefacts, mais aident également à les gérer à laide de diverses fonctions supplémentaires, par exemple:

  • Prise en charge de la gestion des versions: stockez correctement certaines métadonnées, comme lorsque chaque artefact a été construit, quelle est leur version number is, stocker leurs hachages, etc.
  • Rétention: assurez-vous de ne conserver que les artefacts importants, et supprimez automatiquement ceux qui ne sont que des instantanés / qui ne sont plus nécessaires, etc. en fonction de divers critères que vous pouvez configurer
  • Contrôle daccès: définir qui peut publier et qui peut télécharger les différents artefacts
  • Promotion: possibilité de promouvoir les artefacts. Par exemple, vous pouvez avoir des artefacts dinstantané avec une courte période de rétention sur un serveur près de vos codeurs et un référentiel séparé près des serveurs actifs, où seuls les artefacts jugés déployables apparaissent. Cela inclut également la prise en charge de divers canaux de version et le déplacement dartefacts entre eux (comme la promotion dune version spécifique de la version bêta à stable).
  • Agir en tant que référentiel natif pour les artefacts. Cela signifie que vous pouvez lutiliser comme référentiel principal pour maven, rubygems, docker, etc. Cela peut également inclure la mise en cache des artefacts des référentiels officiels.

Commentaires

  • Peut valoir la peine dajouter la capacité ' channel ' sur le support de Versionning, ayant la possibilité den avoir machine ciblant la dernière version du canal " develop " et machine de production ciblant une version spécifique du canal " stable ".
  • @ Pierre.Vriens a ajouté quelques petits commentaires, mais peut-être peut-il être traité dans une question distincte
  • merci, mais juste au cas où, ici est votre chance de répondre à mon commentaire supplémentaire …
  • Est-il judicieux de également garder une trace des fichiers de configuration ou des fixtures dans ce type de référentiels?

Réponse

Il existe des gestionnaires de référentiels et des gestionnaires de référentiels de packages universels (UPM).

Les UPM peuvent stocker tous vos artefacts de construction pour Jenkins, teamcity, etc. et peuvent généralement également servir de gestionnaires de référentiels pour de nombreux types dartefacts binaires Maven, npm, NuGet et plus encore.

Ce serait des outils comme Jfrog Artifactory , Inedo ProGet , et Sonatype Nexus .

Une comparaison assez décente est ici: https://binary-repositories-comparison.github.io/

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *