从"上游"获取Git提交构建手动触发的Jenkins作业

时间:2016-03-22 00:12:54

标签: jenkins continuous-integration

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

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

问题是标记被写入HEAD的{​​{1}},而不是用于原始上游构建的提交的哈希。 (master是作业配置中定义的分支。)

如果上游SCM信息没有通过参数化触发器直接传递,是否有办法获取?我可以看到Jenkins在构建目录中生成的master文件中列出的提交;有没有办法从下游工作中读取这些信息?

我意识到它不是真的"下游",因为它是手动触发的。我们确实有一个定义build.xmlUPSTREAM_BUILD的选择器。

1 个答案:

答案 0 :(得分:2)

如果您使用的是Copy Artifact插件,则可以在Build作业期间使用提交哈希编写一个文件,并在Deployment作业期间将其读回:

# Build
echo ${GIT_COMMIT} > COMMIT_HASH

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