前言

网上大多数都是针对主流的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持续集成环境(一)的更多相关文章

  1. 搭建面向NET Framework的CI/CD持续集成环境(一)Windows服务器安装Jenkins

    前言 网上大多数都是针对主流的Spring Cloud.NET Core的CI/CD方案.但是目前国内绝大部分的公司因为一些历史原因无法简单的把项目从NET Framework切换升级到NET Cor ...

  2. CI/CD持续集成/持续部署 敏捷开发

    敏捷软件开发(英语:Agile software development),又称敏捷开发,是一种从1990年代开始逐渐引起广泛关注的一些新型软件开发方法,是一种应对快速变化的需求的一种软件开发能力.它 ...

  3. GitLab CI/CD持续集成设置

    GitLab CI/CD持续设置 官方文档地址(https://docs.gitlab.com/ee/ci/README.html) GitLab CI.CD功能非常完善,只需要简单几步,就可以完成项 ...

  4. CI/CD持续集成小结

    一.概念 什么是devops,基于Gitlab从零开始搭建自己的持续集成流水线(Pipeline) https://blog.csdn.net/chengzi_comm/article/details ...

  5. CI/CD持续集成方案

    一,CI/CD流程和持续交付简介 CI(Continuous Integration)持续集成  CD(Continuous Deployment)持续部署  CD(Continuous delive ...

  6. GitLab私有化部署 - CI/CD - 持续集成/交付/部署 - 源代码托管 & 自动化部署

    预期目标 源代码管理 借助GitLab实现源代码托管,私有化部署版本,创建项目,创建用户组,分配权限,项目的签入/牵出等. 自动化部署 源代码产生变更时(如签入),自动化编译并发布到指定服务器中部署, ...

  7. WTM框架使用技巧之:CI/CD(持续集成/持续部署)

    1. 什么是WTM框架? 一个快速.灵活.社区活跃.最最最最高效的.netcore 后台管理系统.详见 https://wtmdoc.walkingtec.cn/ 欢迎大家付费支持WTMPlus,反哺 ...

  8. 庐山真面目之十一微服务架构手把手教你搭建基于Jenkins的企业级CI/CD环境

    庐山真面目之十一微服务架构手把手教你搭建基于Jenkins的企业级CI/CD环境 一.介绍 说起微服务架构来,有一个环节是少不了的,那就是CI/CD持续集成的环境.当然,搭建CI/CD环境的工具很多, ...

  9. 基于 Jenkins 快速搭建持续集成环境--转

    源地址:http://www.ibm.com/developerworks/cn/java/j-lo-jenkins/ 持续集成是一种软件开发实践,对于提高软件开发效率并保障软件开发质量提供了理论基础 ...

随机推荐

  1. Flink深入浅出: 应用部署与原理图解(v1.11)

    往期推荐: Flink深入浅出:内存模型 Flink深入浅出:JDBC Source从理论到实战 Flink深入浅出:Sql Gateway源码分析 Flink深入浅出:JDBC Connector源 ...

  2. WSL2 bug

    错误现象 Stdout: Stderr: 2020/05/27 20:01:37 resolving /mnt/host/c/Program Files/Docker/Docker/resources ...

  3. RHSA-2017:2930-重要: 内核 安全和BUG修复更新(需要重启、存在EXP、本地提权、代码执行)

    [root@localhost ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) 修复命令: 使用root账号登陆She ...

  4. springboot2.2.2企业级项目整合redis与redis 工具类大全

    1.springboot2.2.2整合redis教程很多,为此编写了比较完整的redis工具类,符合企业级开发使用的工具类 2.springboot与redis maven相关的依赖 <depe ...

  5. 如何从0到1的构建一款Java数据生成器-第一章

    前提 某天晚上老夫在神游时,想起白天公司同事说起的问题,这老表抱怨使用mysql生成大批的随机测试数据太过麻烦,问大家有没有好的工具推荐,老夫对这种事情当然不关心,毕竟我也不知道. 秉承着不懂就要问, ...

  6. beego路由

    router.go package routersimport ( "beego01/controllers" "github.com/astaxie/beego&quo ...

  7. Ubuntu18.04中安装virtualenv和virtualenvwrapper

    1.安装virtualenv和virtualenvwrapper pip3 install virtualenv pip3 install virtualenvwrapper 2.创建目录用来存放虚拟 ...

  8. Python函数名的应用和新特性格式化输出

    1.函数名指向的是函数的内存地址. ​ def func(): print(123) print(func,type(func)) # <function func at 0x000000000 ...

  9. BERT模型详解

    1 简介 BERT全称Bidirectional Enoceder Representations from Transformers,即双向的Transformers的Encoder.是谷歌于201 ...

  10. 大白话聊OSI七层模型和TCP/IP四层模型

    前言 今天和大家聊的是一个比较基础的问题,OSI七层模型和TCP/IP四层模型. 小伙伴们可能有疑问,这个东西还用写文章吗,太基础了吧,网上文章多的是,随便一搜索就能找到. 确实是这样,网上资料确实很 ...