问题描述
作为背景,我们有近 20 个微服务,每个服务都有自己的 Jenkinsfile
。尽管每个微服务可能会在其构建中执行一些额外的步骤,例如构建额外的 docker 镜像,但这些步骤中的大部分在所有微服务中都是相同的,唯一不同的是每个步骤的参数,例如存储库路径等。
现在看看 Jenkins 的多配置项目,拥有其中一项工作并将构建步骤应用于所有这些项目似乎是完美的。但是,我有一些疑问:
为了更清楚,让我举个例子。
micro-service-one:
|__ Jenkinsfile
|___ { step1: maven build
step2: docker build
step3: docker build (extra Dockerfile)
}
micro-service-two:
|__ Jenkinsfile
|___ { step1: maven build
step2: docker build
}
现在我想的是我的多配置看起来像这样:
轴:
name: micro-service-one micro-service-two
docker_repo: myrepo.com/micro-service-one myrepo.com/micro-service-two
DSL 脚本:
multibranchPipelineJob("folder-build/${name}") {
branchSources {
git {
id = 'bitbucket-${name}'
remote('git@bitbucket.org:myproject/${name}.git')
credentialsId("some_cred_id")
}
}
orphanedItemStrategy {
discardOldItems {
daysToKeep(2)
numToKeep(10)
}
defaultOrphanedItemStrategy {
pruneDeadBranches(true)
daysToKeepStr("2")
numToKeepStr("10")
}
}
triggers {
periodic(5)
}
}
但我不确定如何为每个应用程序使用 Jenkinsfile 中的轴变量?甚至可以让多配置生成 Jenkinsfile 吗?
注意:你可能会问我为什么需要这个。要回答这个问题,就是减少我们花在修改或更新这些 Jenkinsfiles 上的时间。当需要更改时,我们需要检查近 20 个或更多存储库,并随着环境的发展和需要的新功能或修复程序一一修改。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)