Необходимо запустить шаг развертывания, только если он запущен или запущен из Интернета на главном сервере ветки - PullRequest
1 голос
/ 16 октября 2019

Нужно запускать задание конвейера gitlab, только если оно запущено или запускается вручную на master. Если запустить руководство на ветке, отличной от главной, задание следует игнорировать. Если запущено - приложение разворачивается из ветви, а затем ветка объединяется с ведущей. Слияние с мастером вызывает еще одно развертывание в моем случае. Необходимо избегать избыточного шага развертывания.

Сборка запускается в любой ветви - запускается задание. Сборка запускается вручную в главной ветви - запускается задание. Сборка запускается вручную в другой ветви, кроме основной ветви - пропускается задание

В этом случае задание запускается дважды: при запуске ипри слиянии с мастером.

deploy-production:
  stage: deploy
  script: echo 1
  when: on_success
  only:
    - triggers
    - master

Необходимо игнорировать этот шаг, когда развернутая ветвь передается мастеру.

1 Ответ

0 голосов
/ 16 октября 2019

Один из способов добиться этого - использовать теги. Ключевые слова «only» и «кроме» в gitlab ci принимают ветки и теги.

Поскольку теги не могут дублироваться, вам нужно будет каждый раз использовать новый тег (live version.deployed.i, где i увеличивается каждый развремя) и используйте регулярное выражение для оператора исключения, например

except: /^version.deployed./

, или используйте «развернутый» тег, который вы удаляете и повторно используете при каждом развертывании.

Конечно, ваше задание развертыванияпотребуется обработать тегирование после развертывания.

...