在不同项目中重用Jenkinsfile

amrnrhlw  于 2023-10-17  发布在  Jenkins
关注(0)|答案(2)|浏览(170)

场景:

我们有一堆项目,每个项目都位于自己的git仓库中。我想用Jenkins 2多分支管道作业来构建它们。每个仓库一个作业。每个项目的Jenkins文件看起来都是一样的,对构建过程所做的更改需要推广到每个项目。这些更改可以是构建步骤中的小修复,也可以是添加一个完整的新构建步骤。

理念:

为了保持尽可能高的可扩展性,我想只使用一个Jenkinsfile并将其包含在每个项目中,所以我只需要修改这个Jenkinsfile就可以修改所有项目的构建工作流。
问题是
我们可以(以及如何)实现这一目标。将一个Jenkins文件部署到一堆存储库中,这样我只需要更改一个文件就可以更改所有构建作业?

附加

我知道有可能使用shared libraries,在那里我可以定义构建步骤的执行代码。但是如果想添加一个完整的新构建步骤,我仍然需要修改所有的jenkinsfiles,这是我不想做的。所以我真的在寻找一种方法来分享所有项目的整个Jenkinsfile,如果可能的话。

试了这么久

1.我想使用全新的功能来告诉Jenkins jenkinsfile的位置,并使用子模块将其包含在每个项目中。但是这似乎不起作用,因为Jenkins似乎在git-Server上寻找Jenkinsfile,因为它是一个子模块,所以它永远不会出现。

mfpqipee

mfpqipee1#

不仅可以将管道步骤放入共享库中。也可以将整个管道作为全局变量放入共享库中。使用这种方法,每个存储库中的Jenkinsfile只需要一行代码。您可以在一个地方(在共享库中)修改所有项目的管道。

gywdnpxw

gywdnpxw2#

我们使用shared pipeline library来实现这一点。我们有很多关于fabric8项目的例子,你可以在github org中找到。一个特定的示例与您的用例类似,可能会有所帮助,每个Jenkinsfile调用一个共享函数:

mavenCI{}

其中matches the reusable code从管道库,您可以添加新的构建步骤

相关问题