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 comofalse(valor padrão), o pipeline será interrompido em caso de falha neste trabalho. Se definido comotrue, 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.ymlcomo nas configurações do projeto/grupo.rules: Cenários de execução mais complexos podem usar a palavra-chaverulesjuntamente comwhen: manualpara 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.