【问题标题】:Get Git commit from "upstream" build in manually triggered Jenkins job在手动触发的 Jenkins 作业中从“上游”构建中获取 Git 提交
【发布时间】:2016-03-22 00:12:54
【问题描述】:

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

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

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

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

我意识到它并不是真正的“下游”,因为它是手动触发的。不过,我们确实有一个定义 UPSTREAM_BUILD 和 UPSTREAM_PROJECT 的选择器。

【问题讨论】:

    标签: jenkins continuous-integration


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2015-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多