当前位置 : 主页 > 网络安全 > 测试自动化 >

自动化部署-Jenkins+SVN+MSBuild

来源:互联网 收集:自由互联 发布时间:2021-06-19
这篇文章主要介绍下使用Jenkins实现自动化部署 下载 https://jenkins.io/download/ 安装 按步骤安装即可,下载的是windows版本,安装完成后,会看到这样一个正在运行的服务 ? ? 初次使用 默认端

  这篇文章主要介绍下使用Jenkins实现自动化部署

  1. 下载

https://jenkins.io/download/

  1. 安装

按步骤安装即可,下载的是windows版本,安装完成后,会看到这样一个正在运行的服务

??

  1. 初次使用

默认端口8080,建议修改

通过安装目录下的jenkins.xml文件修改

??

端口修改后重启服务

通过浏览器第一次访问会看到这样一个页面(我这边不是第一次使用了,页面找不到,从网上找了个图片)

??

按照页面上提示的路径找到文件,得到密码输入即可

接着进入插件下载页面,可以直接选择建议插件

插件安装完成后进入以下页面,创建一个管理员帐号

??

我在创建完成后遇到了空白页的情况,重启下服务重新打开即可解决

  1. 插件安装

jenkins建议插件中包含了svn,初始化时如果选择了建议插件,就不需要再额外去安装了

如下图,选择系统管理-》插件管理-》可选插件

Localization: Chinese (Simplified) 刚安装完时,页面一半中文,一半英文,安装此插件可解决

MSBuild Plugin 编译c#代码必需

??????

  1. 配置msbuild

如果服务器上已安装vs,则不需要额外安装msbuild

否则,去vs官网下载安装

https://docs.microsoft.com/zh-cn/visualstudio/msbuild/msbuild?view=vs-2017

这里选择哪个版本看你开发时ide使用的是什么版本,安装对应的即可(版本不要安装错误,c#6.0 7.0 的语法低版本msbuild识别不了)

??

注意勾选

msbuild没有问题后,打开 系统管理-》全局工具配置

找到MSBuild

??

新增MSBuild,名称无所谓,第二栏填入MSBuild的地址,保存即可

 

??

  1. 新建任务

新建任务-》构建一个自由风格的软件项目

??

源码管理,选择svn填入参数

??

??

构建,选择第一个,使用msbuild构建

??

选择msbuild配置,填入需要构建的解决方案或者项目文件,参数我们等会再看,先这样保存运行测试下,这里路径需要注意下头部不要带/

??

回到主面板,点击刚刚创建的任务,立即构建

??

这里会出现构建任务

??

点击后选择控制台输出,可以看到构建过程

??

正常情况下,这里会看到构建成功

但是如果你的项目使用了nuget,则需要先还原nuget包,再去构建,下载nuget

https://www.nuget.org/downloads

Windows x86 Commandline 下载完成后,点击我们刚刚创建的任务,选择配置,增加构建步骤,选择批处理命令 ?? 执行刚刚下载的nuget还原解决方案,这里有一点需要注意,如果nuget.exe路径中有空格,记得加上引号(图中忘记添加---) ?? 调整下构建步骤的顺序,先执行批处理命令 再去执行构建 我这边还遇到了一个问题,由于公司搭建了自己的nuget服务,有些包需要从公司的nuget服务上下载,所以这边抛出了错误 ?? 按照上图地址去修改nuget.config文件,加上自定义源 ?? 这时去构建应该没有什么问题了,如果还有错误,看控制台结果去解决 我们现在来来看看构建的参数, /t:Rebuild 表示每次都重建,不使用增量编译 /P:Configuration=Release 表示编译 Release 版本 /p:DeployOnBuild=true;PublishProfile=XStore.HeadPc.Test.pubxml 发布文件 /p:AllowUntrustedCertificate=True 发布时的证书信任 ??   这里用到了webdeploy,具体安装使用就不细说了,大家自行了解 自动生成的pubxml中不会保存密码,记得去增加一个password的节点 ??  
  1. 关于触发器

一般使用轮询SCM,定时获取代码,当获取到的代码发生变化时,进行构建发布,可以点击问号查看语法说明

??
  1. 总结

能减少一些重复的工作,开发人员不需要每次将代码获取到本地编译后发布,也可以保证代码的最新,不会因为开发人员的疏忽,未获取最新代码

网友评论