eam*_*ram 3 shell jenkins jenkins-pipeline
我正在 Jenkins 尝试以下操作,旨在搜索工作中的失败字符串。
这将每天运行。
def sd = "2020" + "${env.START_DATE}" + "0000"
def ed = "2020" + "${env.END_DATE}" + "2359.59"
pipeline {
agent {label "master"}
stages {
stage('Build') {
steps {
print(sd)
sh 'echo "Hello World"'
sh """
pwd
#rm end-time start-time
#rm $WORKSPACE/$PARSING_OUTPUT
touch -t $sd $WORKSPACE/start-time
touch -t $ed $WORKSPACE/end-time
find /var/lib/jenkins/jobs/. -type f -newer $WORKSPACE/start-time ! -newer $WORKSPACE/end-time -name '*' -exec grep $SEARCH_STRING /dev/null {} + >> $WORKSPACE/$PARSING_OUTPUT
ls -ltr
"""
}
post {
always {
echo "sending mail"
//mail to: 'e@s.com',
//subject: "Parse Jenkins log",
//body: "TBD"
//body: "${env.BUILD_URL} has result ${currentBuild.result}"
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,如果我正在寻找的字符串不存在。作业失败。
控制台输出显示ERROR: script returned exit code 1。
我尝试添加#!/bin/sh这将允许我在没有选项的情况下执行 - 没有帮助。
有什么建议 ?
小智 8
有多种方法可以达到上面的效果
use set +e# 禁用非零退出
sh ''''
set +e
..
'''
Run Code Online (Sandbox Code Playgroud)
使用或|| 用命令
sh''''
$CMD || echo "string doesn't exist."
'''
Run Code Online (Sandbox Code Playgroud)
像下面这样使用
sh (
script: 'YOUR SCRIPT',
returnStatus: true
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14209 次 |
| 最近记录: |