问题标签 [jenkins-declarative-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.
jenkins - 声明性管道中的文件参数
我正在开发声明性管道并希望使用文件参数来读取其内容,但它没有按预期工作
我收到以下错误
以下是基本步骤插件提到的另一个选项
它在脚本步骤中工作,例如
但是如何在声明性脚本中直接使用它,因为我们使用了其他基本步骤,如 dir??
jenkins - Jenkins Pipeline Downstream Jobs - 在特定阶段继续下一个工作
背景
我们有多个声明性管道作业,可以从主管道作业中按顺序选择和构建它们作为下游作业。这将等待每个触发的作业完成,然后再开始下一个内联作业。
每个下游作业都有一个输入阶段,它将在继续之前等待用户输入工件提升。
问题
一旦当前作业进入输入阶段,是否可以让主作业继续并开始下一个作业?即在开始下一个内联作业之前不要等待用户输入
据我所知,这里唯一的选择是等待:true/false和quietPeriod:延迟。下面的示例显示了这些选项,但都不适合我们的场景。
docker - 在 Jenkins 声明式管道中使用 Docker for Windows
我正在使用 Jenkins 声明性管道和 Docker-for-Windows 代理通过Dockerfile
.
注意:不幸的是,目前还不是使用基于 Linux 的 docker 守护程序的解决方案,因为我需要运行 Windows 二进制文件。
设置: Jenkins master 通过 Docker 在 Linux 16.04 上运行。Jenkins 构建代理是
- Windows 10 企业版 1709 (16299.551)
- Docker-for-Windows 17.12.0-ce
Docker 18.x 在尝试使用 Windows Containers 时让我头疼,所以我回滚到 17.x。尝试使用 Jenkins 运行并且 nohup 不在路径上时,我仍然遇到一些问题,但是通过将 Git 二进制文件添加到 Windows 搜索路径(另一个参考)来解决它。我怀疑我当前的问题可能与此有关。
代码:我正在尝试初始化 aJenkinsfile
并在其中运行一个简单的 hello-world-printout。
/詹金斯文件
/Dockerfile
基本上,这应该是一个简单的打印“Hello, World!”的干净图像。但它在詹金斯身上失败了!
日志输出:
jenkins - 使用声明性 Jenkinsfile 在多分支管道上运行夜间作业
詹金斯版本 2.121.2
我设置了一个多分支管道。我正在使用声明性 Jenkinsfile。
我有一组测试需要很长时间才能运行。我希望这些对于任何有变化的分支都运行一整夜。
我尝试了一些事情,但我目前的失败尝试是:
在作业 > 配置下,我启用了“抑制自动 SCM 触发”
将 'Scan Multibranch Pipeline Triggers' > 'Periodically if not else run' 设置为 1 分钟(仅用于测试,我会在它工作时增加它)
在我的 Jenkinsfile(凌晨 4 点运行的示例)中,我也尝试过pollSCM()
:
在“扫描多分支管道日志”中,我看到以下内容,但凌晨 4 点没有作业运行(trigger()
在我的 Jenkinsfile 中的时间):
请问我做错了什么?
编辑:
所以我尝试了这个设置:
将 cron 设置为每 15 分钟一次
删除了 UI 'Suppress automatic SCM triggering' 中配置下的设置
但它只是在轮询发生的那一刻开始运行(在这个测试中是每小时 16 分钟)。
我什么都不做似乎注意我的 cron 设置?
如果我在 UI 的分支作业下进入“查看配置”,它会显示我的 Jenkinsfile 中的 UI 设置。
编辑(再次!):
因此,在最后一次编辑中,它确实立即运行,然后在 cron 时间再次运行。
现在在 UI 中再次启用设置“抑制自动 SCM 触发”。
我让它工作了!我意识到的主要问题 (a) 没有应用更改我认为直到第一次运行后运行 Jenkinsfile 发生更改?(b) 我还安装了下一个执行插件,以便更好地了解它的计划。
jenkins - 如何在詹金斯的声明性管道中修改脚本块中定义的变量
我已经在我的脚本中声明了一个变量TENTATIVE_VERSION,我需要使用来自执行脚本(或来自其他阶段的脚本本身)的值来定义/修改它,我该怎么做?我当前的脚本是这样的:
jenkins - Jenkins 声明性管道不正确的 svn 更改列表
我有一个自由式项目,我正试图转移到詹金斯的声明性管道项目。它使用 SVN,项目设置为轮询 SVN 存储库并使用 SCM 中的 Jenkins 文件进行配置。所有这些都正常工作。
我的问题是,每个构建的更改集还包括最后一次成功构建的所有更改的 4 个副本。最初的自由泳工作没有发生这种情况。虽然这有点烦人,但真正成为问题的是,现在所有这些更改和作者在构建失败时都会成为罪魁祸首,因此每个人都会收到电子邮件,而不仅仅是最近的更改。为每个构建列出的更改跨越数月,每个新构建都将其更改添加到完整列表中。
例如,如果我查看此项目的最新更改,我会看到 4 个 build #60 副本,其中包含一堆已经在 build #59 中的更改,然后是 4 个 build #59 副本,其中:
我该如何解决?
jenkins-declarative-pipeline - 如何在 Jenkins 声明性管道的阶段/步骤中将参数传递给 bash 命令?
我最近开始使用 Jenkins。我提供了两个参数来收集动态设置,并将在后期/步骤部分(在 bash 脚本中)使用它们。我参考了一些例子,例如
我尝试直接或通过环境、多个组合、单引号、双引号等使用参数。但是从参数收集的值仍然无法成功传递给 bash 命令。我相信这是一个非常基本的要求,但我找不到合适的工作示例。
这是我的示例代码。
jenkins - Jenkins 声明性管道添加 groovy postbuild 脚本
我有 groovy postbuild 脚本
现在我正在尝试将其转换为声明性管道语法
那么在失败选项卡中我可以添加 groovy 脚本吗?或者我必须添加阶段?我看到有 jenkins-badge-plugin 但不确定如何添加正则表达式来查找文本然后添加批处理
jenkins - Jenkins 声明式管道
我在 Jenkins 中使用声明式管道,我有 200 多个测试。我想将它们拆分为多台机器。我有一段代码必须修复,但我不知道如何修复。文档不是很好。有人可以解释一下这些代码行中发生了什么吗?
- splitTests 是一种语言功能,但并行性?
- $Class 'CountDrivenParallelism',他在这里创建了一个类?
- 什么是组或此运算符 [:]
jenkins - 使用正则表达式重试詹金斯管道声明性语法
我看到有重试失败构建的选项options { retry(3) }
。我使用带有正则表达式的导航器插件仅在正则表达式匹配时重试,但它不支持管道。
有没有办法只有在控制台日志或错误中匹配正则表达式时才重试,如果没有,我可以放随机时间延迟重试吗?