jenkins执行bat失败_jenkins windows执行批处理脚本总是失败
使用jenkins 在使用编译vc++的一个项目,在执行批处理脚本的时候总是失败,但是在控制台无论是管理员还是普通用户都能正常编译,jenkins每次都失败,看日志就是调用一个cmd命令直接失败,exit code是1 .方案一:参考了csdn的一篇博客(下面有链接),才知道可能是权限的问题,用非system用户登录就可以正常编译。方法很简单。就是登录 Jenkins service。具体过程:在
使用jenkins 在使用编译vc++的一个项目,在执行批处理脚本的时候总是失败,
但是在控制台无论是管理员还是普通用户都能正常编译,jenkins每次都失败,看日志就是调用一个cmd命令直接失败,exit code是1 .
方案一:参考了csdn的一篇博客(下面有链接),才知道可能是权限的问题,用非system用户登录就可以正常编译。
方法很简单。就是登录 Jenkins service。
具体过程:
在"运行"中输入"services.msc"打开服务窗口,找到"Jenkins".
然后右键属性,在“登录”导航中选择“此用户”任何输入能够运行CMD.exe的用户。这里我用了管理员用户。
重启服务就能正常编译了。
方案二:用msbuild
---------------------------------
另外需要注意一点小问题
一、Execute windows batch command 下面写批处理命令 cmd /c "%WORKSPACE%\builder\build.cmd" ,
这里需要注意需要加双引号 ,因为装的jenkins是32位版本 jenkins全路径有一个空格,对应的sln工程也需要注意这个。
"C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.exe" "C:\Program Files (x86)\Jenkins\workspace\xx\xx.sln" /Rebuild "Release|x86" /Project xx /out log.txt
二、另外因为新用jenkins ,他可以直接拉对应的分支
在源码管理里面的 Branches to build:
Branch Specifier (blank for 'any') : 默认是*/master 可以默认编译你的分支 比如:*/dev
三、某些环境变量设置需要重启jenkins服务
---------------------------------------------------------------------------
http://blog.csdn.net/hwhua1986/article/details/47778131
今天搭建Jenkins持续集成环境,编译环境是.net,在.net下没有比较好的代码覆盖率测试插件,所以用了开源的OpenCover,计算代码覆盖率,然后用ReportGenerator导出hmtl格式的测试报告。这里用到了批处理脚本,到这里问题出现了。
脚本写好之后在Windows系统下直接运行没有任何问题。但你要把它放在Jenkins里作为编译后执行的话就会报错,很诡异。我自已也怀疑是用户权限的问题。但用普通用户直接运行脚本也还是没问题。下午google了一下。按照http://stackoverflow.com/questions/10952280/execute-windows-batch-command-from-jenkins-fails-but-runs-fine-in-cmd-exe 提供的方式试了一下OK了。
方法很简单。就是登录 Jenkins service。
具体过程:
在"运行"中输入"services.msc"打开服务窗口,找到"Jenkins".
然后右键属性,在“登录”导航中选择“此用户”任何输入能够运行CMD.exe的用户。这里我用了管理员用户。
-------------------------------------
https://stackoverflow.com/questions/10952280/execute-windows-batch-command-from-jenkins-fails-but-runs-fine-in-cmd-exe
I too had a similar issue once. Try granting the Jenkins service "Logon as This account" right under services.msc and make sure the account you type there is the same as the one you use for running cmd.exe.
更多推荐
所有评论(0)