Jenkins与intellij共享库

问题描述 投票:3回答:3

我开始实现Jenkins共享库并尝试使用intellij作为我的ide来编写我的jenkins文件。

如何从共享库存储库中获取函数到其中包含jenkins文件的其他存储库。

只是为了澄清从jenkins运行时对我有用但我需要一个简单的方法来编写我的jenkins文件,使用来自shared-lib repo的函数。

jenkins intellij-idea jenkins-pipeline jenkins-groovy jenkins-shared-libraries
3个回答
2
投票

您可以尝试在IDE中使用Jenkins提供的IntelliJ IDEA GSDL文件。

http://<JENKINS>/job/<PIPELINE_JOB>/pipeline-syntax/gdsl中的内容下载到pipline.gdsl文件,并将此文件添加到IntelliJ Jenkins管道项目源文件夹中。 (您可能还想将该文件添加到SCM的忽略列表中。)

添加GDSL文件之前和之后的自动完成:

autocompletion without GSDL autocompletion with GSDL

在Jenkins UI上,您可以在“管道语法> IntelliJ IDEA GSDL”下的管道项目中找到GSDL文件。

Jenkins GSDL

但是,我发现这个解决方案的一些注意事项需要我手动编辑pipeline.gsdl文件,但这可能与我不是最新的Jenkins安装(?)有关:

  • 自定义全局变量(来自/var文件夹)在GSDL文件中被考虑,但在该变量上定义的方法不是。
  • 由于parallel类的错误(?),ParallelStep步未正确导出

(知识来源:Veaceslav Gaidarji's blog。)


1
投票

您可以将jenkins共享库创建为具有特定组ID,工件ID和版本的maven项目(或gradle,无关紧要)。每当更改共享库时,都应执行“mvn install”(此目标用于将共享库jar工件添加到本地maven存储库)。在另一个您将编写jenkins文件的存储库中,您还应该创建一个maven项目,并将您的共享库添加为maven依赖项。现在,您可以在jenkins文件中使用共享库中的代码。


1
投票

我和mkobit结合IntelliJ IDEA对jenkins-pipeline-shared-libraries-gradle-plugin有很好的经验。

这个插件的一些很棒的功能是

  • 用于验证源代码的基本Groovy编译
  • 使用Jenkins管道单元进行单元测试
  • 在库中使用插件和Jenkins核心类
  • @Grab对库的支持(由于问题,测试仅限于@JenkinsRule样式集成测试)
  • @NonCPS注释可以在主源代码中使用
  • 使用Jenkins Test Harness进行集成测试

就个人而言,我在共享库项目中开发我的管道,并在通过单元测试后将管道集成到目标存储库中。

还有一个example repository用于演示使用此插件。

© www.soinside.com 2019 - 2024. All rights reserved.