A Wikipedia tem uma resposta muito boa para essa pergunta. O artefato , às vezes também chamado de Objeto Derivado , é um produto de algum processo aplicado ao Repositório de Código . Originalmente, eles eram chamados de Artefatos de Construção , mas, à medida que mais processos eram aplicados, além da construção, para criá-los, a primeira palavra era simplesmente descartada.
A principal distinção é que os artefatos podem ser recriados do repositório de código usando o mesmo processo, desde que você tenha preservado o ambiente no qual o processo foi aplicado. Como esse processo pode ser demorado e o ambiente pode ser preservado de maneira imperfeita para poder recriar os artefatos exatamente da mesma maneira, começamos a armazená-los nos Repositórios de Artefatos .
Armazená-los separadamente do Code Repository em um Repositório de Artefatos é uma decisão de design que um engenheiro do DevOps tomaria. Algumas empresas, nomeadamente o Perforce , sugerem o uso do Repositório de Código como Repositório de Artefato. Existem requisitos diferentes em termos de acesso , auditoria , tamanhos de objeto , marcação de objetos e escalabilidade em cada repositório e, portanto, dependendo da situação, geralmente é melhor usar dois produtos distintos. Por exemplo Gitos repositórios são copiados na íntegra para todas as máquinas de desenvolvimento e, portanto, o armazenamento de artefatos no repositório de códigos aumentaria seu tamanho além de qualquer motivo, embora ultimamente haja maneiras de mitigar isso. Outra decisão a tomar é quais artefatos armazenar. Algumas empresas armazenam até artefatos intermediários como arquivos de objetos individuais, para acelerar a recriação, outras armazenam apenas os binários finais. Nem todos os artefatos têm o mesmo valor. Os artefatos resultantes de uma construção de liberação podem ter requisitos diferentes dos artefatos resultantes de uma construção de desenvolvedor.
Os artefatos mais comuns são resultados dos seguintes processos: Configuração , Pré-processamento , Compilação , Vinculação , Teste Automatizado , Arquivamento , Empacotamento , criação e processamento de arquivos de mídia , Geração de Arquivo de Dados , Análise de Documentação , Análise de Código , Controle de Qualidade , etc.