Как запустить Gitlab CI только для определенных веток и тегов? - PullRequest
0 голосов
/ 16 октября 2018

Я хотел бы настроить свой project_dev CI только для 3 веток и определенного типа тегов, таких как: dev_1.0, dev_1.1, dev_1.2 .

Как можноЯ достигаю этого?

Это то, что у меня сейчас есть:

project_dev:
  stage: dev
  script:
    - export
    - bundle exec pod repo update
    - bundle exec pod install
    - bundle exec fastlane crashlytics_project_dev
  after_script:
    - rm -rf ~/Library/Developer/Xcode/Archives || true
  when: manual
  only:
    - develop
    - release
    - master
    - //here I need to add condition to fire that stage additionally only for specific tags. How can I setup regexp here?
  tags:
    - iOS

Когда я набираю это как:

  only:
    - branches
    - /^dev_[0-9.]*$/

Он также запускает CI для таких тегов, как: dev1.2 но не должно.Зачем?Есть ли регулярное выражение для тегов?

Ответы [ 2 ]

0 голосов
/ 17 октября 2018

Похоже на вопрос о регулярном выражении.Я только что создал проект на gitlab.com для регулярного выражения .

Файл: .gitlab-ci.yml

project_dev:
  # Irrelevant keys is skipped
  script:
    - echo "Hello World"
  only:
    - develop
    - release
    - master
    - /^dev_[0-9]+(?:.[0-9]+)+$/ # regular expression

Меня подтолкнули все теги , которые вы упомянули, чтобы проверить это регулярное выражение.

Tags

Как вы можете видеть, Он будет соответствовать тегам, таким как dev_1.0, dev_1.1, но задание project_dev не будет вызвано тегом dev1.2, Вы можете проверить результат на pipe страниц

Pipelines

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

Gitlab.com?Вы можете попробовать комбинацию except и only.Что-то вроде

only: 
- tags 
- branches 
except:
- /^(?!(branch1|branch2|branch3|dev_[0-9.]*$)$).*$/

Идея состоит в том, чтобы запускать задания могли только ветки и теги, за исключением всего, что отличается от ветки [1-3] и dev_ branch / tags

...