如何始终 运行 Jenkins 中的构建步骤并忽略失败
How to always run a build step in Jenkins and ignore failure
我用的是sdk-manager-plugin to download my Android dependencies. Unfortunately my Jenkins CI build frequently fails due to "first time download" issues (#47 #10).
我听说人们通过两次构建代码来解决这个问题,这样如果第一次失败,第二次就会通过。
我们尝试使用条件步骤(下面的屏幕截图)在 Jenkins 中进行设置,但如果第一步失败,它仍然会导致整个 CI 作业失败。
谁能推荐最好的设置方法?
如果构建失败,您可以使用 Naginator 插件自动触发重建。
此外,如果您在下载时遇到问题,您可以尝试设置缓存代理服务器。
我发现解决此问题的最简单方法是 运行 "Execute shell" 步骤来执行增量 SDK 更新,以确保 Android SDK 组件是最新的。
这是我的 Jenkins CI 构建步骤配置:
命令如下:
(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
我的环境的一个微妙之处(我目前在云中使用 Jenkins,使用 CloudBees):我需要确保我没有更新 platform-tool
或 tool
组件,因为导致我的构建经常变得不稳定和失败。我正在 运行 使用 Google Inc.:Google APIs:18
模拟器,它对我来说似乎比新的模拟器稳定得多。
我用的是sdk-manager-plugin to download my Android dependencies. Unfortunately my Jenkins CI build frequently fails due to "first time download" issues (#47 #10).
我听说人们通过两次构建代码来解决这个问题,这样如果第一次失败,第二次就会通过。
我们尝试使用条件步骤(下面的屏幕截图)在 Jenkins 中进行设置,但如果第一步失败,它仍然会导致整个 CI 作业失败。
谁能推荐最好的设置方法?
如果构建失败,您可以使用 Naginator 插件自动触发重建。
此外,如果您在下载时遇到问题,您可以尝试设置缓存代理服务器。
我发现解决此问题的最简单方法是 运行 "Execute shell" 步骤来执行增量 SDK 更新,以确保 Android SDK 组件是最新的。
这是我的 Jenkins CI 构建步骤配置:
命令如下:
(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
我的环境的一个微妙之处(我目前在云中使用 Jenkins,使用 CloudBees):我需要确保我没有更新 platform-tool
或 tool
组件,因为导致我的构建经常变得不稳定和失败。我正在 运行 使用 Google Inc.:Google APIs:18
模拟器,它对我来说似乎比新的模拟器稳定得多。