Jenkins 使用 Git 插件未填充 GIT_COMMIT 以提升构建
Jenkins using Git Plugin not populating GIT_COMMIT to promoted build
我正在尝试在 Jenkins 中设置一系列作业,以使用 Promoting 插件构建和部署应用程序。我们目前正在使用 Git 作为我们的 SCM,并且我们正在使用 Git 插入以帮助构建。这个特定的构建是一个 Maven 构建。我尝试执行的步骤如下:
- 编译、运行单元测试和创建工件的构建作业。这个
工作在代码提交时触发。
- 构建作业有一个手动升级点
将此代码部署到我们的测试环境中。推广点
有一个批准参数来传递要用于
部署。
- 晋升点触发任务,姑且称之为
集成作业,它只会触发几个部署作业,其中一些
这些部署作业需要从 Git 获取与之前相同的代码
用于构建工件。由于代码可能已从
这个特定版本构建到我们想要的那一刻
为了进行部署,我正在尝试使用 GIT_COMMIT 环境
传播用于构建工件的提交编号的变量。
- 在集成作业中,在触发特定的构建步骤中
部署作业,我根本没有添加任何参数,不是 Git,
不是 "current build" 个。
问题是部署作业从未获得 GIT_COMMIT 值。因此,尝试从 Git.
检索代码时总是失败
- 在构建作业中,在提升过程中,除了 select 环境的批准参数外,在触发集成作业的操作中,我添加了 "Current build parameters" 和 "Pass-through Git Commit that was built"参数.
- 在构建作业上,运行后我可以看到作业的环境变量,并且 GIT_COMMIT 变量具有正确的提交值。
- 在集成作业中,我在环境变量列表中没有看到 GIT_COMMIT。
- 在部署作业中,我没有在环境变量列表中看到 GIT_COMMIT。
到目前为止我已经尝试过:
- 将 "Current build parameters" 和 "Pass-through Git Commit that was built" 添加到部署作业的触发器中
- 在构建作业中添加另一个变量并将 $GIT_COMMIT 作为值分配给它
- 添加另一个变量作为促销的批准参数并赋予它 $GIT_COMMIT 值
- 在集成作业的触发器中添加另一个变量并为其赋予 $GIT_COMMIT 值
- 向部署作业添加参数并将其默认为 $GIT_COMMIT,但使用触发器的值覆盖所述参数。
到目前为止,运气不好。
我必须补充一点,所有其他参数和变量都在正确传播,部署环境之一,我有一个用于版本控制,BUILD_NUMBER,等等。除了 GIT_COMMIT 之外,一切都传播良好。
我对另一个应用程序也有类似的设置,这是一个 Grails 应用程序,GIT_COMMIT 在那里传播得很好。
这些是我使用的版本:
- 詹金斯 1.632
- Git 插件 2.4.0
- 升级版本(简单)1.9
- 升级构建插件 2.24
- Java 打开 JDK 1.7.0_75
任何想法都非常受欢迎。谢谢。
我找到了解决方法,但没有找到解决原始问题的方法。最初的问题是 GIT_COMMIT 没有被传播到部署作业,我无法让它工作。相反,为了让我的流程正常工作,我执行了以下操作:
在构建作业中,在提升过程中,当触发集成作业时,我添加了 "Predefined parameters" 值:BUILD_COMMIT=${GIT_COMMIT}.
在集成作业中,当触发部署作业时,我添加了一个 "Current build parameters" 参数。
在部署作业中,在 git 配置中,在 "Branches to build" 字段中我使用 ${BUILD_COMMIT}.
这一切都正确触发,部署作业在部署时获得正确的提交编号。
希望对您有所帮助。
我正在尝试在 Jenkins 中设置一系列作业,以使用 Promoting 插件构建和部署应用程序。我们目前正在使用 Git 作为我们的 SCM,并且我们正在使用 Git 插入以帮助构建。这个特定的构建是一个 Maven 构建。我尝试执行的步骤如下:
- 编译、运行单元测试和创建工件的构建作业。这个 工作在代码提交时触发。
- 构建作业有一个手动升级点 将此代码部署到我们的测试环境中。推广点 有一个批准参数来传递要用于 部署。
- 晋升点触发任务,姑且称之为 集成作业,它只会触发几个部署作业,其中一些 这些部署作业需要从 Git 获取与之前相同的代码 用于构建工件。由于代码可能已从 这个特定版本构建到我们想要的那一刻 为了进行部署,我正在尝试使用 GIT_COMMIT 环境 传播用于构建工件的提交编号的变量。
- 在集成作业中,在触发特定的构建步骤中 部署作业,我根本没有添加任何参数,不是 Git, 不是 "current build" 个。
问题是部署作业从未获得 GIT_COMMIT 值。因此,尝试从 Git.
检索代码时总是失败- 在构建作业中,在提升过程中,除了 select 环境的批准参数外,在触发集成作业的操作中,我添加了 "Current build parameters" 和 "Pass-through Git Commit that was built"参数.
- 在构建作业上,运行后我可以看到作业的环境变量,并且 GIT_COMMIT 变量具有正确的提交值。
- 在集成作业中,我在环境变量列表中没有看到 GIT_COMMIT。
- 在部署作业中,我没有在环境变量列表中看到 GIT_COMMIT。
到目前为止我已经尝试过:
- 将 "Current build parameters" 和 "Pass-through Git Commit that was built" 添加到部署作业的触发器中
- 在构建作业中添加另一个变量并将 $GIT_COMMIT 作为值分配给它
- 添加另一个变量作为促销的批准参数并赋予它 $GIT_COMMIT 值
- 在集成作业的触发器中添加另一个变量并为其赋予 $GIT_COMMIT 值
- 向部署作业添加参数并将其默认为 $GIT_COMMIT,但使用触发器的值覆盖所述参数。
到目前为止,运气不好。
我必须补充一点,所有其他参数和变量都在正确传播,部署环境之一,我有一个用于版本控制,BUILD_NUMBER,等等。除了 GIT_COMMIT 之外,一切都传播良好。
我对另一个应用程序也有类似的设置,这是一个 Grails 应用程序,GIT_COMMIT 在那里传播得很好。
这些是我使用的版本:
- 詹金斯 1.632
- Git 插件 2.4.0
- 升级版本(简单)1.9
- 升级构建插件 2.24
- Java 打开 JDK 1.7.0_75
任何想法都非常受欢迎。谢谢。
我找到了解决方法,但没有找到解决原始问题的方法。最初的问题是 GIT_COMMIT 没有被传播到部署作业,我无法让它工作。相反,为了让我的流程正常工作,我执行了以下操作:
在构建作业中,在提升过程中,当触发集成作业时,我添加了 "Predefined parameters" 值:BUILD_COMMIT=${GIT_COMMIT}.
在集成作业中,当触发部署作业时,我添加了一个 "Current build parameters" 参数。
在部署作业中,在 git 配置中,在 "Branches to build" 字段中我使用 ${BUILD_COMMIT}.
这一切都正确触发,部署作业在部署时获得正确的提交编号。
希望对您有所帮助。