最简单的window下使用Jenkins来做自动化部署的教程
2019-05-25 22:40
881 查看
今天我们来说一下,如何使用Jenkins+powershell脚本,将我们的.NET CORE的脚本部署到对应的服务器上.
这里我们使用的源码管理工具是TFS.虽然源码管理器比较老旧,但是原理都差不多.
1.安装Jre,因为我们的Jenkins是基于java开发的,所以需要先在服务器上安装java的运行时环境
这个安装过程比较简单,百度下载JRE,然后安装,暂且不表.
下载地址:https://www.java.com/en/download/manual.jsp
net stop Test1Job C:\Windows\System32\inetsrv\appcmd.exe stop site Test1.test.com C:\Windows\System32\inetsrv\appcmd.exe stop site Test1.api.test.com C:\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-restore echo API OK dotnet build D:\test\Source\MTools\Source-Promotion\Test.Web.csproj -nowarn:msb3202,nu1503,cs1591 #--no-restore echo WEB OK dotnet build D:\test\Source\MTools\Source-Promotion\Test.Job.WindowsService.csproj -nowarn:msb3202,nu1503,cs1591 #--no-restore -v q echo job OK Sleep 20 #3.发布 CCopy D:\test\Source\MTools\Test.\Source-Promotion\Test.API\bin\Debug\netcoreapp2.1 D:\Test\Test1\api CCopy D:\test\Source\MTools\Test.\Source-Promotion\Test.Web\bin\Debug\netcoreapp2.1 D:\Test\Test1\web CCopy D:\test\Source\MTools\Test.\Source-Promotion\Test.Web\wwwroot D:\Test\Test1\web\wwwroot CCopy D:\test\Source\MTools\Test.\Source-Promotion\Test.Job.WindowsService\bin\Debug\netcoreapp2.1\win-x64 D:\Test\Test1\job net start Test1Job C:\Windows\System32\inetsrv\appcmd.exe start site Test1.test.com C:\Windows\System32\inetsrv\appcmd.exe start site Test1.api.test.com C:\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-DateView Code
function CCopy($folder_a_path,$folder_b_path) { if(!(test-path $folder_b_path)) { md $folder_b_path } #遍历源文件夹下所有文件 $folders_a = gci $folder_a_path -Recurse foreach ($folder_a in $folders_a) { if($folder_a.fullname -like "*appsettings.json*") { continue } #通过替换的方式,取目标文件的全路径名称 $b = $folder_a.fullname.replace($folder_a_path,$folder_b_path) #判断目标文件是否存在,如果存在则先判断新旧 If (test-path $b) { #判断目标是否为目录,如果是目录则跳过,如果不跳过,则会创建一级空目录 If (!((gi $b).PSIsContainer)) { #判断目标文件、源文件的新旧情况,如果目标已存在文件的修改时间早于源文件,则重新拷贝覆盖 If ((gci $b).lastwritetime -lt $folder_a.lastwritetime) { copy-item $folder_a.fullname $b -force } } } #如果目标文件不存在,则直接拷贝 Else { copy-item $folder_a.fullname $b } } }复制文件 一套打完手工,大家有什么意见和建议,请提出~
后续将进一步写通过powershell将程序发布到其他服务器上,以及发布完成以后,邮件告知结果
待续...
相关文章推荐
- 使用jenkins、docker、consul、nginx搭建支持自动化构建部署以及弹性伸缩的集群系统详细教程
- SSIS教程:创建简单的ETL包 -- 6. 对项目部署模型使用参数(Using Parameters with the Project Deployment Model)
- Jenkins2.2+svn+maven详细安装与构建部署使用教程
- Jenkins详细安装与构建部署使用教程
- 【Jenkins教程二】基于Linux实现Jenkins+maven+tomcat的自动化构建部署项目
- Jenkins的部署及使用教程(插件集成sonar服务,构建过程做代码分析)
- Jenkins具体安装与构建部署使用教程
- linux的jenkins安装与使用jenkins自动化打包maven项目部署到tomcat
- Jenkins详细安装与构建部署使用教程
- gulp的安装教程,使用教程,和简单的自动化任务教程
- Django 博客开发教程 15 - 使用 Fabric 自动化部署
- Jenkins项目部署使用教程-----02视图及项目添加
- 使用jenkins+github+tomcat实现Springboot半自动化部署
- jenkins+windows+springboot+.net项目自动化部署图文教程
- OpenStack单点部署及使用简单教程(附:部署好的VMware虚拟机)
- Jenkins详细安装与构建部署使用教程
- gulp的安装教程,使用教程,和简单的自动化任务教程
- Java使用自动化部署工具Gradle中的任务设定教程
- Jenkins详细安装与构建部署使用教程
- Jenkins详细安装与构建部署使用教程