LINUX.ORG.RU

CI/CD Запуск джоба по условию

 ,


0

1

Хочу сделать, чтобы джоб mydeploy1 запускался только если я вручную выбрал запуск джоба mybuild1.

stages:
  - build
  - deploy

mybuild1:
  stage: build
  when: manual
  tags:
    - tag1
  variables:
    VAR: "1"
  script:
    ...

mydeploy1:
  stage: deploy
  tags:
    - tag1
  rules:
    - if: '$VAR == "1"'
      when: on_success
  script:
    ...

Запускаю из интерфейса гитлаба mybuild1 вручную, он отрабатывает, а mydeploy1 в списке джобов не появляется и не отрабатывает.

Подскажите, как это правильно сделать?

Насколько я помню, переменные между джобами не передаются.

aol ★★★★★
()
stages:
  - build
  - deploy
  - mydeploy1

...

mydeploy1:
  stage: mydeploy1
  tags: [tag]
  rules:
    - if: '$CI_COMMIT_BRANCH == "develop"'
      when: manual
      allow_failure: true
  script:
    - ...

Примерно так. Имя бранча укажи.

anonymous
()
Ответ на: комментарий от anonymous
mydeploy1:
  stage: mydeploy1
  when: manual
  allow_failure: true
  tags: [tag]

Хотя так тоже будет работать. Главная проблема, что ты в списке стейджей его не указал. Ещё замечал, что при редактировании .gitlab-ci.yml в WEB-редакторе gitlab гитлаб некорректно обновлял кнопки в pipeline, поэтому делай через commit в командной строке.

anonymous
()
Ответ на: комментарий от anonymous

Да, я уже понял, что это правильно через needs сделать. Спасибо!

krot_v_lodke
() автор топика

Хочу сделать, чтобы джоб mydeploy1 запускался только если я вручную выбрал запуск джоба mybuild1.

На самом деле гораздо лучше привязаться либо к тексту коммита, либо к созданию tag, а не к ручному запуску.

build-release:
  stage: build-release
  rules:
    - if: $CI_COMMIT_MESSAGE =~ /^Release/
  script:
...
release_job:
  stage: release
  rules:
    - if: $CI_COMMIT_TAG
  script:
vtVitus ★★★★★
()
Последнее исправление: vtVitus (всего исправлений: 1)

Переменную обьяви глобально и передавай при запуске джобы, например через окружения

upcFrost ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.