Devps持续集成

一、Git

1.1、介绍

Git是一款开源的分布式版本管理工具、协调管理工具。

Git文件主要处于三种状态:已修改、已暂存和已提交。‌

1.2、安装git

官网下载直接安装。

官网:https://git-scm.com/install/windows

安装成功后查看版本,打开cmd,输入命令查看是否安装成功

bash 复制代码
git --version

"""
git version 2.52.0.windows.1
"""

配置全局用户信息,包括用户名和邮箱

注意:在控制台输入下面的命令,不会有任何反应。

bash 复制代码
git config --global user.name "KG"
git config --global user.email "2392247356@qq.com"

检查配置的信息

bash 复制代码
git config --list

1.3、设置Gitee公钥

设置SSH公钥,cmd命令行输入

设置公钥的目的:

  1. 若代码仓库为私有的,就必须提供访问的公钥,否侧无法访问。
  2. 使用SSH密钥比仅使用用户名和密码更加安全。
  3. 通过为不同的用户或服务配置不同的SSH密钥,可以精细控制谁可以访问代码仓库。
  4. 配置SSH密钥后,用户可以在本地机器上设置SSH代理,使得在访问多个仓库时无需多次输入密码。这提高了工作效率。
  5. 在自动化部署流程中,如使用Jenkins、GitLab CI/CD等工具时,SSH密钥允许脚本或服务自动从远程仓库拉取或推送代码,而无需手动输入密码。
bash 复制代码
ssh-keygen -t ed25519 -C "2392247356@qq.com"
  1. ed25519是加密的一种方式。
  2. 最后的参数一般选择邮箱地址。

查看公钥

C盘 --- 用户 --- 本机电脑命名的文件 --- 找到 .ssh --- id_ed25519.pub

将公钥复制到Gitee保存

输入Gitee的密码

创建一个空仓库

初始化仓库

bash 复制代码
mkdir test-cicd  # 新建文件夹
cd test-cicd  # 切换文件夹
git init  # 声明这个文件夹成为一个本地仓库
touch README.md  # touch 命令是Mac和Linux才有的,意思是新建
git add README.md  # 添加单个文件
git commit -m "first commit"  # 确认提交,真正意义上进去缓冲区
git remote add origin https://gitee.com/i-will-always-be-there/test-cicd.git  # 绑定远程仓库
git push -u origin "master"  # 提交到远程仓库

1.4、git提交本地代码

非首次提交代码就使用下面的提交。

若首次提交代码,先要使用初始化本地仓库。

bash 复制代码
git add . # 上传目录中的所有文件
git commit -m "新的提交"
git push

1.5、git的冲突

发生冲突:远程仓库的最终状态,与本地仓库的初始状态不一致。

二、Jenkins

2.1、介绍

  1. Jenkins 是一个开源的持续集成与持续交付(CI&CD)工具,基于 Java 开发,用于自动化软件构建、测试和部署流程。
  2. 它提供了一个可扩展的平台,支持从简单 CI 服务器到复杂交付流水线的构建。‌

2.2、安装Jenkins

下载地址:https://www.jenkins.io/download/

直接下载war包

找到Jenkins.war的路径,并在改路径下进⼊cmd或者终端

Jenkins目前只支持Java17和Java21。

bash 复制代码
java -jar <jenkins.war的路径>

在日志中找到Jenkins的工作目录,及其初始密码

打开浏览器访问Jenkins:127.0.0.1:8080

等待下载完成

创建用户,保存配置

2.3、Jenlins的基础使用

构建第一个任务

查看运行的结果

三、Gogs

3.1、介绍

  1. Gogs 是一款轻量级的自托管 Git 服务,用 Go 语言开发,支持跨平台部署,特别适合中小企业或个人开发者快速搭建 Git 仓库。
  2. Gogs是搭建本地Git仓库的绝佳选择,尤其适合个人或小型团队。资源占用极低,甚至能在树莓派上运行,安装也相当便捷,支持二进制文件、Docker等多种方式。

使用Gogs的目的

  1. Jenkins 部署在企业内网,需通过代理服务器才能访问公网(Gitee),未配置代理的话会导致连接超时。
  2. 所以这里我们选择一个本地仓库Gogs,在内网就可以访问。

3.2、安装Gogs

下载地址:https://gogs.io/docs/installation/install_from_binary

下载二进制压缩文件,解压到对应的文件下面

进入gogs解压后的路径中,打开cmd命令

bash 复制代码
.\gogs.exe web

浏览器打开:127.0.0.1:3000

四、项目实战

工具:Jenkins+Git+Gogs+Allure

4.1、拉取构建

启动Gogs

网页打开:127.0.0.1:3000,创建一个仓库

到项目的路径下,将项目提交到Gogs仓库

打开jenkins,网页访问:127.0.0.1:8080

创建一个新的项目

bash 复制代码
python -m venv myvenv
myvenv\Scripts\python.exe -m pip install -r requirements.txt
myvenv\Scripts\python.exe run.py

保存上面的配置,运行项目

若出现下面的即为运行成功

4.2、Gogs更新触发

Jenkins插件下载

设置 --- 插件管理 --- 可选的插件 --- 搜索"Webhook"

安装成功后,重启Jenkins

Jenkins生成webhook

Gogs的安装路径,修改一个文件

如果不修改,下面配置本地地址就会报错。

路径:D:\Gogs\gogs\custom\conf

app.ini最后添加:LOCAL_NETWORK_ALLOWLIST = 127.0.0.1

添加成功后,重启Gogs

Gogs添加webhook

仓库设置 --- 管理钩子 --- 添加新的钩子(Gogs)

测试:去更新Gogs仓库的代码,会自动触发Jenkins的构建运行

总结 - CICD

  1. CI/CD(持续集成/持续交付)自动化部署流程的核心是‌通过工具链自动完成代码提交、构建、测试和发布‌,减少人工干预,提升软件交付效率。
  2. 将所有开发的代码合在一起就是"集成","持续"是指定下次不需要额为触发的操作。
相关推荐
蜡台43 分钟前
Git 常用配置:修改地址 ,提交模板配置
git·gitlab·template·git commit·gitbash
拽着尾巴的鱼儿1 小时前
git不追踪已提交至仓库的本地又修改文件
git
We་ct3 小时前
Git 核心知识点全解析
开发语言·前端·git·gitee·github
无限进步_3 小时前
【C++】寻找字符串中第一个只出现一次的字符
开发语言·c++·ide·windows·git·github·visual studio
summerkissyou19874 小时前
git-命令大全
git
CoderOnly4 小时前
git fork之后,怎么继续pull
git
ROLL.74 小时前
Git和Repo
java·git·安卓
火车叼位4 小时前
告别发整个文件!用 Git Patch 优雅地传递代码变更
git
念恒123065 小时前
Linux基础开发工具(git篇)
linux·c语言·git
i建模6 小时前
git克隆加速方法大全
git