繁体   English   中英

Jenkins 与 Intellij 共享库

[英]Jenkins shared library with intellij

我开始实现 Jenkins 共享库,并尝试使用 intellij 作为我的 ide 编写我的 jenkinsfile。

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

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

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

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

之前,加入GDSL文件自动完成:

没有 GDSL 的自动完成 使用 GDSL 自动完成

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

詹金斯GDSL

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

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

(知识来源: Veaceslav Gaidarji 的博客。)

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

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

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

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

还有一个示例存储库用于演示使用此插件。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM