从“获取Git提交”;“上游”;内置手动触发的Jenkins作业

从“获取Git提交”;“上游”;内置手动触发的Jenkins作业,jenkins,continuous-integration,Jenkins,Continuous Integration,我在Jenkins中有一个Build作业,它检查特定的Git提交并将其打包为工件进行部署 稍后有一个部署作业,它接受构建的工件并实际部署代码。它还对包含部署脚本的特定目录执行稀疏Git签出。成功完成后,我们编写一个Git标记 问题是标记正在写入主版本的头,而不是原始上游版本所用提交的哈希。(master是作业配置中定义的分支。) 如果上游SCM信息未直接通过参数化触发器传递,是否有办法获取该信息?我可以看到Jenkins在build目录中生成的build.xml文件中列出了提交;有没有办法从下游

我在Jenkins中有一个
Build
作业,它检查特定的Git提交并将其打包为工件进行部署

稍后有一个
部署
作业,它接受构建的工件并实际部署代码。它还对包含部署脚本的特定目录执行稀疏Git签出。成功完成后,我们编写一个Git标记

问题是标记正在写入
主版本的
头,而不是原始上游版本所用提交的哈希。(
master
是作业配置中定义的分支。)

如果上游SCM信息未直接通过参数化触发器传递,是否有办法获取该信息?我可以看到Jenkins在build目录中生成的
build.xml
文件中列出了提交;有没有办法从下游作业中读取此信息

我意识到它不是真正的“下游”,因为它是手动触发的。我们确实有一个选择器,它定义了
上游\u构建
上游\u项目

如果您正在使用插件,您可以在
构建
作业期间使用提交散列写入文件,并在
部署
作业期间重新读取:

# Build
echo ${GIT_COMMIT} > COMMIT_HASH

# Deployment, after copying COMMIT_HASH into the workspace
git checkout $(cat COMMIT_HASH)