问题标签 [jenkins-pipeline]
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.
groovy - 如何将使用 Jenkinsfile (groovy)中的变量执行的 shell 命令的输出?
我在 Jenkinsfile (Groovy) 上有类似的东西,我想将标准输出和退出代码记录在一个变量中,以便以后使用这些信息。
我该如何做到这一点,特别是因为您似乎无法真正在Jenkinsfile
?
jenkins - Jenkins Workflow:基于工具输出并行化步骤
我想根据测试工具的输出并行化 Jenkins 阶段。但是,我遇到了一个问题,因为所有并行节点的定义都是一样的(除了jenkins-workflow插件中当前中断的循环)。精简工作流脚本示例:
虽然我希望结果如下:
我将所有三个节点都定义为三个- 正如在以下输出中看到的那样(注意重复的输出three
):
为什么会这样?这是另一个错误workflow-cps
,还是我出错了?并行示例不访问任何变量。
jenkins - 如何使用 Jenkins Pipeline 插件实现 Post-Build 阶段?
在阅读了解释Pipeline插件的Jenkins教程后,似乎插件应该可以实现Post-Build步骤。然而,关于具体说明的文档相当有限。
例如我想知道如何实现:
- 仅在构建成功时运行
- 仅在构建成功或不稳定时运行
- 不管构建结果如何运行
仅在构建成功时运行
(或添加
-Dmaven.test.failure.ignore=false
到MAVEN_OPTS
)仅在构建成功或不稳定时运行
(或添加
-Dmaven.test.failure.ignore=true
到MAVEN_OPTS
)无论构建结果如何都运行- 可以使用
/li>try / catch / finally
吗?
(我注意到最终构建状态设置为成功,即使某些阶段,即“构建”,由于它基于最后阶段设置而失败。这是否意味着最终构建状态需要明确设置,即。currentBuild.result = 'UNSTABLE'
?)
jenkins - 在不终止作业的情况下报告 Jenkins 管道中的 shell 脚本测试错误
在 Jenkins 流水线中,报告导致构建不稳定的 shell 脚本错误的推荐方法是什么(即,执行测试的脚本,但如果进一步失败则不应停止剩余的测试)
理想情况下,如果“测试”脚本失败,我们不会取消构建,而是在最后报告错误。这可以通过使用 catch 块包装“sh”步骤并将构建标记为不稳定来实现。但是,如果我们使用单个管道,所有这些错误日志都将混合在一个控制台日志中(我知道您也可以从管道视图中向下钻取,但需要查找)。
有推荐的方法来报告这些错误吗?想法包括:
- 将错误保存在数组中并在最后打印
- 捕获输出并写入junit文件
- 某种具有记录错误步骤的插件?如果有任何报告,这会将构建标记为不稳定?
例如
对于上下文:我们正在从每个分支有十几个作业的 Jenkins 设置迁移到单个 Jenkins 管道 Jenkinsfile 来代表整个事情。许多作业都是通过(退出代码 0)或失败的脚本测试。通过查看控制台日志查看错误消息。
jenkins - Jenkinsfile 和不同的分支策略
我正在尝试将 Jenkins 文件用于我们在 Jenkins 中的所有构建,但我遇到了以下问题。我们基本上有 3 种构建:
- pull-request build - 它将在代码审查后合并到 master,如果 build 有效
- 手动拉取请求构建 - 与上述相同的构建,但可以由用户手动触发(例如,如果我们有一些不稳定的测试)
- 一个初始的持续交付管道——这将构建代码、部署到存储库、从目标服务器上的存储库安装工件并在那里启动应用程序
我应该如何将上述所有构建包含到单个 Jenkinsfile 中。现在我唯一的想法是做一个巨人,如果它会检查它是哪个分支并会做这些步骤。
所以我有两个问题:
1. 在 Jenkinsfile 中这样做是否合适?
- 如何获取多分支作业类型中当前正在执行的分支的名称?
作为参考,这是我当前的Jenkinsfile
:
编辑:删除了基于意见的问题
jenkins - 禁用并发构建
背景:我们正在寻找关于如何优化我们的管道(以前的工作流程)的解决方案。
目前,我们运行了一些并行部署和测试,这些部署和测试分布在 2 个构建器上,每个构建器有 4 个执行器。
管道由 Git 推送触发,因此后续推送将触发多个构建。我们已经尝试了 stage concurrency: 1 选项,它很好地阻止了后续构建的步骤,但会在该特定阶段完成时启动。
问题:
我不确定这是最佳实践,但在我看来,最好不要执行新构建,直到前一个构建完成。(因为我们已经向它提交了资源,并且应该允许它完成,即使它不是最新和最大的提交)。
Q1:这是最好的做法吗?
Q2:我们如何抢占新的triggert构建,同时仍然运行前一个?(我可以想象迭代这个工作的构建并停止新的......)。
查看第一阶段的配置 [1]
[1] 第一阶段..
jenkins - 使用 jenkins 管道作为代码显示 fxcop 结果
我在构建 .net 解决方案项目的詹金斯有管道工作。运行 MS 测试并使用命令行(批处理)使用 FxCopCmd 进行静态代码分析。我想在 jenkins 中展示 fxcop 结果。我知道已经有一个 Violation 插件可用,但它有助于 FreeStyle 工作。我们如何使用 Pipeline Job 显示结果?
java - 如何从 Jenkins Multibranch Pipeline 插件中的 pom 获取 artifactId 和版本
我已经使用 Multibranch Pipeline 插件设置了 Jenkins,并且我已将其配置为在 GitHub 存储库中有提交时触发构建。我想.jar
将由 maven 构建创建的文件复制到自定义目录。为此,我必须指定文件的名称。问题是文件的名称包含文件中的 artifactId 和版本pom.xml
。而且版本经常变化。
有没有办法从pom.xml
文件中获取 Jenkins 中的 artifactId 和版本?我有红色这篇博文,但它说这些 Jenkins 变量只有在我在 Jenkins 中创建一个 Maven 项目时才有效。