O que acontece depois que o GitLab recebe o código?
sobes.tech IA
Resposta da IA
O GitLab, ao receber um código (geralmente através de git push), inicia um processo que depende das configurações do projeto:
-
Webhooks: Quando um novo código chega, o GitLab pode notificar sistemas externos (por exemplo, servidores CI/CD, sistemas de gestão de projetos) enviando requisições HTTP. Isto serve como um gatilho para ações subsequentes.
-
Pipeline CI/CD: Se o arquivo
.gitlab-ci.ymlestiver configurado no projeto, o GitLab Runner inicia o pipeline CI/CD. Este processo inclui:- Verificação da sintaxe do arquivo
.gitlab-ci.yml. - Criação de tarefas (jobs) com base nas definições no arquivo yml.
- Atribuição de tarefas a runners disponíveis.
- O runner recebe as tarefas, descarrega o código fonte do repositório.
- Executa os comandos especificados para cada tarefa (construção, testes, implantação, etc.).
- Guarda artefactos (aplicações compiladas, relatórios de testes) e ficheiros de log.
- Envia o estado das tarefas de volta ao GitLab.
Exemplo de estrutura
.gitlab-ci.yml:stages: - build - test - deploy build_job: stage: build script: - echo "Construindo a aplicação..." - make build test_job: stage: test script: - echo "A executar testes..." - make test deploy_job: stage: deploy script: - echo "A fazer deploy da aplicação..." - make deploy only: - main # Dispara apenas ao fazer push na branch main - Verificação da sintaxe do arquivo
-
Ações automáticas: O GitLab pode realizar outras ações automáticas:
- Criar Merge Request (ao fazer push numa branch diferente da branch de destino).
- Atualizar o estado do Merge Request (se existir).
- Executar escaneamentos de segurança (se configurados).
- Fechar automaticamente ou ligar tarefas (através de palavras-chave nos commits ou na descrição do Merge Request).
-
Sistema de notificações: O GitLab envia notificações aos utilizadores por email ou através de outros canais (Slack, Mattermost), se estiverem subscritos a eventos no repositório (novos commits, estados do pipeline, comentários).
-
Atualização dos dados do repositório: Internamente, o GitLab atualiza os dados do repositório, branches, tags e histórico de commits.
O processo em geral visa integrar o novo código no fluxo de trabalho geral, automatizar a compilação, testes e, possivelmente, o deploy, além de notificar as partes interessadas.