Windows START命令无法使用Jenkins Pipeline

问题描述 投票:2回答:1

我的脚本中有以下代码。

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

batch-file jenkins jenkins-pipeline command-prompt
1个回答
1
投票

Windows服务无法打开新的控制台窗口,但START就是这样做的。因此,如果您将Jenkins作为服务运行,这将无法正常工作。但是,如果您只是跳过START命令,您的脚本应该可以正常工作。只要npm run prod应该就够了。

编辑:

好的,这是一个解决方法:如果您确实需要使用start命令,则可以使用任务计划程序创建任务。在那里你可以放置你想要的任何批次代码或只是将它指向一个bat文件。使用Schtasks /run /TN TaskName从Jenkins执行您的任务。

© www.soinside.com 2019 - 2024. All rights reserved.