Bar*_*zyk 3 regex gitlab gitlab-ci
我想project_dev为3个分支和特定类型的标记设置我的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.]*$/
它还为以下标记运行CI:dev1.2但它不应该.为什么?是否有标签的正则表达式?
听起来像一个正则表达式问题.我刚刚在gitlab.com上为正则表达式创建了一个项目.
project_dev:
# Irrelevant keys is skipped
script:
- echo "Hello World"
only:
- develop
- release
- master
- /^dev_[0-9]+(?:.[0-9]+)+$/ # regular expression
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,它将匹配像dev_1.0,等标签dev_1.1,但作业project_dev不会被标签触发dev1.2,您可以检查管道页面上的结果
小智 5
Gitlab.com?你可以尝试的组合except和only。就像是
only:
- tags
- branches
except:
- /^(?!(branch1|branch2|branch3|dev_[0-9.]*$)$).*$/
Run Code Online (Sandbox Code Playgroud)
这个想法是,除了分支[1-3]和dev_分支/标签以外的所有内容,仅允许分支和标签触发作业