我想在Jenkins中使用相同的jenkinsfile配置2个作业,但唯一的区别是这些作业的参数。
例如: 创建两个名为:A和B的作业,每个作业都获得X的参数。 在A中,工作将X设为1,在B中,X为2。
我想以这种方式创建它,而不是一个具有多个复选框的作业,因为这些作业是独立的,并且我不想留下任何选择来犯错误。
我如何仅通过jenkinsfile来实现? 我读过其他jenkinsfile中的load jenkinsfile,但是找不到传递参数的方法。
我该如何实现?
答案 0 :(得分:-1)
如果使用Build with Parameters
,则可以使用${PARAM}
语法在Jenkinsfile中引用这些声明的参数。
您还可以在如下所示的声明性管道中声明一个名为Choice Parameter
的{{1}}:
CHOICE
您不需要这种方式的2个工作。它是相同的工作,但是它以pipeline {
agent any
parameters {
choice(name: 'CHOICE', choices: ['One', 'Two', 'Three'], description: 'Pick something')
}
stages {
stage('Example') {
steps {
echo "Choice: ${params.CHOICE}"
}
}
}
}
的不同配置运行。
此示例直接取自官方文档: https://www.jenkins.io/doc/book/pipeline/syntax/#parameters
答案 1 :(得分:-1)
我的解决方法是:
在Jenkins文件中设置
environment {
X= getX(env.JOB_NAME)
Y= getY(env.JOB_NAME)
}
并在管道的最后创建以下函数:
def getX(jobName)
{
if (jobName.contains("X1"))
{
return "X1";
}
else return "X2";
}
def getY(jobName)
{
if (jobName.contains("BLA"))
{
return "BLA1";
}
return "BLA2";
}