Sobes.tech
Junior

De onde o runner obtém o código para executar?

sobes.tech IA

Resposta da IA

O Runner obtém o código para executar a partir do repositório do sistema de controlo de versões, geralmente através de um protocolo como o Git. A URL específica do repositório e o ramo (ou etiqueta, commit) são indicados na configuração do pipeline que inicia este runner.

O processo de obtenção pode ser o seguinte:

  1. O Runner recebe a ordem de executar uma tarefa do orquestrador CI/CD (por exemplo, GitLab CI/CD, GitHub Actions, Jenkins).
  2. Juntamente com a ordem, são transmitidas informações sobre a tarefa, incluindo o link para o repositório, o ramo/commit e o contexto de execução.
  3. O Runner realiza uma operação de clonagem do repositório (ou parte dele) no seu espaço de trabalho temporário local.
  4. Após uma clonagem bem-sucedida, o runner muda para o commit, ramo ou etiqueta especificada, garantindo trabalhar com a versão correta do código.

Exemplo de comando de clonagem no GitLab CI:

# Clonar o repositório indicado na variável CI_REPOSITORY_URL
git clone "$CI_REPOSITORY_URL" "$CI_BUILDS_DIR/$CI_PROJECT_NAME"
# Entrar no diretório do projeto
cd "$CI_BUILDS_DIR/$CI_PROJECT_NAME"
# Verificar o commit necessário
git checkout "$CI_COMMIT_SHA"

Em alguns casos, se houver cache, o runner pode primeiro verificar se existe uma cópia local do repositório e apenas fazer git fetch e git checkout para atualizar para o estado necessário, em vez de clonar completamente.

A configuração que define a fonte do código geralmente é especificada num ficheiro YAML que descreve o pipeline (por exemplo, .gitlab-ci.yml, .github/workflows/*.yml).