运行 shell 脚本时如何在 Jenkins 中标记构建不稳定

2023-11-22

在我正在进行的一个项目中,我们使用 shell 脚本来执行不同的任务。有些是运行 rsync 的 sh/bash 脚本,有些是 PHP 脚本。 PHP 脚本之一正在运行一些集成测试,这些测试输出到 JUnit XML、代码覆盖率报告等。

詹金斯能够根据以下条件将作业标记为成功/失败退出状态. In PHP,脚本以 1 退出如果在运行期间检测到测试失败。其他 shell 脚本运行命令并使用这些命令的退出代码将构建标记为失败。

// :: End of PHP script:
// If any tests have failed, fail the build
if ($build_error) exit(1);

In 詹金斯术语,不稳定的构建定义为:

如果构建成功,并且一个或多个发布者报告它不稳定,则该构建不稳定。例如,如果配置了 JUnit 发布者并且测试失败,则构建将被标记为不稳定。

在运行 shell 脚本时,如何让 Jenkins 将构建标记为不稳定而不是仅成功/失败?


现代 Jenkins 版本(自 2.26,2016 年 10 月起)解决了这个问题:它只是执行 shell 构建步骤的高级选项!

exit code for build

您可以选择并设置任意退出值;如果匹配,构建将不稳定。只需选择一个不太可能由构建中的真实进程启动的值即可。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

运行 shell 脚本时如何在 Jenkins 中标记构建不稳定 的相关文章

  • Bash 方法的返回值总是模 256

    我有一个 bash 脚本方法 它返回输入值 然而 返回值始终是模 256 的值 我用 google 搜索了一段时间 发现this http www tldp org LDP abs html exitcodes html文章说它总是以 25
  • Bash 脚本大小限制?

    我有一个 bash 脚本 在 RHEL 或 OS X 上运行时出现以下错误 第 62484 行 意外标记 换行符 附近出现语法错误 第 62484 行 o gz 这是一个自动生成的脚本 用于解决我公司使用的 Grid Engine 计算集群
  • 无法安装企业应用程序 - 此配置文件无法安装在此设备上

    我正在设置 Jenkins 来构建应用程序的企业版本 以便在我们的内部应用程序商店中分发 如果我将应用程序存档在 Xcode 中 然后在手机上下载内置的 ipa 则应用程序安装不会出现任何问题 但是当我使用 Jenkins 生成的具有相同私
  • shell_exec 的输出被截断为 100 个字符

    当在 shell 中运行以下命令时 curl F file filename http 192 168 0 1 产生以下输出 Accuracy 0 0 1 classification Accuracy 0 0 1 classificati
  • xsel -o 对于 OS X 等效项

    是否有一个等效的解决方案可以在 OS X 中抓取选定的文本 就像适用于 Linux 的 xsel o 一样 只需要当前的选择 这样我就可以在 shell 脚本中使用文本 干杯 埃里克 你也许可以安装xsel在 MacOS 上 更新 根据 A
  • 使用 Jenkins API 促进构建

    给定一个具有不同升级作业的 Jenkins 构建作业 即 将构建升级到不同的环境 如何使用 Jenkins API 触发特定构建的特定升级作业 综合不同来源的答案得出 Username Username APItoken 12345 Cre
  • docker build --no-cache 是否构建不同的层?

    几个月前 我决定使用以下命令设置我的项目构建 docker 镜像的 CIno cacheflag 我认为最好不要冒险让 docker 使用旧的缓存层 我现在才意识到 我的图像各层的 sha 总是不同的 即使新构建的图像应该生成与之前构建的相
  • 错误:任务“:app:mergeDebugResources”执行失败。 > java.lang.ArrayIndexOutOfBoundsException(无错误消息)

    你们有人知道 Gradle 构建中的这个异常吗 Error Execution failed for task app mergeDebugResources gt java lang ArrayIndexOutOfBoundsExcept
  • ReferenceError:MongoDB shell 中未定义 require

    我尝试通过 Windows 命令 Windows 8 1 从 Mongo 客户端连接 MongoDB 当我使用require 在 javascript 中 我遇到如下错误 有人有同样的问题吗 我有错过任何一个吗require有关的npm安装
  • 无法指向 Jenkins 主机上 ~/.ssh 中的 ssh 密钥

    我已经安装了 SSH 代理插件来使用 SSH 身份验证拉取 Git 存储库 我想使用位于系统文件中的 SSH 密钥 来自 Jenkins master ssh选项 这是从官方插件页面截取的屏幕截图 不幸的是我没有看到这个选项 我只能选择 直
  • Jenkins 管道中的 Sonarqube 质量门状态检查失败

    我是詹金斯管道脚本和声纳库的新手 如果我能就以下问题获得一些帮助 那就太好了 当质量门检查失败时 我想使 Jenkins 声明式管道作业失败 根据声纳文档 https docs sonarqube org latest analysis s
  • 使用 posix shell 测试字符串中的正则表达式

    如何测试字符串是否与特定字符串匹配正则表达式与基本 无 bash 或任何其他 posix shell 脚本 在 if 语句中 您可以使用expr在 POSIX shell 中计算正则表达式的命令 s Abc expr s alpha 3 e
  • 如何在 shell 脚本中并行运行多个实例以提高时间效率[重复]

    这个问题在这里已经有答案了 我正在使用 shell 脚本 它读取 16000 行的输入文件 运行该脚本需要8个多小时 我需要减少它 所以我将其划分为 8 个实例并读取数据 其中我使用 for 循环迭代 8 个文件 并在其中使用 while
  • 如何在 shell 脚本中操作 $PATH 元素?

    有没有一种惯用的方法从类似 PATH 的 shell 变量中删除元素 这就是我想要的 PATH home joe bin usr local bin usr bin bin path to app bin and remove or rep
  • 如何在数组中存储包含双引号的命令参数?

    我有一个 Bash 脚本 它生成 存储和修改数组中的值 这些值稍后用作命令的参数 对于 MCVE 我想到了任意命令bash c echo 0 0 echo 1 1 这解释了我的问题 我将用两个参数调用我的命令 option1 without
  • 有没有办法让我简化这些回声? [复制]

    这个问题在这里已经有答案了 我仍在学习如何编写 shell 脚本 并且我面临着一个挑战 让我更容易回显 Name1 Name2 Name15 我不太确定从哪里开始 我已经想法 但如果我搞砸了 我不想看起来很傻 有什么帮助吗 我实际上还没有尝
  • 如何使用shell脚本从json字符串中grep特定字段值[重复]

    这个问题在这里已经有答案了 下面是文件中可用的 JSON 字符串 我需要从中提取值status在 shell 脚本中 预期输出 status success 响应 json eventDate null dateProccessed nul
  • 如何从 Artifactory 存储库下载最新的工件?

    我需要来自存储库的最新工件 例如快照 人工工厂 http en wikipedia org wiki Software repository Repository managers 该工件需要通过脚本复制到服务器 Linux 我有什么选择
  • 构建 Vue 微前端应用程序(带有路由和 vuex 存储)

    我需要帮助配置使用 Vuex Vue Router 和 Vue i18n 的微前端应用程序的构建 分发 TL DR 我在构建将导入到现有系统中的微前端应用程序时遇到问题 我们的团队尝试通过 vue cli service 和 vue web
  • Jenkins 共享库 - 从 /vars 中的 /src 文件夹导入类

    我正在尝试为我的 CI 流程编写一个 Jenkins 共享库 我想引用一个类 src定义在全局函数内的文件夹 vars文件夹 因为它允许我将大部分逻辑放在类中而不是全局函数中 我遵循 Jenkins 官方文档中记录的存储库结构 Jenkin

随机推荐

  • Linux 上的 PostgreSQL“initdb”(数据库初始化)

    我正在努力在 Linux 系统 CentOS RedHat Fedora 上工作的 PostgreSQL 9 x 中创建数据库集群 单个数据库 我已经安装了正确的 PostgreSQL 软件包 服务器和客户端 但是 我无法创建数据库并获取某
  • 如何将 SSH 身份文件密钥对添加到 JKS 密钥库

    我正在构建的 Java 应用程序的任务之一是连接到远程 SFTP 服务器 为了做到这一点 我拥有远程计算机的证书和本地身份 id rsa and id rsa pub in the ssh文件夹 这工作正常 我想将证书和身份放在受密码保护的
  • django-tastypie:通过关系发布到具有ManytoMany字段的资源

    我正在为一个项目开发 API 并且通过 OrderProducts 建立订单 产品关系 如下所示 在 models py 中 class Product models Model class Order models Model produ
  • Unity解决循环依赖

    在学习Unity的同时 DI框架中C 我遇到了一种情况 其中一个类有一个 setter 注入ClassB class ClassA IClassA Dependency public IClassB ClassB get return cl
  • 在受保护的路由reactjs中传递props

    我在我的reactjs应用程序中使用受保护的路由 我想知道如何在受保护的路由中传递道具 或者是否有更优雅的方法来解决我的问题 我觉得需要在受保护的路由中传递 props 的原因是注销按钮位于受保护的组件内 我需要与包含用户尝试注销的所有路由
  • 仅带有图标的滑动 TabLayout

    下列的this例如 我能够创建一个仅包含图标的 SlidingTabLayout 但我想将它们居中 我需要创建自定义视图还是有其他解决方案 任何帮助 将不胜感激 最后我想通了 这是我的代码示例 为每个选项卡创建一个可绘制对象 在我的例子中我
  • 为什么我不能在node.js(browserify)的require()函数中使用变量作为参数?

    我尝试过类似的东西 var path right here var module require path 但它无法再以这种方式找到模块 同时 var module require right here 奇迹般有效 想要加载带有生成的字符串
  • 将 Visual C 与 MinGW 静态库链接

    如何将 Visual C 2010 控制台应用程序与由以下人员创建的 STATIC 库链接MinGW a格式 它与 Visual C 2010 兼容吗 谢谢 它不兼容 但是 如果您从库中提取所有目标文件 使用ar VC 链接器能够处理这些
  • 从 FileChannel 读取 GZIP 文件 (Java NIO)

    我需要读取 解压给定 FileChannel 的 gz 文件 我尝试过使用 GZIPInputStream 提取 GZIP 档案 但这不需要 FileChannel 我无权访问从中获取 FileChannel 的原始 FileInputSt
  • Scikit-learn:在 GridSearchCV 中评分

    看起来GridSearchCVscikit learn 收集其 内部 交叉验证折叠的分数 然后对所有折叠的分数进行平均 我想知道这背后的理由 乍一看 收集其交叉验证折叠的预测 然后将所选的评分指标应用于所有折叠的预测似乎更灵活 我偶然发现这
  • 雪花中的断言

    有没有办法在 Snowflake 中执行断言 基本上 我正在尝试做一些测试 TDD 并且我想要一种类似于其他语言中的断言的机制 如果断言成功 则返回 true 和 或打印成功消息 如果断言失败 则会引发异常 我找不到任何在 Snowflak
  • PowerShell 无法识别 Java

    我在 Windows 2012 服务器上使用 PowerShell 并从 System32 中删除了所有 java 命令 重新安装了 jdk 将 JAVA HOME 和 Path 设置为指向新安装 我仍然收到以下错误 java The te
  • 如何知道设备的密度?

    我们可以在android中获取分辨率 但是我们如何知道设备 屏幕 的密度呢 thanks 执行以下代码 float scale getApplicationContext getResources getDisplayMetrics den
  • SQL - SELECT MAX() 和附带字段

    我所遇到的基本上是一个可以用多个表轻松解决的问题 但我只有一个表来完成它 考虑以下数据库表 UserID UserName EmailAddress Source 3K3S9 Ben email protected user SF13F H
  • android 中的椭圆是什么意思?

    我添加了一个EditText到我的布局 并添加了一个提示 并使其水平居中 运行应用程序时 提示是不可见的 我发现我应该做ellipsize的值TextView to be start
  • qemu-system-x86_64 :地址解析失败 ::1:46189:名称或服务未知

    我有以下问题 当我跑步时emulator avdname抛出以下错误 qemu system x86 64 chardev socket port 46189 host 1 nowait nodelay ipv6 id modem addr
  • 应用程序传输安全策略要求使用安全连接 - IOS 9

    我在使用 IP 地址连接 API 时遇到问题 即使我将以下代码添加到 plist 它仍然显示错误 如下所示 http xx3 xx xx8 xx7 xxx xxx 错误 无法加载资源 因为应用程序传输安全策略需要使用安全连接 这是我添加到
  • 获取特定用户的 CVS 历史记录

    如何获取特定用户对存储库所做的提交历史记录 我可以通过命令行或 TortoiseCVS 访问 CVS 因此使用任一方法的解决方案就足够了 作为一名编码员 我最感兴趣的是提交更改 而不是标记 分支等 因此我通常包括 c还有提交选项 cvs h
  • “ng-select”不是已知元素

    这是我的代码 我想在我的表格上添加https github com ng select ng select多选标签输入 组件 模块 ts import NgModule from angular core import CommonModu
  • 运行 shell 脚本时如何在 Jenkins 中标记构建不稳定

    在我正在进行的一个项目中 我们使用 shell 脚本来执行不同的任务 有些是运行 rsync 的 sh bash 脚本 有些是 PHP 脚本 PHP 脚本之一正在运行一些集成测试 这些测试输出到 JUnit XML 代码覆盖率报告等 詹金斯