Wikipedia ma bardzo dobrą odpowiedź na to pytanie. Artefakt , czasami nazywany także obiektem pochodnym , jest produktem pewnego procesu zastosowanego do repozytorium kodu . Początkowo były one nazywane artefaktami kompilacji , ale ponieważ zastosowano więcej procesów niż build, aby je utworzyć, pierwsze słowo zostało po prostu usunięte.
Główną różnicą jest to, że artefakty można odtworzyć z repozytorium kodu przy użyciu tego samego procesu, pod warunkiem zachowania środowiska, w którym proces został zastosowany. Ponieważ ten proces może być czasochłonny, a środowisko może zostać niedoskonale zachowane, aby móc odtworzyć artefakty w ten sam sposób, zaczęliśmy przechowywać je w repozytoriach artefaktów .
Przechowywanie ich poza Code Repository w Artifact Repozytorium jest decyzja projektowa inżynier devops stałaby. Niektóre firmy, a mianowicie Perforce , sugerują również korzystanie z repozytorium kodów jako repozytorium artefaktów. Istnieją różne wymagania w zakresie dostępu , badania , wielkości obiektów , obiekt tagging i skalowalność na każdym repozytorium, a więc w zależności od sytuacji, często lepiej jest użyć dwóch różnych produktów. Na przykład Gitrepozytoria są kopiowane w całości na każdą maszynę programistyczną, więc przechowywanie artefaktów w repozytorium kodu zwiększyłoby jego rozmiar ponad wszelką przyczynę, chociaż ostatnio istnieją sposoby na złagodzenie tego. Kolejną decyzją jest wybór artefaktów do przechowywania. Niektóre firmy przechowują nawet pośrednie artefakty jako pojedyncze pliki obiektów, aby przyspieszyć ponowne kompilacje, inne przechowują tylko końcowe pliki binarne. Nie wszystkie artefakty mają tę samą wartość. Artefakty wynikające z kompilacji wersji mogą mieć inne wymagania niż artefakty powstałe w kompilacji programisty.
Najczęstsze artefakty to wyniki następujących procesów: Konfiguracja , przetwarzanie wstępne , kompilacja , łączenie , automatyczne testowanie , archiwizacja , pakowanie , tworzenie i przetwarzanie plików multimedialnych , generowanie plików danych , analizowanie dokumentacji , analiza kodu , kontrola jakości itp.