如何禁用jenkins管道作业

时间:2016-08-05 09:31:05

标签: jenkins jenkins-pipeline

我正在使用Jenkins 2.0的管道作业,但我没有看到选项'禁用作业',就像我在旧的Jenkins版本中习惯的那样。我错过了什么吗?是否仍然可以禁用(管道)工作?

7 个答案:

答案 0 :(得分:15)

没有选项可以禁用jenkins-pipeline作业。

以下jira票据正在跟踪问题:

  

https://issues.jenkins-ci.org/browse/JENKINS-27299

答案 1 :(得分:14)

您只需使用"禁用项目" Jenkins 2.89.4以后的选项,以便禁用管道作业。

答案 2 :(得分:5)

对于多分支管道项目,

  • 点击管道的“配置”
  • 在“分支机构”下,在“财产策略”下
    • 点击“添加属性”
    • 选择“禁止自动SCM触发”

现在,没有github分支触发器将运行构建作业。 (这将禁用所有分支的触发器)

答案 3 :(得分:5)

如果找不到禁用按钮。对于大多数乔布斯来说,这应该可以解决问题。只需在工作URL的末尾附加/disable。然后,詹金斯将您重定向到一个页面,您可以在其中Post/enable同样适用

enter image description here

答案 4 :(得分:0)

  • 转到作业配置
  • 在“构建触发器”下,选择“禁用此项目”
  • 保存

enter image description here

答案 5 :(得分:0)

我有一个类似的案例,发现我们的许多工作都是由自动“播种”作业设置的,该作业是通过Job DSL创建的,并且它们的配置不可编辑。所以我去了GitHub并禁用了连接两者的webhook。因此,该工作仍处于活动状态,但永远不应再由GitHub活动触发。

答案 6 :(得分:0)

如果像我一样,您的Jenkins作业是由DSL工作流自动创建的,则您将无法编辑包含所有实际分支的顶级Job的配置,以禁用来自github的自动构建钩子。除了在每个阶段将 Sub AsciiToHex() Dim strg As String Dim tmp As String strg = Worksheets("Sheet1").Range("A1") Worksheets("Sheet1").Range("A5").value = strg tmp = "" For i = 1 To Len(strg) tmp = tmp & hex((Asc(Mid(strg, i, 1)))) Next Worksheets("Sheet1").Range("A6").value = tmp End Sub 子句用作mentioned in this other SO answer之外,我目前找不到在jenkinsfile中以编程方式禁用整个管道的方法。此外,这将导致它运行并成功,这可能不是我们想要的。

所以我觉得最不容易解决的解决方案是:

  1. 将存储库中所有分支上的Jenkinsfiles名称更改为when triggered by以外的名称,以使Jenkins的SCM轮询不会被接收。我选择了Jenkinsfile。假设job-auto-creator设置为寻找“ Jenkinsfile”;进行必要的调整。
  2. 自动创建的作业在下次扫描存储库时应自行删除,无论是从github挂钩,计划扫描还是按“立即扫描”。
  3. 为您的存储库手动创建一个新的Multibranch Pipeline作业,设置 Build Configuration (构建配置)以查找Jenkinsfile.manual(或您选择的名称)。
  4. 配置您通常会使用的任何分支行为,还添加一个所有分支具有相同属性的属性策略>禁止自动SCM触发

这对我来说是“正确的”,您的里程可能会有所不同。