敏捷之路 C++ (一) jenkins配置-VS工程自动编译基
Windows安装Jenkins
Windows安装Jenkins主要有两种方式
- 直接安装 使用Jenkins官网的msi安装,使用其自带的web服务,需要联网,有时候会莫名其妙卡住,建议科学上网安装,然后就是默认工作区路径会指向用户路径,这个路径下由于权限问题无法正常工作解决方法
- 使用tomcat 这个方式比较推荐也好管理,安装tomcat,不会百度下tomcat教程。不过有时候也会碰到莫名其妙的问题,比如说刚装好的tomcat装载JENKINS的时候会无法启动或者关闭。一般来说重启电脑就行。注意要提前配置环境变量 CATALINA_HOME与JENKINS_HOME,然后做好tomcat的配置,否则仍然会出现工作区目标不正确的情况。装载jenkins之前先创建好tomcat账户并做好配置以避免一些莫名其妙的问题。
- 然后修改tomcat/jenkins服务的登录用户 在计算机管理->服务->tomcat右键属性->登录中 填写你登陆计算机的账户和密码,然后重启tomcat,否则的话在jenkins中配置时使用你当前用户安装的程序会有问题
关于安装这块官方资料齐全就不浪费时间了。
配置jenkins
接下来启动 jenkins并按照默认设置一路下一步就行了。
成功启动jenkins并检查确认jenkins工作区无误后就可以开始配置jenkins以及自动编译VS项目的相关环境了。
建议: 所有需要安装的工具例如git,python,svn等尽量不要安装在Program Files中,自己重新指定一个没有权限问题,纯英文无特殊符号及空格等的路径。
接下来安装插件
首先是使用vs项目必不可少的MSBuild插件
以及多源项目需要的Multiple SCMs plugin
如果你需要邮件通知则安装Email Extension Plugin
建议安装一个你的工程所需版本的Visual Studio
一方面MSBUILD可以直接用,另一方面如果自动编译出问题 可以使用VS打开你的项目进行调试
整理你的工程
通常一个相对比较大的多项目工程,如果不是一直严格按照标准配置,很难保证获取工程可以成功编译建议从以下几个角度检查
- 项目间依赖是否清晰,工程中是否存在仅使用手动生成的项目。
-
工程依赖是否完整包含于项目内。如果图方便手动引入了项目工程外的库/文件则需要改动到包含于项目内。
-
使用路径是否存在绝对路径,如果在配置的目录项中使用了绝对路径,则修改为相对路径,如果存在跨项目路径引用,则需要在JENKINS工作区使用sub-directory重建一样的路径配置。
QQ截图20210303143302
-
检查你的后期生成事件,后期生成事件指令是否存在环境依赖,绝对路径。
-
如果你需要打包发布多个版本,还需要检查不同的配置是否都正常。
配置好了工程可以从远端克隆一个新的直接编译试一下。可以成功编译就可以配置jenkins项目了。
配置jenkins项目
-
在管理jenkins->GlobalToolConfiguration->指定msbuild路径,一般在“C:\Program Files (x86)\MSBuild\14.0\Bin”,如果没有找到可以下一个everything搜索一下
设置 MSBUILD QQ截图20210303145120 - 新建一个空工程 工程
-
添加项目代码源,添加登录key
添加账号密码时有时候第一次添加的会无效,那就再添加一次并选择第二个。通常就可以了。
-
添加构建配置
新增构建
构建参数
由于是自动打包,建议clean + rebuild 如果要打包多个版本 就增加多个构建步骤,
-
添加windows指令进行后续工作,我这里通过python脚本是拷贝输出的文件到svn目录上传,记得一开始说的修改服务的登录用户吗 ?如果使用的用户与你当前在系统中使用的用户一致,你可以自己在cmd中完成需要执行的工作然后把命令复制过来即可,否则的话你可能需要另外添加临时环境变量
执行命令
-
配置你的邮件通知。
-
乱码问题
jenkins默认设置中文会遇到乱码问题
根据你的配置方案不同解决方式不同。一般是添加环境变量以及修改jenkins.xml文件 但是对于部署在tomcat中的jenkins是没有这个xml的 可以按照如下步骤解决- 找到tomcat/conf/server.xml 编辑Connector项 添加 URIEncoding="UTF-8"
- 在tomcat/bin中创建setenv.bat 并添加 set JAVA_POTS=%JAVA_OPTS%;-Dfile.encoding=UTF-8
- 添加系统环境变量JAVA_TOOL_OPTIONS = -Dfile.encoding=UTF-8
- 在配置->全局属性中设置JENKINS键值对 LANG = zx_CN.UTF-8
-
使用环境变量
-
在windows批指令中获取环境变量可以使用:
cd %WORKSPACE%
-
在powershell中使用
cd $ENV:WORKSPACE
-
在linux shell中是使用
cd ${WORKSPACE}
-