jenkins 与 gitlab 的持续集成
前言介绍
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 的持续集成的更多相关文章
- Jenkins+Maven+Gitlab+Nexus持续集成环境搭建
1.软件及服务介绍 Jenkins:jenkins是实现代码自动化流程上线的工具,Jenkins是一个独立的开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个 ...
- Jenkins+TestNG+gitlab+maven持续集成
准备工作: 1.安装Jenkins 网上有jenkins安装配置教程 2.jenkins配置 2.1全局工具配置 配置JDK JDK别名:名称可以随意,但是要方便识别 JAVA_HOME:centos ...
- Jenkins+Gitlab搭建持续集成(CI)环境
利用Jenkins+Gitlab搭建持续集成(CI)环境 Permalink: 2013-09-08 22:04:00 by hyhx2008in intern tags: jenkins gitla ...
- 持续集成之Jenkins+Gitlab实现持续集成 [二]
持续集成之Jenkins+Gitlab实现持续集成 [二] 项目:使用git+jenkins实现持续集成 开始构建 General 源码管理 我们安装的是Git插件,还可以安装svn插件 我们将 ...
- Git Hooks、GitLab CI持续集成以及使用Jenkins实现自动化任务
Git Hooks.GitLab CI持续集成以及使用Jenkins实现自动化任务 前言 在一个共享项目(或者说多人协同开发的项目)的开发过程中,为有效确保团队成员编码风格的统一,确保部署方式的统一, ...
- Net 项目构建基于Jenkins + Github + Mono 的持续集成环境
Net 项目构建基于Jenkins + Github + Mono 的持续集成环境 阅读目录 1 安装 2 配置 3 测试 在Redhat enterprise 6.5 的服务器上,为在gutub 上 ...
- 使用 Jenkins 搭建 iOS/Android 持续集成打包平台【转】
背景描述 根据项目需求,现要在团队内部搭建一个统一的打包平台,实现对iOS和Android项目的打包.而且为了方便团队内部的测试包分发,希望在打包完成后能生成一个二维码,体验用户(产品.运营.测试等人 ...
- Ubuntu Docker 安装和配置 GitLab CI 持续集成
相关文章: Ubuntu Docker 简单安装 GitLab 劈荆斩棘:Gitlab 部署 CI 持续集成 目的:在 Ubuntu 服务器上,使用 Docker 安装和配置 GitLab Runne ...
- Jenkins构建Android项目持续集成之findbugs的使用
Findbugs简介 关于findbugs的介绍,可以自行百度下,这里贴下百度百科的介绍.findbugs是一个静态分析工具,它检查类或者 JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题 ...
随机推荐
- word HTML文件与Markdwon互相转换的几种方式
Tip:word文件与Markdwon转换往往是可逆的.无论使用哪种方式,要想完美转换,必须要预先处理掉markdown与word不兼容的格式,如word文件对象,带边框的代码块等等 方法一:借助pa ...
- 深入浅出ES6的标准内置对象Proxy
Proxy是ES6规范定义的标准内置对象,可以对目标对象的读取.函数调用等操作进行拦截.一般来说,通过Proxy可以让目标对象"可控",比如是否能调用对象的某个方法,能否往对象添加 ...
- $Loj10157$ 皇宫看守 树形$DP$
loj Description 有一些宫殿,它们呈树形结构,相邻的宫殿之间可以互相望见.在一些宫殿设立士兵,使得所有的宫殿都有士兵或是被士兵望见.求最小士兵数. Sol 状态: f[x][0] 表示结 ...
- 《Java开发学习大纲文档》V8.0
<Java开发学习大纲文档>V8.0 第八版是以实战作为核心,同时也包含前面所有版本的精华部分,第八版加入的部分有云开发(阿里云OSS存储.(github)gitlab+docker网站自 ...
- 「洛谷P2397」 yyy loves Maths VI (mode) 解题报告
P2397 yyy loves Maths VI (mode) 题目背景 自动上次redbag用加法好好的刁难过了yyy同学以后,yyy十分愤怒.他还击给了redbag一题,但是这题他惊讶的发现自己居 ...
- Notepad++中安装json格式化插件
在线工具固然好,一旦没网就凉凉 Notepad++编辑器中提供了 json 数据格式化显示的插件 安装插件过程如下: 注意: 安装过程需要联网状态 插件安装过程会自动退出程序,等待几秒钟后插件安装完成 ...
- python3 三行代码基于HTTP2完美实现APNS推送【详解】
第一次做苹果APNS(Apple Push Notification service)推送,关于APNS推送原理以及证书的获取方式网上已经有许多资料,在此不做过多赘述,需要注意的是证书分为测试证书和正 ...
- vnpy源码阅读学习(1):准备工作
vnpy源码阅读学习 目标 通过阅读vnpy,学习量化交易系统的一些设计思路和理念. 通过阅读vnpy学习python项目开发的一些技巧和范式 通过vnpy的设计,可以用python复现一个小型简单的 ...
- CentOS6.5源码安装mysql-5.5.21
本文参考自 http://www.cnblogs.com/ShanFish/p/6531365.html,但不局限于它. 一. 卸载旧版本 .检查是否安装mysql组件 # rpm -qa | gre ...
- 【转】ArcGIS Server 10.1 动态图层—添加栅格
本文将介绍如何通过arcgisserver10.1动态图层添加栅格影像.与添加矢量数据不同的是,天际栅格用到了RasterDataSource接口,如下所示 <esri:DynamicLayer ...