从 GIT 到 Jenkins buildWithParameters 的触发器忽略管道中的参数值
Trigger from GIT to Jenkins buildWithParameters ignores parameter value in pipeline
我在 GIT 中有一个 post-receive 挂钩(工作正常),它调用
http://ip:port/job/project_name/buildWithParameters?token=abc&ABC=qwe
ABC 是我的参数,它在 Jenkins 的项目中定义为 String parameter,默认值为 xyz。 URL 的值为 qwe.
我的 Jenkins 管道脚本 是
pipeline {
agent any
stages {
stage('Checkout') {
steps {
print env.ABC
}
}
}
}
当从 GIT 触发构建时,env.ABC
打印 xyz 而不是 qwe。
如何从 URL 获取值 qwe? 我的目标是将版本化标签名称从 GIT 传递到管道。
谢谢
编辑 #1(来自 Matt Schuchard 的建议)
也不行。
URL 来自 post-接收挂钩
http://ip:port/job/project_name/buildWithParameters?token=abc&ABC=works&DEF=works
在 Jenkins UI 中为项目定义的参数
管道脚本
pipeline {
agent any
parameters {
string(name: 'DEF', defaultValue: 'failed', description: '')
}
stages {
stage('Checkout') {
steps {
print 'by params.ABC -> ' + params.ABC
print 'by params.DEF -> ' + params.DEF
}
}
}
}
输出
解决方案(来自 Virginie)
需要在URL中引用&。
http://ip:port/job/project_name/buildWithParameters?token=abc\&ABC=works\&DEF=works
输出
请注意,如果使用 Unix shell 脚本,&
将需要转义,或者引用整个 URL。
你能试试这个吗:
http://ip:port/job/project_name/buildWithParameters?token=abc\&ABC=works\&DEF=works
我在 GIT 中有一个 post-receive 挂钩(工作正常),它调用
http://ip:port/job/project_name/buildWithParameters?token=abc&ABC=qwe
ABC 是我的参数,它在 Jenkins 的项目中定义为 String parameter,默认值为 xyz。 URL 的值为 qwe.
我的 Jenkins 管道脚本 是
pipeline {
agent any
stages {
stage('Checkout') {
steps {
print env.ABC
}
}
}
}
当从 GIT 触发构建时,env.ABC
打印 xyz 而不是 qwe。
如何从 URL 获取值 qwe? 我的目标是将版本化标签名称从 GIT 传递到管道。
谢谢
编辑 #1(来自 Matt Schuchard 的建议)
也不行。
URL 来自 post-接收挂钩
http://ip:port/job/project_name/buildWithParameters?token=abc&ABC=works&DEF=works
在 Jenkins UI 中为项目定义的参数
管道脚本
pipeline {
agent any
parameters {
string(name: 'DEF', defaultValue: 'failed', description: '')
}
stages {
stage('Checkout') {
steps {
print 'by params.ABC -> ' + params.ABC
print 'by params.DEF -> ' + params.DEF
}
}
}
}
输出
解决方案(来自 Virginie)
需要在URL中引用&。
http://ip:port/job/project_name/buildWithParameters?token=abc\&ABC=works\&DEF=works
输出
请注意,如果使用 Unix shell 脚本,&
将需要转义,或者引用整个 URL。
你能试试这个吗:
http://ip:port/job/project_name/buildWithParameters?token=abc\&ABC=works\&DEF=works