Jenkins SVN 版本不匹配

Jenkins SVN Revision Mismatch

我在 Jenkins 设置中发现了一些奇怪的行为。

我们有一个典型的 3 环境设置:

开发、测试、生产,

Jenkins 已配置为构建所有这些。

Dev 配置为每 15 分钟轮询一次 SVN 存储库,如果有更新则进行构建。

Test 已配置此选项:"This project builds a Subversion feature branch",使用上次成功的 Dev 构建代码构建,并且是手动触发。

问题是这样的:Dev 构建良好。但是,测试不会在第一次使用正确的 SVN 修订版进行构建。检查控制台输出后,我看到它将正确的修订带到工作区的位置,它设置为每次都进行新的检出并合并更改。但是,当我查看生成的命令行时,随着项目的构建使用 Maven,传递给命令的 svn 修订实际上是倒数第二个成功构建而不是最后一个。

正在使用 Jenkin 的 SVN_REVISION 变量传递 svn 修订版,该变量以某种方式重置为旧值。我已经搜索了文档并进行了大量谷歌搜索,但我无法确定问题是 Subversion 模块 (2.6)、Jenkins (1.642.4) 中的错误,还是测试构建的方式配置。我检查了 SVN 和 Jenkins 服务器时间并验证它们是同步的,所以这不是时间相关的问题。第二次构建测试时,它会选择正确的版本。

我不是 Jenkins 专家,所以也许我忽略了一些东西,但这个问题没有明显的(对我来说)原因,欢迎提出任何想法。

谢谢。

好的,问题已解决。原来测试构建没有直接使用开发代码库。相反,Test 正在构建一个功能分支并进行代码预构建。无论出于何种原因,rebase 已经完成,但构建没有接受更改。因此,我更改了 Dev 构建以在成功构建后在 SVN 中生成一个标记,然后更改存储库位置以指向新标记的 Dev 代码。中提琴,不再有未包含更改的问题。