我的脚本中有以下代码。
echo Trying to kill all node processes.
taskkill /f /im node.exe
echo Running the application...
start npm run prod
echo Success...
如果我打开命令提示符并从那里运行它,脚本运行正常,但是当我从Jenkins管道运行它时,它不会启动npm run
进程。
奇怪的是构建成功。
任何人都可以帮我解决这个谜语吗? 谢谢。 更新 - 1 这是Jenkins的输出。
up to date in 23.58s
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Deployment)
[Pipeline] bat
[ABC Pipeline] Running batch script
*************************************
Build Started
@author:
*************************************
Trying to kill all node processes.
ERROR: The process "node.exe" not found.
Running the application...
Success...
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Automation Testing)
[Pipeline] echo
Testing...
[Pipeline] echo
Tests passed!
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Finished: SUCCESS
更新 - 2 npm文件扩展名为.cmd,Windows 10为Jenkins 2.89.4
答案 0 :(得分:1)
Windows服务无法打开新的控制台窗口,但START
正在执行此操作。因此,如果您将Jenkins作为服务运行,那么这项工作就无法完成。但是,如果您只是跳过START
命令,那么您的脚本应该可以正常工作。只需npm run prod
即可。
修改强>
好的,这是一个解决方法:如果您确实需要使用start命令,则可以使用任务计划程序创建任务。在那里你可以放置你想要的任何批次代码或只是将它指向一个bat文件。使用Schtasks /run /TN TaskName
从Jenkins执行您的任务。