问题标签 [jenkins-shared-libraries]

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 投票
0 回答
410 浏览

jenkins - Jenkins 与 jacoco 共享 Groovy 库的代码覆盖率

我有一个共享的 groovy 库,它为 Jenkins 管道提供了一些步骤(在 vars 文件夹中)。对于这些步骤,我有 groovy 单元测试并想用它们计算代码覆盖率。我已经成功设置了 jacoco 并获得了我的对象的覆盖结果(在 src 文件夹中)。但是,jacoco 没有计算这些步骤的覆盖率,因为它们不在类路径上。

知道如何获得此步骤的覆盖范围吗?有这方面经验的人吗?

0 投票
1 回答
2515 浏览

jenkins - 将自定义步骤中的共享库类与 Jenkins 管道共享库一起使用

我正在为 Jenkins 管道设置一个共享库,并试图弄清楚如何将共享库中的类导入到我正在编写的自定义步骤中。

目录结构如下所示:

Versioning.groovy 文件定义了一些静态辅助方法来做一些事情。

我想从这样的地方调用这个方法calculateVersion.groovy

这样我的声明性管道就可以调用: def valid = calculateVersion "1.0.0"

但我收到此错误No such property: jenny for class: calculateReleaseVersions

是否可以从 vars 中的文件中引用共享库中的类来定义自定义步骤,这是如何完成的?

0 投票
1 回答
690 浏览

jenkins - 我可以为脚本管道中的方法创建一个共享库 .groovy 脚本吗?

我正在尝试将我工作场所的所有脚本化管道转换为声明性管道。我是新来的。我有一个有 2 种方法的脚本化管道。我能够完成其余的脚本以声明性但被困在方法上。由于声明性并不真正支持方法,并且由于我必须在其他声明性管道中多次使用此方法,因此我想将此方法描述为共享库中的 groovy 脚本。

我的问题是,由于这是脚本管道中的一种方法,我可以直接将我的方法复制粘贴到 groovy 脚本中,还是它需要 groovy 的确切语法我检查了 groovy 语法并且在那里并没有真正看到太多差异?

下面是其中一种方法:我可以将其复制到 getversion.groovy 之类的内容中并从我的 dec 管道中调用它吗?还是需要更改语法/代码才能放入 groovy 脚本?

}

在我试图转换为声明性的其他一些脚本化管道中还有一些其他复杂的方法,因此这些信息将非常有帮助。

谢谢

0 投票
1 回答
1064 浏览

jenkins - 无法在 Jenkins 共享库中实例化对象

目前我正在我的项目中创建一个 Jenkins 共享库,并在尝试实例化对象时遇到问题。

我的应用程序的树结构
- day#1
-- ./Jenkinsfile
-- ./src/File1.groovy
-- ./test/File1Spec.groovy
-- ./vars/file1.groovy

从我的 Jenkinsfile 中,我可以调用 file1.function,它会创建一个写入文件 ./src/File1.groovy 的类对象,它运行良好,但是在第 2 天,我又添加了一个类(src/File2.groovy)并尝试在 vars/file2.groovy 中创建一个对象,但失败并出现以下错误:

“com.cloudbees.groovy.cps.impl.CpsCallableInvocation”
“完成:失败”


- day#2
-- ./Jenkinsfile
-- ./src/File1.groovy
-- ./src/File2.groovy
-- ./test/File1Spec.groovy
-- ./test/File2Spec.groovy
-- ./vars /file1.groovy
-- ./vars/file2.groovy

谁能给我一个线索如何解决这个问题?

/普拉桑斯

0 投票
1 回答
3582 浏览

jenkins - 如何以声明性语法获取从共享库中的方法返回的值?

我正在使用管道声明性语法,我需要获取从共享库中的方法返回的值

0 投票
0 回答
444 浏览

swagger - 类型“com/fasterxml/jackson/dataformat/yaml/YAMLFactory”(当前帧,堆栈[0])不可分配给“com/fasterxml/jackson/core/JsonFactory”

在 jenkins 共享库管道中使用 swagger 解析器时出现此错误

Groovy 葡萄抓斗:

堆栈跟踪:

0 投票
0 回答
3169 浏览

jenkins - Jenkins管道:从文件加载属性

以下管道代码运行良好:

但是,当我尝试将读取文件的逻辑放入 lib(named getNumber.groovy) 并在管道中调用它时,如下所示:

这就是管道(test.groovy)调用这个库的方式:

它总是失败并出现以下错误:

有什么建议吗?如果我想将逻辑封装在一个库中,如何解决它?

[编辑] 如果我更改此段

对此:

有用。但我只是好奇为什么前一个不能工作。

0 投票
1 回答
4992 浏览

jenkins - 如何在詹金斯管道中导入文件夹级共享库

首先我对文件夹级共享库的理解:这是一个 groovy 脚本,我可以将它放置在我希望它使用的存储库中的任何位置(即我的 Jenkinsfile 所在的位置)。

如果这是错误的,请告诉我。

我的问题:我怎样才能包含这个库。对于全局库,我可以@Library($libraryName)用来导入我注册为全局库的库。但是对于文件夹级库,没有指定名称。我如何导入它们?我真的必须像这个答案中演示的那样指定 git repo吗?

0 投票
1 回答
1235 浏览

jenkins - Accessing plugins in jenkins shared library classes

I wanted to create a class in /src directory which can access docker and other plugin steps.

So I have a class that looks like this;

Now in Jenkinsfile I will have

What i dont like is how I have a constructor for each object so that I can call methods that belong to that object. Is there a better object that i can use for my constructor instead of having to use env, steps, docker, etc?

Also, what pipeline steps are available under steps object? same for env?

0 投票
1 回答
2363 浏览

jenkins - 如果未包含在脚本中,Jenkins 库步骤将失败

我有一个奇怪的问题,我似乎不太明白。我编写了一个自定义step,它接受用于更轻松地克隆 github/bitbucket 存储库的参数。工作得step很好——它调用了适当checkout()的 forbranchesprs,但由于某种原因,这只有在你从 a 调用它时才有效script { gitUtils.cloneRepo(...) }。如果您不使用script { }带有超级奇怪异常的 a 包裹它,它在声明性管道中不起作用:

任何想法为什么会发生这种情况?