Jenkins 所有项目的模板文件
例如: 我有30个多分支Git项目。所有项目都有自己的文件。突然我发现了一个很酷的Jenkins插件,我想为所有项目添加它。在所有项目上这样做都很痛苦,这是一个很大的时间浪费 可以创建类似于Jenkinsfile的模板Jenkinsfile,类似于项目Jenkinsfile的包装器,或者类似于这样的模板Jenkinsfile,让我可以在1个位置而不是30个位置进行更改吗 我想要的是这样的东西:Jenkins 所有项目的模板文件,jenkins,jenkins-pipeline,Jenkins,Jenkins Pipeline,例如: 我有30个多分支Git项目。所有项目都有自己的文件。突然我发现了一个很酷的Jenkins插件,我想为所有项目添加它。在所有项目上这样做都很痛苦,这是一个很大的时间浪费 可以创建类似于Jenkinsfile的模板Jenkinsfile,类似于项目Jenkinsfile的包装器,或者类似于这样的模板Jenkinsfile,让我可以在1个位置而不是30个位置进行更改吗 我想要的是这样的东西: stage { ...} timestamps { <include rest of
stage {
...}
timestamps {
<include rest of stages definied in projects>
}
stage {
... }
阶段{
...}
时间戳{
}
舞台{
... }
模板文件,这是在一些回购是这样寻找的。所有的项目都有自己定义的阶段,这些阶段包含在模板JeNKNScript的中间,并在Project中定义。
因此,项目中的文件必须:
- 从存储库加载模板
- 在模板JeknsFiels 中间放置阶段
- 委员会:
- : 在工作区中获取文件名并将其作为Groovy源文本运行
- : 通常,在不同的项目之间共享管道的一部分是很有用的,以减少冗余并保留代码“” Pipeline支持创建“共享库”,这些库可以在外部源代码管理存储库中定义并加载到现有管道中 正如我常说的那样 朋友不让朋友模板编码 通常,我最后的办法是编写代码,然后生成更多的代码。此外,它在您的用例中没有用处 实际上,你要问的是,“我有我想要在30个文件之间共享的代码”。当然,共享代码的最佳方式是创建一个共享库并从代码中使用它 幸运的是。我强烈推荐将其用于您的用例。从上面给出的链接中的介绍段落: 随着组织中越来越多的项目采用管道, 共同的模式可能会出现。通常,分享是有用的 不同项目之间的管道部分,以减少冗余和 保持代码“干燥” 管道支持创建“共享库”,可以 在外部源代码管理存储库中定义并加载到 现有管道
然后,只需更新库,使用它的所有文件也将更新。您可以对共享库进行版本设置,这样设置将更易于调试。我想我可以利用它。我的想法是:在项目中将有Jenkinsfile,例如Jenkinsfile_项目。普通Jenkinsfile将使用共享库或configFile加载Jenkinsfile_模板。该模板将有一些字符,如%和使用bash脚本,我将替换为Jenkinsfile_项目。我将把这个文件放在构建文件夹中。之后,构建的Jenkins文件将通过load命令加载并运行。相关示例
node {
...
configFileProvider(
[configFile(fileId: 'jenkinsfile-template', ...)]) {
...
}
...
}