Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 在不同的项目中重用文件 情景:_Git_Jenkins_Jenkins Pipeline - Fatal编程技术网

Git 在不同的项目中重用文件 情景:

Git 在不同的项目中重用文件 情景:,git,jenkins,jenkins-pipeline,Git,Jenkins,Jenkins Pipeline,我们有很多项目,每个项目都位于自己的git存储库中。我想用Jenkins 2多分支管道作业来构建它们。每个存储库一个作业。每个项目的Jenkins文件看起来都是一样的,对构建过程所做的更改需要推广到每个项目。这些更改可以是构建步骤中的小补丁,也可以是添加完整的新构建步骤 这个想法: 为了保持尽可能高的可维护性,我只想使用一个Jenkins文件,并将其包含在每个项目中,因此我只需修改这一个Jenkins文件即可修改所有项目的构建工作流 问题 是否有可能(以及如何)实现这一目标。将一个文件部署到一组

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

这个想法: 为了保持尽可能高的可维护性,我只想使用一个Jenkins文件,并将其包含在每个项目中,因此我只需修改这一个Jenkins文件即可修改所有项目的构建工作流

问题 是否有可能(以及如何)实现这一目标。将一个文件部署到一组存储库中,这样我只需更改一个文件即可更改所有构建作业

附加的 我知道可以使用
共享库
,在这里我可以定义构建步骤的执行代码。但是如果想添加一个完整的新构建步骤,我仍然必须修改所有我不想做的Jenkins文件。因此,如果可能的话,我真的在寻找一种方法来为所有项目共享整个Jenkins文件

到目前为止已经试过了
  • 我想使用这个全新的特性来告诉Jenkins文件的位置,并使用一个子模块将其包含在每个项目中。但这似乎不起作用,因为Jenkins似乎在git服务器上寻找Jenkins文件,因为它是一个子模块,所以它永远不会出现
  • 我们用一个新的方法来做这件事。我们有很多关于fabric8项目的例子,你可以在。有一个特殊情况类似于您的用例,可能会有所帮助,每个Jenkins文件调用一个共享函数:

    mavenCI{}
    
    从管道库中可以添加新的构建步骤,我们使用。我们有很多关于fabric8项目的例子,你可以在。有一个特殊情况类似于您的用例,可能会有所帮助,每个Jenkins文件调用一个共享函数:

    mavenCI{}
    

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

    请参见我在中的示例:


    Jenkins Dokumentation中还有一小部分是关于这个主题的:

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

    请参见我在中的示例:


    Jenkins Dokumentation中也有一小段关于这个话题的内容:

    这里的答案应该足够了,但我认为这个博客应该让它更清楚这里的答案应该足够了,但我认为这个博客应该让它更清楚