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

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

沙小白
2023-03-14
问题内容

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

Jenkins能够 根据 退出状态
将作业标记为成功/失败 。在 PHP中,如果脚本 在运行期间检测到测试失败, 则以1退出
。其他shell脚本运行命令并使用其中的退出代码将构建标记为失败。

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

在Jenkins术语中,不稳定的构建定义为:

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

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


问题答案:

使用Text-finder插件。

而不是退出状态1(这将使构建失败),请执行以下操作:

if ($build_error) print("TESTS FAILED!");

在生成后操作中,将启用“文本查找器”,设置正则表达式以匹配您打印的消息(TESTS FAILED!),然后选中该条目下的“如果找到则不稳定”复选框。



 类似资料:
  • 问题内容: 我在寻找答案时发现的恐怖故事… 好的,我有一个.sh脚本,它几乎完成了詹金斯应该做的所有事情: 从SVN检出源 建立项目 部署项目 自己清洗 因此,在Jenkins中,我只需要通过在ExecuteShell命令中运行脚本来“构建”项目。脚本已运行(下载了源代码,项目正在构建/部署中),但随后将构建标记为失败:生成步骤’Executeshell’将构建标记为失败,即使脚本已成功运行!我尝

  • 我在寻找答案时发现的恐怖故事... 好的,我有一个。sh脚本,它几乎完成了Jenkins应该做的一切: null null

  • 问题内容: 目前,我正在Jenkins中构建和测试我的应用。如果作业中的测试失败,则将构建标记为“不稳定”。即使测试失败,是否有可能将构建标记为“稳定”?如果代码未编译,则将构建标记为“失败”,这很好。 问题答案: 有一个名为Jenkins Text Finder的插件:https : //wiki.jenkins-ci.org/display/JENKINS/Text- finder+Plugi

  • 我们使用的是Liquibase 3.6.3版本 我们正在使用SQL服务器数据库上的liquibase运行SQL升级脚本,使用liquibase.bat(我们作为安装的一部分获得),如下所示。这是按预期工作的。 命令: liquibase.bat--ChangeLogFile=...\MasterChangelog.xml--驱动程序==com.microsoft.sqlserver.jdbc.SQ

  • 问题内容: 在Amazon S3 Linux实例上,我有两个名为的脚本,它们 永远 启动和停止(依次运行Node.js应用程序)。我使用这些脚本手动启动和停止我的Node.js应用程序。到目前为止,一切都很好。 我的问题:我还想将其设置为在系统启动时运行。我知道我需要在其中添加文件,并且知道如何将其符号链接到其中的适当目录,但是我无法弄清楚放置在其中的文件中实际需要什么。我认为这应该只是一条线,例

  • 问题内容: 我能够运行以下shell脚本,但无法从Jenkins管道代码运行。 尝试1。 输出: 尝试2: 尝试过sh“”“ 输出 : 美元符号后的非法字符串体字符;解决方案:要么转义文字美元符号,要么将值表达式括起来 有人能帮我吗? 问题答案: 这应该工作。 您还需要在调用下面的新subshel​​l时转义$