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. 将所有开发的代码合在一起就是"集成","持续"是指定下次不需要额为触发的操作。
相关推荐
vibecoding日记1 天前
为什么我就想要「线性历史 + Signed Commits」,GitHub 却把我当猴耍 🤬🎙️
git·编程工具
程序员小崔日记2 天前
如何将代码轻松上传到 Gitee?Git 使用全攻略!
git·gitee·上传
Bigger3 天前
为什么你的 Git 提交需要签名?—— Git Commit Signing 完全指南
git·开源·github
DianSan_ERP3 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet
红豆子不相思4 天前
Tomcat 环境搭建与集群实战
服务器·git·tomcat
杰哥技术分享4 天前
Git 仓库迁移技术文档:从 CODING.net 迁移至腾讯云 CNB
git
IAR Systems4 天前
松下电工借助IAR CI/CD解决方案,实现品质与效率双重飞跃
ci/cd
Cherry的跨界思维4 天前
【AI测试全栈:质量】47、Vue+Prometheus+Grafana实战:打造全方位AI监控面板开发指南
vue.js·人工智能·ci/cd·grafana·prometheus·ai测试·ai全栈
梅孔立4 天前
Ansible 100 台服务器一键管控实战 进阶版
服务器·git·ansible