使用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.
Windows Bat 批处理脚本
Windows Bat 批处理脚本 – Getting Started – Variables – Return Codes – stdin, stdout, stderr – If/Then Con ...
Jenkins自动执行python脚本输出测试报告
前言 在用python做自动化测试时,我们写好代码,然后需要执行才能得到测试报告,这时我们可以通过 Jenkins 来进一步完成自动化工作. 借助Jenkins,我们可以结合 Git/SVN 自动拉取 ...
转:windows BAT 批处理脚本教程
转自:http://www.cnblogs.com/mq0036/p/3412171.html BAT 批处理脚本教程 第一章 批处理基础第一节 常用批处理内部命令简介 批处理定义:顾名思义,批处理文 ...
EasyNVR摄像机H5流媒体服务器在windows上批处理脚本自动以管理员权限运行
很多时候, 我们需要以管理员权限来运行批处理脚本, 比如操作 windows 服务. EasyNVR 中提供安装服务的批处理脚本, 运行这个bat文件, 自动将 EasyNVR 以 windows 服 ...
解决Jenkins中执行jmeter脚本后不能发报告(原报告被覆盖、新报告无法保存)的问题
我没有找到根本原因,但是我用了个取巧的办法: 先将原来的报告移到别的文件夹,执行完jmeter脚本后,再把那些旧报告移回来(也可以不移回来,我这里是为了能从jenkins页面上看).
windows 执行bat脚本
bat脚本中运行另外一个bat脚本 call 命令 call1.bat内容如下 echo running call1 call2.bat内容如下 @echo off echo start call c ...
Jenkins怎么安装?Jenkins控制台输出乱码怎么处理?Jenkins执行selenium脚本时浏览器不显示怎么处理?
今天我们来看一看Jenkins的安装. 首先我们看一下Jenkins是什么,能够干什么.Jenkins呢是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开 ...
随机推荐
PCL中的类
1. PCLBase pcl_base.h中定义了PCL中的基类PCLBase,PCL中的大部分算法都使用了其中的方法. PCLBase实现了点云数据及其索引的定义和访问. 两个主要的变量input_ ...
Openfire开发广播服务接口,支持离线广播消息
Openfire开发广播服务接口,支持离线广播消息 概要 最近公司要求做一个web端向所有移动端发送公告,所以考虑到即时性就用openfire做服务.不过为了减轻web端的工作量,我们开发一个简单的插 ...
IIS7.5应用程序池集成模式和经典模式的区别介绍
IIS7.5应用程序池集成模式和经典模式的区别介绍 作者: 字体:[增加 减小] 类型:转载 时间:2012-08-07 由于最近公司服务器上需要将iis的应用程序池全部都升级到4.0的框架,当 ...
性能测试-并发和QPS
性能测试-并发和QPS 响应时间: cpu计算耗时 + cpu等待耗时 + 网络io耗时 + 磁盘io耗时 并发: 服务端并发和客户端并发不是同一个概念.客户端并发仅仅是为了模拟多用户访问,服务端并发 ...
Prometheus Operator - 每天5分钟玩转 Docker 容器技术(177)
前面我们介绍了 Kubernetes 的两种监控方案 Weave Scope 和 Heapster,它们主要的监控对象是 Node 和 Pod.这些数据对 Kubernetes 运维人员是必须的,但还 ...
u-boot移植(十三)---代码修改---裁剪及环境变量 二
一.错误处理 上一节遇到一个错误: print一下: 发现我们在jz2440.h中静态写的网络参数都没有写进去. dm9000 address not set. dm9000的地址未设置. 这里对应两 ...
allegro中Autosilk top, Silkscreen top 和Assembly top三个什么区别(转)
allegro中Autosilk top, Silkscreen top 和Assembly top三个什么区别(转) Autosilk top, Silkscreen top 和Assembly t ...
设置sqlplus访问远程oracle数据库的最快方法
设置sqlplus访问远程oracle数据库的最快方法 时间:2010-01-21 10:57来源: 作者: 点击: 2次 设置sqlplus访问远程oracle数据库的最快方法,如果要连接远程数据库 ...
Ace Admin 学习笔记
1. jqGrid 提交编辑数据,控制台报:Synchronous XMLHttpRequest on the main thread... jqGrid的选项设置async: true选项: aj ...