Sobes.tech
Middle

Como configurar a execução de uma tarefa no GitLab ao pressionar um botão?

sobes.tech IA

Resposta da IA

Para configurar a execução manual de um trabalho no GitLab CI/CD, utiliza-se a palavra-chave when: manual na descrição do trabalho no arquivo .gitlab-ci.yml.

Exemplo:

stages:
  - build
  - deploy

build_job:
  stage: build
  script:
    - echo "A construir o projeto..."
    # Comandos de construção

deploy_staging:
  stage: deploy
  script:
    - echo "A fazer deploy para staging..."
    # Comandos de deploy
  when: manual # Este trabalho deve ser iniciado manualmente
  allow_failure: false # Por padrão false, mas explicitamente indicado para clareza

Explicação:

  • when: manual: Indica ao GitLab que este trabalho não será iniciado automaticamente ao alterar o código (commit) ou por agendamento. Esperará que o utilizador o inicie manualmente através da interface do GitLab.
  • allow_failure: false: Define se os trabalhos seguintes (se houver) devem ser executados se este trabalho manual terminar com erro. Se definido como false (valor padrão), o pipeline será interrompido em caso de falha neste trabalho. Se definido como true, o pipeline continuará mesmo que falhe.

Após adicionar e fazer commit de um ficheiro .gitlab-ci.yml com esta configuração, na interface de pipelines do GitLab (CI/CD -> Pipelines), aparecerá um botão de execução ("Run") ou o seu estado será mostrado como "Manual" ao lado do trabalho deploy_staging. Clicar neste botão inicia a execução do trabalho.

Também é possível incluir trabalhos manuais em etapas que iniciam automaticamente outros trabalhos. Por exemplo:

stages:
  - build
  - test
  - deploy

build_job:
  stage: build
  script:
    - echo "A construir..."

test_job:
  stage: test
  needs: [build_job]
  script:
    - echo "A testar..."

deploy_production:
  stage: deploy
  needs: [test_job]
  script:
    - echo "A fazer deploy para produção..."
  when: manual # Disponível apenas após um teste bem-sucedido, manualmente
  variables:
    TARGET_ENVIRONMENT: "production" # Exemplo: passagem de variáveis para o trabalho manual

Aqui, o trabalho deploy_production ficará disponível para execução manual apenas após a conclusão bem-sucedida do trabalho test_job.

Adicionalmente:

  • variables: Trabalhos manuais podem usar variáveis definidas tanto no arquivo .gitlab-ci.yml como nas configurações do projeto/grupo.
  • rules: Cenários de execução mais complexos podem usar a palavra-chave rules juntamente com when: manual para definir condições sob as quais o trabalho manual fica disponível ou obrigatório.
  • API: Trabalhos manuais também podem ser iniciados através da API do GitLab CI/CD.

Assim, when: manual é o mecanismo principal para implementar a execução manual de trabalhos no GitLab.