问题标签 [jenkins-groovy]
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.
batch-file - Jenkins groovy 在循环中运行 bat 文件
我有一个 .txt 文件遍历他的每一行,将每一行作为我的 bat 脚本的参数发送。
运行下面的代码,他收到第一个参数,但是当 bat 在第一次失败时它不再继续运行其余的文件行。
输出示例:
请注意,如果我按以下方式切换,它将打印完整列表:
知道我做错了什么吗?
jenkins - 如何在 Jenkins 中获取由管道启动的作业列表?
我试图用这个函数在 Jenkins 中编写系统 groovy 脚本:
- 作业/管道的用户输入名称。
- 用户获取内部版本号列表并选择一个。
- 然后由父作业运行的每个作业都将被标记为永久保留。
我坚持获取由父构建运行的所有作业的列表。我可以获得构建列表:
输出为:[#10,#9,#8,#7,#6]
以前有人做过吗?
groovy - 将详细的 ansicolor 命令抑制到詹金斯控制台输出
我已经为我的日志记录目的定义了一个帮助文件,如下所示:
记录器.groovy
然后我在我的主构建文件中使用它:
正确执行此操作会将我的文本显示为绿色(此处无法模仿),但它也会打印很多垃圾:
输出:
我怎样才能让它禁用所有无关的源代码行?我想在我的主脚本中启用该功能,我真的不需要每次我想记录一些东西时都需要它。
我曾尝试将 shebangs 放在 logger.groovy 文件的顶部,但无济于事。我的 jenkins 实例也在 Windows 上运行,这可能有助于解释原因。我也尝试过放入set +x
info() 方法,但这只会导致以下异常,这可能是由于沙箱环境
我不知道为什么我会遇到这样的困难。其他人只是处理它还是我在做一些不寻常的事情?
jenkins - 如何通过 groovy Web 控制台检索作业配置?
我有 Jenkins 有数百个工作,我需要找到运行指定 gradle 任务的工作。我看到以下解决方案 1.retrieve all jobs (Jenkins.instance.projects) 2.iterate over them 3.get xml config 并验证子字符串的存在
问题是如何从 hudson.model.FreeStyleProject 检索 xml 表示?或者可能将这些数据存储为地图,而不是问题将如何调用以及如何获取它?
bash - 从 jenkins groovy 脚本中的 bash 脚本中捕获退出代码
从 Jenkins Groovy 脚本执行 bash 脚本copy_file.sh
并尝试根据 bash 脚本生成的退出代码发送邮件。
copy_file.sh
:
部分groovy script
:
现在,不管exit 1
bash 脚本中的 s 是什么,groovy 脚本总是在获取返回码0
并rc
发送Passed!
邮件!
有什么建议为什么我无法在这个 Groovy 脚本中接收来自 bash 脚本的退出代码?
我需要使用返回码而不是退出码吗?
git - 如何获取 GitChangeSet 对象的存储库名称或 URL?
我有一个GitChangeSet
对象(最终来自构建)。我想找到与该提交关联的存储库名称或 URL。但是,该对象的任何属性似乎都没有暗示此提交最终来自何处。例如:
我通过迭代得到了这个提交对象build.changeSets
(我相信它来自类hudson.model.AbstractBuild
)。我确实知道这个特定的提交来自一个全局共享库存储库,而不是与这个构建关联的主存储库,但我没有看到任何明显的方式来以编程方式提取该信息。 如何以编程方式确定GitChangeSet
对象(或一般其他对象hudson.model.AbstractBuild.changeSets
)来自哪个存储库?
作为上下文,我正在为失败的构建开发一个电子邮件报告,其中收集与失败的构建相关的提交列表。由于我的作业之间存在复杂的上游/下游关系,一个存储库中的提交可能会触发一系列构建,因为成功的构建会触发依赖上游作业的下游作业。此外,还有其他与我的构建相关的存储库,特别是全局共享库存储库。我希望我的报告提及最终导致当前版本的一系列构建的提交。到目前为止,找到这些上游提交并没有太痛苦(感谢UpstreamJobCause
),但我已经挂断了确定这些提交最终来自哪里。如果您不知道我的问题的答案,我将不胜感激评论中有关此问题的替代方法的任何建议。
groovy - 在 Groovy 和 Jenkins Pipeline 中组合多个 collectEntries
我正在尝试collectEntries
在我的 Groovy 脚本中使用多个系列。最好看一下代码,现在我得到了:
在“UsedPorts.txt”文件中,不同的端口由换行符分隔,例如:
所以这个数字被存储在变量ports
中,然后这个变量被用来为每个端口启动一个服务器实例。因此,在这种情况下,它将通过以下命令启动 3 个不同的服务器实例:
因为parallel steps
它启动了3个服务器实例同时使用不同的端口。
那工作正常,但我有另一个文件,需要再次做同样的事情。所以在我的第二个文件中有如下条目:
我再次创建了一个变量来存储我的 3 个条目:
这是我尝试过的:
但我不能collectEntries
用逗号分隔我的第二个,因为它给了我一个语法错误。现在我的问题是,如何在同一个命令中使用这个变量。甚至可能吗?
谢谢
更新#1
使用 Szymon Stepniak 的答案后,我的新代码如下所示:
这导致了错误java.lang.ArrayIndexOutOfBoundsException
更新#2
内容AppiumUsedPorts.txt
:
内容DeviceIDs.txt
jenkins - 如何在 groovy 管道中将依赖的并行任务设置到同一个从站
我有 3 个任务需要在 3 个管道中运行,以便任务 1 和 2 并行运行。
任务 1 需要在后台静默运行(如何设置?)
任务 2 是工作人员,
任务 3 在任务 2 完成后触发。
任务 1 在后台运行,需要在任务 2 完成时终止,以便触发任务 3。(不知道如何设置。)
在这种情况下,任务 1 写入文件。如果在收到 Jenkins 的终止时正在写入文件,任务 1 的终止会导致问题吗?
对此的任何帮助将不胜感激。
jenkins-groovy - windows上jenkins groovy脚本中的环境变量解析
在詹金斯,当它运行我的工作时,有几个 svn 结帐。这些中的每一个都会产生一个环境变量 SVN_REVISION_N,其中 N 是结帐索引。我想解析所有这些并找到最高版本。
groovy - Groovy 脚本中的全局方法
根据另一个答案,如果您定义一个没有def
它的变量将变为“全局”,因此您可以从脚本中的任何位置访问它。我怎样才能用一种方法来做到这一点(因为没有def
AFAIK 就没有定义)?
记录在案:我正在定义 Jenkins 管道,并希望从各个阶段访问一些“全局”方法