Jenkins使用Git插件不会将GIT_COMMIT填充到提升的构建

时间:2015-12-03 21:35:46

标签: git maven deployment jenkins promotions

我正在尝试在Jenkins中设置一系列作业,以使用Promoting插件构建和部署应用程序。我们目前正在使用Git作为我们的SCM,我们正在使用Git Plug来帮助构建。这个特殊的构建是一个Maven构建。我试图实施的步骤如下:

  • 编译,运行单元测试和创建工件的构建作业。这个 工作在代码提交时触发。
  • 构建作业有一个手动升级点 将此代码部署到我们的测试环境中。促销点 有一个批准参数来传递要用于的环境 部署。
  • 促销点会触发一项工作,让我们称之为 集成作业,仅触发多个部署作业,部分作业 这些部署作业需要从Git获得相同的代码 用于构建工件。由于代码可能已经改变 这个特定版本的时刻是我们想要的那一刻 为了进行部署,我正在尝试使用GIT_COMMIT环境 变量用于传播用于构建工件的提交编号。
  • 在Integration作业中,在触发特定的构建步骤中 部署工作,我根本没有添加任何参数,不是Git, 不是“当前构建”的。

问题是部署作业永远不会获得GIT_COMMIT值。所以在尝试从Git中检索代码时总是失败。

  • 在构建作业上,在升级过程中,除了Approval参数选择环境外,在Action触发集成作业时我添加了“当前构建参数”和“构建的传递Git Commit”参数
  • 在构建作业上,运行后我可以看到作业的环境变量,GIT_COMMIT变量具有正确的提交值。
  • 在集成作业上,我没有在环境变量列表中看到GIT_COMMIT。
  • 在部署作业上,我没有在环境变量列表中看到GIT_COMMIT。

到目前为止,我已经尝试过:

  • 将“当前构建参数”和“构建的传递Git提交”添加到部署作业的触发器
  • 在Build作业中添加另一个变量,并将$ GIT_COMMIT指定为值
  • 添加另一个变量作为促销的Approval参数,并为其提供$ GIT_COMMIT值
  • 在“积分”作业的“触发器”中添加另一个变量,并为其指定$ GIT_COMMIT值
  • 将参数添加到部署作业并将其默认为$ GIT_COMMIT,但使用触发器中的值覆盖所述参数。

到目前为止,没有运气。

我必须补充一点,所有其他参数和变量都正常传播,部署环境一,我有一个用于版本控制,BUILD_NUMBER等等。除了GIT_COMMIT之外,一切都很好传播。

我也有一个类似的设置用于另一个应用程序,这是一个Grails应用程序,GIT_COMMIT在那里传播非常好。

这些是我正在使用的版本:

  • Jenkins 1.632
  • Git Plugin 2.4.0
  • Promoted Builds(Simple)1.9
  • promote build plugin 2.24
  • Java Open JDK 1.7.0_75

任何想法都非常受欢迎。谢谢。

1 个答案:

答案 0 :(得分:4)

我能够得到一个解决方法,但我找不到原始问题的解决方案。最初的问题是GIT_COMMIT没有传播到部署作业,我无法完成这项工作。相反,为了使我的流程正常工作,我做了以下工作:

在构建作业上,在促销过程中,当触发集成作业时,我添加了“预定义参数”,其值为:BUILD_COMMIT = $ {GIT_COMMIT}。

在集成作业上,当触发部署作业时,我正在添加“当前构建参数”参数。

在部署作业上,在git配置中,在“要构建的分支”字段中,我使用$ {BUILD_COMMIT}。

这会正确触发所有内容,部署作业在部署时获得正确的提交编号。

我希望这会有所帮助。