Wikipedia hat eine sehr gute Antwort auf diese Frage. Artefakt , manchmal auch als abgeleitetes Objekt bezeichnet , ist ein Produkt eines Prozesses, der auf das Code-Repository angewendet wird . Ursprünglich hießen sie Build-Artefakte , aber da mehr Prozesse als Build angewendet wurden, um sie zu erstellen, wurde das erste Wort einfach weggelassen.
Der Hauptunterschied besteht darin, dass Artefakte mit demselben Prozess aus dem Code-Repository wiederhergestellt werden können, vorausgesetzt, Sie haben die Umgebung, in der der Prozess angewendet wurde, beibehalten. Da dieser Vorgang zeitaufwändig sein kann und die Umgebung nicht einwandfrei erhalten werden kann, um die Artefakte auf die gleiche Weise wiederherzustellen, haben wir begonnen, sie in Artefakt-Repositorys zu speichern .
Sie getrennt von Code Repository in einem Artefakt-Repository zu speichern, ist eine Konstruktionsentscheidung, die ein DevOps-Ingenieur treffen würde. Einige Unternehmen, insbesondere Perforce , schlagen vor , ihr Code-Repository auch als Artefakt-Repository zu verwenden. Es gibt unterschiedliche Anforderungen in Bezug auf Zugriff , Prüfung , Objektgröße , Objektkennzeichnung und Skalierbarkeit für jedes Repository. Je nach Situation ist es daher oft besser, zwei unterschiedliche Produkte zu verwenden. Zum Beispiel GitRepositorys werden in ihrer Gesamtheit auf jede Entwicklungsmaschine kopiert, und das Speichern von Artefakten im Code-Repository würde seine Größe über jeden Grund erhöhen, obwohl es in letzter Zeit Möglichkeiten gibt, dies zu verringern. Eine weitere Entscheidung ist, welche Artefakte gespeichert werden sollen. Einige Unternehmen speichern sogar Zwischenartefakte als einzelne Objektdateien, um die Neuerstellung zu beschleunigen, andere speichern einfach nur die endgültigen Binärdateien. Nicht alle Artefakte haben den gleichen Wert. Artefakte, die aus einem Release-Build resultieren, können andere Anforderungen haben als Artefakte, die aus einem Developer-Build resultieren.
Die häufigsten Artefakte sind Ergebnisse der folgenden Prozesse: Konfiguration , Vorverarbeitung , Kompilation , Linking , Automatisiertes Testen , Archivierung , Verpackung , Mediendateien Erstellung und Verarbeitung , Datendateierstellung , Dokumentation Parsing , Analyse - Code , QA , usw.