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. 将所有开发的代码合在一起就是"集成","持续"是指定下次不需要额为触发的操作。
相关推荐
m0_5791466533 分钟前
Git 重置模式详解:四种重置方式的原理与应用场景
git
恋喵大鲤鱼37 分钟前
git grep
git·git grep
霸王龙的小胳膊1 小时前
Git基础知识
git
恋喵大鲤鱼2 小时前
git fetch
git·git fetch
Java知识技术分享2 小时前
安装sourcetree
java·git·源代码管理
恋喵大鲤鱼2 小时前
git revert
git·git revert
zyl837212 小时前
前后端项目自动部署方案主流实现方案
ci/cd·gitlab·github
爱和冰阔落2 小时前
【Codex项目实战】从模糊需求到可验证交付:Plan、测试、Review与Worktree完整流程
人工智能·git·codex
恋喵大鲤鱼12 小时前
git rebase
git·git rebase
大志哥12317 小时前
idea+git插件+云备份实现项目新分支新建维护
git