前言

网上大多数都是针对主流的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

安装比较简单,跟着提示一直下一步就好了

1、配置服务器的账号密码

2、选择Jenkins服务端口

3、配置JDK路径

4、安装完成,Jenkins会自动打开浏览器的对于端口的页面(比如我默认的:8080端口)。这会有点久,可能需要十几分钟,先去下面第四步去配置Jenkins的工作目录然后重启服务,不然重启之后又要初始化

四、配置Jenkins

Jenkins安装好之后,会有一个Jenkins.xml配置文件。我们需要去里面配置一下Jenkins的工作目录

1、打开Jenkins安装路径下的Jenkins.xml配置文件

2、配置工作目录

3、修改完毕,重新启动服务使配置生效

4、这时候Jenkins的管理网页也初始化好了,安装提示在指定路径找到密码文件,复制密码到文本框内,然后点击继续

5、这里点击 选择插件来安装,因为其实有一些插件,我们是不需要的,根据自己的需求来就好了

6、然后就是勾选自己想要的插件来安装的,我下面列举一下必须的但是Jenkins默认没勾选的插件,然后点击安装等插件自动安装完毕,Jenkins就算是安装完成了

  • MSBuild:编译NET Framework项目
  • GitLab:源代码管理,拉取项目代码,配置分支提交Webhook
  • Role-based Authorization Strategy:Jenkins的角色权限管理,分配团队成员不同的权限

第一篇就写这么多,主要是对整体的思路做了一个简单的介绍,然后说明如何安装和配置Jenkins。下一篇我会讲解如何配置Jenkins的item从Gitlab拉取代码。

整个系列我预计大概有8~10篇,主要是我看网上的对这些的讲解都比较零散且粗略,我想讲解的细致一些,避免大家在搭建的过程中趟一些我遇到的坑。

搭建面向NET Framework的CI/CD持续集成环境(一)Windows服务器安装Jenkins的更多相关文章

  1. 搭建面向NET Framework的CI/CD持续集成环境(一)

    前言 网上大多数都是针对主流的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. 从零入门 Serverless | 教你 7 步快速构建 GitLab 持续集成环境

    作者 | 存诚 阿里云弹性计算团队 本文整理自<Serverless 技术公开课>,"Serverless"公众号后台回复"入门",即可获取系列文章 ...

  9. [转] 基于Gitlab CI搭建持续集成环境

    [From] https://blog.csdn.net/wGL3k77y9fR1k61T1aS/article/details/78798577 前言 本文是在12月12号迅雷@赵兵在前端早读课第三 ...

随机推荐

  1. NOIP提高组2016 D2T3 【愤怒的小鸟】

    貌似还没有写过状压DP的题目,嗯,刚好今天考了,就拿出来写一写吧. 题目大意: 额,比较懒,这次就不写了... 思路分析: 先教大家一种判断题目是不是状压DP的方法吧. 很简单,那就是--看数据范围! ...

  2. 一文看懂YOLO v3

    论文地址:https://pjreddie.com/media/files/papers/YOLOv3.pdf论文:YOLOv3: An Incremental Improvement YOLO系列的 ...

  3. Spring IOC 容器预启动流程源码探析

    Spring IOC 容器预启动流程源码探析 在应用程序中,一般是通过创建ClassPathXmlApplicationContext或AnnotationConfigApplicationConte ...

  4. Mybatis中进行批量更新(updateBatch)

    更新多条数据,每条数据都不一样 背景描述:通常如果需要一次更新多条数据有两个方式,(1)在业务代码中循环遍历逐条更新.(2)一次性更新所有数据(更准确的说是一条sql语句来更新所有数据,逐条更新的操作 ...

  5. Mysql索引(一篇就够le)

    我想很多人对mysql的认知可能就是CRUD(代表创建(Create).更新(Update).读取(Retrieve)和删除(Delete)操作),也不敢说自己会用和熟悉mysql,当然我就是其中一个 ...

  6. Selenium之自动化常遇问题

    1.等待方式的选择 大家都知道Selenium中等待方式有三种,当在页面没有找到定位的元素抛出异常,那么加个等待,还有问题就换个等待方式 强制等待 time.sleep(10) 显式等待 driver ...

  7. leaflet实现台风动态轨迹

    leaflet平台是我最新使用的webGIS平台,该平台比较轻巧以下是我展示台风动态路径展示 1.首先为大家展示一下动态台风所使用数据 上面中采用标准json格式数据,data数据中,points是对 ...

  8. 教师专用录微课及剪辑软件推荐-camtasia中文汉化破解版免费下载及使用教程

    教师专用录微课软件,微课制作软件是一款能够制作文字.图形.动画.音视频等的软件,支持对ppt.word.flash的导入和录制,实时同步录制操作区文字.图形.动画.音视频.鼠标轨迹.声音及外部语音等动 ...

  9. vue+uni-app商城实战 | 第一篇:【有来小店】微信小程序快速开发接入Spring Cloud OAuth2认证中心完成授权登录

    一. 前言 本篇通过实战来讲述如何使用uni-app快速进行商城微信小程序的开发以及小程序如何接入后台Spring Cloud微服务. 有来商城 youlai-mall 项目是一套全栈商城系统,技术栈 ...

  10. 【译】值得推荐的十大React Hook 库

    十大React Hook库 原文地址:https://dev.to/bornfightcompany/top-10-react-hook-libraries-4065 原文作者:Juraj Pavlo ...