问题标签 [jenkins-job-dsl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
8341 浏览

groovy - 如何在 Jenksin Job DSL 脚本中获取种子作业的名称?

我正在使用由Jenkins Job DSL 插件Process Job DSLs提供的具有构建步骤的 Freestyle 项目/作业,即“种子”作业。如何从 提供的代码中获取种子作业的名称?Use the provided DSL script

我试图应用这个问题的答案,但没有一个奏效。

0 投票
2 回答
2052 浏览

git - Jenkins 和 Github 中的 DSL 工作

我正在尝试在 Github 中获取某个 repo 的分支,与执行相同:

curl -k -X GET https://api.github.com/repos/rackt/redux/forks

但是在 Jenkins 的 DSL 脚本中。

为什么?因为我想克隆所有人的 fork 并在job-dsl-plugin生成的单独作业上构建项目。

当然,这只是我发现的一个 repo 的一个例子。我正在尝试使用带有私有存储库的 SSH 凭据来做到这一点。

你知道哪一种是最好的方法吗?

0 投票
4 回答
3419 浏览

jenkins - 如何在完成一组其他工作后触发 Jenkins 工作?

根据一组其他作业的完成情况,您只有一个作业的简单情况很简单:使用多作业或使用带有parallel { ... }. 我试图解决的情况更普遍,例如:

我希望这些作业中的每一个都尽快触发,并且仅在其先决条件完成时触发。

看起来构建流程插件、连接插件或作业 DSL 插件都没有一个好的机制。当然,我可以开始我所有的工作并让他们投票给詹金斯,但这会很丑陋。

另一个死胡同是“上游作业触发器”。我想触发特定的作业构建,而不仅仅是上游作业的任何运行。

更新

一个答案提到了多任务插件。它确实可以用来解决这个问题,但调度和总构建时间几乎总是最坏的情况。例如,假设这个依赖图,构建时间如下所示:

使用 multijob 插件,您可以获得:

如果我有办法在所有先决条件都完成后准确地触发下一个工作,那么总构建时间将只有 57m。

这里的答案应该解释我如何获得这种行为,最好不要编写我自己的轮询机制。

更新 1 1/2 在下面的评论中,建议我将左侧任务和右侧任务组合成一个子任务。是的,这可以在这个例子中完成,但通常很难自动完成。例如,假设有一个额外的依赖关系:right2 依赖于 left1。在给定构建时间的情况下,最佳构建时间不应该改变,因为 left1 在启动 right2 之前很久就完成了,但是如果没有这些知识,您就不能再将 left1 和 left2 放在同一组中,而不会冒没有 right1 的风险可用的。

更新 2

看起来这里没有现成的答案。看来我将不得不自己编写一个系统 groovy 脚本。请参阅我自己对这个问题的回答。

更新 3

我们最终分叉了 multijob 插件并在其中编写了新的逻辑。我希望我们可以在一些清理之后将它作为一个新插件发布......

0 投票
1 回答
459 浏览

jenkins - 如何在 job-dsl-plugin 中保留 Cobertura 棘轮配置?

Jenkins 中的 Cobertura 插件通过勾选这些框支持棘轮:

  • 健康自动更新
  • 稳定性自动更新

勾选此框时,覆盖指标目标(在 Jenkins 配置页面中)将在每次成功构建时更新: 在此处输入图像描述

当种子作业被触发时,这些值将被 job-dsl-plugin 覆盖。当我的种子作业被触发时,如何保留这些值?

0 投票
1 回答
3821 浏览

jenkins - 在 Job DSL 插件中定义 MultiJob 条件步骤的语法

我将Jenkins CI与 Job DSL 和 Multijob 插件一起使用。我正在尝试使用 DSL 定义一个包含条件步骤的参数化 Multijob,但我无法找出正确的语法。我的代码:

运行这个我得到以下错误:

当第 117 行是包含“and”条件的行时。

什么是正确的语法?为什么它不解析 PLATFORM 参数?

0 投票
1 回答
688 浏览

java - 使用 jdk8 和 groovy 2.4.4-java.lang.IncompatibleClassChangeError 运行 job-dsl-plugin

我正在使用 job-dsl 插件来自动创建 jenkins 工作。下面是我的maven配置。

我正在使用 jdk8 & groovy-all 2.4.4 ,groovy-eclipse-compiler & 一个 uber jar 是使用 shade 插件生成的。为了运行我的脚本,我添加了额外的类路径(在进程 job-dsl/advanced-settings 下)作为 target/my-uber.jar。

当我在本地运行测试时,一切正常,但在 Jenkins 上出现以下错误

我尝试更改 groovy 版本(更旧)并设置 jdk 7 和 6,但所有这些都导致了相同的错误。

我该如何解决这个问题?

0 投票
1 回答
2363 浏览

groovy - Job-dsl-plugin-没有这样的属性:类的可执行文件:java.lang.Thread 用于参数化构建测试

我有一个参数化构建,它在 dsl 文件中定义为

……

现在我正在尝试测试这个 dsl 文件并编写以下测试代码

但这给了我以下错误:javaposse.jobdsl.dsl.DslScriptException:(脚本,第 13 行)没有这样的属性:类的可执行文件:java.lang.Thread

我试图遵循 job-dsl-core 中的现有测试(https://github.com/jenkinsci/job-dsl-plugin/blob/785de7f877fdbe8fc56b8b2423ae76ec9c59fa66/job-dsl-core/src/test/groovy/javaposse/jobdsl/ dsl/DslScriptLoaderSpec.groovy#L238 ) 来运行 groovy 脚本。

如何解决此问题并使我的测试成功执行。

0 投票
1 回答
2059 浏览

jenkins - 詹金斯 DSL 配置的构建管道中的手动批准步骤

我希望构建管道在作业后停止并等待手动单击,直到管道通过 DSL 继续。

我想避免促销插件,因为通过 DSL 的支持参差不齐/不支持。

0 投票
2 回答
4770 浏览

jenkins - 使用 Jenkins 中的作业 DSL 插件在子文件夹中创建列表视图

在 Jenkins 中,您可以使用 Job DSL 轻松创建列表视图

但是如果您尝试在文件夹中创建列表视图,则会创建文件夹但不会创建视图

有没有办法做到这一点?

0 投票
2 回答
9200 浏览

jenkins - 如何在 Jenkins 中使用 Job DSL 插件(脚本)删除作业?

我对 Jenkins 和 Job DSL 插件非常陌生。经过一番研究,我发现了如何使用 DSL 创建作业,现在我正在尝试使用 DSL 删除作业。我知道使用以下代码禁用作业:

它工作得很好。但是,我找不到任何方法来删除詹金斯的另一个工作。

请帮忙!

谢谢!