使用相同的jenkinsfile和不同的参数运行2个作业

时间:2020-06-11 06:20:30

标签: jenkins jenkins-pipeline

我想在Jenkins中使用相同的jenkinsfile配置2个作业,但唯一的区别是这些作业的参数。

例如: 创建两个名为:A和B的作业,每个作业都获得X的参数。 在A中,工作将X设为1,在B中,X为2。

我想以这种方式创建它,而不是一个具有多个复选框的作业,因为这些作业是独立的,并且我不想留下任何选择来犯错误。

我如何仅通过jenkinsfile来实现? 我读过其他jenkinsfile中的load jenkinsfile,但是找不到传递参数的方法。

我该如何实现?

2 个答案:

答案 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";
}
相关问题