Como usar o GitLab CI para manter dados entre várias fases de construção?
sobes.tech IA
Resposta da IA
Para guardar dados entre as etapas de build no GitLab CI, são utilizados artefactos. Estes são ficheiros ou diretórios criados numa etapa e disponíveis nas seguintes.
A configuração no .gitlab-ci.yml é assim:
stages:
- build
- test
- deploy
build_job:
stage: build
script:
- echo "Resultado da build" > build_output.txt # Criar ficheiro
artifacts:
paths: # Especificar quais ficheiros/diretórios guardar
- build_output.txt
expire_in: 1 week # Tempo de retenção dos artefactos
test_job:
stage: test
script:
- cat build_output.txt # Acesso ao ficheiro da etapa anterior
- npm test
needs: # Especificar dependência da etapa anterior
- build_job
deploy_job:
stage: deploy
script:
- deploy_script.sh
needs:
- test_job
Elementos-chave:
artifacts: Define quais ficheiros ou diretórios devem ser guardados após a execução da etapa.paths: Lista de caminhos para ficheiros ou diretórios que se tornarão artefactos.expire_in: Define por quanto tempo os artefactos estarão disponíveis.needs: Indica explicitamente a dependência da etapa atual em relação à anterior. O GitLab CI irá automaticamente descarregar os artefactos das etapas indicadas antes de executar a atual.
Sem needs, o GitLab CI irá descarregar artefactos de todas as etapas anteriores na mesma ou em etapas anteriores, o que pode ser ineficiente. A declaração explícita com needs controla mais precisamente quais os artefactos que são descarregados.
Também é possível usar cache para guardar dependências, como pacotes instalados, mas este é destinado a acelerar reconstruções repetidas, não a transferir resultados de uma etapa para outra. Os artefactos são o mecanismo principal para transferir dados de saída entre etapas.