我为jenkins创作了自定义插件。是否可以从Jenkinsfile调用它(以及如何,因为我找不到文档),还是应该从头开始重写Jenkinsfile中的逻辑?
答案 0 :(得分:2)
现在回复,因为我也很难转换我的插件以支持Pipeline插件和文档令人困惑和不完整。
事实证明,如果你有一个可行的自定义Jenkins插件,那么就没有什么需要做的了。确保您的插件至少支持Jenkins 2.3版,并确保从structs
导入了包org.jenkins-ci.plugins
。
在插件的@Symbol("%desiredPluginName%")
之上添加%desiredPluginName%
(将@Extension
替换为您想要的任何名称)'描述。确保插件名称不包含特殊字符 - 否则您将在启动时收到无意义的错误消息。
将implements SimpleBuildStep
添加到您的插件&#39;步骤声明并实现public void perform(Run<?, ?> run, FilePath workspace, Launcher launcher, TaskListener listener)
方法。与Step中的perform
不同,此方法不返回任何内容,因此如果需要指示构建失败,则必须调用run.setResult(Result.failure)
方法,而不是简单地返回false。
这应该足以开始使用您的插件。将它安装到一些测试Jenkins服务器并创建自定义Jenkins管道项目。在主页面上,您将看到
(?)管道语法
菜单按钮。单击它,然后在下拉列表中搜索您之前选择的插件名称。一旦找到它,它应该显示默认的插件配置页面。输入您需要的所有参数,然后点击Generate Pipeline Script
。这个生成的代码最终可以插入到Jenkins文件中。
如果你不想看到丑陋的['$class': '', ...]
配置行,你可以进一步阅读关于开发者指南的@Symbol
,该指南已于今年发布,但对我来说最困难部分是获取Jenkinsfile配置代码。此外,还有a good example步骤,用于将常规插件转换为与Pipeline兼容的插件。
答案 1 :(得分:-1)
https://github.com/jenkinsci/pipeline-plugin/blob/master/DEVGUIDE.md详细解释了如何使插件与Pipeline兼容。