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 回答