• 售前

  • 售后

热门帖子
入门百科

window下利用Jenkins来做主动化摆设的教程图解

[复制链接]
天褐女孩涛 显示全部楼层 发表于 2021-10-26 13:33:15 |阅读模式 打印 上一主题 下一主题
今天我们来说一下,怎样利用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脚本,非常简朴这里就不详述了,大家一看代码就明确了
  1. net stop Test1Job
  2. C:\Windows\System32\inetsrv\appcmd.exe stop site Test1.test.com
  3. C:\Windows\System32\inetsrv\appcmd.exe stop site Test1.api.test.com
  4. C:\Windows\System32\inetsrv\appcmd.exe stop apppool /apppool.name:"test1.test.com"
  5. C:\Windows\System32\inetsrv\appcmd.exe stop apppool /apppool.name:"Test1.api.test.com"
  6. dir "$PSScriptRoot\lib" -Filter "*.ps1" | foreach {
  7. . $_.fullName
  8. Write-Host "Import $($_.fullName)"
  9. }
  10. #1.获取源码
  11. D:\test\tools\get_tfs.bat
  12. #2.编译源码
  13. dotnet build D:\test\Source\MTools\Source-Promotion\Test.API.csproj -nowarn:msb3202,nu1503,cs1591 #--no-restore
  14. echo API OK
  15. dotnet build D:\test\Source\MTools\Source-Promotion\Test.Web.csproj -nowarn:msb3202,nu1503,cs1591 #--no-restore
  16. echo WEB OK
  17. dotnet build D:\test\Source\MTools\Source-Promotion\Test.Job.WindowsService.csproj -nowarn:msb3202,nu1503,cs1591 #--no-restore -v q
  18. echo job OK
  19. Sleep 20
  20. #3.发布
  21. CCopy D:\test\Source\MTools\Test.\Source-Promotion\Test.API\bin\Debug\netcoreapp2.1 D:\Test\Test1\api
  22. CCopy D:\test\Source\MTools\Test.\Source-Promotion\Test.Web\bin\Debug\netcoreapp2.1 D:\Test\Test1\web
  23. CCopy D:\test\Source\MTools\Test.\Source-Promotion\Test.Web\wwwroot D:\Test\Test1\web\wwwroot
  24. CCopy D:\test\Source\MTools\Test.\Source-Promotion\Test.Job.WindowsService\bin\Debug\netcoreapp2.1\win-x64 D:\Test\Test1\job
  25. net start Test1Job
  26. C:\Windows\System32\inetsrv\appcmd.exe start site Test1.test.com
  27. C:\Windows\System32\inetsrv\appcmd.exe start site Test1.api.test.com
  28. C:\Windows\System32\inetsrv\appcmd.exe start apppool /apppool.name:"test1.test.com"
  29. C:\Windows\System32\inetsrv\appcmd.exe start apppool /apppool.name:"Test1.api.test.com"
  30. Write-Host "success"
  31. Get-Date
复制代码
  1. function CCopy($folder_a_path,$folder_b_path)
  2. {
  3. if(!(test-path $folder_b_path))
  4. {
  5. md $folder_b_path
  6. }
  7. #遍历源文件夹下所有文件
  8. $folders_a = gci $folder_a_path -Recurse
  9. foreach ($folder_a in $folders_a)
  10. {
  11. if($folder_a.fullname -like "*appsettings.json*")
  12. {
  13. continue
  14. }
  15. #通过替换的方式,取目标文件的全路径名称
  16. $b = $folder_a.fullname.replace($folder_a_path,$folder_b_path)
  17. #判断目标文件是否存在,如果存在则先判断新旧
  18. If (test-path $b)
  19. {
  20.   #判断目标是否为目录,如果是目录则跳过,如果不跳过,则会创建一级空目录
  21.   If (!((gi $b).PSIsContainer))
  22.   {
  23.   #判断目标文件、源文件的新旧情况,如果目标已存在文件的修改时间早于源文件,则重新拷贝覆盖
  24.   If ((gci $b).lastwritetime -lt $folder_a.lastwritetime)
  25.   {
  26.   copy-item $folder_a.fullname $b -force
  27.   }
  28.   }
  29. }
  30. #如果目标文件不存在,则直接拷贝
  31. Else
  32. {
  33.   copy-item $folder_a.fullname $b
  34. }
  35. }
  36. }
复制代码
一套打完手工,大家有什么意见和建议,请提出~
后续将进一步写通过powershell将步伐发布到其他服务器上,以及发布完成以后,邮件告知结果
待续...
总结
以上所述是小编给大家先容的window下利用Jenkins来做自动化摆设的教程图解,希望对大家有所资助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对草根技术分享网站的支持!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作