jenkins构建.net core项目

前言

本文涉及jenkins自动构建配置、文件上传和iis远程启停等内容

 一、jenkins创建一个自由风格的软件项目

 

 

二、配置源码获取方式

本文采用git方式

 

三、配置编译方式

 在Build一栏增加shell执行,如下图

 

cd C:/Users/jenkins/.jenkins/workspace/xxxxxxx/
dotnet clean --configuration Release
dotnet build
dotnet publish -o D:/xxxx

 

四、远程停止iis网站和应用池

1、由于规划原因,.net core项目目前还部署在iis上,网站发布时需要先停止网站及应用池(当网站处于被访问时,未停止直接替换发布后的文件会提示文件占用)。

2、这里卡了好久,刚开始想用psexec工具来实现,奈何各种尝试后无果,最终决定通过自己手撸代码来实现,思路是:开发一个可以停启iis应用池和网站的api接口,将接口服务和项目部署在同一台服务器,jenkins通过访问接口服务来实现对项目的停止和启动。

3、手撸源码https://github.com/hellozjd/IISMGR

部署的时候需要注意下:应用程序池的高级设置里进程模型下的标识选择改为LocalSystem

五、远程停止目标服务器上的应用池和站点

通过curl工具请求目标服务器上的iis停启服务实现对目标站点的停启操作

curl下载链接https://curl.haxx.se/download.html

在Build一栏增加windows批处理执行,如下图

 

 

cd /D D:\xxxx\bin
curl -X GET "http://xxx.xxx.xxx/api/iis/StopSite?siteName=xxxx" -H "accept: */*"
curl -X GET "http://xxx.xxx.xxx/api/iis/StopPool?poolName=xxxx" -H "accept: */*"

 

六、上传发布后的文件到目标服务器

 通过一个我另外一篇博客的上传工具https://www.cnblogs.com/chuyismile/p/13599907.html将发布文件上传到指定服务器

C:
cd C:\Users\jenkins\.jenkins\workspace
FtpNet.exe 200.200.x.xxx 21 ftpusername passwork D:\BuildCode\ xxxx 

七、远程启动应用池和站点

cd /D D:\xxx\curl-7.73.0-win64-mingw\bin
curl -X GET "http://200.200.xx.xx/api/iis/StartPool?poolName=xxx" -H "accept: */*"
curl -X GET "http://200.200.xx.xx/api/iis/StartSite?siteName=xxx" -H "accept: */*"

 

posted @ 2021-01-04 19:18  奔跑的楚奕  阅读(681)  评论(0)    收藏  举报