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

目录
相关文章
|
人工智能 Kubernetes jenkins
容器化AI模型的持续集成与持续交付(CI/CD):自动化模型更新与部署
在前几篇文章中,我们探讨了容器化AI模型的部署、监控、弹性伸缩及安全防护。为加速模型迭代以适应新数据和业务需求,需实现容器化AI模型的持续集成与持续交付(CI/CD)。CI/CD通过自动化构建、测试和部署流程,提高模型更新速度和质量,降低部署风险,增强团队协作。使用Jenkins和Kubernetes可构建高效CI/CD流水线,自动化模型开发和部署,确保环境一致性并提升整体效率。
|
11月前
|
Cloud Native 中间件 调度
云原生信息提取系统:容器化流程与CI/CD集成实践
本文介绍如何通过工程化手段解决数据提取任务中的稳定性与部署难题。结合 Scrapy、Docker、代理中间件与 CI/CD 工具,构建可自动运行、持续迭代的云原生信息提取系统,实现结构化数据采集与标准化交付。
1114 1
云原生信息提取系统:容器化流程与CI/CD集成实践
|
12月前
|
Ubuntu jenkins 机器人
在Jenkins上配置触发Ubuntu环境的图形用户界面(GUI)构建任务。
以上,这趟融合了技术与艺术的Jenkins配置之旅就告一段落了。记住,技术应当像艺术一样有趣和生动,这样才能激发出最大的创新和效率。
375 2
|
存储 监控 Devops
DevOps实践:持续集成/持续部署(CI/CD)的实战指南
DevOps实践:持续集成/持续部署(CI/CD)的实战指南
|
监控 jenkins Shell
jenkins结合gitlab实现CI(持续集成)
通过本文的介绍,我们详细了解了如何结合Jenkins和GitLab实现持续集成。从环境准备、插件配置到Pipeline任务创建和CI流程监控,每一步都提供了详细的操作步骤和示例代码。希望本文能帮助开发者快速搭建起高效的CI系统,提高项目开发效率和代码质量。
1645 9
|
存储 测试技术 持续交付
Docker与CI/CD的集成策略及其对软件开发效率和质量的提升作用
本文探讨了Docker与CI/CD的集成策略及其对软件开发效率和质量的提升作用。首先介绍了CI/CD的基本概念,接着阐述了Docker在环境一致性、快速部署、资源隔离和轻量化方面的优势。文章还详细讨论了构建、测试和部署阶段的具体集成方法,以及集成后带来的效率提升、可靠性增强、加速交付和易于管理等好处。最后,通过案例分析展示了集成的实际效果,强调了Docker与CI/CD结合的重要性和未来前景。
367 2
|
jenkins Devops Java
DevOps实践:Jenkins在持续集成与持续部署中的价值
【10月更文挑战第27天】在快速发展的软件开发领域,DevOps实践日益重要。Jenkins作为一款流行的开源自动化服务器,在持续集成(CI)和持续部署(CD)中扮演关键角色。本文通过案例分析,探讨Jenkins在Java项目中的应用,展示其自动化构建、测试和部署的能力,提高开发效率和软件质量。
524 2
|
jenkins 持续交付 开发者
自动化部署:使用Jenkins和Docker实现持续集成与交付
【8月更文挑战第31天】本文旨在为读者揭示如何通过Jenkins和Docker实现自动化部署,从而加速软件开发流程。我们将从基础概念讲起,逐步深入到实际操作,确保即使是初学者也能跟上步伐。文章将提供详细的步骤说明和代码示例,帮助读者理解并应用这些工具来优化他们的工作流程。
|
Java jenkins 持续交付
Jenkins集成Maven
通过以上步骤,可以在Jenkins中成功集成Maven,实现自动化构建和部署。通过定时构建、SCM轮询等方式,可以确保代码库中的最新变更能够及时构建和测试,提高开发效率和代码质量。这种集成方式在实际项目中具有广泛的应用前景,能够显著提升团队的协作效率。
597 8
|
监控 jenkins Linux
从 Jenkins 持续集成出发:探究如何监控员工电脑屏幕
Jenkins 在企业信息化管理中用于自动化构建、测试和部署,提高开发效率。本文讨论了其重要性,并从技术角度探讨了屏幕监控的可能性,但明确反对非法监控,强调应合法合规地管理企业和尊重员工隐私。
350 12

推荐镜像

更多