问题标签 [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.

0 投票
2 回答
9837 浏览

jenkins-pipeline - 如何将 Jenkins 共享库中的类导入管道

我在共享库的 /var 目录中使用了一些全局方法,一切正常。现在我需要保持进程的状态,所以我正在编写一个 groovy 类。基本上我在“/src”中有一个名为“ClassTest.groovy”的类,它是这样的;

在管道开始时

结果:

WorkflowScript:2:无法解析类 ClassTest @line 2,column 1.
import ClassTest

以前,我刚刚好

并使用这些方法

方法在文件'/var/libraryTest.groovy'中,一切正常。所以我知道共享库就在那里,但我对 groovy / Jenkins 处理类 / 共享库的方式感到困惑。

导入类的正确方法是什么?我在文档中找不到简单的示例(带有 groovy 文件、文件结构和管道)。

编辑:我将文件移动到'src/com/company/ClassTest.groovy'并将管道修改为

但现在错误是

意外令牌:包@第 2 行

groovy 文件的前两行是:

0 投票
1 回答
629 浏览

jenkins-pipeline - 在 groovy 中创建自定义步骤

我正在使用 jenkins 管道并拥有一个共享的全局库。我创建了几个用户可以使用的函数,但是我面临的主要问题是在控制台输出和蓝海中有更好的输出:有没有办法在 groovy 中创建一个命名块(例如在调用 sh 函数时输出包含在里面)?我试着玩这样的阶段:

然而这种方法并没有奏效。我知道您可以通过为 Jenkins 编写插件然后在您的 groovy 脚本中调用该函数来创建自定义步骤,我只是在徘徊,如果有一种方法可以直接在 groovy 中编写这样的东西,比如在我的库中。

还有没有办法让输出静音?

提前感谢大家

0 投票
1 回答
3990 浏览

jenkins - 无限数组作为 Jenkins 参数

我正在尝试创建一个 Jenkins 作业,其中 Job 遍历一组值。数组项的数量不固定,在后续构建中可能会有所不同。

例如,我的工作遍历以下一组数组值:

服务器名称:server1.example.com IP:1.1.1.1 用户:Homer

服务器名称:server2.example.com IP:2.2.2.2 用户:Bart

.

.

服务器名称:serverN.example.com IP:xxxx 用户:Ned

该作业使用值 {ServerName: server1.example.com, IP: 1.1.1.1, user: Homer} 运行它的第一次迭代,使用值 {ServerName: server2.example.com, IP: 2.2.2.2, user: Bart 运行第二次迭代} 等到 N 次迭代。

这里,重要的一点是 N 不是固定的。

我查看了 JSON/groovy 的扩展选择参数,但找不到解决数组项数量变化问题的解决方案。

是否有可以在这种情况下使用的插件,如果有,正确的用法是什么?

0 投票
2 回答
17935 浏览

jenkins - Jenkinsfile 中奇怪的变量作用域行为

当我运行以下 Jenkins 管道脚本时:

我收到此错误:

如果从def中删除some_var,它可以正常工作。有人可以解释导致这种行为的范围规则吗?

0 投票
2 回答
10356 浏览

jenkins - 在 Groovy 中使用分隔符拆分字符串并避免 IndexOutOfBoundsException

我想将输入参数拆分inputDetails为单位级别。我正在使用 tokenize 来执行此操作。这是我的代码:

常规代码:

输出:

此输出是正确且符合预期的。但是,如果我将 Groovy 代码的第一行更改为以下内容:

我收到以下错误消息:

我该如何解决它以防止IndexOutOfBoundsException同时支持1234-a0-12;1111-b0-341234-a0-12;1111-b0输入?

0 投票
1 回答
3974 浏览

groovy - 获取未知类型:在 Jenkins Pipeline 中导入 groovy

我正在尝试使用 groovy 创建一个 Jenkins 流水线脚本。但是,该import语句给了我一个编译错误-未知类型:导入。不知道为什么。

截图附在这里

0 投票
1 回答
2190 浏览

jenkins - Jenkins 在从节点中构建日志

我正在尝试将我们的詹金斯构建日志推送到 S3。我在构建阶段使用了 Groovy 插件和以下脚本

然后我使用 S3 插件将 .txt 文件推送到 S3。

但是这个脚本从主节点获取构建日志文件。构建日志如何从从节点传输到主节点?我可以在没有主节点参与的情况下访问我的从节点上的构建日志文件吗?

从节点必须在某处构建时保留构建日志?我似乎找不到它。

0 投票
1 回答
2875 浏览

jenkins - 使用共享 \vars 库在 Jenkins 中定义文件夹级别变量

所以我试图通过将它们放在\vars目录中的一个 groovy 文件中来定义文件夹级别的变量。

唉,文档太糟糕了,不可能弄清楚如何做到这一点......假设我们必须使用全局变量,G1并且G2这是我们在 groovy 文件中定义它们的方式吗?

假设 Groovy 文件被调用XYZ.Groovy,我如何在文件夹中定义它以便它可用于文件夹的脚本?

假设我克服了这一点,并且那LIBXYZ是文件夹与/vars目录中的东西相关联的名称,那么假设当我打电话时是否正确

它会XYZ提供吗?

在那种情况下,是XYZ.G1访问全局变量的方法吗?

谢谢。

0 投票
1 回答
4684 浏览

jenkins - 如何在多行 shell 中读取 Jenkins 管道变量?

我正在尝试创建一个 Jenkins 管道,我需要在其中执行多行 shell 命令。

但它总是以“找不到命令”的形式返回错误。如果我运行相同

是否有不同的方式来访问多行 shell 中的变量?

0 投票
1 回答
731 浏览

shell - Jenkins groovy 管道搜索和比较

我需要以下工作的解决方案 - 搜索 value 变量BRANCHVERSIONver_list比较它们并使用适当的。

BRANCHVERSION"6.200.01"这样

​ver_list 看起来像这样

如果 BRANCHVERSION不等于 中的任何值ver_list,则必须从按降序排序的列表中选取下一个最接近的值(如果 BRANCHVERSION= 6.200.01,则必须选取 6.200.00)如果 BRANCHVERSION等于 中的任何值ver_list,则该值被拾取。

我的管道描述如下:

输出