问题标签 [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.
groovy - 如何在 Jenksin Job DSL 脚本中获取种子作业的名称?
我正在使用由Jenkins Job DSL 插件Process Job DSLs
提供的具有构建步骤的 Freestyle 项目/作业,即“种子”作业。如何从 提供的代码中获取种子作业的名称?Use the provided DSL script
我试图应用这个问题的答案,但没有一个奏效。
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 凭据来做到这一点。
你知道哪一种是最好的方法吗?
jenkins - 如何在完成一组其他工作后触发 Jenkins 工作?
根据一组其他作业的完成情况,您只有一个作业的简单情况很简单:使用多作业或使用带有parallel { ... }
. 我试图解决的情况更普遍,例如:
我希望这些作业中的每一个都尽快触发,并且仅在其先决条件完成时触发。
看起来构建流程插件、连接插件或作业 DSL 插件都没有一个好的机制。当然,我可以开始我所有的工作并让他们投票给詹金斯,但这会很丑陋。
另一个死胡同是“上游作业触发器”。我想触发特定的作业构建,而不仅仅是上游作业的任何运行。
更新
一个答案提到了多任务插件。它确实可以用来解决这个问题,但调度和总构建时间几乎总是最坏的情况。例如,假设这个依赖图,构建时间如下所示:
使用 multijob 插件,您可以获得:
如果我有办法在所有先决条件都完成后准确地触发下一个工作,那么总构建时间将只有 57m。
这里的答案应该解释我如何获得这种行为,最好不要编写我自己的轮询机制。
更新 1 1/2 在下面的评论中,建议我将左侧任务和右侧任务组合成一个子任务。是的,这可以在这个例子中完成,但通常很难自动完成。例如,假设有一个额外的依赖关系:right2 依赖于 left1。在给定构建时间的情况下,最佳构建时间不应该改变,因为 left1 在启动 right2 之前很久就完成了,但是如果没有这些知识,您就不能再将 left1 和 left2 放在同一组中,而不会冒没有 right1 的风险可用的。
更新 2
看起来这里没有现成的答案。看来我将不得不自己编写一个系统 groovy 脚本。请参阅我自己对这个问题的回答。
更新 3
我们最终分叉了 multijob 插件并在其中编写了新的逻辑。我希望我们可以在一些清理之后将它作为一个新插件发布......
jenkins - 在 Job DSL 插件中定义 MultiJob 条件步骤的语法
我将Jenkins CI与 Job DSL 和 Multijob 插件一起使用。我正在尝试使用 DSL 定义一个包含条件步骤的参数化 Multijob,但我无法找出正确的语法。我的代码:
运行这个我得到以下错误:
当第 117 行是包含“and”条件的行时。
什么是正确的语法?为什么它不解析 PLATFORM 参数?
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,但所有这些都导致了相同的错误。
我该如何解决这个问题?
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 脚本。
如何解决此问题并使我的测试成功执行。
jenkins - 詹金斯 DSL 配置的构建管道中的手动批准步骤
我希望构建管道在作业后停止并等待手动单击,直到管道通过 DSL 继续。
我想避免促销插件,因为通过 DSL 的支持参差不齐/不支持。
jenkins - 使用 Jenkins 中的作业 DSL 插件在子文件夹中创建列表视图
在 Jenkins 中,您可以使用 Job DSL 轻松创建列表视图
但是如果您尝试在文件夹中创建列表视图,则会创建文件夹但不会创建视图
有没有办法做到这一点?
jenkins - 如何在 Jenkins 中使用 Job DSL 插件(脚本)删除作业?
我对 Jenkins 和 Job DSL 插件非常陌生。经过一番研究,我发现了如何使用 DSL 创建作业,现在我正在尝试使用 DSL 删除作业。我知道使用以下代码禁用作业:
它工作得很好。但是,我找不到任何方法来删除詹金斯的另一个工作。
请帮忙!
谢谢!