簡體   English   中英

JENKINS 管道基於早期階段的 OUTPUT 中止

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM