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. 将所有开发的代码合在一起就是"集成","持续"是指定下次不需要额为触发的操作。
相关推荐
A_Lonely_Cat19 小时前
记一次 GitHub 幽灵协作者大清洗:强制重写 Git 历史与穿透 CDN 缓存实践
git·github
和你看星星3 天前
Git rerere:让重复冲突只解决一次
git
Bigger3 天前
从零搭建 AI 代码审查服务:一份前端也能看懂的 Python 学习笔记
前端·ci/cd·ai编程
嘻嘻仙人6 天前
Ubuntu中 git上传自己的项目和二次上传一般流程
git·github
Patrick_Wilson6 天前
Squash Merge 的血缘陷阱:为什么删掉的代码又活了过来
前端·git·程序员
沉浸学习的匿名网友7 天前
什么是 .gitignore?为什么每个 Git 项目几乎都离不开它?
前端·git
深海鱼在掘金8 天前
Git 完全指南 —— 第3章:理解工作区、暂存区、版本库三个核心
git
江华森8 天前
Git 基础筑基:从原理到团队协作的全栈实战
git
JakeJiang8 天前
Git 必备命令指南:从日常高频到项目开发实战
git
宋均浩8 天前
# Docker 镜像瘦身实战:从 1.2G 到 80MB 的五个优化步骤
ci/cd·docker