0

宣言型パイプラインを使用して、特定の条件に基づいて完了したステージをマークするにはどうすればよいですか?

次の例では、プロセスが実行されていないときにステージを完了としてマークしたいと考えています。

この例は、展開を続行するために、ソフト キル後に特定のアプリケーションが実行されていないことを確認するために適用されます。

pipeline {
    agent any
    stages {
        stage('1') {
            steps {
                timeout(time: 10, unit: 'MINUTES') {
                    waitUntil {
                        script {
                            def ret = sh script: 'ps ux | grep testout.sh  | grep -v grep | wc -l', returnStdout: true
                            echo ret
                            if (ret != 0) {
                                // what should i use to finish this step?
                            }
                        }                        
                    }
                }
            }
        }
    }
}
4

1 に答える 1

0

これを行うにはもっと良い方法があると思いますが、現在、次の方法で望ましい結果を達成しています。

pipeline {
    agent any
    stages {
        stage('1') {
            steps {
                timeout(time: 10, unit: 'MINUTES') {
                    script {
                        waitUntil {
                            def ret = sh script: 'ps ux | grep testout.sh  | grep -v grep | wc -l', returnStdout: true
                            if (ret.trim() != "0" ) {
                                return false
                            } else {
                                return true
                            }                            
                        }

                    }
                }

            }
        }
    }
}

それまでの間、これに対する適切な解決策が見つかったら、この回答を更新します。

于 2018-03-12T15:06:26.077 に答える