Sobes.tech
Middle

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:

  1. 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.

  2. Pipeline CI/CD: Se o arquivo .gitlab-ci.yml estiver 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
    
  3. 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).
  4. 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).

  5. 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.