前言介绍

gitlab与jenkins的安装部署请参考之前的文章;这里介绍一下jenkins与gitlab结合的好处。

gitlab可以自己实现CICD功能,jenkins也可以结合其他工具来实现CICD功能,为什么要用jenkins + gitlab的方式来实现。我这里个人推断:jenkins以插件功能丰富而闻名,gitlab本身就是一套集成工具,这种情况下面所有的操作都在gitlab上面执行,很容易产生资源的瓶颈;其次gitlab属于分布式版本控制工具,使用方便灵活,拥有的用户市场大等很多优势,所以用jenkins + gitlab的方式来实现CICD是比较理想的方案。

下面介绍一下jenkins与gitlab持续集成的环境。

环境

编号 主机地址 应用名称 版本
1 192.168.21.39 jenkins 2.19
2 192.168.21.40 gitlab 12.3.5

部署

jenkins

安装文档请参考之前的内容,下面是初次登录时所需的操作

通过浏览器访问jenkins地址,一般是http://network_ip:8080

选择自定义插件,我比较喜欢所有的插件自己后续安装,这样可以具体的了解大部分插件的功能与依赖

我这里并没有安装任何插件

因为我是cicd的测试,并不是jenkins功能的测试,所有我这个地方并没有做权限的管理

若是没有dns及hostname相关的设置,这个地方就用ip来设置url即可。

准备汉化jenkins,大家都是中国人,你懂得;Jenkins >> Manage Jenkins >> Manage Plugins >> Available;然后搜索localization,选择下列的插件进行安装

安装gitlab相关的插件:gitlab-hook、gitlab-authentication、gitlab-plugin(注意,gitlab-hook有很多依赖关系,就算你选择离线安装也会去在线获取依赖插件;解决办法就是先把依赖插件先安装上。)

离线插件下载地址:https://updates.jenkins.io/download/(好像需要翻qiang,你懂得)

需要注意的是:有一些插件本身有一些安全隐患,具体的隐患需要查看官方相应资料,一般jenkins平台中会给出提示,如下图:

安装相应的插件之后还需要到jenkins对应的主机操作系统中安装git程序,因为jenkins要调用git的接口去检测仓库的指针与版本

[root@jenkins ~]# yum -y install git

gitlab

创建凭据;User >> setting >> Access Tokens;

记住上面图中的Personal Access Token;并添加到jenkins的凭据中去。

新建仓库,用作测试

jenkins

在jenkins全局模式里面配置gitlab的用户令牌验证;jenkins >> 系统设置 >> Gitlab;在Gitlab处进行配置,如下图;

在jenkins端添加gitlab的凭据,互做绑定;新建项目 >> 源码管理 >> 添加凭据 >> 构建触发器 >> 创建webhook;

注意:这个上面用的是用户名与密码。

创建构建触发器

上面图中的这两个东西非常重要,等下都要用到。记得保存应用!!!

gitlab

在仓库中添加webhook;projects >> 选择仓库 >> setting >> Integrations >> 添加绑定 >> Add webhook

测试

在用户端拉取仓库,进行代码提交;之后在jenkins端查看是否有新的项目自动进行构建。若自动构建并且成功,则说明持续集成环境部署成功。

参考文档:https://rorschachchan.github.io/2018/05/25/Gitlab-Jenkins%E6%90%AD%E5%BB%BA%E6%8C%81%E7%BB%AD%E9%9B%86%E6%88%90%E7%B3%BB%E7%BB%9F/

jenkins 与 gitlab 的持续集成的更多相关文章

  1. Jenkins+Maven+Gitlab+Nexus持续集成环境搭建

      1.软件及服务介绍 Jenkins:jenkins是实现代码自动化流程上线的工具,Jenkins是一个独立的开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个 ...

  2. Jenkins+TestNG+gitlab+maven持续集成

    准备工作: 1.安装Jenkins 网上有jenkins安装配置教程 2.jenkins配置 2.1全局工具配置 配置JDK JDK别名:名称可以随意,但是要方便识别 JAVA_HOME:centos ...

  3. Jenkins+Gitlab搭建持续集成(CI)环境

    利用Jenkins+Gitlab搭建持续集成(CI)环境 Permalink: 2013-09-08 22:04:00 by hyhx2008in intern tags: jenkins gitla ...

  4. 持续集成之Jenkins+Gitlab实现持续集成 [二]

    持续集成之Jenkins+Gitlab实现持续集成 [二] 项目:使用git+jenkins实现持续集成 开始构建  General  源码管理 我们安装的是Git插件,还可以安装svn插件  我们将 ...

  5. Git Hooks、GitLab CI持续集成以及使用Jenkins实现自动化任务

    Git Hooks.GitLab CI持续集成以及使用Jenkins实现自动化任务 前言 在一个共享项目(或者说多人协同开发的项目)的开发过程中,为有效确保团队成员编码风格的统一,确保部署方式的统一, ...

  6. Net 项目构建基于Jenkins + Github + Mono 的持续集成环境

    Net 项目构建基于Jenkins + Github + Mono 的持续集成环境 阅读目录 1 安装 2 配置 3 测试 在Redhat enterprise 6.5 的服务器上,为在gutub 上 ...

  7. 使用 Jenkins 搭建 iOS/Android 持续集成打包平台【转】

    背景描述 根据项目需求,现要在团队内部搭建一个统一的打包平台,实现对iOS和Android项目的打包.而且为了方便团队内部的测试包分发,希望在打包完成后能生成一个二维码,体验用户(产品.运营.测试等人 ...

  8. Ubuntu Docker 安装和配置 GitLab CI 持续集成

    相关文章: Ubuntu Docker 简单安装 GitLab 劈荆斩棘:Gitlab 部署 CI 持续集成 目的:在 Ubuntu 服务器上,使用 Docker 安装和配置 GitLab Runne ...

  9. Jenkins构建Android项目持续集成之findbugs的使用

    Findbugs简介 关于findbugs的介绍,可以自行百度下,这里贴下百度百科的介绍.findbugs是一个静态分析工具,它检查类或者 JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题 ...

随机推荐

  1. c++ 队列算法

    include using namespace std; #define Maxsize 5 typedef int DataType; typedef struct Queue { DataType ...

  2. 91.requests&BeautifulSoup

    转载:https://www.cnblogs.com/wupeiqi/articles/6283017.html equests Python标准库中提供了:urllib.urllib2.httpli ...

  3. 激励函数 (Activation)

    softplus是有关概率的巴拉巴拉? Torch 中的激励函数有很多, 不过我们平时要用到的就这几个. relu, sigmoid, tanh, softplus. 那我们就看看他们各自长什么样啦. ...

  4. 清晰架构(Clean Architecture)的Go微服务: 设计原则

    我最近写了一个Go微服务应用程序,这个程序的设计来自三个灵感: 清晰架构"Clean Architecture"¹ and SOLID (面向对象设计)² 设计 原则³ Sprin ...

  5. TCP三次握手、四次挥手详解

    1.TCP报文格式 TCP(Transmission Control Protocol) 传输控制协议.TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接. 我们需要 ...

  6. shopnc 二次开发问题(一)

    1.关于shopnc商品详情页面多规格抢购,价格显示都是显示的抢购价格问题 路径: data/model/groupbuy.model.php 方法:getGroupbuyInfoByGoodsCom ...

  7. Spring Security详解

    Spring Security 一. 简介 Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架.它提供了一组可以在Spring应用上下文 ...

  8. 组件与props简解

    一.创建组件 1.函数式创建 特点: 组件不能访问this对象 组件无法访问生命周期的方法 无状态组件只能访问输入的props,无副作用 function Title() { return <h ...

  9. NSOperationQueue队列依赖相关思考

    添加依赖后,队列中网络请求任务有依赖关系时,任务结束判定以数据返回为准还是以发起请求为准? waitUntilFinished方法容易误解. 依赖关系 // // ViewController.m / ...

  10. [转]C#中的abstract 类和方法

    转:https://www.cnblogs.com/zzy2740/archive/2005/09/20/240808.html C#中的abstract类不能被实例化,他只提供其他类的继承的接口 u ...