假设我将“全局”Jenkinsfile存储在分离的git中,在该文件中,我定义了任何管道可能想要使用的所有可能的阶段。其中一些步骤在if语句中,以便在需要时可以跳过它们。在我的项目中有机会创建包含这个全局Jenkinsfile并传递一些参数的专用jenkinsfile吗?
谢谢你的提前。
发布于 2019-11-15 08:11:27
在管道中调用某些方法的可能性是由JenkinsSharedLibrary提供的。因此,执行这些条件流水线步骤的最佳方法是在闭包中定义阶段,然后按照Jenkinsfile中的要求调用这些闭包。
在共享库中定义的示例闭包:
//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仓库里。
发布于 2019-11-15 14:51:00
要为所有存储库触发相同的Jenkins文件,可以使用远程文件插件。有关详细信息,您可以检查这个答案https://stackoverflow.com/a/58877133/6110485
https://stackoverflow.com/questions/58871942
复制相似问题