当前位置: 首页 > 面试题库 >

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

糜单弓
2023-03-14
问题内容

我使用sdk-manager-plugin下载我的Android依赖项。不幸的是,由于“首次下载”问题(#47


#10),我的Jenkins
CI构建经常失败。

我听说人们通过两次构建代码来解决此问题,因此,如果第一次失败,则第二次通过。

我们尝试使用条件步骤在Jenkins中进行设置(以下屏幕截图),但是如果第一步失败,它仍然会导致整个CI作业失败。

有人可以推荐设置此设置的最佳方法吗?

詹金斯<a href=配置" src="https://imgs.xnip.cn/cj/l/48/e09b6d3d-7097-4c89-9a49-ae9cf9152f2c.png" />


问题答案:

我发现解决此问题的最简单方法是运行“执行外壳”步骤以进行增量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- tooltool组件,因为这会导致构建经常变得不稳定和失败。我正在运行一个Google Inc.:Google APIs:18模拟器,对我来说,它比更新的模拟器更稳定。



 类似资料:
  • 问题内容: 詹金斯的新手:我正在詹金斯建立我们的团队。设置构建步骤以运行nodejs脚本(使用Sencha Touch 2将脚本将构建的应用程序带入本地iOS应用程序的脚本)。nodejs脚本需要一个扳手库。 Jenkins用户似乎在不同的上下文中运行。它看不到我的节点安装或npm安装。作为构建步骤的一部分,我必须将路径导出到node和npm。现在,我已经完成了,构建可以看到node和npm命令。

  • 问题内容: 我想要一个Jenkins构建步骤,该步骤只是将给定的URL下载到工作区中。有没有简单的方法可以做到这一点? (我目前使用一个简单的Ant脚本。但这意味着我需要将该脚本放在SVN中的某个位置,并在构建期间进行检查。我觉得很麻烦。) 更新: 澄清一下,我想下载一个URL,而无需在构建系统上安装其他软件或使用其他脚本。(当然,可以使用Jenkins插件。)优选地,我不想依赖于Linux,Wi

  • 我试图寻找一个Jenkins插件(比如AWS codeDeploy ),这样我就可以将我的应用程序部署到Kubernetes集群上。到目前为止,我已经成功地将其推送到Docker注册中心,并添加了一些命令行构建步骤来部署到Kubernetes。看看CloudBees的公告,这似乎是可能的 安装 Kubernetes 插件给了我错误...如果有帮助,我可以附上屏幕截图...此外,此插件似乎允许您在D

  • 问题内容: 使用Gradle管理Android的依赖关系是一种怪异的方式。它们必须以不同的方式下载到本地存储库中。设置CI构建时,这很麻烦,因为可以在多个节点上运行。因此,我正在使用sdk- manager-plugin 在构建时下载Android依赖项。我似乎在使用sdk-manager- plugin时遇到了一个老错误,尽管它会在构建时下载依赖项,但是在该命令上将不可用。 下次运行该命令时,一

  • 在Jenkins管道中,我使用构建步骤触发其他几个作业,并向其传递一些参数。除了管道之外,我在可视化我触发的不同工作时遇到了问题。我已经设置了Jenkins Delivery Pipeline插件,但是它的文档非常模糊,我只能可视化管道中的步骤,尽管用阶段和任务名称标记作业。 例子: 我在Jenkins中有两个作业作为管道/工作流作业,具有以下管道脚本: 工作坊: 作业栏: 我如何使它也显示在工作

  • 问题内容: 我们有两个版本 A* 和 B ,其中 A 是依赖于库 B 的应用程序。两者都是Qt项目。詹金斯每15分钟轮询一次SCM。有时我提交了 A 和 B, 但是 A 的计时器在 B 的计时器之前结束。因此,应用程序使用旧库进行构建,这会导致构建失败。现在,我正在寻找一种方法告诉Jenkins,必须在 A 的构建开始之前先构建 B。 但是,只有 在 成功构建 后 才能构建某些东西。 * __ 有