Junior
O que acontece depois do GitLab fazer o download do código?
sobes.tech IA
Resposta da IA
Após fazer o download do código (clonar o repositório), o GitLab CI/CD executa um pipeline — um conjunto de tarefas (jobs) e fases (stages), definidos no arquivo .gitlab-ci.yml na raiz do repositório.
As principais fases de um pipeline típico após o download do código:
- Stages: O pipeline é dividido em fases, que são executadas sequencialmente. As tarefas numa mesma fase podem ser executadas em paralelo.
- Jobs: Cada tarefa é executada num Runner separado. Um Runner é um agente que recolhe o trabalho do GitLab CI/CD e o executa.
- Commands: Dentro de cada tarefa, são executados comandos especificados na secção
scriptdo.gitlab-ci.yml. Estes comandos podem incluir:- Construção do projeto (por exemplo, compilação de código, empacotamento de artefactos).
- Execução de testes (unitários, de integração, etc.).
- Verificação da qualidade do código (linting, análise estática).
- Criação de imagens Docker.
- Deployment (desdobramento) em ambientes de teste, staging ou produção.
- Outras ações necessárias.
- Dependencies (Dependências): As tarefas podem depender dos resultados de tarefas anteriores, usando a palavra-chave
needs. - Artifacts (Artefactos): Os resultados das tarefas (por exemplo, código compilado, relatórios de testes, imagens Docker) podem ser guardados como artefactos, que estão disponíveis para download ou usados em tarefas subsequentes.
- Caching (Cache): Dependências ou ficheiros temporários podem ser cacheados entre execuções de tarefas para acelerar a execução.
- Reporting (Relatórios): Os resultados da execução (sucesso/fracasso), logs e artefactos estão disponíveis na interface do GitLab.
Estrutura aproximada do .gitlab-ci.yml:
stages: # Definição de fases
- build
- test
- deploy
build_job: # Definição da tarefa
stage: build # Pertencente à fase
script: # Comandos a executar
- echo "A construir o projeto..."
- mvn package # Comando de exemplo para construir com Maven
artifacts: # Guardar artefactos
paths:
- target/*.jar
test_job:
stage: test
script:
- echo "A executar testes..."
- mvn test # Comando de exemplo para executar testes
needs: # Dependência da tarefa anterior
- build_job
deploy_job:
stage: deploy
script:
- echo "A fazer deploy da aplicação..."
- docker build -t my-app . # Exemplo de construção de imagem Docker
- docker push my-app # Exemplo de envio da imagem ao repositório
only: # Condição para executar a tarefa
- main # Apenas ao fazer commit na branch main
Assim, após fazer o download do código, o GitLab CI/CD orquestra a execução de um processo definido pelo utilizador, direcionado à construção, teste e implantação da aplicação.