【问题标题】:Preventing svn from killing entire jenkins workspace upon update防止 svn 在更新时杀死整个詹金斯工作区
【发布时间】:2012-09-24 15:41:58
【问题描述】:

我有一个 grails 1.3.8 项目,我正在尝试自动化测试以使用 jenkins。我也在尝试使用 jenkin 的 svn 插件,这就是问题的开始。无论出于何种原因,我的 grails 项目的插件都难以获取,并且通常需要运行应用程序几次才能全部获取(我知道很糟糕,但我无法更改)。如果我让插件为每个插件手动运行以下命令,我可以让项目在 jenkins 中运行;

grails install-plugin $PLUGINNAME

我希望我的项目自然地轮询我们的 svn 存储库。但是,即使使用该选项;

Use 'svn update' as much as possible

svn 完全踩到了整个工作区,杀死了所有东西,包括导致构建失败的插件,因为它永远无法从一次 svn 中获取它们。我已经为此苦苦挣扎了好几天,还尝试了 jenkins 高级命令

    SCM checkout retry count : 5

但这“似乎”根本不会改变构建的结果。

任何帮助将不胜感激。

Jenkins 配置详解(屏幕截图太小而无法阅读)

Advanced
Retry Count
SCM checkout retry count: 5

Source Code Management
Subversion
Repo URL : http://$IP/$MYAPP
Check out strategy: Use 'svn update' as much as possible
Repository Browser: Auto

Build
Build With Grails
Grails Installation: Grails 1.3.8*
Non Interactive: True (checked)
Targets: "test-app -unit"
server.port: 9144
grails.project.work.dir: target
Project Base Dir: ./app-api**

*Grails 1.3.8 在我的 jenkins 版本中的管理 jenkins 选项卡下指定。但我已经测试并验证它设置正确。

** 指向我项目 api 的位置。这是我要测试的 grails 项目,它位于 jenkin 的工作空间内,但不是其中唯一的东西。这就是我在这里指定它的原因。

【问题讨论】:

  • 你能发布你的工作配置吗?您的构建触发器是如何配置的?
  • 在上面添加了我的 jenkins 配置。唯一遗漏的是项目名称。
  • 在运行测试之前添加目标刷新依赖没有帮助?
  • 如果手动构建,多次运行进程,插件依赖解决了吗?
  • 是的,我手动运行 grails 命令几次,最终所有插件都被拾取。

标签: svn grails jenkins


【解决方案1】:

我使用的是 Grails 2.x,在解决插件依赖问题时没有遇到此类问题。

在 Jenkins 中寻找解决方案我发现了 naginator 插件:

允许您在构建失败后自动重新安排构建。 这在几种情况下很有用,包括:

构建依赖于外部资源,这些资源是暂时的 不可用(数据库停机、网络停机、网站停机等)。 用户希望在构建修复之前连续发送电子邮件,以便 促使人们采取行动。

我没有经过测试,但我认为您将被允许自动重试构建,直到它成功。

【讨论】:

  • 这个插件很好找!除了每次使用 naginator svn 重新构建项目时都会杀死工作区(因此任何已安装的插件),因此该项目每次都在同一个地方开始无限期失败,否则它会解决问题。如果我取出 svn stuff naginator 和项目工作。
  • 项目/工作空间下的所有内容都被删除,并从 svn 签出新副本。仅保留工作区上方的内容,例如构建、config.xml nextBuildNumber 和 svnexternals.txt。
  • 奇怪的是你的“退房策略”是“svn update”。如果你改为“尽可能使用'svn update',更新前使用svn revert”会发生什么?
  • 我将结帐策略更改为“始终签出新副本”。我不想这样做(并且还以为我已经尝试过了),但是 atm 构建正在使用这个不同的策略。抱歉,我在这个项目中被取消了大约 3 周的时间:P
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-25
  • 2022-09-27
相关资源
最近更新 更多