如何禁用詹金斯管道作业
how to disable jenkins pipeline job
我正在使用 Jenkins 2.0 的管道作业,但我没有看到选项 'disable job',因为我在旧的 Jenkins 版本中已经习惯了。我错过了什么吗?是否仍然可以禁用(管道)作业?
没有禁用 jenkins-pipeline 作业的选项。
以下 jira ticket 正在跟踪该问题:
从 Jenkins 2.89.4 开始,您可以简单地使用 "Disable Project" 选项来禁用管道作业。
对于多分支管道项目,
- 单击管道 'configuration'
- 在'Branch Sources'之下,在'Property Strategy'之下
- 点击'ADD PROPERTY'
- select "Suppress automatic SCM triggering"
现在,没有 github 分支触发器会 运行 构建作业。 (这将禁用所有分支的触发器)
- 转到作业配置
- 下 "Build Triggers" select "Disable this project"
- 保存
如果您没有找到禁用按钮。这应该可以解决大多数工作。只需将 /disable
附加到作业 URL 的末尾即可。然后 Jenkins 会将您重定向到一个您可以 Post
的页面。同样适用于 /enable
我有一个类似的案例,发现我们的许多作业 are/were 是由自动 "seeder" 作业设置的,该作业是从作业 DSL 创建的,并且它们的配置不可编辑。所以我去了 GitHub 并禁用了连接两者的 webhook。所以作业仍然有效,但不应再由 GitHub activity 触发。
如果像我一样,您的 Jenkins 作业是由 DSL 工作流自动创建的,您将无法编辑包含所有实际分支的 top-level 作业的配置来禁用从 github 钩子自动构建。除了在每个阶段将 when triggered by
子句用作 mentioned in this other SO answer 之外,我目前找不到以编程方式禁用 jenkinsfile 中整个管道的方法。此外,这会导致它 运行 并成功,这可能不是我们想要的。
所以我觉得 least-hacky 的解决方案是:
- 将存储库中所有分支上的 Jenkinsfiles 的名称更改为
Jenkinsfile
以外的名称,这样 Jenkins 的 SCM 轮询就不会选择它。我选择了Jenkinsfile.manual
。这假设 job-auto-creator 设置为查找“Jenkinsfile”;根据需要进行调整。
- auto-created 作业应该在下次扫描回购时自行删除,无论是来自 github 挂钩、计划扫描还是您按下“立即扫描”。
- 为您的存储库手动创建一个新的多分支管道作业,设置 构建配置 以查找
Jenkinsfile.manual
(或您选择的任何名称)。
- 配置您通常使用的任何分支行为,但也添加 属性 策略 所有分支获得相同的属性 > 抑制自动 SCM 触发.
这对我来说感觉“正确”,你的里程因我而异。
我正在使用 Jenkins 2.0 的管道作业,但我没有看到选项 'disable job',因为我在旧的 Jenkins 版本中已经习惯了。我错过了什么吗?是否仍然可以禁用(管道)作业?
没有禁用 jenkins-pipeline 作业的选项。
以下 jira ticket 正在跟踪该问题:
从 Jenkins 2.89.4 开始,您可以简单地使用 "Disable Project" 选项来禁用管道作业。
对于多分支管道项目,
- 单击管道 'configuration'
- 在'Branch Sources'之下,在'Property Strategy'之下
- 点击'ADD PROPERTY'
- select "Suppress automatic SCM triggering"
现在,没有 github 分支触发器会 运行 构建作业。 (这将禁用所有分支的触发器)
- 转到作业配置
- 下 "Build Triggers" select "Disable this project"
- 保存
如果您没有找到禁用按钮。这应该可以解决大多数工作。只需将 /disable
附加到作业 URL 的末尾即可。然后 Jenkins 会将您重定向到一个您可以 Post
的页面。同样适用于 /enable
我有一个类似的案例,发现我们的许多作业 are/were 是由自动 "seeder" 作业设置的,该作业是从作业 DSL 创建的,并且它们的配置不可编辑。所以我去了 GitHub 并禁用了连接两者的 webhook。所以作业仍然有效,但不应再由 GitHub activity 触发。
如果像我一样,您的 Jenkins 作业是由 DSL 工作流自动创建的,您将无法编辑包含所有实际分支的 top-level 作业的配置来禁用从 github 钩子自动构建。除了在每个阶段将 when triggered by
子句用作 mentioned in this other SO answer 之外,我目前找不到以编程方式禁用 jenkinsfile 中整个管道的方法。此外,这会导致它 运行 并成功,这可能不是我们想要的。
所以我觉得 least-hacky 的解决方案是:
- 将存储库中所有分支上的 Jenkinsfiles 的名称更改为
Jenkinsfile
以外的名称,这样 Jenkins 的 SCM 轮询就不会选择它。我选择了Jenkinsfile.manual
。这假设 job-auto-creator 设置为查找“Jenkinsfile”;根据需要进行调整。 - auto-created 作业应该在下次扫描回购时自行删除,无论是来自 github 挂钩、计划扫描还是您按下“立即扫描”。
- 为您的存储库手动创建一个新的多分支管道作业,设置 构建配置 以查找
Jenkinsfile.manual
(或您选择的任何名称)。 - 配置您通常使用的任何分支行为,但也添加 属性 策略 所有分支获得相同的属性 > 抑制自动 SCM 触发.
这对我来说感觉“正确”,你的里程因我而异。