我开始实现Jenkins共享库,并尝试使用intellij作为我的想法来编写我的jenkinsfile。
如何将功能从共享库存储库转移到另一个存储jenkins文件的存储库中。
仅是为了澄清从jenkins运行时对我来说是可行的,但是我需要一种简单的方法来使用共享库回购中的功能来编写我的jenkins文件。
答案 0 :(得分:2)
您可以尝试在您的IDE中使用Jenkins提供的 IntelliJ IDEA GSDL 文件。
将内容从http://<JENKINS>/job/<PIPELINE_JOB>/pipeline-syntax/gdsl
下载到pipline.gdsl
文件中,然后将此文件添加到您的IntelliJ Jenkins Pipeline 项目源文件夹中。
(您可能还希望将该文件添加到SCM忽略列表中。)
在之前和之后自动补全添加GDSL文件:
在 Jenkins UI 上,您在管道项目中的“管道语法> IntelliJ IDEA GSDL”下找到了GSDL文件。
但是,我发现此解决方案有一些警告,要求我手动编辑pipeline.gsdl
文件,但这可能与我最新的Jenkins安装(?)有关:
/var
文件夹),但没有定义在该变量上定义的方法。 parallel
类上的错误(?),ParallelStep
步骤未正确导出(知识来源:Veaceslav Gaidarji's blog。)
答案 1 :(得分:1)
您可以将jenkins共享库创建为具有特定组ID,工件ID和版本的Maven项目(或gradle,这无关紧要)。每当更改共享库时,都应执行“ mvn install”(此目标用于将共享库jar工件添加到本地maven存储库)。在将要编写jenkins文件的另一个存储库中,您还应该创建一个maven项目,并将共享库添加为maven依赖项。现在,您可以在jenkins文件中使用共享库中的代码。
答案 2 :(得分:1)
我在与IntelliJ IDEA结合使用mkobit的jenkins-pipeline-shared-libraries-gradle-plugin方面有很好的经验。
此插件的一些很棒的功能是
我个人是在共享lib项目中开发管道的,并在通过单元测试后将管道集成到目标存储库中。
还有一个example repository用于演示如何使用此插件。