Gitlab+Jenkins+Pipeline+WebHook+Multibranch-实现持续集成
发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,[Gitlab + Jenkins + Pipeline + WebHook+ Multibranch] - 实现持续集成和自动发布本文的实现:代码提交gitlab,自动触发Jenkins构建gitl
千家信息网最后更新 2025年01月31日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安全错误
数据库的锁怎样保障安全
软件开发人员离职项目交接表
我的世界地皮服务器
三级的网络技术是考什么的
防诈骗网络安全知识教育内容
定向app软件开发
专利库数据库系统卢建强
化工想做软件开发
服务器搭建与管理第一课
sql数据库自动锁定
北京网络安全大会2019
网络技术打线
会议服务器 中心管理服务器
简单记账软件开发
比较国内外的网络安全
dpi网络技术是什么意思
小米科技是互联网企业吗
浪潮网络安全招聘
服务器异常无法启动服务
塔式服务器防尘
查重论文会上传数据库吗
三星神经网络技术
嘉定区信息软件开发诚信经营
服务器运维服务收费标准
verycd服务器名称
服务器快照数据还原了
电脑里的数据库叫什么名字
wind 数据库资料
软件开发项目有什么风险
1.16.5服务器插件
郑州易虎网络技术有限公司