如何在Jenkins中手动触发的管道中获取分支名称?

lmvvr0a8  于 2023-04-19  发布在  Jenkins
关注(0)|答案(1)|浏览(163)

我在Jenkins中有一个自由式项目,有时是手动触发的,我想使用提交哈希来获取分支名称或提交消息。
我已经找到了这个例子,但我得到一个错误,当我尝试使用它。错误“expecting ')',found ':'“

sh(returnStdout: true, script: 'git for-each-ref --format='%(objectname) %(refname:short)' refs/remotes/origin --contains 29c2b3672b | awk "/a/ {print \$2}"').trim()

感谢@AVTUNEY,我能够修复错误。
但是我一直在使用这个git命令,对于一些提交哈希,这个命令工作得很好,而对于其他一些命令,这个命令不能正常工作。
有人知道为什么会这样吗?

crcmnpdw

crcmnpdw1#

--format中需要转义单引号
这将工作:

sh(returnStdout: true, script: "git for-each-ref --format=\"%(objectname) %(refname:short)\" refs/remotes/origin --contains 29c2b3672b | awk '/a/ {print $2}'").trim()

相关问题