问题标签 [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 - 在声明式詹金斯管道中动态定义并行步骤
我尝试并行化动态定义的函数集,如下所示:
我最终得到的是:
尽管步骤是在“运行”阶段定义的。无论如何,我想要实现的是一组动态定义的并行执行的函数。
jenkins - Jenkins-如何在声明式管道中使用文件参数
如果我以声明方式使用 File 参数,它会给出以下异常。
但同样的命令在自由式工作中也能正常工作。
如果不是 File 参数,是否有任何方法可以使用声明性方式将任何格式(xls、属性)的文件上传到 Jenkins 工作区?
java.lang.NullPointerException
at hudson.model.FileParameterValue.doDynamic(FileParameterValue.java:205)
at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)
at org.kohsuke.stapler.Function$MethodFunction.invoke( Function.java:343)
在 org.kohsuke.stapler.Function.bindAndInvoke(Function.java:184)
在 org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:117)
在 org.kohsuke.stapler.MetaClass$11。 dispatch(MetaClass.java:397)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:715)
原因:javax.servlet.ServletException
jenkins - 更改用于 jenkins 管道的默认 shell sh
"sh" 步骤默认为 windows 上的 cmd 和 linux 上的 bash。
如何在 Windows 上将 sh 步骤默认为 powershell?
PS 有很多 bash 别名,所以如果 Windows 代理上的“sh”默认为 powershell,我可能会在两个平台上使用相同的命令使用“sh”
jenkins - Jenkins 声明式管道 - 使用 AWS 的凭据
在我上一个 Jenkinsfile 中,我曾经有这个:
例如,我需要使用 AWS 凭据的所有阶段都使用 withCreds 进行包装,但是对于声明性语法,我必须在每个阶段withCredentials
都使用该块,这是不可接受的。我读到块中有一些选项,尽管我不知道如何在那里指定我的信用类,并且看起来这是错误的事情。credentials('aws')
environments {}
请让我知道如何将我的几个阶段包装withCredentials
在 Jenkins 声明式语法中。谢谢
powershell - Jenkins powershell 插件在声明式管道中不起作用
我正在尝试在声明性管道作业中运行 powershell 脚本,但它不起作用。它似乎有效,但不要什么都不做。
这是我的管道的一部分
这是管道日志中的输出
但是什么也没有发生,管道进入下一步。并且可以肯定我的脚本没有运行。相同的指令在可编写脚本的管道中运行得很好
我尝试了诸如“ps”之类的基本命令,效果很好。
难道我做错了什么?还是这个插件有问题?
一些附加信息
詹金斯版本:2.107.2
Powershell 插件版本:1.3
jenkins - Jenkins 声明性管道:文件更改或创建新分支时执行阶段
我喜欢仅在某些文件发生更改时才在声明性管道中构建一个阶段。这可以通过以下管道实现:
这不会在创建新分支时构建,因为当第一次构建分支时,Jenkins 中的变更集仍然是空的。
如何定义在某些文件更改或创建新分支时when
构建的条件?stage
jenkins-pipeline - 需要通过 git sha 来结帐到 Jenkins 多分支管道
是否可以使用参数允许用户将 git sha 传递给多分支管道,同时默认为分支的头部?此外,我只需要为 master 分支使用此功能。
我正在使用......
代码中的 Jenkinsfile
Jenkins 声明式管道
jenkins - Jenkins声明性管道中的手动构建步骤?
这是上一篇文章的后续问题,似乎没有得到真正的回答,而不仅仅是“这看起来很有希望”:
这是 CICD 管道的主要功能差距。声明式(1.2.9)的当前“输入步骤”要求整个管道必须在管道完成之前等待输入步骤(或者有一个不允许您稍后重新触发的超时)。根据代理的范围,它还可以阻止执行程序或要求您必须为每个构建步骤启动一个新的从属。
这是我最接近不吃掉执行程序的解决方案(管道级别“无代理”,在此处描述的所有阶段都定义了代理:https ://jenkins.io/blog/2018/04/09 /whats-in-declarative/)但是为每个构建步骤启动一个新的从属似乎很浪费时间,并且需要额外考虑来持久化您的工作空间。提供的最终解决方案是为输入设置一个“超时”,但这仍然不起作用,因为这样您就永远无法稍后将该构建移到阶段,并且需要重新构建。
这里的任何解决方案或建议将不胜感激。
jenkins - 仅在工作没有退步时才对故障后采取行动
我想在我的声明性管道中实现以下通知:
(回归)→作业开始失败!
(失败)→作业仍然失败。
(已修复)→ 作业已恢复。
似乎post
's 的条件不能做到这一点。相反,当构建失败时,两者都会failure
触发regression
。有一个changed
条件,但我认为这个任务想要的是unchanged { failure }
,它不存在。
如果之前的作业成功,上述配置将发送以下通知:
(作业失败)
工作开始失败!
工作仍然失败。
(作业失败)
工作仍然失败。
(作业成功)
作业已恢复。
当作业第一次开始失败时,会有额外的“作业仍然失败”消息。有没有办法解决这个使用post
条件?
或者,我怎样才能以另一种方式实现这种行为?我已经通过了post { always { // decide which message is appropriate } }
,但还没有弄清楚如何识别先前构建的状态。