通过种子作业创建后,立即启动带有参数的jenkins作业?

时间:2018-07-06 14:42:33

标签: jenkins jenkins-plugins jenkins-job-dsl

Start jenkins job immediately after creation by seed job

我可以从作业dsl中开始作业,如下所示:

queue('my-job')

但是如何使用参数或参数开始工作?我想以某种方式通过这项工作。

1 个答案:

答案 0 :(得分:0)

Afaik,你不能。

但是您可以做的是从管道中创建它(jobDsl步骤),然后运行它。或多或少像...

pipeline {
  stages {
    stage('jobs creation') {
      steps {
        jobDsl targets: 'my_job.dsl',
               additionalParameters: [REQUESTED_JOB_NAME: "my_job's_name"]

        build job: "my_job's_name",
              parameters: [booleanParam(name: 'DRY_RUN', value: true)]
      }
    }
  }
}

准系统使用“ my_job.dsl” ...

pipelineJob(REQUESTED_JOB_NAME) {
  definition {
    // blah...
  }
}

注意::如您所见,我从调用管道中显式设置了作业的名称(REQUESTED_JOB_NAME变量),因为否则我不知道如何制作jobDSL代码以返回名称它创建的作业返回到调用管道。

我使用此“技巧”来避免“工作参数落后” 问题。我使用工作的DRY_RUN参数(实际上,我使用了隐藏的参数)来运行“ no-thing” 编译,顾名思义,所以当其他人需要使用该工作时, “真实物品” 的params部分已经正确解析。