成功后 Jenkins 构建不会停止

Jenkins build won't stop at all after SUCCESS

我有一个 Jenkins 项目,只要有新内容推送到相关 GitHub 存储库的 jenkinstest 分支,就会触发该作业。

这份工作具体是做什么的?它在 DebugRelease(x86 和 x64)上构建了一个 Visual Studio 解决方案。因此,它运行 MSBuild.exe 四次。之后,它使用 utilities_test.exe 可执行文件运行 Google 测试命令。

这是第一步执行的命令:

echo "Building solution file on Debug x64"

"C:\Program Files (x86)\Microsoft Visual Studio19\Professional\MSBuild\Current\Bin\MSBuild.exe" "D:\Jenkins\workspace\CFT_TCA_IMS\SAB_Test\Repository\Utilities\solution_windows\utilities.sln" /p:Configuration="Debug" /p:Platform="x64"

IF %ERRORLEVEL% EQU 0 (echo "Build status of the solution file with <Debug x64> configuration is PASSED") Else (echo "Build status of the solution file with <Debug x64> configuration is FAILED")

(每个平台多了三个批处理脚本)。接下来的测试如下所示:

echo off

echo "Running test on Debug x64"

"D:\Jenkins\workspace\CFT_TCA_IMS\SAB_Test\Repository\Utilities\solution_windows\x64\Debug\utilities_test.exe" --gtest_filter=CategoryName.MyTest

exit 0

似乎一切正常。构建过程是在推送时触发的,测试似乎通过了,但是有一个问题。我还使用 Jenkins 的 Log Parser 并在 Post-build Actions 中添加了一个 Console输出(构建日志)解析 操作,使用如下项目规则:

info /0 Error/
info /0 Warning/
info /(?i)errorreport/
error /(?i)error/
error /(?i)failed/
warning /(?i)warning/
info /(?i)building/
info /(?i)done/

因此,我的构建似乎没有停止。构建我的解决方案通常需要大约 2-3 分钟,但我已经等了 20 分钟,但什么也没发生。

正在构建解决方案,测试通过,但构建过程不会停止。我的控制台日志的最后输出是:

13:35:10 Note: Google Test filter = CategoryName.MyTest
13:35:10 [==========] Running 1 test from 1 test case.
13:35:10 [----------] Global test environment set-up.
13:35:10 [----------] 1 test from CategoryName
13:35:10 [ RUN      ] CategoryName.MyTest
13:35:10 [       OK ] CategoryName.MyTest (0 ms)
13:35:10 [----------] 1 test from CategoryName (0 ms total)
13:35:10 
13:35:10 [----------] Global test environment tear-down
13:35:10 [==========] 1 test from 1 test case ran. (0 ms total)
13:35:10 [  PASSED  ] 1 test.

这里没有关于我的日志解析器的输出。 当我删除 Log Parser post-build 操作时,一切似乎都运行良好。还尝试从解析器的配置文件中删除所有内容,但没有任何内容得到修复。

知道它可能是什么吗?任何帮助,将不胜感激。 谢谢。

您 运行 是在奴隶上建造的吗?如果是这样,Jenkins 在完成构建步骤之后但在将构建标记为完成之前将日志文件和其他工件复制回主服务器。您这里可能有网络或 I/O 瓶颈。 如果您无法找出根本原因,只想让构建在没有干预的情况下终止,您可以使用构建超时插件。