Gitlab Ci: 对除A或B之外的任意分支执行一个stage
Gitlab Ci: execute a stage for any branch except A or B
我想 运行 阶段 publish_snapshot_rpm
除了 master
或 release
之外的任何分支。管道 运行 成功,但阶段 publish_snapshot_rpm
未执行。我错过了什么?我的 gitlab-ci
文件部分:
.publish:
stage: publish
tags:
- dev
dependencies:
- build
publish_snapshot_rpm:
extends: .publish
only:
# for any branch except master or release
- (?!(master|release)\b)\b\w+
script:
- some script here
您可以使用 rules
关键字的强大功能轻松实现这一目标。
rules:
- if: $CI_COMMIT_BRANCH == master
when: never
- if: $CI_COMMIT_BRANCH =~ /^release/
when: never
- when: on_success
使用 except
的更简单方法:
.publish:
stage: publish
tags:
- dev
dependencies:
- build
publish_snapshot_rpm:
extends: .publish
except:
- master
- release
script:
- some script here
我想 运行 阶段 publish_snapshot_rpm
除了 master
或 release
之外的任何分支。管道 运行 成功,但阶段 publish_snapshot_rpm
未执行。我错过了什么?我的 gitlab-ci
文件部分:
.publish:
stage: publish
tags:
- dev
dependencies:
- build
publish_snapshot_rpm:
extends: .publish
only:
# for any branch except master or release
- (?!(master|release)\b)\b\w+
script:
- some script here
您可以使用 rules
关键字的强大功能轻松实现这一目标。
rules:
- if: $CI_COMMIT_BRANCH == master
when: never
- if: $CI_COMMIT_BRANCH =~ /^release/
when: never
- when: on_success
使用 except
的更简单方法:
.publish:
stage: publish
tags:
- dev
dependencies:
- build
publish_snapshot_rpm:
extends: .publish
except:
- master
- release
script:
- some script here