我开始实现 Jenkins 共享库并尝试使用 intellij 作为我的 ide 编写我的 jenkinsfile。
如何从共享 lib 存储库获取函数到另一个存储库,其中包含 jenkins 文件。
只是为了澄清从 jenkins 运行时对我有用的东西,但我需要一种简单的方法来使用 shared-lib repo 中的函数来编写我的 jenkins 文件。
我开始实现 Jenkins 共享库并尝试使用 intellij 作为我的 ide 编写我的 jenkinsfile。
如何从共享 lib 存储库获取函数到另一个存储库,其中包含 jenkins 文件。
只是为了澄清从 jenkins 运行时对我有用的东西,但我需要一种简单的方法来使用 shared-lib repo 中的函数来编写我的 jenkins 文件。
您可以尝试在 IDE 中使用 Jenkins 提供的IntelliJ IDEA GDSL文件。
将内容下载http://<JENKINS>/job/<PIPELINE_JOB>/pipeline-syntax/gdsl
到一个pipline.gdsl
文件中,并将此文件添加到您的 IntelliJ Jenkins Pipeline项目的源文件夹中。(您可能还想将该文件添加到您的 SCM 忽略列表中。)
添加GDSL文件前后的自动补全:
在Jenkins UI上,您可以在“管道语法 > IntelliJ IDEA GDSL”下的管道项目中找到该 GDSL 文件。
但是,我发现此解决方案的一些注意事项需要我手动编辑pipeline.gdsl
文件,但这可能与我的 Jenkins 安装不是最新(?)有关:
/var
文件夹),但没有在该变量上定义的方法。parallel
步骤未正确导出ParallelStep
(知识来源:Veaceslav Gaidarji 的博客。)
我对mkobit 结合 IntelliJ IDEA 的jenkins-pipeline-shared-libraries-gradle-plugin有很好的经验。
这个插件的一些很棒的功能是
就个人而言,我在共享库项目中开发我的管道,并在通过单元测试后将管道集成到目标存储库中。
还有一个示例存储库用于演示使用此插件。
您可以将 jenkins 共享库创建为具有特定组 id、工件 id 和版本的 maven 项目(或 gradle,没关系)。每当您更改共享库时,您都应该执行“mvn install”(此目标用于将共享库 jar 工件添加到本地 maven 存储库)。在您将编写 jenkins 文件的另一个存储库中,您还应该创建一个 maven 项目并将您的共享库添加为 maven 依赖项。现在您可以在 jenkins 文件中使用共享库中的代码。