我们如何扩展Jenkins工作流程dsl?

时间:2015-06-18 13:11:25

标签: jenkins-workflow

如果我正在处理插件并想要使用这样的步骤切换:

step([$class: 'Gradle', 
           switches: "-PenableInstallerDistribution=true",
           tasks: 'build install',
           gradleName: '(Default)',
           useWrapper: true,
           makeExecutable: true,
           fromRootBuildScriptDir: true,
           useWorkspaceAsHome: true])

一个漂亮的dsl元素,如:

gradle switches: "-PenableInstallerDistribution=true",
       tasks: 'build install',
       gradleName: '(Default)',
       useWrapper: true,
       makeExecutable: true,
       fromRootBuildScriptDir: true,
       useWorkspaceAsHome: true

也许最重要的是,在片段生成器中显示,我该怎么办?我已查看了我能找到的文档,但仍无法找到有关扩展dsl的任何建议。

1 个答案:

答案 0 :(得分:1)

首先,如果你没有真正定制步骤配置而不是省略step,那么这可能是浪费时间,因为未来的Workflow核心版本可能包括“metasteps”的语法糖stepcheckout和(现在)wrap。 (任何SimpleBuildStep已经显示在step下的代码段生成器中。)

也就是说,如果您确实需要创建一流的步骤,则需要在workflow-step-api上添加插件依赖项,并且通常会扩展AbstractStepImplAbstractStepDescriptorImpl和{ {1}}。

如果您正在尝试实施JENKINS-26055,那么我会说有用的实现需要等待基础结构{{3}},因为仅包装现有的AbstractStepExecutionImpl构建器将不允许流在这一步中间,詹金斯重启(或奴隶断开连接)。