Jenskins自动化部署ASP.NET Core 项目
-
由于改动的东西比较多,次数也比较多。这个时候,测试服务器的频繁发布,每次手动发布项目都比较繁琐(拉取代码>打包>复制>暂停iis网站>粘贴>启动iis网站),所以考虑了一下研究自动化部署;
-
先来了解一下JenKins,JenKins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能
-
JDK下载地址:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
-
JenKins下载地址:https://www.jenkins.io/
-
安装JenKins时,会弹出一个框选择插件,先默认也可以按需下载。可能某些插件会下载不成功,这里就可以用到KX上网的功能了,如果没有可以使用淘宝镜像:http://mirror.xmission.com/jenkins/updates/current/update-center.json
-
然后你会发现下载速度比之前快了很多,如果想要把页面设置成中文,可以在插件里面下载一个叫Localization: Chinese (Simplified)的插件,每次安装新的插件都要重启一下jenkins服务,方能生效。插件安装好以后我们就可以开始作业了;
-
新建任务
-
打开以后
-
第一栏无需填写,直接看到源代码管理一栏;
-源码设置完成,继着配置触发器;
-
就简单介绍两种触发器,一种是利用webbook(原理是有新的代码推送到远程仓库时候,仓库会向某个地址(地址就是选择webbook里面默认的)发送请求,然后作业会收到请求并拉取新的代码,第二种就是定时调度(类似于quartz),定时轮询仓库是否有新的推送,有的话则拉取,我设置的是H/2 * * * *含义就是每两分钟轮询仓库,这个有点像cron表达式;
-
配置完触发器之后继续配置环境;
-
elclude文件如下
cd "这里跟上项目的打包路径"
dotnet publish -o "这里跟上你项目打包之后文件存放的位置"
C:\Windows\System32\inetsrv\appcmd.exe stop apppool /apppool.name:"你的iis站点程序池名称"
xcopy "这里跟上你项目打包之后文件存放的位置" "iis站点目录路径" /s/e/y/exclude:这里跟上你不要覆盖的文件(该文件用txt)
C:\Windows\System32\inetsrv\appcmd.exe start apppool /apppool.name:"你的iis站点程序池名称"
- 配置完成过后就可以测试自动化部署了,关于命令行哪里,最好先做备份再打包,方便回滚;那么问题来了我要回滚到之前的第n个版本怎么做?