Wikipedia a une très bonne réponse à cette question. L'artefact , parfois également appelé objet dérivé , est le produit d'un processus appliqué au référentiel de code . À l'origine, ils s'appelaient Build Artifacts , mais comme plus de processus étaient appliqués que la construction pour les créer, le premier mot a simplement été abandonné.
La principale différence est que les artefacts peuvent être recréés à partir du référentiel de code en utilisant le même processus, à condition que vous ayez préservé l'environnement dans lequel le processus a été appliqué. Comme ce processus peut prendre du temps et que l'environnement peut être imparfaitement préservé pour pouvoir recréer les artefacts de la même manière, nous avons commencé à les stocker dans les référentiels d'artefacts .
Les stocker en dehors du référentiel de code dans un référentiel d'artefacts est une décision de conception qu'un ingénieur DevOps prendrait. Certaines entreprises, à savoir Perforce , suggèrent également d'utiliser leur référentiel de code comme référentiel d'artefacts. Il existe différentes exigences en termes d' accès , d' audit , la taille des objets , le marquage d'objets et l' évolutivité de chaque référentiel et donc en fonction de la situation , il est souvent préférable d'utiliser deux produits distincts. Par exemple Gitles référentiels sont copiés dans leur intégralité sur chaque machine de développement et donc le stockage des artefacts dans le référentiel de code augmenterait sa taille au-delà de toute raison, bien qu'il existe récemment des moyens pour atténuer cela. Une autre décision à prendre est celle des artefacts à stocker. Certaines entreprises stockent même des artefacts intermédiaires sous forme de fichiers d'objets individuels, pour accélérer les reconstructions, d'autres ne stockent que les binaires finaux. Tous les artefacts n'ont pas la même valeur. Les artefacts résultant d'une build de version peuvent avoir des exigences différentes de celles des artefacts résultant d'une build de développeur.
Les artefacts les plus courants sont les résultats des processus suivants: configuration , prétraitement , compilation , liaison , tests automatisés , archivage , conditionnement , création et traitement de fichiers multimédias , génération de fichiers de données , analyse de la documentation , analyse de code , assurance qualité , etc.