搭建面向NET Framework的CI/CD持续集成环境(一)
前言
网上大多数都是针对主流的Spring Cloud、NET Core的CI/CD方案。但是目前国内绝大部分的公司因为一些历史原因无法简单的把项目从NET Framework切换升级到NET Core,又急切的需要引入CI/CD流程来提高开发体验和效率。因此,本系列博客针对这一问题,旨在解决NET Framework的持续集成难题。
面临的难题
- 项目结构复杂,且源代码工程结构多为一个解决方案多个项目的模式
- 构建比较困难,有一些项目的包管理还是以文件路径的引用方式
- 前后端未完全分离,目前很多公司的NET项目,前端人员和后端人员分开,但是项目源码还是在同一个工程
- 项目的配置文件在多环境下很难做到自动调整。无论是使用自带的多环境配置文件语法还是对接目前市面上的配置中心都比较困难
- 部署无法像NET Core一样打包镜像,推送到镜像管理平台,然后再做升级
整体思路
鉴于以上几个难题,对于NET Framework项目的CI/CD搭建方案其实很有限。我选择的方案大体是Gitlab+Jenkins+MSbuild+Rsync
下面介绍一下这几块的分别的分工和作用:
- GItlab:源代码管理、配置Webhook、工程师提交分支代码触发相应的Jenkins的item任务
- Jenkins:负责管理构建部署持续集成流水线的每个阶段
- MSbuild:负责构建NET Framework项目,生成发布文件
- Rsync:负责把构建好的发布文件部署到指定的服务器上
流程图
那我们接下来就实际的开始搭建
Windows服务器安装Jenkins
一、下载安装包
官方下载地址:Jenkins安装包下载地址
直接选择Windows环境的LTS版本安装包
二、安装JDK
因为Jenkins是需要依赖Java环境的,所以需要先在服务器安装JDK。博主在这里直接把JDK安装包放到这儿,JDK的安装过程和环境变量配置网上很多,我就不在这儿赘述了。
JDK百度网盘链接 提取码:5rpx
三、安装Jenkins
/// <summary>
/// 增加任务中的完成数
/// </summary>
/// <param name="taskId"></param>
public void UpdateWorkTaskCompletesNum(long taskId)
{
List<DalParameter> paras = new List<DalParameter>();
paras.Add(taskDao.CreateDalParameter("Completes", 0));
List<DalParameter> parasWhere = new List<DalParameter>();
parasWhere.Add(taskDao.CreateDalParameter("Id", taskId));
strSql = taskDao.CreateUpdateSql(paras, parasWhere);
List<DalParameter> parasAll = new List<DalParameter>();
parasAll.AddRange(paras);
parasAll.AddRange(parasWhere);
taskDao.Operate(strSql, parasAll.Select(o => o.Parameter).ToList());
}
搭建面向NET Framework的CI/CD持续集成环境(一)的更多相关文章
- 搭建面向NET Framework的CI/CD持续集成环境(一)Windows服务器安装Jenkins
前言 网上大多数都是针对主流的Spring Cloud.NET Core的CI/CD方案.但是目前国内绝大部分的公司因为一些历史原因无法简单的把项目从NET Framework切换升级到NET Cor ...
- CI/CD持续集成/持续部署 敏捷开发
敏捷软件开发(英语:Agile software development),又称敏捷开发,是一种从1990年代开始逐渐引起广泛关注的一些新型软件开发方法,是一种应对快速变化的需求的一种软件开发能力.它 ...
- GitLab CI/CD持续集成设置
GitLab CI/CD持续设置 官方文档地址(https://docs.gitlab.com/ee/ci/README.html) GitLab CI.CD功能非常完善,只需要简单几步,就可以完成项 ...
- CI/CD持续集成小结
一.概念 什么是devops,基于Gitlab从零开始搭建自己的持续集成流水线(Pipeline) https://blog.csdn.net/chengzi_comm/article/details ...
- CI/CD持续集成方案
一,CI/CD流程和持续交付简介 CI(Continuous Integration)持续集成 CD(Continuous Deployment)持续部署 CD(Continuous delive ...
- GitLab私有化部署 - CI/CD - 持续集成/交付/部署 - 源代码托管 & 自动化部署
预期目标 源代码管理 借助GitLab实现源代码托管,私有化部署版本,创建项目,创建用户组,分配权限,项目的签入/牵出等. 自动化部署 源代码产生变更时(如签入),自动化编译并发布到指定服务器中部署, ...
- WTM框架使用技巧之:CI/CD(持续集成/持续部署)
1. 什么是WTM框架? 一个快速.灵活.社区活跃.最最最最高效的.netcore 后台管理系统.详见 https://wtmdoc.walkingtec.cn/ 欢迎大家付费支持WTMPlus,反哺 ...
- 庐山真面目之十一微服务架构手把手教你搭建基于Jenkins的企业级CI/CD环境
庐山真面目之十一微服务架构手把手教你搭建基于Jenkins的企业级CI/CD环境 一.介绍 说起微服务架构来,有一个环节是少不了的,那就是CI/CD持续集成的环境.当然,搭建CI/CD环境的工具很多, ...
- 基于 Jenkins 快速搭建持续集成环境--转
源地址:http://www.ibm.com/developerworks/cn/java/j-lo-jenkins/ 持续集成是一种软件开发实践,对于提高软件开发效率并保障软件开发质量提供了理论基础 ...
随机推荐
- Hive理论基础
数仓特征:面向主题,集成,非易失的,时变.数据仓库是在数据库已经大量存在的情况下,为了进一步挖掘数据资源.为了决策需要而产生的,不是所谓的"大型数据库". 数据库与数据仓库的区 ...
- Thinkphp中D方法和M方法的区别
两者共同点都是实例化模型的,而两者不同点呢?一起来看一下: $User = D('User');括号中的参数User,对应的模型类文件的 \Home\Model\UserModel.class.php ...
- Python库之SQLAlchemy
一.SQLAlchemy简介 1.1.SQLAlchemy是什么? sqlalchemy是一个python语言实现的的针对关系型数据库的orm库.可用于连接大多数常见的数据库,比如Postges.My ...
- 关于Elasticsearch版本升级,Kibana报index迁移与需要x-pack插件问题
关于Elasticsearch版本升级,Kibana报index迁移与需要x-pack插件问题 这个问题是由于elasticsearch旧版残留文件导致,使用下述指令删除即可 查看所有elastics ...
- 你还在手撕微服务?快试试 go-zero 的微服务自动生成
0. 为什么说做好微服务很难? 要想做好微服务,我们需要理解和掌握的知识点非常多,从几个维度上来说: 基本功能层面 并发控制&限流,避免服务被突发流量击垮 服务注册与服务发现,确保能够动态侦测 ...
- MeteoInfoLab脚本示例:添加南海脚图
添加南海脚图实际上就是增加一个地图坐标系(Axesm),在用axesm函数创建地图坐标系的时候可以指定position参数(即位置和大小),第1和第2个参数是坐标系的左下角x, y位置,后两个参数是坐 ...
- 分析如何直接绕过超时代VPY视频播放器的播放密码
声明:仅技术交流和学习! 前言: 你有没试过在网上下载一套视频,因网盘限速整整开机下载好几晚,下完后打开发现加密了,又找不到卖家注册.心里是几万只草泥马飞奔啊. 于是不甘心和好奇下,偿试自己破解. 目 ...
- centos8平台使用rz/sz上传下载文件
一,rz/sz的用途 1,rz,sz是Linux/Unix服务器同客户端通过ZModem进行文件传输的命令行工具 说明:客户端需要使用支持ZModem的telnet/ssh客户端(比如windows平 ...
- javascript arcgis 取区域中心点
javascript arcgis 取区域中心点 //graphic是绘制完多边形之后返回的对象 //获得多边形的中心点坐标 var centerPoint=graphic.geometry.getE ...
- 【Azure云服务 Cloud Service】如何在部署云服务Cloud Service时候通过启动任务Start Task来配置IIS (如开启ARR)
问题情形 通过VS部署Cloud Service时,需要在开始任务时候安装或配置其他任务,如安装及配置ARR. 执行步骤 1) 下载 requestRouter_amd64.msi 和 webfarm ...