什么是自动化部署就是实现一次提交代码后。服务器端可以直接自动拉取代码发布成服务。无需繁琐的手动操作。
想要实现自动化首先需要理解。如何将程序发布为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 返回配置就说明配置好了 环境。
首先我们要大概的了解一下什么是Jenkins以及它的作用
Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持续、自动的构建/测试软件项目、监控外部任务的运行(这个比较抽象,暂且写上,不做解释)。Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。
通常与版本管理工具(SCM)、构建工具结合使用;常用的版本控制工具有SVN、GIT,构建工具有Maven、Ant、Gradle。
主要用于:1.持续、自动地构建/测试软件项目。2.监控一些定时执行的任务。
1) 下载并安装: Jenkins 的安装和设置
安装完之后 会在本地生成一个服务
2) 登录可视化界面。 默认地址是 localhost:8080
按照入门的步骤输入指定路径下的密码。然后安装推荐插件。设置登录账号。端口。配置好一切后。进入可视化界面
3) 配置自动化,新建一个Item,创建一个自由的项目
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博客