Linux--持续集成与持续交付

Linux开发者的CI/CD(0)何为持续集成CI/持续部署CD 持续集成是借助工具对软件项目进行持续的自动化的编译打包构建测试发布,来检查软件交付质量的一种行为。而持续部署是基于持续交付的优势自动将经过测试的代码推入生产环境的过程。下文从细节描述了持续集成和持续部署各阶段的关键步骤。下面这张图完美诠释了CI/CD的整个流程: 持续集成(CI)是构建软件和完成初始测试的过程。持续部署(CD)是将代码与基础设施相结合的过程,确保完成所有测试并遵循策略,然后将代码部署到预期环境中。当然,许多公司也有自己特有流程,但主要步骤如下。参与者:开发工程师,数据库管理员(DBA),基础 阅读详情

一. git工具使用

1. 版本控制系统简介

本地版本控制系统:

集中化的版本控制系统:

分布式版本控制系统:

2. git简介

       自诞生于 2005 年以来,Git 日臻成熟完善,在高度易用的同时,仍然保留着初期设定的目标。 它的速度飞快,极其适合管理大项目,有着令人难以置信的非线性分支管理系统。

Git特点: 

• 速度

• 简单的设计

• 对非线性开发模式的强力支持(允许成千上万个并行开发的分支)

• 完全分布式

• 有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量)

Git必看秘籍:https://git-scm.com/book /zh/v2 

Git 有三种状态:已提交(committed)、已修改(modified) 和 已暂存(staged)。 

• 已修改表示修改了文件,但还没保存到数据库中。

• 已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。

• 已提交表示数据已经安全地保存在本地数据库中。

这会让我们的 Git 项目拥有三个阶段:工作区、暂存区以及 Git 目录。 

3. git安装

yum install -y git

获取 Git 仓库通常有两种方式:

• 将尚未进行版本控制的本地目录转换为 Git 仓库。

• 从其它服务器克隆 一个已存在的 Git 仓库。比如: git clone

初始化版本库: 

mkdir demo
git init

git目录是git跟踪管理版本库的,很重要!

4. git使用

用户信息:

 检查当前文件状态:

git status
git status -s		//简化输出

状态简览:

$ git status -s
 M README
MM Rakefile
A  lib/git.rb
M  lib/simplegit.rb
?? LICENSE.txt

       新添加的未跟踪文件前面有 ?? 标记,新添加到暂存区中的文件前面有 A 标记,修改过的文件前面有 M 标记。 输出中有两栏,左栏指明了暂存区的状态,右栏指明了工作区的状态。例如,上面的状态报告显示: README 文件在工作区已修改但尚未暂存,而 lib/simplegit.rb 文件已修改且已暂存。 Rakefile 文件已修,暂存后又作了修改,因此该文件的修改中既有已暂存的部分,又有未暂存的部分。 

跟踪新文件 :

git add README

忽略文件:

cat .gitignore
.*		//忽略所有隐藏文件
/test		//只忽略当前目录下的test文件
build/		//忽略任何目录下名为 build 的文件夹

查看已暂存和未暂存的修改 :

git diff

提交更新:

git commit

跳过使用暂存区域 :

git commit -a -m 'added new benchmarks'

移除文件 :

git rm PROJECTS.md
git rm --cached README

重命名文件 :

git mv README.md README

其实,运行 git mv 就相当于运行了下面三条命令:

mv README.md README

git rm README.md

git add README

查看提交历史:

git log
git log -p -2
git log --stat
git log --pretty=oneline

取消暂存的文件 :

git reset HEAD README.md

撤消对文件的修改 :

git checkout -- README.md

版本回退 :

git reflog
git reset --hard efa267a

二. gitlab代码仓库

1. gitlab安装

官网:https://about.gitlab.com/install/ 

软件下载(官方下载慢,推荐使用国内镜像站点)

https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/

软件安装: (官方推荐至少4G内存)

yum install -y curl policycoreutils-python openssh-server

yum install -y gitlab-ce-12.8.5-ce.0.el7.x86_64.rpm

 

vim /etc/gitlab/gitlab.rb

external_url 'http://172.25.0.11' //访问gitlab的地址

gitlab-ctl  reconfigure //重载服务

每次修改之后都需要重载服务!

登录gitlab:

http://172.25.0.11  //用户:root 第一次登录需要强制修改密码

2. 常用命令

gitlab-ctl start    		    # 启动所有 gitlab 组件

gitlab-ctl stop        		    # 停止所有 gitlab 组件

gitlab-ctl restart       	 	# 重启所有 gitlab 组件

gitlab-ctl status        		# 查看服务状态
  
gitlab-ctl reconfigure       	# 重载服务

gitlab-ctl tail        		    # 查看日志

 

 

三. jenkins持续集成

1. jenkins简介

  • Jenkins是开源CI&CD软件领导者, 提供超过1000个插件来支持构建、部署、自动化, 满足任何项目的需要。
  • Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。
  • CI(Continuous integration持续集成)持续集成强调开发人员提交了新代码之后,立刻进行构建、(单元)测试。

CD(Continuous Delivery持续交付) 是在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境(类生产环境)中。 

软件下载:https://jenkins.io/zh/download/ 

国内镜像站:https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/

2. jenkins安装

rpm -ivh jdk-8u171-linux-x64.rpm

rpm -ivh jenkins-2.225-1.1.noarch.rpm

systemctl  start jenkins

 

 

 

 

 

 

Source Insight 4.0 及最新版序列号验证机制全解析:如何快速定位关键函数并构造有效Key 本文深入解析了Source Insight 4.0及最新版的序列号验证机制,详细介绍了如何快速定位关键函数并构造有效Key。通过静态分析和动态调试技术,帮助开发者理解现代软件保护的设计哲学,掌握逆向分析方法论,提升安全研究能力。 阅读详情

相关推荐

电子系统设计与创新实践作品:简易电子琴

题目 4:简易电子琴 (1)具有8个音阶按键,每个音阶按键频率如表1所示。 (2)每个按键对应LED显示。 (3)音阶信号经功放连接8欧姆扬声器,输出功率可达1W。 (4)每个音阶输出音量一样。 (5)扬声器输出音量可调节,音量调节分为高、中、低三档,并进行档位显示。

weixin_47510497的博客 2858

第二十四节:Linux 自动化部署与持续集成(CICD)实践

在现代运维和开发实践中,CI/CD(持续集成/持续部署)是提升软件交付效率的关键方式。本节将围绕 Linux 环境下的自动化部署流程,从工具选择、部署流程设计到实战演练,全面介绍 CI/CD 的落地实践方法。持续地将代码集成到主干,并自动化地进行构建、测试、代码检查等流程。代码通过自动化测试后可以随时部署上线,但部署由人工触发。构建、测试、部署全流程自动化完成,每一次代码提交都自动上线。 四、Jenkins 在 Linux 中的部署与使用 1️⃣ 安装 Jenkins 2️⃣ 配置 Jenkins 浏览

m0_45101613的博客 1176

避开生产计划大坑:不懂MPS和MRP的区别,你的SAP PP模块白学了

本文深入解析SAP PP模块中MPS(主生产计划)与MRP(物料需求计划)的核心区别,揭示如何通过正确配置避免生产计划中的常见陷阱。文章详细探讨了MPS的三大缓冲特性和动态平衡算法,帮助企业提升生产计划稳定性,优化资源配置,避免生产线波动。

weixin_29268267的博客 401

自动化测试之jenkins持续集成/Linux系统

自动化测试之jenkins持续集成/Linux系统 jenkins持续集成也是自动化测试中重要一步,本文介绍几种任务构建类型

2401_83004375的博客 1285

Comsol&Matlab 亥姆霍兹共振消声器传递损失理论解与仿真解

当外界噪声以共振频率进入共振器时,共振器内的空气质量发生周期性的振动,从而减少或消除噪声。当特定频率的声波进入共振器时,共振器的空气质量会发生周期性的振动,从而实现对该频率的噪声的减弱或消除。5. 反射和吸收:共振器的几何形状和容积还可以影响共振器内空气振动的反射和吸收。然而,对于不同频率的噪声,需要相应调整共振器的参数以匹配新的共振频率。3. 腔体内的空气振动:当特定频率的声波进入共振器时,共振器内的空气质量会发生振动。2. 声波进入共振器:外界的声波通过共振器的颈部进入共振器的封闭空腔。

声学黑洞仿真工作室 4574

Yocto下载加速秘籍:用清华镜像+PREMIRRORS配置让构建速度翻倍

本文详细解析了如何通过配置Yocto的PREMIRRORS优先级策略,并利用清华大学等国内镜像源,显著加速构建过程中的源码下载。文章提供了具体的配置示例和验证方法,帮助开发者解决网络瓶颈,实现构建速度翻倍,提升开发效率。

game4的博客 275

Jenkins + Linux 环境部署实现持续集成

以Ubuntu、Pytest为例子讲解sudo 如果不是root账号,需要使用sudo启用超级管理员权限。

OtsukaA1的博客 727

长上下文技术的底层逻辑:Attention、压缩、缓存与跨页推理

如果把模型的参数视为“固化智能”,动态智能(Dynamic Intelligence)——模型不必依赖训练时的记忆,而是可以随时调用外部信息。这一点正在改变大模型的范式:Prompt 不再是输入,而是“操作系统事件”文档不再是知识,而是“模型的临时记忆”模型不再是一段神经网络,而是一个“具备阅读循环的推理引擎”当我们把上下文从 128K 拉到百万级,我们做的不是扩容,而是让模型第一次拥有阅读、回溯、定位、跨页分析的能力。这是一种新的智能。

aifs2025的博客 997

一篇文字就能学会的jenkins+ant+jmeter持续集成接口自动化测试-(linux环境)。

解答疑问: 很多小伙伴问老北为什么不出python全栈系类的,其实我只是换了一种方式来,之前是把一个系类写在一篇文字中然后发出来,我发现这样没什么人,确实几万字我码字都码吐了,更何况你们呢,所以我决定,还是按照顺序来,但是会把一个大节拆开很多部分来写,让你们也能更好的理解,我呢也能看到舒服(内心想法:主要是懒不想一次性写那么多) 还是先给不认识老北的小伙伴来个自我介绍哈: 凡哥我已经有着十二年互联网自动化测试和测试开发工程师,拥有丰富的自动化测试平台及测试开发经验,擅长接口测试、Python...

分享测试知识 5719

从零到一:手把手教你用DJI E-Port套件为M350 RTK开发第三方负载(PSDK V3实战)

本文详细介绍了如何使用DJI E-Port套件为M350 RTK开发第三方负载,涵盖硬件配置、开发环境搭建及实战应用。通过PSDK V3开发套件,开发者可以高效实现负载与无人机的通信,适用于电力巡检等工业场景,提升开发效率与系统稳定性。

weixin_26841743的博客 701

代码复现5——VLMaps

报错“AttributeError: module 'clip' has no attribute 'load'”,运行下述命令解决。运行后接着报错:“ModuleNotFoundError: No module named 'pytorch_lightning'”运行后命令后会弹出一个RGB窗口,可以用键盘上的“W”“A”“D”键控制移动视角的变化,“空格”键开始记录,“q”键停止。并更改相关代码文件,vlmaps/vlmaps/lseg/modules/models/lseg_vit.py。

qq_44100524的博客 603

Linux企业运维——持续集成与持续交付(下)jenkins节点与用户管理、jenkins结合ansible

Linux企业运维——持续集成与持续交付(下) 文章目录Linux企业运维——持续集成与持续交付(下)1、jenkins节点管理2、jenkins用户管理3、jenkins结合ansible3.1、实验环境准备3.2、项目部署 1、jenkins节点管理 实际工作中master节点只负责调度,需要创建agent节点进行工作,本文创建server4作为agent节点进行工作 server1进入harbor仓库下,查看运行的容器 server3将jdk发送给server4 server4安装jdk和git

weixin_44310047的博客 637

UNet改进(54):当医学图像分割遇上频域学习与自监督

本文提出了一种改进U-Net的方法,通过频域增强模块和代理任务模块提升医学图像分割性能。频域增强模块在傅里叶空间对特征图进行可学习的频率调制,重点增强高频细节特征;代理任务模块通过图像重建约束编码器保留关键信息。两个模块协同工作,在仅增加5%参数量的情况下,形成空间域、频域和重建约束三条互补的信息路径。该方法特别适用于需要精细边缘分割的医学图像任务,预期能提升5%-10%的边缘分割精度,在小样本场景效果更显著。部署时可移除代理任务模块,不影响推理效率。未来可探索空间自适应频域调制和更丰富的代理任务设计。

2501_91516851的博客 226

Linux企业运维——持续集成与持续交付(上)

Linux企业运维——持续集成与持续交付 文章目录Linux企业运维——持续集成与持续交付1、git工具使用1.1、git版本控制系统简介1.2、git安装 1、git工具使用 1.1、git版本控制系统简介 Git是一个开源的分布式版本控制系统,几乎所有开源软件用的都是分布式版本系统,其可以有效、高速的处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。 自诞生于 2005 年以来,Git 日臻成熟完善,在高度

weixin_44310047的博客 555

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Linux之持续集成与持续交付(gitlab,jenkins)

一、git工具使用 1. 版本控制系统简介 1.1 本地版本控制系统 1.2集中化的版本控制系统 1.3分布式版本控制系统 2.git简介 Git特点: 速度 简单的设计 对非线性开发模式的强力支持(允许成千上万个并行开发的分支) 完全分布式 有能力高效管理类似Linux 内核一样的超大规模项目(速度和数据量) 自诞生于 2005 年以来,Git 日臻成熟完善,在高度易用的同时,仍然保留着初期设定的目标。 它的速度飞快,极其适合管理大项目,有着令人难以置信的非线性分支...

Rainable 463

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Linux企业实战(四十七)——持续集成与持续交付(四)

CI/CD简介 CI(Continuous integration,中文意思是持续集成)是一种软件开发时间。持续集成强调开发人员提交了新代码之后,立刻进行构建、(单元)测试。根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起。 CD(Continuous Delivery, 中文意思持续交付)是在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境(类生产环境)中。比如,我们完成单元测试后,可以把代码部署到连接数据库的Staging环境中更多的测试。如果代码没有问题,可以继续手动部署到生

bdkl9998的博客 344

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Linux企业实战(四十八)——持续集成与持续交付(五)

使用 jenkins自动构建docker镜像,并上传至harbor仓库 实验环境: 主机 角色 server1 harbor仓库 server2 gitlab仓库 server10 jenkins主机,docker主机 说明:本次实验环境,是在上一篇博客的基础上来进行的 Linux企业实战(四十七)——持续集成与持续交付(4) 步骤一:在jenkins主机上安装docker插件 步骤二:进入之前在jenkins上创建的项目test1,修改其配置 注意:这里

bdkl9998的博客 208

Linux企业实战(四十六)——持续集成与持续交付(三)

git工具(二) (1)git的安装和使用

bdkl9998的博客 219

Linux企业实战(四十五)——持续集成与持续交付(二)

git工具(一) (1)什么是git git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。 (2)git的特点 速度快、灵活; 简单的设计; 对非线性开发模式的强力支持(允许成千上万个并行开发的分支); 完全分布式; 有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量)。 (3)git和其他版本控制器的差异 直接记录快照,而非差异比

bdkl9998的博客 209

Linux企业实战(五十)——持续集成与持续交付(七)

Jenkins+Ansible的使用 实验环境 主机 角色 server2 gitlab仓库 server10 Jenkins主机和Ansible主机 server9 需要被远程控制的主机 步骤一:在server10上安装好ansible yum install -y ansible 步骤二:在gitlab仓库中新建一个项目,并将其克隆至本地,进行配置 cd playbook/ vim playbook.yml #创建yml文件 vim

bdkl9998的博客 189

Linux企业实战(四十九)——持续集成与持续交付(六)

Jenkins使用tls方式连接docker构建主机 实验环境 主机 角色 server1 harbor仓库 server2 gitlab仓库 server10 Jenkins主机 server9 docker主机(新添加) 说明:实验环境接着上一篇博客的实验环境继续 我们在之前的实验中经docker主机和Jenkins主机部署在同一台虚拟机上,而现实的生产环境中一般不会这样进行部署,这样会增加Jenkins主机的负担。所以在这里我们新增一台docker主机 步骤一:在d

bdkl9998的博客 230

Linux企业实战(四十五)——持续集成与持续交付(一)

什么是版本控制系统 (1)概念 版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。你可以对任何类型的文件进行版本控制。 版本控制(Revision control)是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。 (2)版本控制的作用 有了它你就可以将某个文件回溯到之前的状态,甚至将整个项目都回退到过去某个时间点的状态,你可以比较文件的变化细节,查出最后是谁修改了哪个地方,从而找出导致怪异问题出

bdkl9998的博客 180

Java项目的利器 - 敏捷开发:持续集成与持续交付

敏捷开发是我们的常听的名词,什么是敏捷开发? 说让开发更简化更高效等于没说。。敏捷开发的关键词是:持续集成与持续交付。 一个Java项目,一个人怎么搞:           一个人写代码 =>  自己打包 => 自己机器编译=> 自己部署 =>  发布完成 但是一个人低效率的发布流程,我们考虑到现在的合作式工作,流程会变成这样:         一群人写代码 =&...

美队庆编程类博客 2297

案例剖析:从0开始搭建一个微服务的持续交付系统

文章大纲:解析持续交付和微服务微服务的持续交付:统一方法快速搭建微服务的持续交付:持续集成快速搭建微服务的持续交付:持续部署快速搭建微服务的持续交付:持续部署方案总结(优...

weixin_37098404的博客 186

[运维日记]在Linux 下安装部署jenkins

在linux下部署jenkins 第一步:部署java环境 1、在jdk官网下载jdk1.8.0_231,将该包上传到linux服务器上,进行解压:tar -zxvf jdk1.8.0_231.tar.gz,这里解压到/home/jenkins 2、在etc/profile文件中配置java路径文件 3、进行资源文件更新使用命令:source profile 4、通过命令java -version,如果查看到版本,则配置数据成功 第二步:maven 1、在maven官网下载apac

HX13190042的博客 372

Jenkins介绍与部署

1. CICD简介 CI/CD 是一种通过在应用开发阶段引入自动化来频繁向客户交付应用的方法。CI/CD 的核心概念是持续集成、持续交付和持续部署。作为一个面向开发和运营团队的解决方案,CI/CD 主要针对在集成新代码时所引发的问题(亦称:“集成地狱”)。 具体而言,CI/CD 可让持续自动化和持续监控贯穿于应用的整个生命周期(从集成和测试阶段,到交付和部署)。这些关联的事务通常被统称为“CI/CD 管道”,由开发和运维团队以敏捷方式协同支持。 1.1CI 是什么?CI 和 CD 有什么区别? 缩略词 C

weixin_47746630的博客 2856
上一篇: Linux -- SaltStack
下一篇: linux—ELK
FYRXP
博客等级 码龄7年 6粉丝 57原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值