什么是自动化部署就是实现一次提交代码后。服务器端可以直接自动拉取代码发布成服务。无需繁琐的手动操作。

想要实现自动化首先需要理解。如何将程序发布为windows服务:=> .Net Core如何将你的程序部署成为服务_叶大白丶的博客-CSDN博客_.net core 服务程序


自动化部署

1. 安装jdk. (jenkins所需的环境变量,建议安装1.5以后的jdk,1.5之后不需要配java_home, class,path)
  jdk 安装地址: jdk 64位下载_jdk1.7 64位官方最新版免费下载-下载之家  (这是随便找的一个1.7的下载地址)
  下载安装好之后,进入jdk的bin 目录下。复制地址。

配置到环境变量=>系统变量的Path下面。

。配置好之后。 cmd  输入 java /javac 返回配置就说明配置好了 环境。

2. 下载并安装jenkins

 首先我们要大概的了解一下什么是Jenkins以及它的作用

 Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持续、自动的构建/测试软件项目、监控外部任务的运行(这个比较抽象,暂且写上,不做解释)。Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。

  通常与版本管理工具(SCM)、构建工具结合使用;常用的版本控制工具有SVN、GIT,构建工具有Maven、Ant、Gradle。

 主要用于:1.持续、自动地构建/测试软件项目。2.监控一些定时执行的任务。 
 

1) 下载并安装: Jenkins 的安装和设置 
安装完之后 会在本地生成一个服务

2) 登录可视化界面。 默认地址是 localhost:8080 

  按照入门的步骤输入指定路径下的密码。然后安装推荐插件。设置登录账号。端口。配置好一切后。进入可视化界面

3) 配置自动化,新建一个Item,创建一个自由的项目

源码管理那一栏 勾选git 输入代码仓库的地址,然后添加拥有拉取权限的账号。

构建触发器那一栏勾选 Poll SCM 

Poll SCM 的意思是轮询的拉取并检测是否有代码更新。下面的日程表是输入轮询的时间。这里设置的是每分钟检测一次。
(如果不懂时间的规则,可以点击右边的小问号。有时间写法的规则)
Poll SCM 需要谨慎勾选。这里只做测试使用为了实现自动化发布。如果是线上服务器不建议勾选。确认无误后手动点击拉取发布更安全。
当然还有别的选项。根据自己需求进行配置

添加构建

 之前操作。只是轮询的检测和拉取代码。添加的构建才是正在意义上自动化的核心操作。
 Jenkins实质的执行顺序是 

 构建触发器(自动/手动操作) => 源码管理(拉取代码) => 执行构建(可以没有) => 执行构建后操作(可以没有)

 实现自动化。其实本质只是做了以下

 清除解决方案=>重新生成解决方案=>发布=>将服务停止=>将发布的代码拷贝到注册成服务的绑定的文件夹下面=>重启服务

 我们只是将这些步骤用命令去执行从而避免繁琐的操作
(命令中 : 后面的话是注释不影响运行。这里将执行的命令分成2个步骤是为了方便阅读和后期维护。也可以写在一起)

  这里自动化是基于将应用程序部署成服务的,如果不会传送门     =>.Net Core如何将你的程序部署成为服务_叶大白丶的博客-CSDN博客_.net core 服务程序

(JenKins创建的任务。会在Jenkins的路径下的workspace里创建一个任务名称的文件夹。拉取的代码全部存放在这文件夹下面。所以构建步骤时要将路径指定到你想发布的程序的文件夹下。否则会将整个项目的程序都发布。下面我只想发布我DebugDemo下面的Demo项目,所以下面添加的构建 直接cd .Demo即可,他会自动找寻workspace下的路径)

:代码的编译和发布
cd  ./Demo    : 这里cd 后面的路径是想要编译的那个文件夹的路径
dotnet clean                     : dotnet的命令清除解决方案
dotnet build                     : dotnet的命令重新生成
dotnet publish -r win-x64 -c debug     
:(-r win-x64)指代发布的环境这里是x64 若是其余则 -r xxxx
:(-c debug)指代发布的版本是debug 如果release则 -c release

:将发布的代码拷贝到自动化部署的文件
cd ./Demo                        : 这里cd 后面的路径是想要编译的那个文件夹的路径
net stop BoardServer             : 停止你的程序的服务
rd/s/q C:\Users\Administrator\Desktop\BoardServer\FunMthod   :删除你之前代码的文件夹
xcopy .\Demo\bin\Debug\netcoreapp3.1\win-x64\publish        C:\Users\Administrator\Desktop\BoardServer\FunMthod\ /s /f /h
:xcopy 你当前路径下发布的最新到你指定的文件夹下去(指定的文件夹为你将应用程序注册成服务的那个指定文件夹下)
net start BoardServer            :启动服务 

部署完之后。保存。然后Build Now一下。如果设置了轮询的直接等待结果即可。

在build history 可以看到你每次执行的结果。红色为失败。蓝色成功。在控制台输出可以看到具体的问题。

到此自动化部署的所有操作就完成了!


参考文章:jenkins有什么用_jenkins如何自动部署 - 编程语言及工具 - 电子发烧友网
参考文章:使用Jenkins来实现Asp.Netcore的自动化部署【winserver服务器】_猴子_net的博客-CSDN博客

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐