Gitlab CI和R一起使用手动和手动规则
我正在尝试在gitlab中设置CI,因此
- 仅在 devjob 成功运行后,第二份工作( pushdev )才能手动运行。
- 第三个作业 PushTostage 只有在更改文件后才运行。
工作的方式,第二和第三个工作一直运行。管道规格中缺少什么
devjob:
image: node:16
stage: publishdev
script:
- echo "running validation checks"
- npm run validate
rules:
- changes:
- ./src/myfile.txt
- when: manual
# - this jobs needs to run after "devjob" has run successfully
# and myfile.txt has changed
# - "needs" artifacts from the "lint" job
pushdev:
image: node:16
stage: publishdev
needs: [ "devjob", "lint"]
script:
- echo "Pushing changes after validation to dev"
- npm run pushdev
rules:
- changes:
- ./src/myfile.txt
when: on_success
- when: manual
pushtostage:
image: node:16
stage: pushstage
script:
- echo "Pushing changes to stage"
rules:
- changes:
- ./src/myfile.txt
- when: manual
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我将您的样本更改为
我合并了您的规则。因为 gitlab规则一个
-
是一个规则:您的.gitlab-ci.yml首先作业
devjob
是手动的,因此这始终是成功的,您的第二个作业pushdev
pushdev 第一个规则更改和wher wher wher wher:on_success < /代码>始终匹配,因此它始终运行。
我更改您的.gitlab-ci.yml,第一个作业
devjob
在文件更改并设置它是手动作业而不允许_Failure时合并您的规则。等等。I change your sample to look like this:
I add
allow_failure: false
, because allow_failure when manual job default is true.I merge your rules. because GitLab rules one
-
is one rule:your .gitlab-ci.yml first job
devjob
is manual, so it is always a success, and your second jobpushdev
first rule changes andwhen: on_success
always match, so it always run.I change your .gitlab-ci.yml, first job
devjob
merge your rules when file change and set it is manual job and not allow_failure. and so on.the sample code in Files · try-rules-stackoverflow-72594854-manual · GitLab PlayGround / Workshop / Tryci · GitLab