以前在发布系统的时候,总是需要经过本地合并代码 >编译 >发布到本地 >拷贝代码到远程服务器 >停止掉服务器上的应用池 >将要发布的文件替换原文件 >重启应用程序池 >打开系统观察系统是否正常启动,一套下来差不多一个小时的时间就过去了,如果这时候某个同事说他的代码没有提交完,那么又需要重复一遍上面的操作过程,时间又得一个小时。那么有没有什么工具可以代替认为的去执行上面这一些工作呢? 有, 那就是今天需要介绍 Jenkins。
Jenkins是一个开源软件项目,源码地址:https://gitee.com/mirrors/jenkins?utm_source=alading&utm_campaign=repo,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。
由于Jenkins是java语言开发的,因需要jdk环境。
打开Jenkins安装包下载页面:https://www.jenkins.io/download/,
选择要运行的操作系统环境,由于本文介绍的是Windows环境下的使用,故选择 Windows,点击 Windows 将下载安装包。
双击文件 jenkins.msi
打开安装引导程序。
点击 Next
设置好安装路径后,点击 Next
选择Jenkins登陆类型
点击 Next
设置端口号,默认端口号为8080
,也可以修改为其他端口号,点击Test Pirt
测试端口号是否可用,点击 Next
指定jdk安装路径,设置完成就点击 Next
点击 Next
点击Install
开始安装
等待安装完成,点击Finish
完成Jenkins安装。
使用浏览器打开地址:http://localhost:8080
,8080
为安装时初始化的端口号。待页面显示下面结果。
默认情况下,您的Jenkins运行在 https://localhost:8080/
。 可以通过编辑来更改 jenkins.xml 它,该文件位于您的安装目录中。该文件也是更改其他引导配置参数(例如JVM选项,HTTPS设置等)的地方。
按照给定的路径找到文件initialAdminPassword
,用记事本打开,并将文件中的密码复制粘贴到上图中的输入框中,点击继续
按钮
稍等片刻,直至页面显示如下内容:
点击安装推荐的插件
开始安装插件
等待插件安装完成,安装过程可能需要持续数分钟,具体视网速情况而定。安装完成后将提示创建管理员账号,如下图,
填写账号密码等信息后,点击保存并完成
继续点击保存并完成
点击开始使用Jenkins
,进入管理界面
点击左侧 Manage Jenkins
菜单,找到 Manage Plugins
,点击进入插件管理界面。
选择可选插件
,并在上方的搜索框中输入 PowerShell
点击“直接安装”,再点击安装完成后重启Jendens(空闲时)
,待安装后会自动重启Jenkins,
还可以安装其他需要的插件如,钉钉消息推送时会用到的 DingTask 等插件
示例针对的项目是基于.Net Core 创建的Web项目,故添加项目的配置内容可能读者实际情况存在一些差异。
进入Jenkins管理首页,点击“新建Item”,如下图所示
输入项目名称,并选择 Freestyle project,点击确定
按钮,进入项目配置界面。
在“描述”中添加必要的描述信息
选择Git,并在“Repositories”(仓储)中指定“Repository URL”(仓储地址)如:https://github.com/earen/TestPro.git
和“Credentials”(凭证);
在“Branches to build”(要进行构建的分支)项中的“指定分支(为空时代表any)”中输入分支名称,如 dev
;
在“源码库浏览器” 选择(自动)
;
选择增加构建步骤
下的 PowerShell
在“PowerShell > Command”中输入如下命令
#invoke-webrequest -Uri ‘https://oapi.dingtalk.com/robot/send?access_token=口令‘ -Body ‘{"msgtype": "text","text": {"content": "CeoDP is buiding..." }}‘ -ContentType ‘application/json‘ -Method Post
C:\Windows\System32\inetsrv\appcmd.exe stop apppool /apppool.name:"TestPro"
cd src\TestProWebApi\TestPro.Web.Host
dotnet restore
dotnet build
#SET ASPNETCORE_ENVIRONMENT=development
Remove-Item C:\wwwroot\TestProPublish -Recurse -Force -Confirm:$false
New-Item C:\wwwroot\TestProPublish -type directory
dotnet publish TestPro.Web.Host.csproj -o C:\wwwroot\TestProPublish
cd C:\wwwroot\TestProPublish
copy TestPro.* F:/wwwroot/1800/dev
C:\Windows\System32\inetsrv\appcmd.exe start apppool /apppool.name:"TestPro"
#invoke-webrequest -Uri ‘https://oapi.dingtalk.com/robot/send?access_token=口令‘ -Body ‘{"msgtype": "text","text": {"content": "TestPro is updated! check: http://localhost:8101/" }}‘ -ContentType ‘application/json‘ -Method Post
勾选下方的“Use PowerShell profile”
命令说明:
C:\wwwroot\TestProPublish
C:\wwwroot\GeoDpPublish
C:\wwwroot\TestProPublish
C:\wwwroot\TestProPublish
TestPro.
开头的文件到目录 F:/wwwroot/1800/dev
中;TestPro
进入 Jenkins 管理界面, 找到要发布更新项目,点击项目名称,进入下面界面,按照标记所示,点击Build Now
按钮,开始构建项目
左下角为构建历史(历史发布),点击可以查看历史明细,如下图
Changes 中列举的内容为 Git 代码提交日志内容
原文:https://www.cnblogs.com/Earen/p/14067188.html