[英]how to get git short hash in to a variable in Jenkins running on windows 2008
我试图在变量中获取 git short hash。 我试图设置 GIT_COMMIT_SHORT 变量来运行 'git rev-parse --short HEAD' 但它没有用。 我需要将此变量传递给 ant 构建脚本,以便包名称包含此短哈希。
我在 Windows 2008 服务器上运行 Jenkins。
谢谢
可能实现您想要的结果的最简单方法是使用 GIT_REVISION 令牌 makro,如下所示:
${GIT_REVISION,length=6}
有关更多详细信息, 请查看https://wiki.jenkins-ci.org/display/JENKINS/Token+Macro+Plugin 。
希望这可以帮助,
简
这在使用 git 插件的 jenkins 管道中对我有用:
SHORT_COMMIT = "${GIT_COMMIT[0..7]}"
我没有看到这里列出的这个答案,所以我想我会添加它:
environment {
GIT_HASH = GIT_COMMIT.take(7)
}
资料来源: https : //issues.jenkins-ci.org/browse/JENKINS-44449?focusedCommentId=361307&page= com.atlassian.jira.plugin.system.issuetabpanels: comment-tabpanel#comment-361307
蓝海管道的另一种可能选择:
pipeline {
...
environment {
GIT_COMMIT_SHORT = sh(
script: "printf \$(git rev-parse --short ${GIT_COMMIT})",
returnStdout: true
)
}
...
在带有 git 插件的 jenkins 2.73 上,这个占位符模板有效
${GIT_REVISION:0:7}
我将它与交付管道插件一起使用来设置任务名称。
例如构建 GIT 修订版。 ${GIT_REVISION:0:7}
不确定它是否适用,但我正在寻找一种在 jenkins 管道中执行此操作的方法。 我最终使用了这个${GIT_REVISION[0..7]}
我建议您使用EnvInject插件从您创建的包含哈希的属性文件中加载参数。
将git
命令的结果回显到作业工作区中形成的key=value
文件,并使用我提到的插件加载它。
我将它用于此类需求,而且非常简单。
我希望这有帮助。
编辑:如何在 Windows 中编写属性文件:
@for /f "delims=" %l in ('git command') do @echo hash=%l >> hash.properties
然后,您可以使用插件加载hash.properties
。
无需任何其他插件,您可以在 Jenkins 脚本中使用以下命令进行提交(“执行 Windows 批处理命令”构建步骤):
for /f %%i in ('git rev-parse HEAD') do set GITHASH=%%i
在命令行中,您应该使用单个%
而不是%%
:
for /f %%i in ('git rev-parse HEAD') do set GITHASH=%%i
只有这对我有用
GIT_SHA_SHORT=`git rev-parse --short=8 ${GIT_COMMIT}`
return sh(
script: "printf \$(git rev-parse --short ${env.GIT_COMMIT})",
returnStdout: true
).trim()
}
pipeline {
agent any
environment {
SHORT_COMMIT = git_short_commit()
}
stages {
stage('Build') {
steps {
echo "${SHORT_COMMIT}"
}
}
}
}
Jenkins 与脚本化管道:
shortCommit = sh(returnStdout: true, script: "git log -n 1 --pretty=format:'%h'").trim()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.