Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Jenkins集成GitLab的正确姿势,实现Git代码提交触发CI/CD

Jenkins集成GitLab的正确姿势,实现Git代码提交触发CI/CD

作者头像
DevOps在路上
发布于 2024-04-22 02:59:18
发布于 2024-04-22 02:59:18
6.1K00
代码可运行
举报
文章被收录于专栏:DevOps实践之路DevOps实践之路
运行总次数:0
代码可运行

jenkins和gitlab是目前DevOps工具链中最常见的,抛开gitlab-ci不谈,gitlab代码提交触发jenkins流水线是最经典的搭配。 这里就介绍下如何配置实现jenkins和gitlab之间的集成。

安装GitLab Plguin

  • Gitlab Plugin- 这个插件允许GitLab在提交代码或打开/更新合并请求时触发Jenkins中的构建。它还可以将构建状态发送回GitLab。

配置Jenkins Server

首先创建GitLab凭证,将凭证填充到 Manage Jenkins->System->enable authentication for '/project' end-point

通过该配置,相当于创建了jenkins job 可以操作访问gitlab的凭证,在后面的jenkinsfile中就会使用声明并使用该凭证。

配置Jenkins Job

创建jenkins job, 源代码管理选 Git,Repository URL 填写你 gitlab 上源码 repo 的地址,Credentials 是拉取代码时需要用到的身份认证

构建触发器选择 “Build when a change is pushed to GitLab” (记住后面的GitLab webhook URL 后面要填在gitlab的webhooks中),按照下面勾选

同时点击“高级”,“Allowd branches” 勾选 “Filter branches by regex”

点 “Generate” 生成 token,这个 token 用于填写到 gitlab 的 webhook 里,gitlab 检测到代码提交,会通知 webhook 里填写的 Jenkins 生成的回调URL,并带上这个 token,防止其它人触发 jenkins 的持续集成

注: 复制出 URL 和 token,后面配置 gitlab 的 webhook 会用到

该步骤的目的主要是为了将要通过gitlab触发的jenkins job的信息准备好,用于后面的配置gitlab-webhook, 让gitlab知道该触发哪个jenkins job.

新版jenkins可能遇到的坑

在“Generate” 生成 token时候,如果使用的是高版本的 jenkins ,会出现403错误 HTTP ERROR 403 No valid crumb was included in the request

这是因为 jenkins 的防止跨站点请求伪造(Prevent Cross Site Request Forgery exploits)阻拦了请求,本来低版本的 jenkins 可以在界面把这个关掉,貌似高版本去掉了,可以通过如下方式:

hudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION = true

如果出现下图所示的情况,就表示命令成功了

image.png

上面的方法对于在容器里运行的jenkins而言,需要进入容器修改配置,永久生效

修改/usr/local/bin/jenkins.sh , 找到exec java那行,添加-Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 最终效果
exec java -Duser.home="$JENKINS_HOME" -Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true "${java_opts_array[@]}" -jar ${JENKINS_WAR} "${jenkins_opts_array[@]}" "$@"

至此,jenkins 的持续集成配置好了,还需要配置 gitlab 的 webhook,用于代码提交通知 jenkins。

配置Gitlab Webhook

打开 gitlab 的 repo 的 Settings-Integrations,URL 和 Secret Token 填写 jenkins job中构建触发器部分生成的,点击 “Add webhook”,搞定!

在链接那里输入之前jenkins上提供的webhook url 以及“Secret token“,编辑完后保存

点击测试,如果返回200,那就成功了,去jenkins看看有没有自动构建的记录

配置Jenkins返回执行状态

上面步骤仅仅实现了gitlab代码提交触发jenkins job, 那么job执行完成后的状态,怎么在gitlab上看到呢?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pipeline {
    agent any

    options {
        gitLabConnection('gitlab-connection') 
      //Manage Jenkins->System->enable authentication for '/project' end-pointYour配置的GitLab Connection
    }

    stages {
        stage('build') {
            steps {
                updateGitlabCommitStatus name: 'build', state: 'running'
                hogehoge
            }
        }
    }

    post {
        success {
            updateGitlabCommitStatus name: 'build', state: 'success'
        }
        failure {
            updateGitlabCommitStatus name: 'build', state: 'failed'
        }
    }
}

参数说明:

  • gitLabConnection 是和GitLab链接的名称。GitLab名称的设定是在jenkins管理>系统设定>Gitlab当中设置详细的gitlab url和token
  • updateGitlabCommitStatus
    • name: build 名称
    • state: pending, running, canceled, success, failed

参考:

  • https://about.gitlab.com/devops-tools/jenkins-vs-gitlab/
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-04-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DevOps在路上 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
NAND Flash基础知识简介
NAND Flash是一种非易失存储介质(掉电后数据不会丢失),常见的U盘、TF卡/SD卡,以及大部分SSD(固态硬盘)都是由它组成的。 本文主要介绍其组成及工作原理。
coderhuo
2020/07/23
7.6K0
NAND Flash基础知识简介
NAND、eMMC与UFS选择哪款嵌入式存储介质
在嵌入式系统中,存储介质的选择是设计中至关重要的一部分,它直接影响到设备的性能、稳定性以及成本。
不脱发的程序猿
2025/03/31
2990
NAND、eMMC与UFS选择哪款嵌入式存储介质
镁光256Gb NAND Flash芯片介绍
该芯片是一款典型的大容量NAND Flash存储颗粒,支持Open NAND Flash Interface (ONFI) 2.1的接口标准,采用ONFI NANDFlash的操作协议。该芯片采用Multiple-level Cell (MLC)技术,根据不同的容量,一个芯片内部封装了多个DIE(LUN),每个DIE由两个Plane构成,一个Plane可以分成2048个Block,每个Block由256页组成,一个页的大小为8KB+448B的组织结构方式。
全栈程序员站长
2022/06/25
3.4K1
镁光256Gb NAND Flash芯片介绍
NAND闪存坏块管理与错误恢复策略
随着嵌入式系统在各种应用中的普及,NAND闪存作为存储介质,因其高密度、低成本、低功耗等优势,广泛应用于智能手机、嵌入式设备、消费电子、汽车电子等领域。
不脱发的程序猿
2025/04/09
2530
NAND闪存坏块管理与错误恢复策略
SD NAND、SPI NAND 和 Raw NAND 的定义与比较
SD nand,贴片式SD卡,使用起来和SD卡一致,不同的是采用,通常采用LGA-8封装,尺寸为8mm x 6mm x 0.75mm,重点是采用贴片封装,可以直接贴在板卡上,直接解决了SD卡固定问题,再也不用为SD卡的接触稳定性操心!
用户11033168
2025/01/15
1490
SD NAND、SPI NAND 和 Raw NAND 的定义与比较
全面理解SSD和NAND Flash
本文介绍了全面理解SSD和NAND Flash的重要性和评价标准,包括稳定性、性能、寿命等方面的指标。
Christal_R
2017/12/25
2.3K0
全面理解SSD和NAND Flash
Flash中XIP模式
XIP:eXecute In Place,即芯片内执行,指应用程序可以直接在flash闪存内运行,不必再把代码读到系统RAM中。所谓片内执行并不是说程序在存储器内执行,CPU的基本功能是取指、译码、执行,存储器访问,写回。Nor Flash能在芯片内执行,指的是CPU能够直接从Nor flash中取指令,供后面的译码器和执行器来使用。
数字IC小站
2020/08/17
5K0
深入了解NOR Flash与NAND Flash存储技术
我们将存储产品大致分为E2PROM、NOR Flash、NAND Flash三类,下面是具体分类介绍。
屿小夏
2025/05/24
2270
深入了解NOR Flash与NAND Flash存储技术
如何延长NAND闪存和eMMC使用寿命
尤其在嵌入式系统中,NAND闪存和eMMC的性能和寿命直接影响系统的稳定性和可靠性。
不脱发的程序猿
2025/03/27
1930
如何延长NAND闪存和eMMC使用寿命
Microchip:基于ML算法延长NAND寿命
随着NAND技术的进步,有效的NAND管理变得越来越具有挑战性。具体来说,有以下几点:
数据存储前沿技术
2025/02/11
1310
Microchip:基于ML算法延长NAND寿命
NAND FLASH 和NOR FLASH的区别
Intel于1988年首先开发出NOR flash技术,彻底改变了原先由EPROM和EEPROM一统天下的局面。紧接着,1989年,东芝公司发表了NAND flash结构,强调降低每比特的成本,更高的性能,并且象磁盘一样可以通过接口轻松升级。
杨源鑫
2019/07/04
3.2K0
STM32+雷龙SD NAND(贴片SD卡)完成FATFS文件系统移植与测试
在STM32项目开发中,经常会用到存储芯片存储数据。 比如:关机时保存机器运行过程中的状态数据,上电再从存储芯片里读取数据恢复;在存储芯片里也会存放很多资源文件。比如,开机音乐,界面上的菜单图标,字库文件,方便设备开机加载。
DS小龙哥
2023/01/30
2.7K0
(39)STM32——FLASH闪存
        通过这两个步骤,即可解锁 FLASH_CR,如果写入错误,那么 FLASH_CR 将被锁定,直到下次复位后才可以再次解锁。
小点点
2022/12/12
1.6K0
(39)STM32——FLASH闪存
干IT运维想少背锅,总得对SSD硬盘分的清楚吧!
SSD的产生背景是计算技术发展和市场需求驱动的结果。早期计算机使用磁芯存储器,后来被半导体存储器取代,提高了速度和可靠性。随着电子设备小型化,对轻便、低功耗存储器的需求增长,SSD因无机械部件、速度快、耗电少而受到关注。最初因成本高昂,SSD主要用于军事和航天,但NAND闪存技术的进步降低了成本,使SSD逐渐进入消费市场。如今,SSD已成为提升计算性能的关键组件,被广泛应用于各类电子设备中。
ICT系统集成阿祥
2024/12/03
1570
干IT运维想少背锅,总得对SSD硬盘分的清楚吧!
关于半导体存储的最强入门科普
我们经常使用的U盘、TF卡、SD卡,还有电脑上使用的DDR内存、SSD硬盘,都属于另外一种存储技术。
鲜枣课堂
2022/12/30
1.1K0
关于半导体存储的最强入门科普
【半导体存储】关于NAND Flash的一些小知识
作为一名电子专业的学生,半导体存储显然是绕不过去的一个坎,今天聊一聊关于Nand Flash的一些小知识。
用户11033168
2024/12/17
3710
【半导体存储】关于NAND Flash的一些小知识
NAND FLASH_Flash下载
本文介绍了DM368 NAND Flash启动的原理,并且以DM368 IPNC参考设计软件为例,介绍软件是如何配合硬件实现启动的。
全栈程序员站长
2022/09/21
3K0
NAND FLASH_Flash下载
【NAND文件系统】UBI介绍
UBI全称Unsorted Block Images,是一种原始flash设备的卷管理系统。这个系统能在一个物理的flash设备上管理多个卷并且能在整个flash芯片上实现损耗均衡。
知否知否应是绿肥红瘦
2025/02/19
2820
【NAND文件系统】UBI介绍
STM32CubeMX学习笔记(26)——SDIO接口使用(读写SD卡)
SD卡除了SD-Micro卡之外,还有两种分别是SD和mini-SD,他们分别长这样:
全栈程序员站长
2022/11/10
4K0
STM32CubeMX学习笔记(26)——SDIO接口使用(读写SD卡)
闪存物理结构
前文已经讲过了固态硬盘的发展史,曾经的固态硬盘有过RAM等介质,但是目前绝大多数固态硬盘都是以闪存芯片为存储介质的。DRAM固态硬盘我们见得少,主要应用于特殊的场合。1978年诞生的世界上第一块固态硬盘就是基于DRAM的。但由于DRAM掉电易失性,当然还有成本因素,现在的固态硬盘一般都不用DRAM,而是使用闪存作为存储介质,并且是NAND 闪存。固态硬盘的工作原理很多也都是基于闪存特性的。比如,闪存在写之前必须先擦除,不能覆盖写,于是固态硬盘才需要垃圾回收(Garbage Collection,或者叫 Recycle);闪存每个块(Block)擦写次数达到一定值,这个块要么变成坏块,要么存储在上面的数据不可靠,所以固态硬盘固件必须做磨损平衡,让数据平均写在所有块上,而不是盯着几个块拼命写(不然很快固态硬盘就报废了)。还有类似很多例子,固态硬盘内部很多算法都是在为闪存服务的。所以,欲攻固态硬盘,闪存首当其冲。
Linux阅码场
2019/07/08
8390
推荐阅读
相关推荐
NAND Flash基础知识简介
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验