如何让jenkins移动到下一阶段,如果它的“终端”被阻止?
问题描述:
我正在尝试运行http调用来测试将要在jenkins机器上运行的活动web api。如何让jenkins移动到下一阶段,如果它的“终端”被阻止?
这是使用的管道脚本。
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"
}
但是詹金斯会不会移动到测试一步。如何在Web应用程序完全启动后运行npm test
?
答
一种方法是在最后启动一个&网络应用程序,以便它将在后台运行。即
npm start &
您可以尝试NPM启动的输出重定向到一个文本文件是这样的:在下一步
npm start > output.txt &
然后,循环下去,直到“启动”消息可用的,是这样的:
tail -f output.txt | while read LOGLINE
do
[[ "${LOGLINE}" == *"listening on port"* ]] && pkill -P $$ tail
done
代码没有测试:)
如果我这样做,我怎么能确定测试只会在应用程序完成其启动过程后才开始? –
看到我的编辑,它可能会有所帮助 –