持续集成与持续交付CI/CD

CI/CD 是指持续集成(Continuous Integration)和持续部署(Continuous Deployment)或持续交付(Continuous Delivery)

持续集成(Continuous Integration)
持续集成是一种软件开发实践,团队成员频繁地将他们的工作集成到共享的代码仓库中。其主要特点包括:

  1. 频繁提交代码:开发人员可以每天多次提交代码,确保代码库始终保持最新状态。
  2. 自动化构建:每次提交后,自动触发构建过程,包括编译、测试、静态分析等。
  3. 快速反馈:如果构建失败或测试不通过,能够快速地向开发人员提供反馈,以便及时修复问题。

持续部署(Continuous Deployment)
持续部署是在持续集成的基础上,将通过所有测试的代码自动部署到生产环境中。其特点如下:

  1. 自动化流程:从代码提交到生产环境的部署完全自动化,无需人工干预。
  2. 高频率部署:可以实现频繁的部署,使得新功能能够快速地提供给用户。
  3. 风险控制:需要有强大的测试和监控体系来确保部署的稳定性和可靠性。

持续交付(Continuous Delivery)
持续交付与持续部署类似,但不一定自动部署到生产环境,而是随时可以部署。其重点在于确保软件随时处于可发布状态。

CI/CD 的好处包括:

  1. 提高开发效率:减少手动操作和等待时间,加快开发周期。
  2. 尽早发现问题:通过频繁的集成和测试,问题能够在早期被发现和解决。
  3. 降低风险:减少了大规模部署时可能出现的问题,提高了软件的质量和稳定性。
  4. 增强团队协作:促进团队成员之间的沟通和协作,提高团队的整体效率。
#下载
[root@gitlab ~]# dnf install git -y
# 初始化
[root@gitlab luo]# git init
# 查看
[root@gitlab luo]# ls -a
.  ..  .git

建立用户信息

[root@gitlab luo]# git config --global user.name "luo"
[root@gitlab luo]# git config --global user.email "luo@timingluo.org"

未提交状态

在这里插入图片描述
提交后状态
在这里插入图片描述
追加内容,右M,在工作区被修改,但没提交

[root@gitlab luo]# echo >> README.md

在这里插入图片描述

提交后左绿,提交到暂存区

[root@gitlab luo]# git add README.md 

在这里插入图片描述
提交到工作区

[root@gitlab luo]# git commit -m "README.md v2"

在这里插入图片描述
git status -s 无任何显示,标识已经提交到版本库

当再次修改

[root@gitlab luo]# vim README.md

在这里插入图片描述
右红M表示文件在工作区被修改
在这里插入图片描述
撤销修改

[root@gitlab luo]# git checkout -- README.md
[root@gitlab luo]# cat README.md 
luo

在这里插入图片描述
重新修改

[root@gitlab luo]# echo luoluo > README.md
[root@gitlab luo]# git add README.md 
[root@gitlab luo]# git status -s
M  README.md

在这里插入图片描述
从暂存区撤销

[root@gitlab luo]# git restore --staged README.md
[root@gitlab luo]# git status -sM README.md

在这里插入图片描述
重新提交

[root@gitlab luo]#  git add README.md
[root@gitlab luo]# git status -s
M  README.md

在这里插入图片描述

更新

[root@gitlab luo]# git commit -m "update v1"
[master f126628] update v11 file changed, 1 insertion(+), 2 deletions(-)
[root@gitlab luo]# git status -s

在这里插入图片描述
更新文件

[root@gitlab luo]# echo luo1 >> README.md
[root@gitlab luo]# git add README.md
[root@gitlab luo]# echo luo1 >> README.md 
[root@gitlab luo]# git status -s
MM README.md

在这里插入图片描述
MM表示有一部分在暂存区,还有一部分没有提交
如果现在提交只能提交在暂存区中的部分

[root@gitlab luo]# git commit -m "update v2"
[master c155d30] update v21 file changed, 1 insertion(+)
[root@gitlab luo]# git status -sM README.md

在这里插入图片描述
查看已暂存和未暂存的修改变化

[root@gitlab luo]# echo luo >> README.md 
[root@gitlab luo]# git diff
diff --git a/README.md b/README.md
index a700f83..6240833 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,4 @@luoluoluo1
+luo1
+luo

在这里插入图片描述

跳过使用暂存区,只能在提交过的在版本库中存在的文件使用如果文件状态是“??”不能用此方法

撤销工作区中删除动作

[root@gitlab luo]# touch luo.txt
[root@gitlab luo]# git add luo.txt 
[root@gitlab luo]# git commit  -m "add luo.txt"
[master aa037c1] add luo.txt1 file changed, 0 insertions(+), 0 deletions(-)create mode 100644 luo.txt[root@gitlab luo]# rm -rf luo.txt [root@gitlab luo]# git status -sD luo.txt

右D 表示文件在工作区被删除
在这里插入图片描述

git 对文件忽略

[root@gitlab luo]# mkdir dir1
[root@gitlab luo]# touch dir1/.file2
[root@gitlab luo]# git status -s
?? dir1/

在这里插入图片描述

gitlab代码仓库

部署gitlab

# 在安装包之前需配置好软件仓库来解决依赖性
[root@gitlab luo]# yum install -y curl policycoreutils-python-utils openssh-server perl

在这里插入图片描述
修改配置文件

[root@gitlab luo]# cd /etc/gitlab/
[root@gitlab gitlab]# vim gitlab.rb
[root@gitlab gitlab]# gitlab-ctl reconfigure

在这里插入图片描述
使用gitlab-crt生效配置
[root@gitlab gitlab]# gitlab-ctl reconfigure

查看原始密码
[root@gitlab gitlab]# cat /etc/gitlab/initial_root_password

登录
在这里插入图片描述

更改密码
在这里插入图片描述

在gitlab中新建项目

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
生成sshd密钥

[root@gitlab gitlab]# ssh-keygen
[root@gitlab ~]# cat .ssh/id_rsa.pub

在这里插入图片描述

上传公钥到gitlab中
在这里插入图片描述
在这里插入图片描述

下载项目
在这里插入图片描述
在这里插入图片描述

部署jenkins

[root@jenkins-node1 ~]# ls
公共  图片  音乐             jenkins-2.462.2-1.1.noarch.rpm
模板  文档  桌面             plugins.tar.gz
视频  下载  anaconda-ks.cfg
[root@jenkins-node1 ~]# dnf install jenkins-2.476-1.1.noarch.rpm[root@jenkins-node1 ~]# systemctl enable --now jenkins.service
Created symlink /etc/systemd/system/multi-user.target.wants/jenkins.service → /usr/lib/systemd/system/jenkins.service.
[root@jenkins-node1 ~]# cat /var/lib/jenkins/secrets/initialAdminPas

在这里插入图片描述
使用下载好的插件

[root@jenkins-node1 jenkins]# rm -rf /var/lib/jenkins/*
[root@jenkins-node1 jenkins]# cd
[root@jenkins-node1 ~]# tar zxf plugins.tar.gz -C /var/lib/jenkins/
[root@jenkins-node1 ~]# cd /var/lib/jenkins/
[root@jenkins-node1 jenkins]# ls
plugins
[root@jenkins-node1 jenkins]# systemctl restart jenkins.service 

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
设置密码
在这里插入图片描述

jenkins 与gitlab的整合

在这里插入图片描述
在这里插入图片描述

添加密钥
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

关闭远程登录需要的yes/no

[root@jenkins-node1 ~]# vim /etc/ssh/ssh_config

在这里插入图片描述

更该类型

在这里插入图片描述
设置计划任务
在这里插入图片描述
设置查看有没有建立成功
在这里插入图片描述
点击立刻创建
在这里插入图片描述
查看
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/879552.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HTML贪吃蛇游戏

文章目录 贪吃蛇游戏 运行效果代码 贪吃蛇游戏 贪吃蛇是一款经典的休闲益智游戏。本文将通过HTML5和JavaScript详细解析如何实现一个简易版的贪吃蛇游戏。游戏的主要逻辑包括蛇的移动、碰撞检测、食物生成等功能。以下是游戏的完整代码及注释解析。(纯属好玩&#…

(学习总结17)C++继承

C继承 一、继承的概念与定义继承的概念继承定义1. 定义格式2. 继承基类成员访问方式的变化 继承类模板 二、基类和派生类间的转换三、继承中的作用域隐藏规则 四、派生类的默认成员函数4个常见默认成员函数实现一个不能被继承的类 五、继承与友元六、继承与静态成员七、多继承及…

HTML 揭秘:HTML 编码快速入门

HTML 揭秘:HTML 编码快速入门 一 . 前端知识介绍二 . HTML 介绍三 . HTML 快速入门四 . HTML 编辑器 - VSCode4.1 插件安装4.2 修改主题配色4.3 修改快捷键4.4 设置自动保存4.5 创建 HTML 文件4.5 书写 HTML 代码4.6 常见快捷键 五 . 基础标签5.1 字体标签5.1.1 col…

物品识别——基于python语言

目录 1.物品识别 2.模型介绍 3.文件框架 4.代码示例 4.1 camera.py 4.2 interaction.py 4.3 object_detection.py 4.4 main.py 4.5 运行结果 5.总结 1.物品识别 该项目使用Python,OpenCV进行图像捕捉,进行物品识别。我们将使用YOLO&#xff08…

大数据处理技术:HBase的安装与基本操作

目录 1 实验名称 2 实验目的 3 实验内容 4 实验原理 5 实验过程或源代码 5.1 Hbase数据库的安装 5.2 创建表 5.3 添加数据、删除数据、删除表 5.4 使用Java操作HBase 6 实验结果 6.1 Hbase数据库的安装 6.2 创建表 6.3 添加数据、删除数据、删除表 6.4 使用Java操…

【Elasticsearch系列七】索引 crud

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

数据结构(Day13)

一、学习内容 内存空间划分 1、一个进程启动后,计算机会给该进程分配4G的虚拟内存 2、其中0G-3G是用户空间【程序员写代码操作部分】【应用层】 3、3G-4G是内核空间【与底层驱动有关】 4、所有进程共享3G-4G的内核空间,每个进程独立拥有0G-3G的用户空间 …

[数据集][目标检测]烟叶病害检测数据集VOC+YOLO格式612张3类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):612 标注数量(xml文件个数):612 标注数量(txt文件个数):612 标注类别…

【鸿蒙】HarmonyOS NEXT星河入门到实战7-ArkTS语法进阶

目录 1、Class类 1.1 Class类 实例属性 1.2 Class类 构造函数 1.3 Class类 定义方法 1.4 静态属性 和 静态方法 1.5 继承 extends 和 super 关键字 1.6 instanceof 检测是否实例 1.7.修饰符(readonly、private、protected 、public) 1.7.1 readonly 1.7.2 Private …

汽车免拆诊断案例 | 沃尔沃V40 1.9TD断续工作

故障现象 一辆04款的沃尔沃V40 1.9 TD,发动机代码D4192T3,使用博世EDC15C发动机管理。客户说车子断续工作,怀疑是正时皮带出现问题。卸下上皮带盖,检查发现皮带仍然在原来的位置上并且没有出现松动。起动发动机,车辆能…

安卓玩机工具-----ADB与 FASTBOOT模式 图形化 多功能玩机刷机工具

工具说明 这款工具是英文版。易于使用的工具提供了用于运行 ADB 和 Fastboot 命令的图形用户界面。ADB 功能包括旁加载、安装和卸载应用程序、测试设备以及重新启动到不同的模式。可以使用 fastboot 命令进行设备管理;其中包括检查 Antirollback 和 active slots 等变…

YOLOv8 人体姿态估计动作识别关键点检测(代码+教程)

YOLOv8 人体姿态判断 项目介绍 YOLOv8 人体姿态判断 是一个基于最新YOLOv8模型的深度学习项目,旨在识别和分析人体姿态。该项目利用先进的计算机视觉技术和深度学习框架,通过摄像头捕捉实时图像或处理存储图像,识别人体的关键点&#xff0c…

在线查看 Android 系统源代码 AOSPXRef and AndroidXRef

在线查看 Android 系统源代码 AOSPXRef and AndroidXRef 1. AOSPXRef1.1. http://aospxref.com/android-14.0.0_r2/1.2. build/envsetup.sh 2. AndroidXRef2.1. http://androidxref.com/9.0.0_r3/2.2. build/envsetup.sh 3. HELLO AndroidReferences 1. AOSPXRef http://aospx…

加密与安全_优雅存储用户密码的最佳实践

文章目录 Pre概述最佳实践避免使用MD5、SHA1等快速哈希算法加盐哈希 (不推荐)使用BCrypt、Argon2等慢哈希算法 (推荐)BCrypt Code1. 自动生成和嵌入盐2. 哈希结果的格式3. 代价因子 BCrypt特点 防止暴力破解1. 登录失败锁定2. 双因素认证(2FA…

Golang | Leetcode Golang题解之第409题最长回文串

题目&#xff1a; 题解&#xff1a; func longestPalindrome(s string) int {mp : map[byte]int{}for i : 0; i < len(s); i {mp[s[i]]}res : 0for _, v : range mp {if v&1 1 {res v - 1} else {res v}}if res<len(s) {res}return res }

Python酷库之旅-第三方库Pandas(117)

目录 一、用法精讲 516、pandas.DataFrame.add_suffix方法 516-1、语法 516-2、参数 516-3、功能 516-4、返回值 516-5、说明 516-6、用法 516-6-1、数据准备 516-6-2、代码示例 516-6-3、结果输出 517、pandas.DataFrame.align方法 517-1、语法 517-2、参数 51…

Go语言基本语法

Go语言&#xff08;通常称为Golang&#xff09;是由Google开发的一种静态类型、编译型语言&#xff0c;它旨在简化系统编程、网络编程和并发编程的复杂性。 Go语言以其简洁、高效和易于理解的语法而受到开发者的喜爱。 Go语言的一些基本语法元素&#xff1a; 1. 包&#xff…

protobuf中c、c++、python使用

文章目录 protobuf实例&#xff1a;例题1&#xff1a;[CISCN 2023 初赛]StrangeTalkBot分析&#xff1a;思路&#xff1a;利用&#xff1a; 例题2&#xff1a;[CISCN 2024]protoverflow分析&#xff1a; protobuf Protocol Buffers&#xff0c;是Google公司开发的一种数据描述语…

数学学习记录

9月14日 1.映射&#xff1a; 2.函数: 9月15日 3.反函数&#xff1a; 4.收敛数列的性质 5.反三角函数&#xff1a; 9月16日 6.函数的极限&#xff1a; 7.无穷小和无穷大 极限运算法则&#xff1a;

远程Linux网络连接( Linux 网络操作系统 04)

接下来我们准备开始进入Linux操作系统的第二个模块的学习&#xff0c;不过在学习之前我们需要对如下进行简单的配置&#xff0c;通过外接辅助软件MobaXterm来进行虚拟操作系统的访问。接下来的课程我们会一直在MobaXterm中进行命令和相关知识的学习。 一、准备阶段 1.1 软件 …