Jenkins groovy 管道 - 为另一个管道调用构建步骤
Posted
技术标签:
【中文标题】Jenkins groovy 管道 - 为另一个管道调用构建步骤【英文标题】:Jenkins groovy pipeline - calling build step for another pipeline 【发布时间】:2017-11-25 18:55:21 【问题描述】:编辑:
根据 Andrew Bayer 的说法,您不应该将声明性管道注入其他人。将来可能会支持它,但可能根本不会支持。
我目前正在尝试在管道中启动管道,但我想知道我需要做什么才能使其工作。 jenkins 网页上的文档说,如果新作业或管道与第一个作业位于同一文件夹中,则可以从直接名称或绝对路径调用它。我已经尝试了所有不同的方法,目前我正在尝试一个文件的绝对路径,我刚刚检查过一秒钟前是否存在,但它说它不存在。
我想知道将不同管道连接在一起的正确方法是什么。
steps
echo "hello $env.WORKSPACE"
sh "ls $env.WORKSPACE"
sh "ls $env.WORKSPACE/jenkins"
build(job: "$env.WORKSPACE/jenkins/css-core-pipeline", parameters: [[$class: 'StringParameterValue', name: 'param1', value: "$pass1" ]])
[管道]回显
你好 /home/jenkins/workspace/hellopipeline
[管道] sh
[hellopipeline] 运行 shell 脚本
.+ ls /home/jenkins/workspace/hellopipeline
README.md
.
.
.
詹金斯
[管道] sh
[hellopipeline] 运行 shell 脚本
.+ ls /home/jenkins/workspace/hellopipeline/jenkins
css-ce-管道
css-core-pipeline
css-dev-pipeline
css-prod-管道
manual.md
.
.
.
错误:找不到名为 /home/jenkins/workspace/hellopipeline/jenkins/css-core-pipeline 的项目
已完成:失败
【问题讨论】:
我想你要找的是 FrankIJ 对这个问题的回答:***.com/questions/36306883/… How can I trigger another job from a jenkins pipeline (jenkinsfile) with GitHub Org Plugin?的可能重复 问题是我使用的是声明性管道,你正在为 groovy 管道链接事物 【参考方案1】:作业名不带前缀就足够了。
build(job: "css-core-pipeline", parameters: [[$class: 'StringParameterValue', name: 'param1', value: "$pass1" ]])
如果这不起作用,您可以使用 sn-p 生成器获取有效的步骤 sn-p。打开管道配置 -> 管道语法 -> 片段生成器 -> 选择构建步骤 -> 填写字段(作业名称将自动完成)
【讨论】:
【参考方案2】:对我有用的是我没有正确地调整斜线,所以我不得不像这样替换jobname/feature/my-branch-name
:
stage('Calls another pipeline')
steps
build job: 'jobname/feature%2Fmy-branch-name', parameters: [
string(name: 'MY_VAR', value: 'my_value')
], propagate: true, wait: true
【讨论】:
以上是关于Jenkins groovy 管道 - 为另一个管道调用构建步骤的主要内容,如果未能解决你的问题,请参考以下文章
如何在同一个 Jenkins 节点中加载另一个 groovy 脚本?
Groovy-Jenkins管道-Groovy CPS不会通过.eachLine方法
序言中不允许内容,但序言在运行时可以吗? Groovy,Jenkins,Java,管道,XML [重复]