jenkins with gitblit and .net framework and windows
1、安装jdk,jdk用8即可,安装完成之后配置环境变量.
2、安装jenkins
(1)、安装完毕之后,修改jenkins的默认工作空间到除系统盘以外的其他盘.
进入安装目录 C:\Windows\System32\config\systemprofile\AppData\Local\Jenkins\.jenkins,打开config.xml文件,找到${JENKINS_HOME}变量,修改为指定盘符,重启jenkins即可.
3、进入插件管理->高级选项 替换最后一栏Update Site值修改为https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json,因为默认采用国外的站点的更新配置.重启jenkins
4、安装git,重启jenkins
5、安装git for windows,安装完毕,输入以下命令
git config --global user.name "用户名" git config --global user.email "邮箱" 设置当前pc的全部用户名和邮箱
6、进入jenkins->插件管理,安装git插件,接着进入jenkins->全部工具配置 找到刚刚下载好的git插件,找到git本地安装路径(例如:C:\Program Files\Git\bin\git.exe),填入到Path to Git executable这一栏中.并保存.
7、git插件配置成功后,新建Item(项目),进入项目配置->源代码管理
选中git,输入仓储地址,和新增仓储的认证方式,这里选用户名密码(点击下面的添加完成相关配置即可)
注:如果项目仓储过大,则第一次初始化需要手动拉仓储到工作空间下.否则会报错.
到这一步,可以测试源码是否能下载成功.
8、源码下载成功之后,接着需要编写源码处理脚本,大致的流程是调用源码生成工具,发布源码到指定目录,接着打包发布文件.
例如使用.net framework,需要使用nuget.exe(需先下载好,点击下载),使用nuget.exe还原整个解决方案的包(注意包生成路径需要和本地环境一致),接着调用MsBuild.exe编译发布源码,注意如果Jenkins部署的环境安装了VS,则找到MsBuild.exe的存放路径即可,如果没有安装VS,则要去安装团队开发用的指定版本的build tools.
官网->所有下载->Visual Studio 2019 工具-> Visual Studio 2019 生成工具 ok,选择相应的环境,即可完成下载.
9、git和msbuild安装和配置完成之后,回到jenkins项目配置页面
(1)、添加构建过程
批处理命令如下:
@echo off ::开始执行还原包命令 D: cd D:\Jenkins\workspace\BaseAsset\代码\BaseAsset.root\BaseAsset\ D:\Nuget\nuget.exe restore -PackagesDirectory D:\Jenkins\workspace\BaseAsset\代码\BaseAsset.root\BaseAsset\packages -source "https://api.nuget.org/v3/index.json" @echo off ::执行还原包命令结束 @echo off ::开始生成项目 C: cd C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\MSBuild\Current\Bin\ MSBuild.exe D:\jenkins\workspace\BaseAsset\代码\BaseAsset.root\BaseAsset\BaseAsset.Api\BaseAsset.Api.csproj -t:Rebuild /p:Configuration=Release /p:Configuration=Release /p:DeployOnBuild=True;PublishProfile=D:\jenkins\workspace\BaseAsset\代码\BaseAsset.root\BaseAsset\BaseAsset.Api\Properties\PublishProfiles\公司230Jenkins发布文件.pubxml cd D:\jenkins\workspace\BaseAsset\publishfiles\ del web.config C: cd C:\Program Files\WinRAR Rar.exe a -ep1 -r -s -m5 D:\jenkins\workspace\BaseAsset\publishfiles\publish.rar D:\jenkins\workspace\BaseAsset\publishfiles\*
从git服务器拉取源码,调用MsBuild.exe发布源码,删除web.config,打包成发布包的过程到这里完成.
(2)、为了合理配置Jenkins占用空间,删除Jenkins的构建日志,进入项目配置界面.
10、有了发布包,接着需要去服务器安装OpenSSH
(1)、关于如何在windows server2012 R2上安装OPEN SSH 请参考百度经验(内含安装包),安装完成之后,使用本地pc进行连接测试.
输入的cmd命令如下:
powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1 netsh advfirewall firewall add rule name=sshd dir=in action=allow protocol=TCP localport=22 net start sshd
ok,安装成功,22防火墙开启,且服务启动成功.
(2)、测试ssh服务是否可以正常使用
win10安装本地客户端,打开设置->应用->管理应用和功能->OpenSSH客户端 安装即可.
安装成功输入一下cmd命令进行测试:
ssh 用户名@远程服务器ip
输入密码,ok,连接成功.说明远程服务器openssh服务搭建成功.
11、通过SSH连接远程服务器,上传发布包.
(1)、进入Jenkins插件管理,搜索Publish Over SSH组件,安装
(2)、安装完成之后进入系统配置,找到Publish Over SSH配置模块,进行相关配置.具体配置参数如下:
因为不打算用SSH所以直接添加Server,上面的可以不用填写.
测试连接->success
(3)、SSH远程服务器配置添加完毕,接下去进入项目配置
添加
的构建过程
注意:
i、远程根路径最好填\,对应远程服务器的C盘,仔细观察ssh执行过程,发现ssh会根据Source files创建路径.而且无法强行指向别的盘.
ii、Source files中指定的路径为相对于workspace的相对路径 !!!
查看ssh执行过程,只需要配置ssh输出执行明细即可.
点击保存.
12、项目发布结束,邮件通知
(1)、配置Jenkins Location
(2)、配置邮箱通知设置,如果用的QQ,确保邮箱开启了相关服务
(3)、配置邮箱扩展功能
构建通知如下:
构建通知:${BUILD_STATUS} - ${PROJECT_NAME} - Build # ${BUILD_NUMBER} !
邮箱内容如下:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志</title> </head> <body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4" offset="0"> <table width="95%" cellpadding="0" cellspacing="0" style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif"> <tr> 本邮件由系统自动发出,无需回复!<br/> 各位同事,大家好,以下为${PROJECT_NAME }项目构建信息</br> <td><font color="#CC0000">构建结果 - ${BUILD_STATUS}</font></td> </tr> <tr> <td><br /> <b><font color="#0B610B">构建信息</font></b> <hr size="2" width="100%" align="center" /></td> </tr> <tr> <td> <ul> <li>项目名称 : ${PROJECT_NAME}</li> <li>构建编号 : 第${BUILD_NUMBER}次构建</li> <li>触发原因: ${CAUSE}</li> <li>构建状态: ${BUILD_STATUS}</li> <li>构建日志: <a href="${BUILD_URL}console">${BUILD_URL}console</a></li> <li>构建 Url : <a href="${BUILD_URL}">${BUILD_URL}</a></li> <li>工作目录 : <a href="${PROJECT_URL}ws">${PROJECT_URL}ws</a></li> <li>项目 Url : <a href="${PROJECT_URL}">${PROJECT_URL}</a></li> </ul> <h4><font color="#0B610B">失败用例</font></h4> <hr size="2" width="100%" /> $FAILED_TESTS<br/> <h4><font color="#0B610B">最近提交(#$SVN_REVISION)</font></h4> <hr size="2" width="100%" /> <ul> ${CHANGES_SINCE_LAST_SUCCESS, reverse=true, format="%c", changesFormat="<li>%d [%a] %m</li>"} </ul> 详细提交: <a href="${PROJECT_URL}changes">${PROJECT_URL}changes</a><br/> </td> </tr> </table> </body> </html>
这个需要勾上,否则没有注册jenkins用的git开发者,无法收到邮件.
(4)、配置项目邮箱
添加构建后操作
结束
注意点
(1)、如果批处理命令中包含中文,需要检查bat文件的编码是否为Ascii
(2)、ssh服务,不同ssh的文件传输路劲不同,ssh服务一定要确保是openssh.