我在Jenkins中有一个Build
工作,它检查出一个特定的Git提交并将其打包以作为工件进行部署。
有一个后来的Deployment
作业接受构建的工件并实际部署代码。它还对包含部署脚本的特定目录进行稀疏Git检出。成功完成后,我们写了一个Git标签。
问题是标记被写入HEAD
的{{1}},而不是用于原始上游构建的提交的哈希。 (master
是作业配置中定义的分支。)
如果上游SCM信息没有通过参数化触发器直接传递,是否有办法获取?我可以看到Jenkins在构建目录中生成的master
文件中列出的提交;有没有办法从下游工作中读取这些信息?
我意识到它不是真的"下游",因为它是手动触发的。我们确实有一个定义build.xml
和UPSTREAM_BUILD
的选择器。
答案 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)