首页 > 服务器 > Win服务器 > 正文

window下使用Jenkins来做自动化部署的教程图解

2020-07-28 14:31:47
字体:
来源:转载
供稿:网友

今天我们来说一下,如何使用Jenkins+powershell脚本,将我们的.NET CORE的脚本部署到对应的服务器上.

这里我们使用的源码管理工具是TFS.虽然源码管理器比较老旧,但是原理都差不多.

1.安装Jre,因为我们的Jenkins是基于java开发的,所以需要先在服务器上安装java的运行时环境

这个安装过程比较简单,百度下载JRE,然后安装,暂且不表.

下载地址:https://www.java.com/en/download/manual.jsp

2.下载并安装Jenkins,这里服务器是Windows的,所以最好下载Windows版本的,安装好以后直接就以Windows服务的形式运行了.

这个安装过程也是非常的简单,网上教程很多.

https://jenkins.io/download/

3.安装好Jenkins以后,根据需要我们安装权限插件,给不用的账号配置不通过的权限,(此步骤可选)

具体可参看此文章,说的很详细:

https://www.jb51.net/article/161947.htm

4.最关键的一步来了,就是如何使用Jenkins来自动部署我们的代码.

这里主要分以下几个小点,下面我会贴出详细的代码.

1)获取TFS中的最新源码,这里我并没有通过Jenkins去获取代码,而是通过tf命令去拉取代码的.

这样的好处就是,所有的Jenkins任务的源代码,我都可以使用同一份,而不用每个任务单独去拉取一份代码.

2)拉取到代码以后,自然就是通过命令来编译我们的代码,熟悉.net的朋友们应该都知道,无非就那几个命令了

3)代码发布出来以后,自然就是要将代码copy到我们的站点或者Windows服务下面去.

这一步也很简单,无非就是通过命令停止iis站点和应用程序池;copy代码;重启启动对应的站点即可

一套下来,打完收工.

下面贴出几个关键步骤的截图:

1.Jenkins创建自由风格的任务

2.其他什么都可以不选,只要我们使用powershell脚本,需要Jenkins支持powershell也需要安装插件

3.点击保存,一套搞定.点击build now即可

ps:下面给出详细的powershell脚本,非常简单这里就不详述了,大家一看代码就明白了

net stop Test1JobC:/Windows/System32/inetsrv/appcmd.exe stop site Test1.test.comC:/Windows/System32/inetsrv/appcmd.exe stop site Test1.api.test.comC:/Windows/System32/inetsrv/appcmd.exe stop apppool /apppool.name:"test1.test.com"C:/Windows/System32/inetsrv/appcmd.exe stop apppool /apppool.name:"Test1.api.test.com"dir "$PSScriptRoot/lib" -Filter "*.ps1" | foreach { . $_.fullName Write-Host "Import $($_.fullName)"}#1.获取源码D:/test/tools/get_tfs.bat#2.编译源码dotnet build D:/test/Source/MTools/Source-Promotion/Test.API.csproj -nowarn:msb3202,nu1503,cs1591 #--no-restoreecho API OKdotnet build D:/test/Source/MTools/Source-Promotion/Test.Web.csproj -nowarn:msb3202,nu1503,cs1591 #--no-restoreecho WEB OKdotnet build D:/test/Source/MTools/Source-Promotion/Test.Job.WindowsService.csproj -nowarn:msb3202,nu1503,cs1591 #--no-restore -v qecho job OKSleep 20#3.发布CCopy D:/test/Source/MTools/Test./Source-Promotion/Test.API/bin/Debug/netcoreapp2.1 D:/Test/Test1/apiCCopy D:/test/Source/MTools/Test./Source-Promotion/Test.Web/bin/Debug/netcoreapp2.1 D:/Test/Test1/webCCopy D:/test/Source/MTools/Test./Source-Promotion/Test.Web/wwwroot D:/Test/Test1/web/wwwrootCCopy D:/test/Source/MTools/Test./Source-Promotion/Test.Job.WindowsService/bin/Debug/netcoreapp2.1/win-x64 D:/Test/Test1/jobnet start Test1JobC:/Windows/System32/inetsrv/appcmd.exe start site Test1.test.comC:/Windows/System32/inetsrv/appcmd.exe start site Test1.api.test.comC:/Windows/System32/inetsrv/appcmd.exe start apppool /apppool.name:"test1.test.com"C:/Windows/System32/inetsrv/appcmd.exe start apppool /apppool.name:"Test1.api.test.com"Write-Host "success"Get-Date
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表