Gitlab+Jenkins+Pipeline+WebHook+Multibranch-实现持续集成
发表于:2024-11-27 作者:千家信息网编辑
千家信息网最后更新 2024年11月27日,[Gitlab + Jenkins + Pipeline + WebHook+ Multibranch] - 实现持续集成和自动发布本文的实现:代码提交gitlab,自动触发Jenkins构建gitl
千家信息网最后更新 2024年11月27日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安全错误
数据库的锁怎样保障安全
农行成都软件开发中心成立时间
个人信息网络安全承诺书
哈尔滨传奇服务器
编写一个数据库需要哪些软件
本科都用哪些数据库
向db2数据库导入数据
深圳飞凡网络技术
it软件开发新疆
东港股份软件开发待遇
软件开发的量化
数据库左外部连接
提升数据库的能力
网络安全的十大行业
北京盈科网络技术有限公司
海量图片数据库
远程服务器调试
软件开发费标准
原神不同服务器的可以联机吗
软件开发公司薪酬福利方案
金融网络安全数据分析
郑州微信小程序软件开发公司
北京软件开发人员外派
鞍山羽彤网络技术
湖北嵌入式软件开发价格
数据库实验报告 广工
北邮网络安全考研难度大吗
软件开发公司需要交哪些税
定时程序设置数据库备份
网络安全公司涉密企业
提供软件开发服务公司结构