快速使用jenkins自动部署.NET站点

在研发过程中,测试时候发布站点,如果按照传统方式拷贝站点到服务器也是比较浪费时间的,如果忘记拷贝一个文件而找问题估计一上午就过去了。避免程序员手动发布的方式可以解决这个问题,比如可以通过gitlab写脚本实现cd/ci自动部署,也可以通过jenkins图形化界面自动部署,当然也可以自己写个程序来实现。对于.NET程序员最快速的实现方式是啥呢?那就是jenkins方式实现,本文将讲述使用jenkins简单快捷部署.NET站点。.

 一、环境安装

    Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成(百度百科)。

    为啥说jenkins比较快呢,它可以下载安装包自动安装windows,安装完成在网页中打开就能配置,这也是.NET程序员喜欢的方式啊。

    1)首先在官网下载安装包(jenkins.io)

    2)安装的时候需要java的sdk,注意需要java的SDK版本是11和17,否则安装不上去,jenkins的2.3LTS只支持11和17这两个版本。

    3) 安装:下一步就可以了,安装过程需要选择是否设置账号,这里选择不需要。在安装过程中可以设置访问的端口号,默认是8080

    4)验证是否安装成功,打开http://localhost:8080/,如果能访问到jenkins界面安装成功。首次访问需要设置账号和密码。

快速使用jenkins自动部署.NET站点

二、使用jenkins部署.net站点

1)基本设置

选择菜单“新建item”,我们取名first-netwebdome,并选择“Freestyle project”后点击确定。

快速使用jenkins自动部署.NET站点

2)描述和日志

确定后可以配置要自动化发布的项目。首先可以填写描述,描述可以根据项目情况自定义填写;在描述下面选择第一项,这个可以配置日志的保存天数和个数,如下图

快速使用jenkins自动部署.NET站点

3)配置在git源的项目

这时候暂时不保存,下拉页面会看到“源码管理”,在“源码管理”下选择git会展开界面,这时候填写你的git地址和验证,小编是用的阿里云的git管理。如下图。

快速使用jenkins自动部署.NET站点

4)构建触发器

再下拉浏览器就可以看到"构建触发器",这里有5个选项,我们这里选择第四个选项,意思是项目代码有提交到git上触发。

快速使用jenkins自动部署.NET站点

其中选项2是当依赖的job被构建时执行本job,选项3是使用cron表达式定时构建本job,选项5是使用cron表达式定时检查代码变更,变更后构建本job。由于我们这里选择git方式,故选择第4项。

5)编写构建脚本

再继续向下拉会出现“Build Steps”,在下拉选择第一项,意思是在windows系统中编写同步脚本,第二项是linux。这里选择第一项,会弹出编写脚本的超文本框,如下图:

快速使用jenkins自动部署.NET站点

脚本如下:

cd "%WORKSPACE%\Project.Web\Project.Admin.Web"dotnet publish -c Release -f netcoreapp3.1 --self-contained falsecall C:\Windows\System32\inetsrv\appcmd.exe stop apppool /apppool.name:"testwebapi"call xcopy "%WORKSPACE%\Project.Web\Project.Admin.Web\bin\Release\netcoreapp3.1\publish" "D:\WEB\webapi" /s/e/y/exclude:D:\WEB\webapi\Jenkins\paichu.txtcall C:\Windows\System32\inetsrv\appcmd.exe start apppool /apppool.name:"testwebapi"

第一段代码很简单,意思是进入到要编译的项目目录

第二段:以Release方式生成项目

第三段:停止IIS该项目的应用池
第四段:拷贝生成好的文件到站点目录,这里的目录是“D:\WEB\webapi”,exclude后面的文件是排除的项目文件,格式是".文件类型",如下

快速使用jenkins自动部署.NET站点

第五段:启用刚刚关闭的项目应用池

脚本为dos批处理命令,大家可以在网上搜索一下,还是比较简单一看就明白。
6)完成测试

点击保存按钮便配置完成,简单吧。等待一下检查一下“D:\WEB\webapi”盘是否有文件,结果没有啊。可能第一次失败,原来是目录配置错误,这时候可以手动执行,点击“Build Now”执行,左下角是执行的历史记录,如下图

快速使用jenkins自动部署.NET站点

接下来看看目录里是否拷贝了文件

快速使用jenkins自动部署.NET站点

从日期可以看见成功拷贝到网站的目录。

结语

    以上是jenkins快速部署到windows服务器上,jenkins也支持linux,并且支持docker和k8s自动化部署,大家可以尝试一下,后续方便的时候小编可以替大家实验一下并分享出来。jenkins还有许多功能,比如“监控一些定时执行的任务”等,还可以安装一些组件,可以说功能强大,如果大家感兴趣可以研究一下。如果能通过gitlab写脚本实现cd/ci自动部署是比较优的方案,毕竟不需要另外安装依赖。希望本文给你带来收获,欢迎大家留言或提出异议。