我希望通过groovy调用另一个Jenkins构建作业,我该如何做。我尝试了像下面这样的包含方式,但没有成功。
build 'job url'
但是出现了错误
错误:没有名为参数化作业的工作
build 'job url'
但是出现了错误
错误:没有名为参数化作业的工作
如果您正在使用Pipeline插件,并且想要构建一个带参数的任务,可以执行以下操作:
假设您有一个名为“sonar-review”的布尔参数:
build job: 'cargo-pipeline-ci-declarative', parameters: [booleanParam(name: 'sonar-review', value: false)]
如果您不需要构建一个没有参数的作业:
您只需要执行以下操作:
build "cargo-pipeline-ci-declarative"
请确保您已安装:
https://wiki.jenkins-ci.org/display/JENKINS/Parameterized+Trigger+Plugin
build
步骤,是吗?build 'test'
如果您只想通过URL来触发工作,您可以通过发布到以下URL来实现:
http://server/job/myjob/buildWithParameters?PARAMETER=Value
详细信息请参见参数化构建。
就Groovy而言,有几种方法可以实现这个功能。由于您特别提到了Groovy,请参见Groovy插件,它提供了一个触发另一个构建的示例。
您还可以使用jobs-dsl-plugin。但是,这已被流水线工作流逐步替换。
因此,我建议使用多分支流水线插件,它允许您在Jenkinsfile中将管道编写为代码,并且将自动为存储库中的任何分支触发构建。只需创建一个多分支流水线作业并将SCM设置为您的存储库即可。然后,在项目根目录中具有Jenkinsfile的任何分支都将自动构建。
使用多分支流水线插件的好处是它提供了代码片段生成器,它将为您生成代码。这有助于学习语法以及如何自己编写代码。
最后,要解决实际问题。您没有提供URL,而是要触发的作业名称。
您还需要考虑默认值。例如,下面我正在触发一个名为jobName
的作业,在启动jobName
之前等待10秒钟,我的上游作业即使触发的作业失败也不会失败,并且我的上游作业在标记自身完成之前不会等待触发的作业完成。再次参见代码片段生成器以获取详细信息。
build job: 'jobName', propagate: false, quietPeriod: 10, wait: false
/job/mydirectory/job/myjob
,该怎么办? - Sandburg