windows环境下,Jenkins实现Asp.Netcore的自动化部署

   每次发布的时候,手动发布所做的事情无非就是备份,生成,发布。而手动做这些循环的事情,如果偶尔一次还好,当在产品持续迭代的时候,无限重复的步骤就会让人很烦躁。这时候Jenkins的作用就提现出来了,让我们解放双手。

准备工作

     1、首先我们要把Asp.Netcore发布成基于windows服务的发布方式。

     2、下载并安装Jenkins,Jenkins的安装没有什么注意的,一直下一步,全部使用默认设置即可,链接:https://jenkins.io/zh/download/。

Jenkins帮我们可以完成的事情有很多,我这里用了这三个来实现自动化部署

      1.定时拉取最新代码。2.检查代码是否有改动。3.有改动后执行我们指定的脚本【可以多个脚本】。

这里我们脚本即是:1.清除之前的build 2.创建build 3.发布

开始使用Jenkins来实现Asp.Netcore的自动化部署

      1、启动Jenkins服务,在安装完成后Jenkins会在windows服务里面自动安装了一个Jenkins的服务。

      2、访问http://localhost:8080/,Jenkins在winserver上面默认端口是8080,然后会进入到jenkins的启动页,在启动页Jenkins会自动安装插件,选择默认的进行安装即可。

        注:1. 因为是Asp.NetCore,编译时需要.netcore SDK。所以服务器上要安装对应版本的.netcore sdk。

               2.这里是基于GIT进行代码仓库管理的,所以需要安装GIT客户端在服务器上(安装在默认路径即可,非默认路径需要到jenkins上进行配置GIT.exe的执行路径)。

      3、开始配置项目

            (1)、点击新建Item,如图

                  

          (2)、输入项目名称,并选择自由项目,并点击确定

                

         (3)、编辑配置信息里面的源代码管理,这个配置的主要目的是让Jenkins自动拉取最新代码

            

        (4)、配置代码拉取的规律,和构建的规律。

          (5)、配置代码编译和发布脚本。 

                    注:我这里是的Api服务是寄宿在winserver上的,所以脚本才是如下。不同的环境,不同的发布方式,脚本都不一样。

     创建编译脚本

          netcore是可以使用shell脚本进行编译和发布的,所以我现创建了一个shell的构建脚本,脚本代码如下:

 
  1. cd ./host/Fengpin.Atlas.KernelApi.Host/

  2. dotnet clean -c Debug -r win-x64

  3. dotnet build

  4. dotnet publish -c Debug -r win-x64

    如图所示:

      创建发布脚本

      当前的项目是寄宿在winserver上,域名配置等用的是ngix来进行的端口转发。由于我们要操作的是windows的文件和服务,所以我们需要创建的window的cmd的脚本,自动发布脚本代码如下:

 
  1. cd ./host/Fengpin.Atlas.KernelApi.Host/

  2. net stop AtlasApiServer

  3. rd/s/q E:\AtlasApiServer\FunMthod

  4. xcopy .\bin\Debug\netcoreapp2.2\win-x64\publish E:\AtlasApiServer\FunMthod\ /s /f /h

  5. net start AtlasApiServer

如图:

最终构建模块的效果如下:

   点击最终的保存,自动发布就完成了。

 

线上发布和备份思路和命令,思路是每次发布前备份(把正在运行的文件拷贝到备份文件夹内,然后再开始发布新的版本),注:我这里备份文件按照精确到毫秒的时间来命名文件夹的。

 
  1. :备份正在运行的代码

  2. cd ./host/Fengpin.Atlas.KernelApi.Host/

  3. set shijian=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%

  4. set timenow=%shijian: =0%

  5. xcopy D:\AtlasServerCenter\AtlasApiServer\FunMthod D:\AtlasServerCenter\AtlasApiServer\BeiFen\%timenow%\ /s /f /h

这样我们就完成了Asp.netcore的自动化部署。

你可能感兴趣的:(ASP.NET,MVC,Jenkins)