Gitlab+Jenkins+Pipeline+WebHook+Multibranch-实现持续集成
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,[Gitlab + Jenkins + Pipeline + WebHook+ Multibranch] - 实现持续集成和自动发布本文的实现:代码提交gitlab,自动触发Jenkins构建gitl
千家信息网最后更新 2025年12月02日Gitlab+Jenkins+Pipeline+WebHook+Multibranch-实现持续集成
[Gitlab + Jenkins + Pipeline + WebHook+ Multibranch] - 实现持续集成和自动发布
本文的实现:
- 代码提交gitlab,自动触发Jenkins构建
- gitlab开发分支merge后自动发布到dev环境
gitlab master分支merge后自动构建,需手动更新prod环境
- Jenkins准备工作
- Jenkinsfile准备工作
- Gitlab准备工作
- 选择Jenkins任务的触发方式
- 验证
Jenkins准备工作
- 安装插件
gitlabpipeline
- 配置Gitlab的连接
- 打开
系统管理 - 系统设置 - gitlab - 去掉此选项的勾选
Enable authentication for '/project' end-point - 配置GitLab connections
- 设置
Connection name和Gitlab host URL - Credentials的配置
- 添加Jenkins凭据
- 类型选择
Gitlab API token - API token的获取
- 在Gitlab上拥有一个用户并具有developer角色
- 获取方法:
登录用户 - User settings - Access Tokens,创建一个Token记录
- 复制Token值并保存到Jenkins的凭据中
- 点击下面的
Test Connection测试- 成功会提示
Success - 如果失败检查gitlab的url地址是否正确
- 成功会提示
- 打开
- 配置多分支流水线任务
- 新建任务,选择
多分支流水线 - 配置任务
- 添加一个仓库,类型选
Git - Credentials的配置
- 添加Jenkins凭据
- 类型选择
Username with Password - 用户的获取
- 在Gitlab上拥有一个用户并具有developer角色
- 如果你的项目类型属于
Private,这个用户必须是这个项目的成员
- 其他默认读取根目录下的Jenkinsfile文件
- 新建任务,选择
Jenkinsfile准备工作
参考 Jenkinsfile Demo
主要配置:
// 获取gitlab connection, 填写我们之前配置gitlab connectionproperties([gitLabConnection('gitlab-bigdata')])// 拉取代码checkout scm// 告诉gitlab job状态updateGitlabCommitStatus name: 'build', state: 'pending'// 根据不同的分支触发不同的步骤if (env.BRANCH_NAME == 'master' || env.BRANCH_NAME == 'dev' ) { stage("Build Docker Image"){ echo "build docker image" echo "Only dev/master branch can build docker image" } if(env.BRANCH_NAME == 'dev'){ stage("Deploy to test"){ echo "branch dev to deploy to environment test" } stage("Integration test"){ echo "test环境集成测试" } } if(env.BRANCH_NAME == 'master'){ stage("Deploy to prod"){ echo "branch master to deploy to environment prod" } stage("Health check"){ echo "prod检查" } } }Gitlab准备工作
- 修改默认的安全请求
- 注意: 当Jenkins和Gitlab在同一台机器时
- 使用root登录,
管理中心 - 设置 - 网络 - 外发请求(Admin Area - settings - Network - Outbound requests) - 加上此选项的勾选
Allow requests to the local network from hooks and services, 保存
选择Jenkins任务的触发方式
- 手动触发
- 定时触发
Gitlab trigger
- 进入项目,
Settings - Integrations - 填写Jenkins任务的地址,选中
Push events和Merge request events - Jenkins url格式:
http://JENKINS_URL/project/PROJECT_NAME
When you configure the plugin to trigger your Jenkins job, by following the instructions below depending on job type, it will listen on a dedicated URL for JSON POSTs from GitLab's webhooks. That URL always takes the form http://JENKINS_URL/project/PROJECT_NAME, or http://JENKINS_URL/project/FOLDER/PROJECT_NAME if the project is inside a folder in Jenkins. You should not be using http://JENKINS_URL/job/PROJECT_NAME/build or http://JENKINS_URL/job/gitlab-plugin/buildWithParameters, as this will bypass the plugin completely.- 进入项目,
验证
- 提交代码
- 查看状态 - 进入项目
- WebHook状态
- 依次点击
Settings - Integrations - 编辑触发Jenkins的那条记录
- 查看
Recent Deliveries部分,显示了最近的Trigger状态
- 依次点击
- Pipelines状态
- Jenkins Job状态
- WebHook状态
- 成功状态
- WebHook状态 -
200 - Pipelines状态 -
passed - Jenkins Job状态 -
成功
- WebHook状态 -
感谢
- CI/CD之Gitlab集成Jenkins多分支pipeline实现质量检测和自动发布
状态
配置
任务
准备
工作
用户
选择
分支
类型
项目
成功
代码
凭据
环境
不同
地址
手动
支流
方式
水线
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
天津采购管理软件开发
go连接数据库方法
服务器半圆圈按键
北京软件开发价钱是多少
福建网络技术微信群
团日活动心得网络安全
在服务器上创建svn
oracle数据库下载安装
ab命令攻击服务器
强化ipv6网络安全保障
神龙服务器ip地址在哪里
网络安全知识 调查 问卷
网络安全法五十一条是什么
网络安全课进校园征文手写
服务器安全狗账号保护
仓库管理软件开发Java
广电网络安全生产检查
一个月学软件开发
迷你世界云服务器在哪里
网络安全生态怎样社会和谐
广电网络u点网络服务器
吉林智能养老软件开发电话
网络技术与linux
uml怎么画数据库关系图
网络安全人才培养工程
三分技术七分管理网络安全
数据库实验代码
软件开发公司的含义
网络安全考证吗
厦门十七互联网科技有限公司