感谢前进。
在另一个jenkinsfile中运行外部jenkinsfile
•
问答
假设我在单独的git repo中存储了“全局” Jenkinsfile,在其中定义了所有管道可能要使用的所有可能阶段。其中一些步骤位于if语句中,以便有可能在需要时跳过它们。
有没有机会在我的项目中创建包含此全局jenkinsfile的专用Jenkinsfile并传递一些参数?
jieci1981 回答:在另一个jenkinsfile中运行外部jenkinsfile
JenkinsSharedLibrary提供了在管道中调用某些方法的可能性。因此,执行这些条件管道步骤的最佳方法是在Closures中定义您的阶段,然后根据您的Jenkinsfile中的要求调用这些Closures。
在共享库中定义的示例关闭:
//Closure which defines Groovy or Jenkins Pipeline DSL to be executed
Closure javaBuildStage = {
stage('Build Java') {
echo "This is the build stage for Java apps"
sh("./mvn clean package")
}
}
示例Jenkinsfile:
@Library('YourSharedLibrary@master')
if(project == "java"){
javaBuildStage()
}
您可以使用Jenkins共享库分散所有功能。詹金斯共享图书馆将位于Git存储库中。
,要为所有存储库触发相同的Jenkins文件,可以使用远程文件插件。 有关详细信息,您可以检查此答案 https://stackoverflow.com/a/58877133/6110485