【问题标题】:Jenkins SVN Revision MismatchJenkins SVN 版本不匹配
【发布时间】: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 中构建。
  • 测试是通常项目的一部分吗?听起来他们不是?

标签: maven jenkins svn


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-03
    • 1970-01-01
    • 2019-06-27
    • 2016-12-09
    • 2012-04-22
    • 2023-03-19
    • 2019-01-12
    • 2020-11-15
    相关资源
    最近更新 更多