通常在查看脚本化的jenkins管道代码时,我会看到这种模式...
step([$class: 'GitHubSetCommitStatusBuilder',
statusMessage: [content: 'Pipeline Started']])
我没有幸运地找到关于这种技术的文档,如果有人可以解释这是做什么以及何时/为什么它有用,我会很高兴。我相信这是一种实例化和填充底层groovy类的成员的方法 - 但更多细节将不胜感激。
这也记录在哪里?
答案 0 :(得分:4)
以下是a reference,简要说明了语法。基本上,您为step()函数提供了名称 - 值对形式的参数映射。第一个参数,特别是由名称$ class表示,告诉函数实例化哪个类(插件)。
似乎也不推荐使用这种语法,而是使用更短的语法,也在同一链接中进行了解释。
答案 1 :(得分:0)
我也在努力学习这种语法,但遗憾的是还没有找到任何文档。
我想这种语法用于进行实例初始化。
所有步骤类都实现接口BuildStep
。加载脚本后,启动所有步骤实例,然后在构建过程中调用它们的perform
方法。
以上都是我的猜想。
答案 2 :(得分:0)
“ Pipeline:基本步骤” github存储库文档中还有另一个快速参考:
https://github.com/jenkinsci/workflow-basic-steps-plugin/blob/master/CORE-STEPS.md
语法
作为示例,您可以编写管道脚本:
node {
sh 'make something'
step([$class: 'ArtifactArchiver', artifacts: 'something'])
}
在这里,我们正在运行标准的将工件在构建后的动作归档(hudson.tasks.ArtifactArchiver),并配置“要归档的文件”属性(工件)来归档我们在先前步骤中生成的文件。查看要使用的类和字段名称的最简单方法是使用“管道配置”页面中的“片段生成器”功能。
有关当前支持步骤的列表,请参见兼容性列表。
简化的语法
Jenkins核心自2.2版开始的构建步骤和构建后操作,在某些插件中根据其各自的更改日志,具有定义的符号,这些符号可简化语法。 Snippet Generator将在可用时提供此功能。例如,上面的脚本也可以这样写:
node {
sh 'make something'
archiveArtifacts 'something'
}
NB:简化的语法引用了Plugin Steps parameters