问题标签 [jenkins-build-flow]
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.
jenkins - 如何在 Jenkins 工作流构建期间修复 NotSerializableException 错误?
当我在 Jenkins 工作流程(Jenkins 1.609.1,工作流程 1.8)上运行以下代码时,我收到“NotSerializableException”错误(也在下方)。但是,如果我将“构建作业”移到“for”范围之外,它工作正常(作业被激活)。有什么想法为什么会出现这种行为?
得到错误:
groovy - 如何在构建流程 [Jenkins] 中使用 Groovy 创建文本文件?
我有一个Builflow
. Groovy script
我似乎无法创建新文件。该命令确实执行了,但我在workspace
.
首先要在 WORKSPACE 中创建它,我需要知道它在哪里。
然后定义并创建文件
jenkins - 使用 Multijob 项目构建 Flow 作业工作问题
我已经在我的 multijob 中添加了构建流程作业。我在构建流程作业方面遇到了一些问题。每当我进行构建时,它总是执行两次。
以前有没有人遇到并解决过这个问题?
file-io - 使用 Groovy 从 Jenkins 主节点访问节点从属节点上的文件
我正在使用 Jenkins Build Flow 插件来实现并行化。Groovy DSL 执行某些文件操作。即使该选项Restrict where this project can be run
设置为在特定从属设备上运行作业,DSL 也会在主设备上运行。这不是故意的。
有人能告诉我如何限制 DSL 在指定的从站上运行吗?即使有一种方法可以通过 DSL 访问从属文件系统,也应该可以。
一般来说,我们如何使用 Groovy 从 Jenkins 主节点访问节点从节点上的文件?
工作区在从节点上,但是当我尝试将 FileSet 打开到远程 FilePath 时,上面的代码失败了。
jenkins - 使用 DSL 构建流程将选择参数传递给 Jenkins 中的另一个作业
我正在使用 Build Flow 插件来执行并行构建。我需要将选择参数(branch_name)从父作业传递给子作业。我不确定如何让这个工作。选择参数有多个分支名称。我怎样才能做到这一点?
这是代码示例,
我究竟做错了什么?请帮忙。谢谢。
jenkins - 如何在完成一组其他工作后触发 Jenkins 工作?
根据一组其他作业的完成情况,您只有一个作业的简单情况很简单:使用多作业或使用带有parallel { ... }
. 我试图解决的情况更普遍,例如:
我希望这些作业中的每一个都尽快触发,并且仅在其先决条件完成时触发。
看起来构建流程插件、连接插件或作业 DSL 插件都没有一个好的机制。当然,我可以开始我所有的工作并让他们投票给詹金斯,但这会很丑陋。
另一个死胡同是“上游作业触发器”。我想触发特定的作业构建,而不仅仅是上游作业的任何运行。
更新
一个答案提到了多任务插件。它确实可以用来解决这个问题,但调度和总构建时间几乎总是最坏的情况。例如,假设这个依赖图,构建时间如下所示:
使用 multijob 插件,您可以获得:
如果我有办法在所有先决条件都完成后准确地触发下一个工作,那么总构建时间将只有 57m。
这里的答案应该解释我如何获得这种行为,最好不要编写我自己的轮询机制。
更新 1 1/2 在下面的评论中,建议我将左侧任务和右侧任务组合成一个子任务。是的,这可以在这个例子中完成,但通常很难自动完成。例如,假设有一个额外的依赖关系:right2 依赖于 left1。在给定构建时间的情况下,最佳构建时间不应该改变,因为 left1 在启动 right2 之前很久就完成了,但是如果没有这些知识,您就不能再将 left1 和 left2 放在同一组中,而不会冒没有 right1 的风险可用的。
更新 2
看起来这里没有现成的答案。看来我将不得不自己编写一个系统 groovy 脚本。请参阅我自己对这个问题的回答。
更新 3
我们最终分叉了 multijob 插件并在其中编写了新的逻辑。我希望我们可以在一些清理之后将它作为一个新插件发布......
jenkins - Jenkins - 从 Build Flow Job 开始一个作业,其内部版本号与正在运行的作业相同
使用 DSL,我可以执行以下操作:
这很棒。似乎设置了下游作业的 BUILD_NUMBER 变量。但是,显示名称仍然是自动递增的编号,并且如果我之后手动启动作业,它将从错误的版本号(不是作为参数传递的版本号)递增。我猜还需要其他操作作为 shell 脚本或设置 BUILD_NUMBER 和 Displayname 并将其在配置中递增保存为 nextBuildNumber 文件。也许这个插件可以帮助:
https://wiki.jenkins-ci.org/display/JENKINS/Next+Build+Number+Plugin
问题是是否有更好的方法或者我应该继续朝着同一个方向努力?是否有更好的方法将下游作业的构建号设置为与构建流程作业相同?
jenkins - 即使上一个作业在 Jenkins 构建流程中失败,也按顺序运行下一个作业
我有一个构建流程,依次构建 4 个作业
例如;
即使之前的任何作业也失败了,我也想运行作业 4。我怎样才能在构建流程中做到这一点?
jenkins - 在从机上运行 jenkins DSL 脚本
我有一个构建流程项目,它有一个 DSL 脚本来配置流程。
这是我的脚本:
在我的工作配置中,我检查了Restrict where this project can be run
并给出了正确的从标签。
我的工作因以下错误而失败:
我发现 DSL 脚本在主节点而不是从节点上运行。
如何在从站上运行 DSL?(或者至少在slave上执行脚本)
谢谢