Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(一)

简介: Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(一)

1.介绍背景

项目开发过程中 通常会使用Git来管理项目

尤其是多人项目 一起开发时 Git就更加重要了

因为项目比较私密 不能公开 所以项目组使用的是GitLab的私服

大家在开发分支上开发(偶尔需要独立分支)

开发完毕后 先自己测试 如果基础问题没有的话 便提交至测试分支

1.1之前流程

前端手动打包 - 登录测试服务器 - 提交至 tomcat 或 nginx 目录

后端手动打包 - 登录测试服务器 - 停止原项目 - 提交至目录 - 运行项目

反复几次后 这样的流程是非常繁琐的 而且会有时候 没有打包成功 导致代码没更新

所以这一块应该被机器所替代 这里便选择了Jenkins 帮忙集成项目


1.2目前流程

前端在dev分支开发 完毕后提交至 test 分支

后端在dev分支开发 完毕后提交至 test 分支

接下来的所有工作全部交给了 Jenkins 完成


1.3集成流程

拉取Git仓库 指定分支

切换对应版本(Node、Java)

对代码依赖检查

对项目进行打包

执行Dockerfile

提交Docker镜像到Harbor

通知Rancher对项目进行更新

静态代码扫描

出具扫描报告和结果

通知 PingCode(敏捷平台)集成完毕 (包含分支情况、部署情况)

CI/CD 完成 邮件通知(目前关掉了 太烦人了)

当前文章只到 对项目进行打包

剩下的步骤在别的文章中


1.4目前成果

当前很多很多项目已经都是Jenkins 管理了

且背后有一套持续集成的流程 最后项目将运行至K8s(部分小、老项目还在用docker-compose管理)

下面是通过 Jenkins 的一个项目视图展示 已经有很多项目了

1.5前置要求

需要你的环境已经拥有


Jenkins

GitLab

项目分支

2.服务器项目配置

首先登录服务器 建立一个存放项目的文件夹

文件名字随意 但是最好见名知意(我这里直接是 docker-{项目名称})


我这里以 GitLab里自己封装的脚手架为例 (SpringBoot项目)

我新建了:test-template

由于该项目是后端项目 所以 在 test-template 下 我又新建了 backend 文件夹

使用 pwd 命令 记录下当前的路径

当前的路径是:/home/test-template/backend
• 1

该文件夹将会存在GitLab上的该项目的源码

3.Jenkins项目配置

3.1新建项目

登录到 Jenkins 中 选择 New Item

3.2填写信息

项目名称我的规则是 刚才文件夹的规则

test-template-backend 标识它是这个项目的后端

点击 OK

3.3配置注释

填写 Description

项目的描述 可以尽可能的详细 方便维护

点击 Advanced

3.4配置文件夹

点击了Advanced之后

会弹出下面的 Directory

填入刚才在服务器记录下的目录

3.5拉取Git地址

配置GitLab项目地址

注意 该地址必须是 .git 结尾的

3.6Git分支

配置拉取源码的分支 这里 配置为 */test

3.7开启WebHook

勾选:Build when a change is pushed to GitLab …


复制 webhook URL: http://172.16.1.150:10101/project/test-template-backend (每个项目不一样哈!!!)


会出现如下界面

点击 Advanced 进行详细配置

3.8配置分支

选择监听的分支 我这里选择了 正则匹配 .*test 分支

3.9配置秘钥

点击 Generate 生成 SecretToken

3.10执行脚本

选择 Build

点击 Execute Shell 来执行Shell脚本


这里有几种方案


Shell放到项目中 跟随项目走(好处是 提交时 可以把Shell也提交进去 随时修改)

Shell放到服务器上 (好处是 安全 交分支的人 没有权限修改打包的指令)

Shell放到Jenkins (好处是 不太方便操作服务器的人 可以操作要执行的指令)

                     

3.11编写指令

填入你要执行的Shell指令

由于服务需要停止、再启动

你可以尝试先kill掉服务 再 java -jar 执行

我这边的方案是在后续操作中 将其打包为Docker 再根据流程推送至K8s集群中

这步你可以自行操作

3.12保存项目

点击底部的 Save

先去测试配置是否生效


接下篇:https://developer.aliyun.com/article/1618425

目录
相关文章
|
28天前
|
存储 Java 调度
Sppring集成Quartz简单案例详解 包括(添加、停止、恢复、删除任务、获取下次执行时间等)
Sppring集成Quartz简单案例详解 包括(添加、停止、恢复、删除任务、获取下次执行时间等)
22 2
|
2月前
|
存储 JavaScript 数据库
ToB项目身份认证AD集成(一):基于目录的用户管理、LDAP和Active Directory简述
本文介绍了基于目录的用户管理及其在企业中的应用,重点解析了LDAP协议和Active Directory服务的概念、关系及差异。通过具体的账号密码认证时序图,展示了利用LDAP协议与AD域进行用户认证的过程。总结了目录服务在现代网络环境中的重要性,并预告了后续的深入文章。
|
2月前
|
人工智能 JavaScript 网络安全
ToB项目身份认证AD集成(三完):利用ldap.js实现与windows AD对接实现用户搜索、认证、密码修改等功能 - 以及针对中文转义问题的补丁方法
本文详细介绍了如何使用 `ldapjs` 库在 Node.js 中实现与 Windows AD 的交互,包括用户搜索、身份验证、密码修改和重置等功能。通过创建 `LdapService` 类,提供了与 AD 服务器通信的完整解决方案,同时解决了中文字段在 LDAP 操作中被转义的问题。
|
2月前
|
安全 Java 测试技术
ToB项目身份认证AD集成(二):快速搞定window server 2003部署AD域服务并支持ssl
本文详细介绍了如何搭建本地AD域控测试环境,包括安装AD域服务、测试LDAP接口及配置LDAPS的过程。通过运行自签名证书生成脚本和手动部署证书,实现安全的SSL连接,适用于ToB项目的身份认证集成。文中还提供了相关系列文章链接,便于读者深入了解AD和LDAP的基础知识。
|
2月前
|
机器学习/深度学习 算法 前端开发
集成学习任务七和八、投票法与bagging学习
集成学习任务七和八、投票法与bagging学习
22 0
|
2月前
|
Java Shell 开发工具
git集成IDEA,托管项目实现版本管理
git集成IDEA,托管项目实现版本管理
33 0
|
5月前
|
监控 druid Java
spring boot 集成配置阿里 Druid监控配置
spring boot 集成配置阿里 Druid监控配置
301 6
|
5月前
|
Java 关系型数据库 MySQL
如何实现Springboot+camunda+mysql的集成
【7月更文挑战第2天】集成Spring Boot、Camunda和MySQL的简要步骤: 1. 初始化Spring Boot项目,添加Camunda和MySQL驱动依赖。 2. 配置`application.properties`,包括数据库URL、用户名和密码。 3. 设置Camunda引擎属性,指定数据源。 4. 引入流程定义文件(如`.bpmn`)。 5. 创建服务处理流程操作,创建控制器接收请求。 6. Camunda自动在数据库创建表结构。 7. 启动应用,测试流程启动,如通过服务和控制器开始流程实例。 示例代码包括服务类启动流程实例及控制器接口。实际集成需按业务需求调整。
394 4
|
5月前
|
消息中间件 Java 测试技术
【RocketMQ系列八】SpringBoot集成RocketMQ-实现普通消息和事务消息
【RocketMQ系列八】SpringBoot集成RocketMQ-实现普通消息和事务消息
341 1
|
6月前
|
消息中间件 Java Kafka
springboot集成kafka
springboot集成kafka
178 2