Jenkins共享库和Jenkins管道模板之间有什么区别

问题描述

我试图了解Jenkins共享库和Jenkins管道模板之间的确切区别是什么。

据我所知,共享库用于保留通用代码并使其可用于多个管道。

那么我无法理解Jenkins管道模板之间的区别。还有使用模板引擎创建的Jenkins模板的用途。它在某种程度上类似于共享库

解决方法

这里是 Jenkins 模板引擎的维护者。

共享库

专注于重用流水线代码。每个单独的应用程序仍然需要一个 Jenkinsfile,并且这些单独的管道必须导入库。

Jenkins 模板引擎

一个管道开发框架,支持与工具无关的管道模板。

您可以创建一组集中的管道模板,而不是创建单独的 Jenkinsfile。

这些模板调用 steps,例如:

build()
unit_test()
deploy_to dev

这个通用模板可以跨团队应用,无论他们使用什么技术。

buildunit_testdeploy_to 步骤将来自图书馆。

实现build步骤的库可能有多个,例如npm、gradle、maven等

与其让每个团队定义一个完整的管道,他们现在只需声明应该用于通过管道配置文件“水合”模板的工具:

libraries{
  npm // contributes the build step
}

请随时查看此CDF Webinar: Pipeline Templating with the Jenkins Templating Engine