jenkins自动化构建

时间:2021-02-24 18:18:44

最近用C#开发了一个office插件,主要实现将本地文件一键上传存储,或者将存储的文件在wps或word等中打开,以及在outlook中生成访问链接。

开发过程中一直是用vs2017部署的,之前是我独立开发的,但是之后需要多人共同开发,从git上拉的代码就有些乱,很多没必要的东西。所以考虑代码只保留必要部分删除中间文件夹obj和生成的bin。并且使用jenkins自动化编译以及打包。

使用jenkins做构建,其实本质就是从git上下载代码到一台虚拟机上,然后执行相关的编译软件去编译它,最后将生成的包发送到FTP

拉代码

首先,将代码提交到git,在相关文件夹写好批处理脚本,并写好iss脚本,记录SSH
根据批处理脚本放置的位置,修改ssh
在Jenkins上新建项目,构建*风格项目,如果有已生成的项目,可以选择复制已有的Item
进入项目点击配置
设置项目名称和描述

在源码管理一栏,选择Multiple SCMs,点击Add SCM,选择Git
以我的构建为例
首先设置源码的git Repository,在URL输入ssh
Credentials 如过已有获得认证的账号,可以选择,第一次登陆,需要点击高级,然后输入访问git的用户名和密码
接着点击Add Branch添加分支,根据git所用分支输入,如*/develop
最后点击Additional Behaviours那里的Add选择Check out to a sub-directory在Local subdiretory for repo 里填写刚才SSH访问的块
大型的代码块,一般会做一个通用打包模块,把所有的打包脚本都放在这个部分
所以我这里还需要再下载打包模块。
jenkins自动化构建
然后设置下要在哪个虚拟机构建

jenkins自动化构建
到这里就成功将代码下载到了指定的构建机上。

编译

编译.net我这里使用的是MSBuild,首先将MSBuild装到构建机上,然后在系统设置页面设置好它的路径。
jenkins自动化构建
接下来就可以使用它来编译C#项目了。jenkins自动化构建
如图第二行是sln文件的路径,在工作空间里,其实就是构建机里的某个文件夹。
第三行就是输入编译的相关命令。

打包

编译成功后,可以将dll文件打包。
在构建环境里勾选 Delete workspace before build starts
接着在构建部分点击增加构建步骤,选择Execute Windows batch command
写入批处理命令相关的文件复制到一个新建的文件夹,注意用相对路径来写。
这里最好是在本地写两个脚本,一个批处理脚本用来复制相关文件并使用inno setup调用iss文件,一个iss脚本用来打包。
这样在jenkins上只需要在工作空间里找到这个批处理脚本运行就好了。

打包完成后,将安装包发送到FTP
jenkins自动化构建

可能遇到的问题

一 ERROR: Couldn’t find any revision to build. Verify the repository and branch configuration for this job.
原因:分支路径设置错误了,根据自己的git路径使用的分支(在本地文件夹里的.git文件夹里打开config查看)
解决方法:将源码管理部分的Git模块中的分支改一下,比如把这里的/$Branch改为/develop
jenkins自动化构建
二’*.bat’ 不是内部或外部命令,也不是可运行的程序或批处理文件。

原因:在调用git上的批处理文件时,cd的路径有问题,导致进入了错误的路径,寻找不到这个批处理文件
解决方法:在成功和git通讯并下载相关文件到Jenkins之后,会自动生成工作空间,去工作空间里找到*.bat批处理文件,记下路径,然后阅读上面的批处理命令,看一下在这一句之前,cd到了哪个文件夹,再做相应调整(cd.. 是进入上层目录,cd\ 是进入根目录)