[英]JENKINS PIPELINE TO ABORT BASED ON THE OUTPUT OF EARLIER STAGE
如果我得到輸出為“是”,則比較兩個文件 jenkins 管道應繼續
下面提到了我用來比較 2 個文件的命令。 我已將此命令放在 /jenkins 位置的test.sh文件中
test "$(comm -23 <(sort -u /jenkins/OUTPUT1.txt) <(sort -u /jenkins/OUTPUT2.txt) | wc -l)" = "$(cat /jenkins/OUTPUT2.txt | wc -l)" && echo Yes || echo No
我使用的 jenkins 管道是
pipeline {
agent any
environment {
result = sh(script: 'bash /jenkins/test.sh', returnStdout: true)
}
stages {
stage('command') {
steps {
script {
if (result == '${env.result}') {
result = Yes
echo "conditions are met"
} else if (result == '${env.result}') {
result = No
error('Conditions are not met - build aborted')
}
}
}
}
}
}```
Please suggest me a correct pipeline script for this condition
只需創建一個腳本,在失敗的情況下以非零退出狀態正確退出:
#!/bin/bash
var=$(comm -23 <(sort -u /jenkins/OUTPUT1.txt) <(sort -u /jenkins/OUTPUT2.txt) | wc -l)
shouldbe=$(wc -l < /jenkins/OUTPUT2.txt)
if [[ "$var" != "$shouldbe" ]]; the
echo "Och noooo!"
exit 1
else
echo "Yes!"
fi
然后只需調用腳本:
script {
sh 'bash ./yourscript.sh'
}
Jenkins 檢查每個腳本是否成功(即退出狀態為零)。 非零退出狀態意味着失敗。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.