HNy*_*ard 79 shell build status jenkins
在我正在开发的项目中,我们使用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);
Run Code Online (Sandbox Code Playgroud)
在Jenkins术语中,不稳定的构建被定义为
如果构建成功并且一个或多个发布者报告它不稳定,则构建不稳定.例如,如果配置了JUnit发布者并且测试失败,则构建将标记为不稳定.
在运行shell脚本时,如何让Jenkins将构建标记为不稳定而不是仅成功/失败?
bin*_*yLV 56
它可以在不打印魔术字符串和使用TextFinder的情况下完成.这是关于它的一些信息.
基本上,您需要在shell脚本中提供http:// yourserver.com/cli 的.jar文件,然后您可以使用以下命令标记构建不稳定:
java -jar jenkins-cli.jar set-build-result unstable
Run Code Online (Sandbox Code Playgroud)
要在错误时标记构建不稳定,您可以使用:
failing_cmd cmd_args || java -jar jenkins-cli.jar set-build-result unstable
Run Code Online (Sandbox Code Playgroud)
问题是jenkins-cli.jar必须从shell脚本中获得.您可以将其放在易于访问的路径中,也可以通过job的shell脚本下载:
wget ${JENKINS_URL}jnlpJars/jenkins-cli.jar
Run Code Online (Sandbox Code Playgroud)
Jan*_*dec 54
使用Text-finder插件.
不要退出状态1(这会使构建失败),而是:
if ($build_error) print("TESTS FAILED!");
Run Code Online (Sandbox Code Playgroud)
在后置构建操作中启用文本查找器,设置正则表达式以匹配您打印的消息(TESTS FAILED!)并选中该条目下的"找不到,如果找不到"复选框.
Ala*_*oni 49
现代Jenkins版本(自2016年10月2.2日起)解决了这个问题:它只是Execute shell构建步骤的高级选项!
您可以选择并设置任意退出值; 如果匹配,则构建将不稳定.只需选择一个不太可能由构建中的实际进程启动的值.
pou*_*sma 17
您应该使用Jenkinsfile来包装构建脚本,并使用以下方法将当前构建标记为UNSTABLE currentBuild.result = "UNSTABLE".
stage {
status = /* your build command goes here */
if (status === "MARK-AS-UNSTABLE") {
currentBuild.result = "UNSTABLE"
}
}
Kal*_*oni 10
你也应该能够使用groovy并做textfinder做的事情
使用groovy post-build插件将构建标记为不稳定
if(manager.logContains("Could not login to FTP server")) {
manager.addWarningBadge("FTP Login Failure")
manager.createSummary("warning.gif").appendText("<h1>Failed to login to remote FTP Server!</h1>", false, false, false, "red")
manager.buildUnstable()
}
Run Code Online (Sandbox Code Playgroud)
在我的工作脚本中,我有以下语句(此作业仅在Jenkins主服务器上运行):
# This is the condition test I use to set the build status as UNSTABLE
if [ ${PERCENTAGE} -gt 80 -a ${PERCENTAGE} -lt 90 ]; then
echo WARNING: disc usage percentage above 80%
# Download the Jenkins CLI JAR:
curl -o jenkins-cli.jar ${JENKINS_URL}/jnlpJars/jenkins-cli.jar
# Set build status to unstable
java -jar jenkins-cli.jar -s ${JENKINS_URL}/ set-build-result unstable
fi
Run Code Online (Sandbox Code Playgroud)
您可以在Jenkins wiki上看到这个以及有关设置构建状态的更多信息:https://wiki.jenkins-ci.org/display/JENKINS/Jenkins+CLI