首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gitlab网站手册与分支手册

Gitlab网站手册与分支手册
EN

Stack Overflow用户
提问于 2022-09-07 16:39:31
回答 1查看 37关注 0票数 0

我正在尝试设置一个手工作业,以便在生产中部署,我想了解第二条规则:

代码语言:javascript
复制
deploy_prod:
    stage: deploy_prod
    rules:
        - if: $CI_PIPELINE_SOURCE == 'web'
          when: manual
        - if: $CI_PIPELINE_SOURCE == 'push' && $CI_COMMIT_BRANCH == 'master'
          when: manual
    script: echo 1

第一条规则允许我通过单击分支母版上的run管道在生产中进行部署,这将创建一个“阻塞”管道,要求我单击play按钮来运行。

  • 是否有可能创建“阻塞”管道而不需要我单击run管道(我的意思是在管道列表中,我仍然需要单击play按钮来运行它,但这是少了一步)

  • 关于第二条规则,我知道如果我移除when: manual (提交,合并分支)到主程序将立即触发作业,那么使用when: manual时应该采取什么行为?

提前感谢您的帮助

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-08 14:36:43

要使第一个规则自动运行而不必手动启动它,可以将when: manual更改为when: always并始终运行,或者完全删除第一个规则。这是因为您没有默认的规则集(即“works”子句),所以这是可行的。按照您的规则现在的方式,除了web和push之外,每个管道源都将自动运行,因此删除任何一个规则都意味着它们的作业总是自动运行,而不管源是什么。但是,如果不希望作业为triggersschedulesmerge_requests运行,而是希望web自动运行,则必须使用when: always

对于你的第二条规则,最好在一个单独的问题中说明你在问什么,但实际上行为取决于你自己。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73638998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档