我的 Jenkins 管道出现问题。
我对具有指定扩展名的文件执行路径搜索。然后我使用之前找到的文件执行 php -l 。 一切正常,但我希望如果 php -l 发现错误,那么构建和步骤将进入不稳定状态,并且管道的进一步执行将停止。 我设法这样做,但随后构建和步骤处于失败状态
} catch (Exception e) {
error("${e}")
我的管道的部分代码。
def check(){
stage('Validate files') {
try {
sh "find . -type f -iregex '.*\\.\\(php\\)' | xargs -I % sh -c 'php -l \'%\''"
} catch (Exception e) {
error("${e}")
}
}
}
我希望更聪明的人可以指导我找到解决方案:)
有一个可以使用的示例,但可能不完全是您想要的。我使用不稳定()来标记阶段/构建,然后检查 sh 步骤的退出代码以返回或继续管道。
有2个如果,因为你需要返回到舞台之外,而不仅仅是从舞台返回。
#!/usr/bin/env groovy
try {
node {
def exitCode = 0
exitCode = check()
if (exitCode != 0){
return
}
somethingelse()
}
} catch (Throwable err) { // catch all exceptions
throw err
} finally {}
def check(){
stage('Validate files') {
exitCode = sh script:"exit 1", returnStatus:true
if (exitCode !=0){
unstable('message')
}
}
return exitCode
}
def somethingelse(){
stage('Something'){
echo "somethingelse"
}
}