Как я могу запустить задание с помощью ручного щелчка ИЛИ сообщения о коммите - PullRequest
1 голос
/ 20 марта 2019

У нас есть задание (развертывание на производстве), которое мы обычно нажимаем вручную после проверки того, что построено на стадии подготовки. Однако очень редко у нас возникает проблема, которую мы случайно развернули и хотим исправить ее как можно скорее. В этих случаях мы запускаем тесты локально (намного быстрее) и помещаем [urgent-fix] в наше сообщение о фиксации, чтобы прекратить выполнение тестов в CI (пропуская прямо к построению образа Docker и развертыванию промежуточного этапа).

Что бы мы хотели сделать, если мы поставим [urgent-fix], это автоматически запустит производственное развертывание (обычно шаг when: manual). Можем ли мы достичь этого как-нибудь?

1 Ответ

3 голосов
/ 20 марта 2019

Похоже, вы можете использовать комбинацию только : переменные синтаксис и $CI_COMMIT_MESSAGE предопределенная переменная.

Грубая идея (не проверено):

.deploy_production: &deploy_production
  stage: deploy production
  script:
    - echo "I'm deploy production here"
  tags:
    - some special tag

deploy::manual:
  << *deploy_production
  when: manual
  allow_failure: false

deploy:urgent_fix:
  << *deploy_production
  only:
    variables:
      - $CI_COMMIT_MESSAGE =~/[urgent-fix]/
...