如果它的"终端"如何让詹金斯进入下一阶段?被封锁了?

时间:2016-07-14 19:30:23

标签: node.js jenkins jenkins-pipeline

我试图运行http调用来测试将在jenkins机器上运行的实时网络API。

这是已经使用的管道脚本。

stage 'build'
    node {
        git url: 'https://github.com/juliomarcos/sample-http-test-ci/'
        sh "npm install"
        sh "npm start"
    }
stage 'test'
    node {
        sh "npm test"
    }

但詹金斯不会进入测试步骤。如何在网络应用完全启动后运行npm test

1 个答案:

答案 0 :(得分:1)

一种方法是使用& amp;来启动Web应用程序。最后,它将在后台运行。即。

npm start &

您可以尝试将npm start的输出重定向到这样的文本文件:

npm start > output.txt &

然后在下一步中,循环直到“已启动”消息可用,例如:

tail -f output.txt | while read LOGLINE
do
   [[ "${LOGLINE}" == *"listening on port"* ]] && pkill -P $$ tail
done

代码未经测试:)