Jenkins声明性管道似乎正在执行两次bash脚本

时间:2017-05-15 17:35:46

标签: linux bash jenkins jenkins-pipeline

我的Jenkins管道中有一个阶段,它执行以下操作:

stage('nose tests') {
        steps {
            timeout(45) {
                wrap([$class: 'Xvfb', additionalOptions: '', assignedLabels: '', displayName: 99,
                      displayNameOffset: 0, installationName: 'Xvfb', screen: '']) {
                    sh "bin/run-ci-tests.sh"
                }
            }
        }
        post {
            always {
                junit '**/nosetests.xml'
            }
        }
    }

bash脚本bin/run-ci-tests.sh设置一个venv,更新需求,启动各种依赖项,然后运行nosetests。

bash脚本还会尝试通过杀死各种子进程来自行清理。这在Jenkins上下文中变得有点复杂,因为Jenkins从属进程是进程组的一部分,所以我不能被PGID杀死。

在清理故障时,我注意到有两个PID说他们的命令是`bin / run-ci-tests.sh"。如果这实际上是两次运行就不会很好......

ubuntu@jenkins3-exec02:~$ ps aux | grep run-ci-tests.sh
jenkins  10797  0.0  0.0  11212  1644 ?        S    17:22   0:00 bash     bin/run-ci-tests.sh
jenkins  10810  0.0  0.0  11204   672 ?        S    17:22   0:00 bash bin/run-ci-tests.sh
ubuntu   12114  0.0  0.0  10464   948 pts/0    S+   17:24   0:00 grep --color=auto run-ci-tests.sh

有关为什么这可能会出现两次运行的任何见解?

0 个答案:

没有答案