使用Jenkins来实现内部的持续集成流程
安装和配置
注:不要将Jenkins安装在带空格的目录中(特别是workspace的目录) 比如C:\Program
Files (x86)\Jenkins\workspace\
没错 Files附近有个空格
安装Jenkins 如果需要修改工作目录 请添加环境变量JENKINS_HOME和路径
第一次启动
安装完之后,用浏览器打开安装时配置的地址,首页会显示一个文件路径,打开路径对应文件,文件内容即为初始密码
输入密码,登录系统
插件安装,第一次进入时,选择初始化哪些插件(建议先使用系统提议的)
开始安装出插件
创建第一个管理员用户
配置访问端口
完成安装
插件安装,后续需要添加插件
进入 系统管理->插件管理,安装插件
选择插件
推荐:
PowerShell
Team Foundation Server
系统其他环境安装
安装Git
Path to Git executable 值 填写安装的GIT的文件bin下面的目录
NodeJS 并且启用淘宝镜像
安装(建议版本node-v9.9.0-x64)完之后启用 淘宝镜像 命令如下
npm config set registry https://registry.npm.taobao.org
安装WebDeploy
dotnet core
安装Nuget (暂时不需要)
配置项目构建
添加任务
添加源代码地址和登录凭据
添加源代码地址和登录凭证
此图没有填写凭证时显示的错误
点击Credential后面的添加 填写能访问源代码的用户名和密码
选中刚刚添加的用户名和密码
不再报错 表示填写正确
Branches to build可以不用填写,建议填写需要发布的对应分支
添加构建触发器
(这里选择,当推送代码到TFS远程版本仓库时,触发构建)
注:如果“构建触发器”不存在此选项 请到Jenkins 插件管理安装插件Team Foundation
Server Plug-in
此触发方式需要在服务器上(比如TFS)添加WebHook(如果服务器不支持添加WebHook,可以考虑使用“轮询SCM”,此处未作尝试)
TFS添加WebHook
打开TFS 选中项目 右边设置 选择服务挂钩
创建订阅=>Jenkins=>下一步
该类型事件的触发器=>选择 “已推送代码”
筛选器 存储库=>选择对应的存储库
分支=>选择要推送的分支
下一步
设置和身份验证用户名和密码 填写Jenkins访问地址和用户名、密码
集成级别=>选择“Jenkins的TFS插件”
点击测试按钮:
表示出配置成功
如果测试失败,检查Jenkins基URL 后面不要以斜杠(“/”)结尾 (神坑!!!)
添加构建步骤
后端UI
npm i
npm run deploy-dev
注:如果不存在此Window Power Shell 请到Jenkins 插件管理安装插件 PowerShell
关于deploy-dev命令 详见后端UI代码package.json文件
API端
构建步骤
dotnet restore
dotnet publish
src\Magicodes.Admin.Web.Host\Magicodes.Admin.Web.Host.csproj -c Release
“C:\Program Files (x86)\IIS\Microsoft Web Deploy V3\msdeploy.exe”
-source:contentPath=%WORKSPACE%\src\admin\api\Admin.Host\bin\Release\netcoreapp2.1\publish
-verb:sync -enableRule:DoNotDeleteRule -allowUntrusted
-dest:contentPath=’站点名’,ComputerName=’https://开启WebDeploy的地址:8172/msdeploy.axd?site=站点名’,UserName=’WebDeploy用户’,Password=’WebDeploy用户密码’,AuthType=’Basic’
%WORKSPACE%:Jenkins中当前编译项工作目录 参见Jenkins可用环境变量列表
注意:关于Jenkins系统参数 参考 下面链接
参考链接:
https://weblogs.asp.net/scottgu/automating-deployment-with-microsoft-web-deploy