运行 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 中标记构建不稳定 的相关文章

  • 在 selenium 下运行 chromedriver 日志时,如何减少其详细程度?

    我的功能测试的詹金斯失败报告充满了这样的行 selenium webdriver remote remote connection DEBUG Finished Request selenium webdriver remote remot
  • 拼写检查 shell 脚本

    我有一些疑问 我对一个应该是简单拼写检查器的脚本有疑问 它的目的是 当发现错误的单词时 它会提示用户输入该单词的正确拼写 如果用户输入正确的拼写 则会显示更正的单词以及错误的单词 下面 在读完所有单词之后 但是 如果用户只是按 Enter
  • 如果文件没有行尾字符,则 wc -l 不计算文件的最后一个

    我需要计算 unix 文件的所有行数 该文件有 3 行 但是wc l仅给出 2 个计数 我知道它不计算最后一行 因为它没有行尾字符 任何人都可以告诉我如何计算这一行吗 grep c返回匹配行的数量 只需使用一个空字符串 作为您的匹配表达式
  • Jenkins 文本参数 - 特殊字符乱码(不需要的变量替换)

    我在 Jenkins Linux 下 有一份工作构建参数 https wiki jenkins ci org display JENKINS Parameterized Build类型为 文本 我使用参数来形成在构建过程中使用的文件的内容
  • python等待shell命令完成

    我正在运行脚本来解压缩一些文件 然后删除 rar 文件 我通过 shell 运行命令来完成此操作 我尝试了几种不同的方法来让脚本等待文件解压完成 但它仍然继续并在文件使用完成之前删除文件 我已经尝试过下面的代码 这是行不通的 我试图看看是否
  • Windows 8.1 上的 Meteor 构建错误

    我已经在 Windows 8 1 64 位上安装了 Meteor 以继续开发现有的 Meteor 应用程序 但是 我无法启动它 Problem 我运行 meteor run 它启动代理 MongoDB 选择包 在最后一步 构建应用程序 之后
  • 来自 jenkins api 的节点标签

    有什么方法可以从 jenkins API 中提取节点标签吗 这standard https wiki jenkins ci org display JENKINS Remote access API base url computer no
  • 如何获取与 shell 中的文件名模式匹配的所有文件的总文件大小?

    我正在尝试仅使用 shell 来计算与文件名模式匹配的所有文件 在目录树中 的总大小 以字节为单位 这是我到目前为止所拥有的 find name undo exec stat c s awk 总计 1 END 打印总计 有没有更简单的方法来
  • 无法使用新的 TfvcTemplate.12.xaml 进行构建

    我尝试将新模板 TfvcTemplate 12 xaml 与我的构建 Vs 2013 一起使用 但每次我收到以下错误消息 TF215097 An error occurred while initializing a build for b
  • 有哪些基于对象的 shell?

    我打算写一个面向对象的shell 基于Python 我已经有很多想法了 但在实现它之前 我想通过一些现有的 shell 来激发我的灵感 我所说的面向对象的基本意思是 参数不仅仅是字符串数组 而且是对象数组 返回值也是一个对象 不仅有 std
  • Linux shell 从用户输入中获取设备 ID

    我正在为一个程序编写安装脚本 该程序需要在其配置中使用 lsusb 的设备 ID 因此我正在考虑执行以下操作 usblist lsusb put the list into a array for each line use the arr
  • 如何在 Jenkins 服务器上运行 Jest 测试

    我正在尝试运行我的Jest https facebook github io jest 在 Jenkins 部署期间进行测试 如果我 ssh 进入服务器 我可以 sudo 进入 Jenkins 用户并从工作区成功运行测试 但是 当我尝试从
  • VBA Shell 并等待退出代码

    我正在打包一个办公应用程序 VBA 它调用 C 控制台应用程序来执行应用程序 大型模拟程序 的一些繁重工作 我希望能够让 VBA 应用程序等待控制台应用程序完成并从控制台应用程序检索退出代码 我已经能够做到前者 但尚未能够从应用程序中检索退
  • 在 bash 中添加(收集)退出代码

    我需要依赖于脚本中的几个单独的执行 并且不想将它们全部捆绑在一个丑陋的 if 语句中 我想使用退出代码 每次执行并添加它 最后 如果这个值超过阈值 我想执行一个命令 伪代码 ALLOWEDERROR 5 run something RESU
  • 关键字“if”如何测试一个值是真还是假?

    在 bash 脚本中 if 1 then echo Yes else echo No fi Output Yes 它表示 1 被视为真值 但在代码中 word Linux letter nuxi if echo word grep q le
  • 使用 Maven 只重建必要的 jar

    是否有可能让所有maven重建依赖于给定模块的所有模块A 也就是说 包括具有依赖于的模块的模块A等等一直到依赖树 我知道我可以做这样的事情https softwareengineering stackexchange com questio
  • TeamCity 将功能分支推送到主分支

    有没有办法将成功构建的功能分支推送到另一个分支 我想要这样的东西 Git 存储库 Gitorious GitHub 等 分支机构 master 当前项目的代码 质量保证 代码等待 QA 的分支 功能分支 许多远程分支 开发人员可以在其中开发
  • 如何以编程方式构建 Visual Studio 解决方案?

    我想通过传递解决方案文件路径 sln 文件 和构建模式 调试 发布 来编译解决方案 我不想调用像 devenv exe 或 msbuild exe 这样的命令行进程 相反 我想使用 API 并了解是否存在编译错误 是否可以 如果您认为您知道
  • 在 CMake 中使用 -isystem 而不是 -I

    在使用 gcc 构建时 CMake 是否有任何方法可以强制通过 include directories 或者可能通过不同的函数 指定的路径使用 isystem 标志而不是 I 标志 See http gcc gnu org onlinedo
  • 如何修复 slurm 中的“slurmd.service:无法打开 PID 文件”错误

    尽管 SLURM 在作业提交 运行和排队方面工作得很好 但我遇到了下面的一个小错误 sudo systemctl status slurmd Jun 12 10 20 40 noki System Product Name systemd

随机推荐

  • 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 代码覆盖率报告等 詹金斯