Gitlab打Tag触发Jenkins构建打包镜像

7.Jenkins基于tags方式发布 如果不显示,先取消参数化构建,直接从gitlab拉一次,然后加上参数化构建的配置,就可以了。8.回到Jenkins就可以看到v1.0的tag,点击开始构建。1.在插件管理中,安装Git Paramete。4.指定构建参数,选择Git Paramete。2.新建一个项目,克隆之前的项目即可。3.将构建触发器中的选项取消勾选。9.显示构建成功后,查看效果即可。7.发布代码打上tag。 阅读详情
AI摘要

本文介绍了如何在Jenkins中使用Webhook从GitLab触发构建,包括设置WebhookToken,配置GitLabWebhook,以及通过Pipeline脚本获取和使用GitLab推送的Tag信息来控制构建流程,包括Git克隆、Maven构建和Docker镜像构建。

Jenkins配置

项目使用Webhook触发,

需要勾选上Push Events

设置Webhook Token

Gitlab配置Webhook

填写上Jenkins上配置的Webhook url和Token

选择标签推送事件,这样打完标签后,就可以触发Jenkins打包构建过程。

Jenkins上获取触发的代码Tag信息

Pipeline模式下。可以方便获取Tag信息。

如何获取Git,GitLab等项目触发到Jenkins的信息呢。如果不想查阅对应的插件文档和源码。

可以使用打印环境变量的方式获取。

如下,打印了所有环境变量。很清楚知道我们想要的是gitlabBranch这个环境变量

Pipeline 脚本

  • 先打印所有环境变量
  • 获取想要的环境变量,提取想要的环境变量
  • 代码 检出
  • 打包
  • 打镜像
pipeline {
    agent any

	environment {	
		GIT_URL = "https://xx.x.xx.demo.git"
		GIT_CREDENTIALS_ID = "xx-xx-xxx-xxxxx-xxxxx"

		// 触发构建的gitlab tag 获取到的值样例: refs/tags/v0.0.1-test 
		GITLAB_TAG_NAME=""
		// docker镜像标签
		DOCKER_IMAGE_TAG=""
	}

    stages {
	    // 打印所有环境变量,便于查看触发的Tag是哪个环境变量
	    stage('Print All Environment') {
		    steps {
			   script {
			      sh 'printenv'
			   }
			}
		}
		
        stage('Prepare Gitlab Tag Name') {
            steps {
                script {
                    // 获取触发构建的tag
                    GITLAB_TAG_NAME=env.gitlabBranch
                    def tagName = GITLAB_TAG_NAME.replace("refs/tags/", "")
                    DOCKER_IMAGE_TAG=tagName
                    echo "Triggered by GitLab tag: ${GITLAB_TAG_NAME}"
                    echo "Setting DOCKER IMAGE TAG to ${DOCKER_IMAGE_TAG}"
                }
            }
            
        }
		stage('git checkout') {
            steps {          
                checkout([$class: 'GitSCM', branches: [[name: "${GITLAB_TAG_NAME}"]],
                userRemoteConfigs: [[credentialsId: "${GIT_CREDENTIALS_ID}", url: "${GIT_URL}"]]
                ])
               
            }
        }
	    stage('maven build') {
            steps {
                script{
	                sh "mvn clean package"
                }
            }
        }

	    stage('docker build') {
            steps {
              script{
	            sh "docker build --no-cache -t harbor.registry.com/demo/xxx:${DOCKER_IMAGE_TAG} ."
              } 
           }
        }
	}
}

【自动化运维系列】jenkins实践篇(2)—— 自动打tag的可回滚发布模式 大家好,我是蓝胖子,在上一篇我简单介绍了如何基于特定分支做自动编译和发布,在生产环境中,为了更加安全和快速回滚,我采取的是通过对代码打tag的方式来进行部署,下面我将详细介绍整个发布过程的逻辑。 阅读详情

相关推荐

k8s管理容器 gitlab配合Jenkins 实现持续CI/CD

" api-version: v1 certificate-authority-data: "xxxxxx"users:- name: "root" user: token: "你的token"contexts:- name: "test" context: user: "user1" cluster: "test"current-context: "test。6.安装插件 所有关于pipleline的插件都需要安装,如果安装有问题的,可以直接跳过,此时会提醒更新最新版本Jenkins,点更新就好,

qq_41126822的博客 1759

三、gitlab+Jenkins+nginx实现项目tag版本方式发布

本文通过Git Parameter实现通过tag进行发布和回滚操作结合shell脚本实现对git项目代码的流水线操作!!!!

weixin_57670650的博客 2225

Jenkins与GitLab实现前后端项目自动化构建部署实战指南

持续集成与持续部署(CI/CD)是现代软件开发的核心实践,其核心原理是通过自动化工具链将代码变更快速、可靠地集成到主干并交付至生产环境。这项技术的核心价值在于将软件交付从手工操作转变为标准化、可重复的工业化流水线,显著提升交付效率、降低人为错误风险。在典型的应用场景中,开发团队通过配置自动化构建、测试、打包和部署流程,实现从代码提交到服务上线的全链路自动化。本文聚焦于使用Jenkins和GitLab搭建前后端分离项目的CI/CD流水线,详细阐述了如何通过Jenkinsfile定义构建阶段、利用Docker进

weixin_33796177的博客 408

Jenkins基于gitlab中的Tag进行构建

1 创建Tag 打开项目,选择分支,点击Tag 点击“New Tag”,进入创建Tag界面 填写Tag name,Message,Release notes,均是自定义 在gitlab仓库中就可以看到Tag列表了。至此,master分支的Tag创建完毕。 2 配置Jenkins任务 步骤1:安装Git Parameter插件 步骤2:新建一个maven项目 步骤3:配置jenkins任务参...

weixin_43840640的博客 6774

使用jenkins和gitlab-runner DevOps CICD - 制作docker镜像并推送到阿里云镜像仓库

前言 DevOps( Development和Operations的组合词 )的概念在软件开发行业中逐渐流行起来。越来越多的团队希望实现产品的敏捷开发,DevOps 使一切成为可能。有了 DevOps,团队可以定期发布代码、自动化部署、并将持续集成( CI ) / 持续交付( CD )作为发布过程的一部分。说到 CICD 比较出名的有 jenkins 和 gitlab-runner 、circle.ci 和travis.ci等等,大家可以自行百度或者找相关文章看看这几个的区别,这里就不详细讲了。 Jenk

weixin_43207262的博客 1335

STM32F103单片机驱动TM1637数码管显示模块

最近项目中需要用到数码管显示,于是买了一个TM1637芯片驱动的四位数码显示模块,现将调试过程记录一下,方便以后参考。 使用的单片机是STM32F103C8T6最小系统 使用的数码管模块是TM1637四位数码管显示模块 实际运行效果 下面先看一下TM1637和数码管连接的具体线路图 实际使用的模块没有带按键,只用了4个数码管,模块和单片机连接只需要4根线VCC、GND、CLK、DIO。芯片和单片机通信使用的是I2C总线,下面就来说一下如何...

HXYDJ的博客 1万+

jenkins续--按tag打包

接上篇,测试提出想根据开发提交的TAG来进行打包,作为一个没有接触过jenkins的小白,特此记录一步一步摸爬滚打的历程。

weixin_45391541的博客 1807

【三维重建】基于多视角图像的三维重建

基于多视角图像的三维重建》

m0_64446860的博客 8758

GitLab打Tag触发Jenkins自动构建与镜像打包实践

在CI/CD体系中,版本发布的关键是把确定的代码提交与可追溯的构建产物绑定。Git Tag作为指向固定提交的引用,天然适合承载发布语义;通过GitLab Webhook投递tag_push事件,Jenkins流水线可按Tag检出代码并触发自动化构建。其技术价值在于减少手工打包、统一镜像标签、提升发布可追溯性与回滚定位效率,常见于持续集成、持续交付和容器化部署场景。围绕GitLab打Tag触发Jenkins构建并打包Docker镜像这条链路,需要重点处理Webhook事件类型、触发过滤、Tag检出、镜像标签映

weixin_29611239的博客 195

elmos 524系列芯片笔记

芯片的工作工作原理:集成芯片Elmos524.03有发射回路和接收回路,手册有关的内部原理图,大致如下: 芯片会产生固有频率的电压信号,信号通过引脚DRV1、2输出给外部压电陶瓷片,产生固定频率的机械波,也就是所谓的超声波,超声波遇到障碍物时会反射,反射信号经过AINS、D引脚进入芯片,在芯片内部先后经过GAIN放大,滤波然后进入比较器,滤波后的信号(signal)同预先设定的阈值(threshold)比较产生信号输出。此信号最终会连接MCU处理器,需要重点关注。 基于这个内部的工作原

qq_38230916的博客 2483

为什么你的ESXI无法识别移动硬盘?一步步教你解决USB存储挂载问题

本文深入解析了ESXi无法识别移动硬盘的根本原因,并提供了从诊断到解决的完整方案。核心在于理解ESXi的USB Arbitrator服务机制,通过检查服务状态、内核设备识别及分区表,逐步定位问题。文章详细指导了如何禁用USB仲裁服务以在主机挂载USB存储,或将其直通给虚拟机,并针对大容量硬盘、USB 3.0兼容性等进阶问题给出了实用建议。

qq_27496129的博客 331

jenkins+gitlab+maven+docker自动化部署spring boot

本文介绍了基于GitLab、Jenkins和Docker的自动化部署流程。开发人员在GitLab打tag触发Jenkins构建,通过Maven编译打包后,将jar包和Dockerfile传输到远程服务器执行部署脚本。环境需要安装JDK、Maven、Git、Docker和Jenkins,并配置相应插件。重点说明了Dockerfile编写、Jenkins系统配置(包括Maven、GitLab集成)、项目构建触发器设置以及远程部署脚本的实现。该流程可实现自动停止旧容器、构建新镜像并运行新容器。文章还提出了扩展方案

油墨香^-^的博客 702

MCAL配置之CAN模块及源码分析

该文章详细解析了Autosar中MCAL配置里的CAN模块,详细分析了重要的配置选项,并对CAN的发送和接收函数进行了剖析。

u013624141的博客 1416

GitLab Tag触发Jenkins构建Docker镜像的CI/CD实践

持续集成与持续交付(CI/CD)的核心,是把代码变更以可重复、可审计的方式转化为可部署制品。以 Git Tag 作为版本标记,本质上用不可变引用承载发布语义:Tag 指向确定提交,再由 GitLab Webhook 把 Tag Push 事件传给 Jenkins 流水线,触发检出、编译和 Docker 镜像构建。相比分支提交即构建,这种事件驱动方式能减少无效构建,让镜像版本与源码提交一一对应,并借助语义化版本规范约束发布粒度。它适用于容器化微服务、多环境交付和中小团队自动化发版场景,也便于回滚、审计与权限治

weixin_30899023的博客 310

「PAT乙级真题解析」Basic Level 1034 有理数四则运算 (问题分析+完整步骤+伪代码描述+提交通过代码)

题设给定两个有理数, 要求输出这两个有理数的和、差、积、商。 如果只是这样, 则问题很简单, 但是题设要求输出的每个有理数必须是最简形式. **所以本题的一个重点是如何将有理数转为题设要求的有理数.**

过美好生活,做高效程序员 3129

STM32F103待机模式原理与低功耗实战指南

待机模式是嵌入式系统实现超低功耗的核心机制,其本质是通过切断内核域电源(VDD/VDDA)实现微安级静态电流,区别于睡眠/停止模式的状态保持特性。原理上依赖电源域隔离、WKUP引脚事件唤醒与RTC备份域协同,技术价值在于支撑电池供电设备长达数年续航。典型应用场景包括物联网传感器节点、智能电表、便携医疗设备等对功耗极度敏感的终端。工程落地需严格遵循GPIO模拟输入配置、唤醒标志清除、备份域解锁等关键步骤,避免因漏电或误唤醒导致实测电流超标。本文以STM32F103为例,深入解析待机模式的硬件基础与HAL库实现

weixin_32999557的博客 66

【基于 GitLab Webhook 的 Jenkins 自动触发构建实现手册:涵盖概念原理、环境配置、故障处理及 Tag/Commit 维度参数化构建实践】

本文介绍了如何利用Jenkins和GitLab Webhook实现代码提交自动触发构建的CI/CD流程。主要内容包括:GitLab Webhook的原理及作用,Jenkins插件安装配置,GitLab中Webhook的具体设置步骤,以及解决常见报错的方法。通过实战演示了开发人员推送代码后Jenkins自动构建的全过程,并详细讲解了基于Git参数化(如tag)的自动构建配置方法。文章还提供了相关基础知识的参考链接,帮助读者快速掌握Jenkins与GitLab的自动化集成技术。

m0_63756214的博客 1215

【AI编程】Vibe Coding 开发环境搭建与项目实战操作详解

Vibe Coding 开发环境搭建与项目实战操作详解

congge 7334

jenkins自动构建SpringCloud

jenkins依赖docker-compose自动部署SpringCloud和vue项目本机环境jenkins配置下载war包war包部署设置开机自启访问Jenkins插件配置全局工具配置配置GitLab创建任务vue项目springcloud项目 本机环境 CentOS: CentOS Linux release 7.9.2009 (Core) jdk: Java(TM) SE Runtime Environment (build 1.8.0_281-b09) jenkins配置 Jenkins是一个开

微笑听雨 2万+

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

持续集成与持续交付--通过dockerfile构建镜像,使用jenkins将镜像推送到gitlab仓库中(本机调用)

一、docker+jenkins+gitlab–通过dockerfile构建镜像,使用jenkins将镜像推送到gitlab仓库中 1、先用本地docker主机== 在server3(jenkins主机上)安装docker wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #添加软件源信息 vim docker-ce.repo yum -y install docker-ce #通常会有软件依赖性 cat /

YiSean96的博客 1155

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Linux下基于Gitlab和Jenkins的自动化部署实例(二)—构建docker镜像,并利用构建的镜像运行容器

续我的上篇博文:https://mp.youkuaiyun.com/postedit/89260300。即test项目已经配置好 本篇博文配置的自动化部署之推送docker镜像是在上篇博文的hello项目构建成功之后,才触发的。 git——>gitlab——>jenkins——>docker build images——>docker engine ——&...

qq_42303254的博客 958

Jenkins持续集成替换为gitlab.yml镜像打包(微服务or消费端)

如何让gitlab管道停止并要求我输入变量进行个性化打包?背景Gitlab CI yaml.gitlab-ci.yml文件内容编写1. after_script2. stages 背景 gitlab 管道停止并要求我输入变量? 使用Jenkins打包阿里云镜像包,由于Jenkins环境不稳定,越是着急Jenkins打包镜像越是慢; 故而换成Gitlab CI yaml进行阿里云镜像打包。(两种都是运行dockerfile) Gitlab CI yaml GitLab CI使用YAML文件(.gitlab-c

weixin_46484674的博客 6485

docker 搭建gitlab gitlab-runner实现 CI/CD

本文使用到docker、gitlab、harbor、k8s以及Kubesphere,这些在以前文章中已经部署过,可以作为参考最终达到效果为,代码提交至master分支后,将master分支合并到develop分支,会触发CI/CD,进行自动打包、生成镜像、上传镜像到harbor镜像仓库,然后在Kubesphere界面重新部署项目;

FamineFree的博客 2690

Linux下基于Gitlab和Jenkins的自动化部署实例(三)—构建docker镜像,推送构建好的docker镜像并利用构建的镜像运行容器

续我的上篇博文:https://mp.youkuaiyun.com/postedit/89304557。即“构建docker镜像,并利用构建的镜像运行容器”的hello项目和docker项目已经构建好。 本篇博文是在上篇博文的基础上进行推进的,解决两个问题: webserver容器运行导致docker工程构建失败; 没有向registry私有仓库中推送构建好的镜像 一、实验环境(rhe...

qq_42303254的博客 589

GitLab Tag触发Jenkins构建Docker镜像的CI/CD发布实践

CI/CD 的核心是把代码变更到可部署产物之间的路径自动化,而事件驱动构建让流水线由明确的版本信号触发。Git 标签作为不可变的版本锚点,配合 Webhook 将标签推送事件送达 Jenkins,可自动完成代码检出、Docker 镜像构建、版本标签注入与仓库推送。相比人工填写参数或按分支构建,这种方式能保证镜像与代码版本一一对应,提升发布可追溯性、可复现性和回滚效率,并降低误发与镜像 tag 混乱风险。在容器化交付、多环境部署和频繁发版场景中,基于 GitLab Tag 触发 Jenkins 构建 Dock

weixin_33404102的博客 206

maven项目通过gitlab + jenkins 自动部署到docker

maven项目通过gitlab + jenkins 自动部署到docker。

qq_39909943的博客 1190
上一篇: 新版本Jenkins(Version>2.357)兼容低版本JAVA项目部署
下一篇: 防止Selenium被检测 Google Chrome 125
Jeff Dauglas
博客等级 码龄14年 1176粉丝 11原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值