Sobes.tech
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:

  1. Stages: O pipeline é dividido em fases, que são executadas sequencialmente. As tarefas numa mesma fase podem ser executadas em paralelo.
  2. Jobs: Cada tarefa é executada num Runner separado. Um Runner é um agente que recolhe o trabalho do GitLab CI/CD e o executa.
  3. Commands: Dentro de cada tarefa, são executados comandos especificados na secção script do .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.
  4. Dependencies (Dependências): As tarefas podem depender dos resultados de tarefas anteriores, usando a palavra-chave needs.
  5. 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.
  6. Caching (Cache): Dependências ou ficheiros temporários podem ser cacheados entre execuções de tarefas para acelerar a execução.
  7. 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.