论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
软件与程序人生
›
后端开发
›
.Net
›
git 提交后Jenkins自动构建、并发布服务
git 提交后Jenkins自动构建、并发布服务
笑看天下无敌手
金牌会员
|
2022-11-13 21:16:37
|
显示全部楼层
|
阅读模式
楼主
主题
977
|
帖子
977
|
积分
2931
现状:当前开发在迭代中完成相关feature功能开发之后到发布到dev环境的流程是:
提交代码到git对应的分支
需要登录域账号去Jenkins服务查找相关的项目任务,再手动选择分支进行构建。这里可能还涉及到
没有Jenkins项目权限,需要找其他相关开发开权限
第一次没有分支,需要到配置构建步骤里面去添加相关分支
等待构建完成之后手动登录OneOps系统选择对应的项目,选择对应的nuget包版本进行发布
顺畅情况就是上面三步,这三步每一步开发都得关注结果,顺畅下来少则3、5分钟,如果打包失败可能还需要到Jenkins服务上查看失败原因。再次修改项目代码,再次重复上面的步骤。
期望改进:
解放开发,让其只关注于代码提交,提交后让Jenkins自动构建、构建完成后自动发布到ops系统,并通知结果(包括构建失败通知、发布成功通知)
实现步骤:
Jenkins项目构建步骤修改
配置手动构建分支参数
配置git项目地址,以及手动打包时候选择分支参数,这里的${Branch}分支参数来源于上面步骤的choice参数。注意此处的${Branch}参数项目MsBuild时候会用到,因此后面git push自动构建时候需要生成改环境变量。
构建触发配置,选择Build when a change is pushed to GitLab。这里我们勾选如下几个选项
并且设置了只有dev以及test相关的分支才触发自动构建,过滤master以及online分支
Build on Merge Request Events
Build on Push Events
Rebuild open Merge Requests
Enable [ci-skip]
Accept merge request on success
Filter branches
构建环境,设置了版本为${GIT_BRANCH}.${BUILD_NUMBER}两个系统环境变量,并且设置为构建显示名称——分支名称+构建序号
并且问了兼容手动选择分支构建以及git push自动构建,我们通过windows batch command 导出了环境变量Branch,如果是git push自动构建,我们就将gitlabBranch环境变量赋值给Branch变量。并导出到opsevn.properties文件中。
5. 构建步骤中再次注入opsevn.properties文件中的环境变量。再次通过Properties Content 注入一些自动发布、通知python脚本中需要使用Jenkins环境变量,包括:
clusterId 发布集群id
serviceId 发布服务id
esbName 服务名称
buildUrl 构建url地址
buildNumber 构建版本号
buildCase 构建方式
再次通过windows batch command执行编译构建,并且获取构建是否成功。将状态带入到python脚本。以便后续通知使用。
6. gitlab中webhook设置,将上面步骤3图中的GitLab CI Service URL 加入到webhook。
python脚本 AutoOps.py 获取传入的构建参数后,做一下步骤处理:
判断传入相关参数并校验
获取构建操作人
获取构建方式
判断构建状态是否成功
失败发布Markdown提醒到企业微信群,可以自己查看失败原因
构建成功注入cookie
通过集群、服务、构建版本号获取构建的nuget包
调用接口发布nuget服务包
发布成功Markdown消息提醒到企业微信群,可以直接查看发布结果
ps:需注意
环境变量的导出、导入方式
批处理中获取构建结果是否成功
作者:
rpoplar
出处:
http://www.cnblogs.com/rpoplar/
本文版权归作者【
rpoplar
】和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究其法律责任的权利。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
正序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
发新帖
回复
笑看天下无敌手
金牌会员
这个人很懒什么都没写!
楼主热帖
mysql精简单机版,免登录,可复制,不 ...
【毕业季】-职场10年大咖有话想说 ...
一个工作薄中快速新建多个数据表 ...
Java如何使用流式编程的方式访问url呢 ...
计算机视觉-OpenCV图像金字塔 ...
Gitee教程实战(企业级) 包含详细的出 ...
使用 Kubeadm 部署 Kubernetes(K8S) 安 ...
什么是真正的HTAP?(一)背景篇 ...
【牛客刷题-SQL进阶挑战】NO1.增删改操 ...
AJAX学习(1)
标签云
存储
挺好的
服务器
快速回复
返回顶部
返回列表