Gitlab+Jenkins+Pipeline+WebHook+Multibranch-实现持续集成
发表于:2025-02-19 作者:千家信息网编辑
千家信息网最后更新 2025年02月19日,[Gitlab + Jenkins + Pipeline + WebHook+ Multibranch] - 实现持续集成和自动发布本文的实现:代码提交gitlab,自动触发Jenkins构建gitl
千家信息网最后更新 2025年02月19日Gitlab+Jenkins+Pipeline+WebHook+Multibranch-实现持续集成
[Gitlab + Jenkins + Pipeline + WebHook+ Multibranch] - 实现持续集成和自动发布
本文的实现:
- 代码提交gitlab,自动触发Jenkins构建
- gitlab开发分支merge后自动发布到dev环境
gitlab master分支merge后自动构建,需手动更新prod环境
- Jenkins准备工作
- Jenkinsfile准备工作
- Gitlab准备工作
- 选择Jenkins任务的触发方式
- 验证
Jenkins准备工作
- 安装插件
gitlab
pipeline
- 配置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安全错误
数据库的锁怎样保障安全
关于防范网络安全的演讲稿
mvc中的数据库
铜陵市网络安全和信息化专家库
服务器 ssd raid
开发手机系统的股票软件开发
小兵步枪与服务器不匹配
戴尔r720监控服务器
用友872登陆不了服务器怎么办
扬州软件开发初级入门哪里好
台州市路桥影子网络技术服务部
网络技术系设计答辩
浙江安卓软件开发哪里有
amd 服务器7nm
数据库 拼音 查询
江苏安卓软件开发项目
边缘服务器浪潮信息
数据库语句中的distinct
初级数据库知识点
无锡加工软件开发代理商
数据库淘宝客营销
哈尔滨erp软件开发价格表
bms软件开发要学那些东西
网络安全法违反第27条的处罚
网络技术与人工智能专业
平台管理软件服务器
网络技术应用 微盘
上海嘉星网络技术有限公司
oracle数据库多少钱
结构深化一体化软件开发
网络安全基础 微盘