【发布时间】:2017-11-10 18:34:10
【问题描述】:
我在我们的 Jenkins 设置中看到了一些奇怪的行为。
我们有一个典型的 3 个环境设置:
开发、测试、产品
Jenkins 被配置为构建所有这些。
Dev 配置为每 15 分钟轮询一次 SVN 存储库,并在有更新时进行构建。
测试已配置此选项:“此项目构建一个 Subversion 功能分支”,使用上次成功的 Dev 构建代码构建,并且是手动触发的。
问题在于:Dev 构建良好。然而,测试并没有在第一次使用正确的 SVN 版本进行构建。检查控制台输出后,我看到它在哪里将正确的修订版带到了工作区,它设置为每次都重新签出并合并更改。但是,当我查看生成的命令行时,随着项目的构建使用 Maven,传递给命令的 svn 版本实际上是倒数第二个成功构建而不是最后一个。
使用 Jenkins 的 SVN_REVISION 变量传递 svn 修订版,该变量以某种方式重置为旧值。我已经搜索了文档并进行了很多谷歌搜索,但我无法确定问题是 Subversion 模块 (2.6)、Jenkins (1.642.4) 中的错误,还是测试构建的方式配置。我检查了 SVN 和 Jenkins 服务器时间并确认它们是同步的,所以这不是时间相关的问题。当第二次构建测试时,它会选择正确的版本。
我不是 Jenkins 专家,所以也许我忽略了一些东西,但没有明显的(对我而言)导致该问题的原因,欢迎提出任何想法。
谢谢。
【问题讨论】:
-
Test的上游项目名称是什么。将更改与什么合并?
-
因此,Test 构建点位于与 Dev 构建不同的 svn 存储库。如果我没看错的话,Test build 会从上次成功的 Dev 构建中将 prebuild rebase 到它的 svn repo 中,然后从它的 svn repo 中构建。
-
测试是通常项目的一部分吗?听起来他们不是?