GitLab + Jenkins + Sonar Qube 持续集成

  • 一. 持续集成
  • 二. 持续交付
  • 三. 持续部署
  • 四. 持续集成的实施流程
  • 五. gitlab
    • 5.1 gitlab安装配置
      • 5.1.1 安装gitlab服务依赖包
      • 5.1.2 下载并安装gitlab服务
      • 5.1.3 配置gitlab服务(访问域名、邮箱、关闭Prometheus)
        • 5.1.3.1 配置访问域名
        • 5.1.3.2 配置邮箱(新注册用户给用户放邮件修改密码用)
        • 5.1.3.3 关闭Prometheus
      • 5.1.4 初始化gitlab服务,启动gitlab服务
        • 5.1.4.1 初始化gitlab服务
        • 5.1.4.2 启动gitlab服务
        • 5.1.4.3 每次修改/etc/gitlab/gitlab.rb这个配置文件后都要gitlab-ctl reconfigure
    • 5.2 gitlab中的组、项目、用户的关系
  • 六. jenkins
    • 6.1 jenkins介绍
    • 6.2 jenkins安装
    • 6.3 jenkins安装插件
      • 6.3.1 直接安装插件
      • 6.3.2 下载 .hpi 插件文件安装
      • 6.3.3 从其他jenkins上导出插件包直接安装
    • 6.4 jenkins配置文件
  • 六 jenkins与gitlab集成
    • 6.1 开发提交代码到gitlab
    • 6.2. jenkins上安装与gitlab集成所需插件
    • 6.3. jenkins创建freestyle项目,然后配置代码源为gitlab项目地址
  • 七 jenkins参数化构建
    • 7.1 文本参数
    • 7.2 选项参数
    • 7.3 Git Parameter
  • 八 jenkins实现项目tag发布方式
  • 九 jenkins实现项目tag发布与回退
  • 十 jenkins解决项目重复发布问题

一. 持续集成

让产品快速迭代,同时还能保证高质量,简化工作流程


二. 持续交付

让通过持续集成后的代码可以部署

三. 持续部署


四. 持续集成的实施流程


五. gitlab

5.1 gitlab安装配置

5.1.1 安装gitlab服务依赖包

从gitlab官网找依赖包安装方法:

[root@gitlab2 ~]# sudo dnf install -y curl policycoreutils openssh-server perl
[root@gitlab2 ~]# sudo dnf install postfix
[root@gitlab2 ~]# sudo systemctl enable  postfix
[root@gitlab2 ~]# sudo systemctl start  postfix

5.1.2 下载并安装gitlab服务

从官网下载慢,从清华大学源下载:

  1. 下载

  2. 安装
[root@gitlab2 ~]# yum localinstall gitlab-ce-14.3.0-ce.0.el8.x86_64.rpm -y

5.1.3 配置gitlab服务(访问域名、邮箱、关闭Prometheus)

5.1.3.1 配置访问域名

  1. 配置/etc/gitlab/gitlab.rb这个配置文件, 配置external_url = 域名或ip

2. 启动gitlab实例

sudo gitlab-ctl reconfigure

5.1.3.2 配置邮箱(新注册用户给用户放邮件修改密码用)

配置/etc/gitlab/gitlab.rb这个配置文件, 来配置邮箱:

  1. emai settings
### Email Settings
gitlab_rails['gitlab_email_enabled'] = true
# 发件邮箱
gitlab_rails['gitlab_email_from'] = 'kkang@bj-tangseng.com'
# 邮件显示的发件人
gitlab_rails['gitlab_email_display_name'] = 'ts-gitlab'
  1. GitLab email server settings
gitlab_rails['smtp_enable'] = true
# smtp发件服务器
gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
gitlab_rails['smtp_port'] = 465
# 发件邮箱账号
gitlab_rails['smtp_user_name'] = "kkang@bj-tangseng.com"
# 发件邮箱客户端授权码
gitlab_rails['smtp_password'] = "111"
gitlab_rails['smtp_domain'] = "bj-tangseng.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true

5.1.3.3 关闭Prometheus

配置/etc/gitlab/gitlab.rb这个配置文件, 来关闭Prometheus:

5.1.4 初始化gitlab服务,启动gitlab服务

5.1.4.1 初始化gitlab服务

[root@gitlab2 ~]# gitlab-ctl reconfigure

5.1.4.2 启动gitlab服务

gitlab-ctl restart

5.1.4.3 每次修改/etc/gitlab/gitlab.rb这个配置文件后都要gitlab-ctl reconfigure

5.2 gitlab中的组、项目、用户的关系

六. jenkins

6.1 jenkins介绍

开源持续集成工具,由java开发;
jenkins本身是一个调度平台,本身不处理任何事情,调用插件来完成工作

6.2 jenkins安装

先安装,然后启动后跳过安装插件的步骤,进入jenkins先改管理员密码






6.3 jenkins安装插件

6.3.1 直接安装插件

  1. 设置国内服务器加速插件安装





  2. 查找插件并安装

6.3.2 下载 .hpi 插件文件安装

  1. 从清华大学网下载 .hpi插件文件




  2. 安装



6.3.3 从其他jenkins上导出插件包直接安装

  1. 停止jenkins服务
systemctl stop jenkins
  1. 进入jenkins存放插件的目录
  2. 将plugins目录删除
  3. 将插件包解压,然后将解压后的plugins目录复制到/var/lib/jenkins/目录下
  4. 将目录/var/lib/jenkins/目录的属主和属组改为jenkins
chown -R /var/lib/jenkins/
  1. 启动jenkins服务
systemctl start jenkins

6.4 jenkins配置文件

vim /etc/sysconfig/jenkins

六 jenkins与gitlab集成

6.1 开发提交代码到gitlab

6.2. jenkins上安装与gitlab集成所需插件

插件名称                     插件作用
Credentials Plugin                      允许在Jenkins中存储认证的凭据
Git Client                              允许Jenkins使用git
Git                                     允许Jenkins集成git
Gitlab                                  允许gitlab触发Jenkins构建并在gitlab中显示结果
Gitlab Hook                             允许gitlab自动触发jenkins构建项目
Gitlab Authentication                   gitlab身份验证插件

6.3. jenkins创建freestyle项目,然后配置代码源为gitlab项目地址

  1. 在Jenkins后台为用户root生成一对密钥

  2. 将Jenkins的公钥放到gitlab中

  3. 在Jenkins上配置ssh凭据

  4. 将项目源码管理设置为指定gitlab地址,然后配置使用的免密登录gitlab凭据,配置要下载的代码分支

七 jenkins参数化构建

7.1 文本参数

  1. 在项目中设置一个文本参数test-variable

  2. 构建时使用这个文本参数



7.2 选项参数



7.3 Git Parameter

  1. 需要安装插件Git Parameter Plug-In

  2. 在项目中设置Git Parameter

  1. 在项目中使用Git Parameter


八 jenkins实现项目tag发布方式

九 jenkins实现项目tag发布与回退

十 jenkins解决项目重复发布问题

GitLab + Jenkins + Sonar Qube 持续集成相关推荐

  1. Springboot Gitlab Jenkins Maven Docker 持续集成/持续交付

    Gilab安装教程 http://blog.csdn.net/chenhaifeng2016/article/details/78603216 http://blog.csdn.net/chenhai ...

  2. Linux企业运维篇——git+gitlab+jenkins+docker构成持续集成环境

    一.GitLab与jenkins Gitlab是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务. Jenkins是一个开源软件项目,是基于Java开发的一 ...

  3. gitlab+jenkins+maven+docker持续集成(四)——Extended E-mail Notification配置

    构建后进行邮件通知,这里我们用Extended E-mail Notification 系统管理-->Extended E-mail Notification 在这里subject.conten ...

  4. 使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境

    前言 但凡一个略有规模的项目都需要一个持续集成环境的支撑,为什么需要持续集成环境,我们来看一个例子.假如一个项目,由A.B两位程序员来协作开发,A负责前端模块,B负责后端模块,前端依赖后端.A和B都习 ...

  5. Jenkins——Jenkins介绍+基于云平台的Jenkins安装和持续集成环境配置(插件+用户权限+凭据+Maven打包)

    Jenkins--Jenkins介绍+基于云平台的Jenkins安装和持续集成环境配置(插件+用户权限+凭据+Maven打包) 持续集成及Jenkins介绍 软件开发生命周期 什么是持续集成? 持续集 ...

  6. Jenkins多环境持续集成架构实践

    作者:滴答的雨 出处:http://www.cnblogs.com/heyuquan/ Jenkins多环境持续集成架构实践 自动化部署主要是为了解决项目多.环境多.持续集成慢.部署操作麻烦.手动操作 ...

  7. Jenkins安装和持续集成环境配置

    Jenkins安装和持续集成环境配置 持续集成说明 Jenkins安装 Jenkins插件管理 下载中文汉化插件 Jenkins用户权限管理 安装Role-based Authorization St ...

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

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

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

    持续集成概述 什么是持续集成 随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题.尤其是近些年来,敏捷(Agile) 在软件工程领域 ...

最新文章

  1. 人脸检测对齐--Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks
  2. 【sprinb-boot】maven 多模块项目:单独 spring-boot:run 某个模块
  3. 前端性能优化 -- 从 10 多秒到 1.05 秒
  4. MySQL 深潜 - MDL 锁的实现与获取机制
  5. pythonopencv测距_python opencv单目测距 小孔成像原理
  6. LVS+ldirector实现负载均衡
  7. Python-面向对象(进阶)
  8. [Ext JS 4] 实战之Grid, Tree Gird 添加按钮列
  9. react-native 自定义 下拉刷新 / 上拉加载更多 组件
  10. SQL注入如何进行攻击
  11. 游戏筑基开发之利用文件函数取出配置文件(ini文件)的数据实体(C语言)
  12. Lumerical官方案例、FDTD时域有限差分法仿真学习(八)——光纤布拉格光栅(Fiber Bragg gratings)
  13. 实习生也容易上手的ui框架
  14. 2019年的咖啡大战,从杭州开打?
  15. ContentProvider总结与简单Demo
  16. 服务器运维-vanish
  17. 解决idea 提示 Wrong tag ‘Param‘的问题
  18. 程序员女朋友礼物python代码_@程序员,用 Python 给女朋友准备个儿童节礼物可好?...
  19. idea通过svn上传_IDEA提交整个项目到svn
  20. 天下霸图进度汇报20200329

热门文章

  1. php浮点数保留小数点后两位小数,PHP保留2位小数 格式化小数、浮点数
  2. 巅峰跨界!腾势N7全球首搭法国潮奢科技音响品牌DEVIALET帝瓦雷车载音响
  3. 中国手机在印度市场出货量猛增,其他手机企业继续萎缩
  4. CTF线下赛WAF【参考,自行修改】
  5. 24届近5年郑州大学自动化考研院校分析
  6. 计算指定日期加天数后的日期
  7. 台式机电脑网速突然变的非常慢问题解决
  8. 网页骨架屏自动生成方案(dps)
  9. 阿里巴巴fonticon字体图标的使用
  10. RPA机器人的两种类型与未来发展