我的工作是这样的:
template__build_docker是一个参数化的作业,如下所示:
node {
[string(name: 'docker_name', trim: true)]
... build the container - git clone, etc ...
}
每个build_dockerA,build_dockerB...执行以下操作:
stage('call build template'){
build job: 'template__build_docker ', parameters: [string(name: 'docker_name', value: 'MyDockerImageA')]
}
我知道这有点笨拙,而且使用声明性管道我可以使用主管道(没有查看细节),但这就是我正在使用的。
问:这是一种可行的方法吗?或者有什么顾虑使得这不是一种实现管道重用/重构的不适当的方式?
我知道已经有一个问题-如果我快速启动几个build_dockerX作业,超过配置的"# of executors",那么我就会遇到死锁-这些作业无法启动模板作业,因为没有可用的executor。
还有其他类似的问题吗?
发布于 2018-12-13 05:13:48
简而言之,答案是肯定的,但您应该使用shared libraries。看一个从jenkinsfile中使用的编写here或one where there is whole declarative pipeline defined的简单示例。我还记得我在这里发布的一个question,它也可以作为一个例子。
就"gothas“而言,我认为仍然不可能从一个jenkins库加载另一个jenkins库。除此之外,它是完美的。
https://stackoverflow.com/questions/53750775
复制相似问题