如何在Jenkins中始终运行构建步骤并忽略失败

3
我使用 sdk-manager-plugin 下载 Android 依赖项。不幸的是,我的 Jenkins CI 构建经常因为“首次下载”问题 (#47 #10) 而失败。
听说人们通过两次构建代码来解决这个问题,这样如果第一次失败则第二次会通过。
我们尝试在 Jenkins 中使用条件步骤 (如下面的截图) 来设置,但如果第一步失败,它仍会导致整个 CI 作业失败。
请问有人能推荐最佳设置方法吗? jenkins config

根据Dominik Bartholdi于2014年9月9日的评论,Jenkins在状态更改为SUCCESS以外的任何状态后都不会调用conditional-buildstep。 - Yenchi
2个回答

2
我发现解决这个问题最简单的方法是运行“执行 shell”步骤来进行增量SDK更新,以确保Android SDK组件是最新的。
以下是我的Jenkins CI构建步骤配置: Jenkins config 以下是命令:
(for i in {1..30}; do echo y; sleep 1; done) | /opt/android/android-sdk-linux/tools/android update sdk --all --no-ui --filter \    
extra-android-m2repository,extra-android-support,extra-google-google_play_services,extra-google-m2repository    

对于我的环境(我目前正在使用CloudBees的云中Jenkins),有一个微妙之处:我需要确保不更新platform-tooltool组件,因为这会导致我的构建频繁变得不稳定并失败。我正在运行一个Google Inc.:Google APIs:18模拟器,对我来说比较新的模拟器更加稳定。


我已经成功地使用了您的命令。这只是一个细节,但我不明白为什么它会抱怨“y”:未知响应“y”。 - gouessej

0

如果您的构建失败,您可以使用Naginator插件自动触发重建。

此外,如果您在下载方面遇到问题,可以尝试设置缓存代理服务器。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接