问题标签 [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 投票
5 回答
2088 浏览

jenkins - 如何从 jenkins 全局库生成 groovydoc

我有一个詹金斯全球图书馆,我想记录它。我想使用groovydoc。

该库包含类和全局变量

为类生成文档没有问题:

但是如何为 vars 生成文档呢?

0 投票
1 回答
3782 浏览

jenkins - Log4j2 写入 Jenkins 管道作业控制台输出?

如何使用 log4j2 将消息记录到 Jenkins 管道作业控制台输出(在作业运行时)?

通过控制台输出,我的意思是从通常找到的作业输出的文本日志:

  • http://localhost:8080/job/<Job Name>/<Job Run Number>/console
  • C:\Program Files (x86)\Jenkins\jobs\<Job Name>\builds\<Job Run Number>\log

例如,从使用共享库的 Jenkins 管道作业中,调用 log4j2 的类Logger.info()

理想情况下,我希望能够在运行时设置额外的 log4j2 配置以添加针对当前正在运行的作业的控制台输出流的“附加程序”。

我计划尝试的一件事是直接从 log4j2 附加到C:\Program Files (x86)\Jenkins\jobs\<Job Name>\builds\<Job Run Number>\log文件,这是我必须在运行时设置的配置。但是,我不知道这与 Jenkins 的控制台输出视图的兼容性如何,或者 Jenkins 在作业执行期间是否锁定了文件,或者在 Jenkins 写入文件的同时是否会出现未知问题。

0 投票
1 回答
772 浏览

jenkins - jenkins 在我自己的共享库中使用其他变量

我正在编写自己的共享库。现在我想在我的代码中使用全局变量。我怎样才能做到这一点?

IE 我写了一个类。

0 投票
4 回答
4425 浏览

jenkins - 我可以在共享库中定义和参数化整个声明性管道吗?

本质上,我希望我的 Jenkinsfile 看起来像这样:

然后我的共享库(/vars/descriptivePipeline.groovy)将如下所示:

我想集中管道配置,所以我不必担心 Jenkinsfile 蔓延。声明性管道可以做到这一点吗?

0 投票
1 回答
3125 浏览

jenkins - 如何从共享库 src 文件运行完整的 Jenkins 脚本化管道阶段

我最近开始使用 Jenkins 管道中的 Jenkins 共享库。我创建了一个“func.groov”类并将其放在“src/org/prj/func.groovy”下:

Jenkinsfile(脚本)看起来像:

所以目前它有效。我的问题是如何创建一个完整的阶段(如“A”)作为 func.groovy 共享库中的一个函数,其中包括,例如:

  1. GIT 结帐步骤
  2. sh 编译步骤
  3. Artifactory 部署步骤

我实际上希望使用 Jenkins 管道和分片库创建一个“构建块”(在我的示例中为“构建”)。

0 投票
1 回答
1172 浏览

jenkins - Jenkins Pipeline - 共享 jar 中的调用函数

所以这是我的项目设置

  1. 一个单独的 groovy 项目
  2. 多个管道

所有管道脚本都引用了共享的 groovy 项目。我浏览了共享库和所有需要在 Jenkins 全局配置中注册的需求。

没有它有什么办法吗?我尝试使用 Grab,但最终出现错误

0 投票
1 回答
650 浏览

groovy - 詹金斯管道:从另一个詹金斯文件中读取值

我使用一个共享的 jenkins 库并从那里克隆另一个 git repo。该 repo 包含一个类似于以下内容的 jenkinsfile:

我想读“someValue”。目前我正在使用正则表达式执行此操作,但这样我只能检索字符串而不是更复杂的值,例如地图。

共享 jenkins 库的文档中,值是通过以下方式从 jenkinsfile 加载的:

如何以类似的方式从工作区中的 Jenkinsfile 中提取值?身体从哪里来?

感谢您的时间

0 投票
1 回答
1009 浏览

jenkins - 在 Jenkins 管道中成功加载环境变量,但在管道用作共享库时加载

在我的声明性 jenkins 管道代码的一个阶段,它执行 bash 脚本(sh '''./a.sh'''脚本“a.sh”在外部维护) - 在该脚本中,“jarVersion”的值被注入 ${WORKSPACE}/.jarVersion ( echo "jarVersion=${jarVersion}" > ${WORKSPACE}/.jarVersion) . 在后期,我们需要获取 jarVersion 的值。我们使用load "${WORKSPACE}/.jarVersion"and${jarVersion}来获取值。当我们在管道脚本中这样做时,它会起作用。

但是,当我们将此管道设置为共享库(放入/vars/testSuite.groovy)并在另一个管道脚本中调用它时。它无法识别 var ${jarVersion}

请告知如何解决该问题。一个常见的问题是:如何将脚本中的值从阶段 A 转移到阶段 B?

我希望它可以像在管道脚本中一样工作。

但它显示:

0 投票
6 回答
14426 浏览

jenkins-shared-libraries - 访问 jenkins 共享库代码中的环境变量

当我使用我的新共享库时,我无法访问由 Jenkinsfile 直接执行或通过 var/*.groovy 脚本执行的任何 src 类的环境变量。即使我将withEnv添加到 var/*groovy 脚本,此问题仍然存在。

让环境变量传播到 jenkins 共享库 src 类执行的技巧是什么?

詹金斯文件

共享库 var/lib.groovy

共享库 src/MyClass.groovy

** 运行结果 **

0 投票
1 回答
1241 浏览

jenkins - 为什么 Jenkins 在沙箱内运行共享管道库?

我创建了一个 git repo,其中包含以下文件src/com/me

然后,我将该 git repo 添加到 Manage Jenkins -> Configure System 中的“Global Pipeline Libraries”部分。

然后我使用以下管道脚本创建了一个简单的管道项目:

当我运行作业时,它失败了:

org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException:脚本不允许使用方法 groovy.lang.GroovyObject getProperty java.lang.String (com.me.JobTriggerInfo.wasStartedByTimer)

我的理解是,基于Jenkins 官方文档,全球管道库将在沙箱之外运行。

我错过了什么?我需要做什么才能让此代码从全局管道库而不是沙箱中运行?