如果像我一样,您的Jenkins作业是由DSL工作流自动创建的,那么您将无法编辑顶层作业的配置(包含所有实际分支)来禁用github钩子的自动构建。除了在每个阶段使用when triggered by子句作为mentioned in this other SO answer之外,我目前还找不到一种方法来通过编程禁用jenkinsfile中的整个管道。此外,这将导致它运行并成功,而这可能不是我们想要。 因此,我觉得最简单的解决方案是: 1.将repo中所有分支上的Jenkinsfile的名称更改为Jenkinsfile以外的其他名称,这样Jenkins的SCM轮询就不会发现它。我选择了Jenkinsfile.manual。根据需要进行调整。 1.自动创建的作业应该在下次扫描repo时删除自己,无论是来自github钩子、预定扫描还是您按下“立即扫描”。 1.为您的存储库手动创建一个新的多分支管道作业,将构建配置设置为查找Jenkinsfile.manual(或您选择的任何名称)。 1.配置您通常使用的任何分支行为,但还要添加“属性策略”所有分支都获得相同的属性〉抑制SCM自动触发。 这对我来说感觉“正确”,你的里程可能会有所不同。
8条答案
按热度按时间ssgvzors1#
从Jenkins 2.89.4开始,您只需使用“Disable Project”(禁用项目)选项即可禁用管道作业。
xtfmy6hx2#
k0pti3hp3#
没有用于禁用jenkins-pipeline作业的选项。
以下jira票证正在跟踪该问题:
https://issues.jenkins-ci.org/browse/JENKINS-27299
4uqofj5v4#
如果你没有找到禁用按钮。这对大多数的工作应该都有用。只要在工作URL的末尾加上
/disable
。然后Jenkins会把你重定向到一个你可以Post
的页面。同样的方法也适用于/enable
o8x7eapl5#
对于多分支管道项目,
现在,没有github分支触发器会运行一个构建作业。(这将禁用所有分支的触发器)
pbgvytdp6#
我有一个类似的案例,发现我们的很多作业都是由一个自动的“seeder”作业设置的,这个作业是从Job DSL创建的,而且它们的配置是不可编辑的。所以我去了GitHub,禁用了连接这两个作业的webhook。所以这个作业仍然是活动的,但是永远不会被GitHub的活动触发。
dwbf0jvd7#
如果像我一样,您的Jenkins作业是由DSL工作流自动创建的,那么您将无法编辑顶层作业的配置(包含所有实际分支)来禁用github钩子的自动构建。除了在每个阶段使用
when triggered by
子句作为mentioned in this other SO answer之外,我目前还找不到一种方法来通过编程禁用jenkinsfile中的整个管道。此外,这将导致它运行并成功,而这可能不是我们想要。因此,我觉得最简单的解决方案是:
1.将repo中所有分支上的Jenkinsfile的名称更改为
Jenkinsfile
以外的其他名称,这样Jenkins的SCM轮询就不会发现它。我选择了Jenkinsfile.manual
。根据需要进行调整。1.自动创建的作业应该在下次扫描repo时删除自己,无论是来自github钩子、预定扫描还是您按下“立即扫描”。
1.为您的存储库手动创建一个新的多分支管道作业,将构建配置设置为查找
Jenkinsfile.manual
(或您选择的任何名称)。1.配置您通常使用的任何分支行为,但还要添加“属性策略”所有分支都获得相同的属性〉抑制SCM自动触发。
这对我来说感觉“正确”,你的里程可能会有所不同。
eni9jsuy8#
我排除了我的
Branch Sources
-〉GitHub
-〉Behaviors
-〉Filter by name (with wildcards)
-〉Exclude
节中的所有分支(Exclude: *