【发布时间】:2019-03-20 09:56:17
【问题描述】:
我在 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 的建议)
也不行。
来自 post-receive 钩子的 URL
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
输出
【问题讨论】:
标签: git jenkins jenkins-pipeline githooks