首页 文章

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

提问于
浏览
2

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

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

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

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

我意识到它是手动触发的_203848 . 我们确实有一个定义 UPSTREAM_BUILDUPSTREAM_PROJECT 的选择器 .

1 回答

  • 1

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

    # Build
    echo ${GIT_COMMIT} > COMMIT_HASH
    
    # Deployment, after copying COMMIT_HASH into the workspace
    git checkout $(cat COMMIT_HASH)
    

相关问题