我只想为3个分支和特定类型的标签设置project_dev
CI,例如: 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.]*$/
它也为诸如 dev1.2 之类的标签运行CI,但不应这样做。为什么?标记是否有正则表达式?
答案 0 :(得分:8)
听起来像正则表达式问题。我刚刚在gitlab.com上为project创建了一个the regular expression。
project_dev:
# Irrelevant keys is skipped
script:
- echo "Hello World"
only:
- develop
- release
- master
- /^dev_[0-9]+(?:.[0-9]+)+$/ # regular expression
您被我提到all of tags测试该正则表达式。
如您所见,它将匹配dev_1.0
,dev_1.1
之类的标签,但是作业project_dev
不会被标签dev1.2
触发,您可以检查结果在pipeline页上
答案 1 :(得分:3)
Gitlab.com?
您可以尝试结合使用except
和only
。
only:
- tags
- branches
except:
- /^(?!(branch1|branch2|branch3|dev_[0-9.]*$)$).*$/
想法是,除了分支[1-3]和dev_分支/标签以外的所有内容,只允许分支和标签触发作业
答案 2 :(得分:0)
答案 3 :(得分:0)