2017-07-17 59 views
1

我在Jenkins中创建了一个单独的作业,通过使用Webhook在GitHub的任何分支上进行提交来触发。
我想为每个作业触发器创建一个与分支提交相关的自定义工作区。如何在Jenkins作业中使用由Github webhook触发的分支名称命名自定义工作区?

我试过下面的选项,无法实现它。感谢您的帮助。

Job Name : Test_Clone 

在常规部分中使用高级选项,并尝试在选项下方动态命名工作区。

  1. Test_Clone_${GIT_BRANCH} - 始终提供以前版本的分支名称。
  2. Test_Clone_${ref} - 试图使用ref在GitHub webhook有效载荷中定义,但没有结果。

要实现:例如:从GitHub分支release-2.13.0提交,Jenkins应创建名称为Test_Clone_release-2.13.0的工作区。

回答

0

你可以尝试设置

然后你的詹金斯工作将有它的xml webhook有效载荷,你可以分析(with jq)并提取'ref' which includes the branch name

从那里,我打电话给(连锁店)第二个工作,带有一个“branch”参数(除非您可以用Jenkins 2编写pipeline DSL)并使用该分支名称,以便第二个工作使用自定义工作区名称基于该参数

+0

谢谢。我已经尝试过这个选项,但以不同的方式创建了第一份工作,使用GIT_BRANCH定义env变量,并在下一份工作中使用它,并且工作正常。但是为了达到同样的目的,不用为了定义env变量或者解析json而创建一个独立的工作,如果他们没有其他方法,那么我将只用一个工作来准备env变量。如果这个信息有帮助:我有一个构建管道,其中有4个作业定义为上游和下游项目, – VinayHere

+0

这就是DSL管线可以提供帮助的地方,将多个步骤链接到一个作业 – VonC

+0

我们不使用管道DSL来链接多个步骤,因为我们有较小的项目管道,我们使用上游/下游模型,通过在后期制作操作中定义触发器参数化构建。 – VinayHere

相关问题