我有多个客户端,所有客户都需要相同的管道运行但具有不同的变量。我的想法是这样做:
我将如何实现这一目标?
答案 0 :(得分:2)
有几种方法 - 这取决于您最适合的用例。从头到尾:
使用参数创建管道作业,并为每个客户端手动/或每个api触发它。取自https://jenkins.io/doc/book/pipeline/syntax/#declarative-directives的样本:
pipeline {
agent any
parameters {
string(name: 'PERSON', defaultValue: 'Mr Jenkins', description: 'Who should I say hello to?')
}
stages {
stage('Example') {
steps {
echo "Hello ${params.PERSON}"
}
}
}
}
使用参数,让一个管道作业触发另一个管道作业(每个客户端一次)。父作业可以为每个客户提供一个阶段:
stage ('Build client A') {
build job: 'common-pipeline-job-for-clients',
parameters: [string(name: 'param1', value: 'some value')]
}
创建管道模板并使用该模板为每个客户创建管道 - 如下所述:Jenkins pipeline template