实验二:Git用法练习
介绍
Git 是目前最流行的版本控制系统,它能够帮助开发者高效地管理代码版本,特别是在团队协作中,Git 的优势尤为明显。而在 Git 使用过程中,我们通常需要有一个 Git 仓库托管平台来存储和管理我们的代码。GitHub、GitLab 和 Bitbucket 是常见的 Git 托管平台,但如果你希望自己搭建一个 Git 仓库托管平台,可以使用 DevStar,这是一个简单易用的 Git 服务器。
在本篇文章中,我将展示如何搭建 Git 仓库托管平台,并通过一个实际项目演示从创建 Git 仓库到发布版本的整个流程。
步骤 一:搭建 Git 仓库托管平台
1.1 安装 WSL (Windows Subsystem for Linux)
首先,确保你已安装并配置了 WSL 2。你可以通过以下命令来自动安装 Ubuntu 20.04。
1)打开 cmd
或 PowerShell,运行以下命令安装 WSL 和 Ubuntu 20.04:
wsl --install -d Ubuntu-20.04
如果这条命令无法自动完成,你可以手动执行以下两条命令来启用必要的功能:
2) 启用 WSL 和虚拟机平台:
dism.exe /Online /Enable-Feature /FeatureName:Microsoft-Windows-Subsystem-Linux /All /LimitAccess /All
dism.exe /Online /Enable-Feature /FeatureName:VirtualMachinePlatform /All /LimitAccess
这些命令将启用 Windows 上的 WSL 和虚拟机平台支持。
3)安装 Ubuntu 20.04:
如果上述命令成功,你就可以在 Microsoft Store
下载并安装 Ubuntu 20.04。
1.2 安装 DevStar
在 WSL 环境下完成 Ubuntu 20.04 安装后,使用以下命令在 Ubuntu 上安装 DevStar。
1)在 Ubuntu 终端中执行以下命令以下载和安装 DevStar:
wget -c https://devstar.cn/assets/install.sh && chmod +x install.sh && sudo ./install.sh
2)执行 devstar
命令来验证 DevStar 是否安装成功:
devstar help
这会显示 DevStar 的帮助信息,其中包含可用的命令和选项。
1.3 启动 DevStar
一旦安装完成,你可以使用以下命令来启动 DevStar:
sudo devstar start
DevStar 将在 http://localhost:8080
上运行,你可以在浏览器中访问这个地址来使用 DevStar。
步骤二:创建 Git 仓库
搭建好 Git 仓库托管平台之后,接下来是创建一个 Git 仓库,并开始管理代码。
2.1 创建 Git 仓库
2.2 在本地创建 Git 仓库
-
创建一个新的文件夹并进入:
mkdir myproject cd myproject
-
初始化 Git 仓库:
git init
-
创建一个文件并提交:
echo "# My Project" > README.md git add README.md git commit -m "Initial commit"
步骤三:将本地仓库推送到远程 Git 仓库
现在,已经在本地创建了 Git 仓库,接下来需要将这个仓库推送到远程 Git 服务器上,以便其他团队成员可以访问和协作。
3.1 添加远程仓库
需要将远程仓库的 URL 添加到本地仓库中,指向你在 DevStar 上创建的仓库。
git remote add origin http://localhost:8080/zhian/myproject.git
3.2 推送本地仓库
将本地仓库推送到远程仓库,推送时需要使用 -u
选项来设置默认的远程分支:
git push -u origin master
步骤四:发布版本并创建标签
Git 通过标签(Tag)来标记发布的版本。下面是如何在 Git 中创建标签并推送到远程仓库。
4.1 创建版本标签
创建一个新的版本标签 v1.0
,并附带注释。
git tag -a v1.0 -m "First release"
4.2 推送标签
将标签推送到远程仓库,以便其他团队成员能够看到这个版本。
git push origin v1.0
步骤五:总结与反思
在这篇博客中,我通过一个实际的操作,展示了如何搭建 Git 仓库托管平台、创建本地 Git 仓库、推送到远程仓库以及发布版本。使用 Git 和版本控制系统能够极大提高开发效率,尤其是在团队协作和代码管理方面,Git 的优势非常明显。
通过搭建自己托管的 Git 仓库平台,可以更好地掌控自己的代码管理流程,并且避免将代码托管到第三方平台所带来的隐私和安全问题。
结语
如果你正在开发一个个人或团队项目,使用 Git 来管理版本是非常重要的,而搭建一个自己的 Git 仓库托管平台则能够让你更加灵活地管理代码。如果你在搭建过程中遇到任何问题,欢迎留言交流。
实验五:CI/CD流水线的用法练习
一、实验背景与意义
在现代软件开发中,CI/CD(持续集成/持续交付)已成为团队协作和高效开发的标配。它能让每一次代码提交都自动完成编译、测试、检查和部署,极大降低了人为失误,提高了交付效率和代码质量。
本实验以DevStar平台为基础,结合一个简单的Java Maven项目,体验从代码提交到自动化构建、测试的完整流水线流程。
二、实验目标
- 熟悉DevStar(Gitea)平台的CI/CD功能
- 掌握Java项目流水线脚本的编写方法
- 实现代码提交后自动编译、测试和产物输出
- 能分析流水线日志,排查常见问题
- 为后续自动部署、代码质量检查等进阶打下基础
三、实验环境准备
1. DevStar平台
DevStar是一个自建的Git仓库托管平台,内置Gitea Actions,支持与GitHub Actions类似的CI/CD流水线。
本实验已在本地部署好DevStar,并确保Actions Runner在线。
2. Java项目结构
本实验以最基础的Maven Java项目为例:
myproject/
├── pom.xml
└── src/
└── main/
└── java/
└── Hello.java
pom.xml
为Maven配置文件,Hello.java
为主类。
3. 代码上传
项目已通过如下命令上传到DevStar:
git init
git add .
git commit -m "初始化Java项目"
git push -u origin master
四、CI/CD流水线配置与讲解
1. 新建流水线脚本
在项目根目录下新建.gitea/workflows/ci.yaml
:
mkdir -p .gitea/workflows
vim .gitea/workflows/ci.yaml
2. 脚本内容与分步说明
name: DevStar Studio CI Pipeline - dev branch
on:
push:
branches: [master]
pull_request:
branches: [master]
jobs:
build-and-push-x86-64-docker-image:
name: Build and Push x86-64 Docker Image
runs-on: ubuntu-latest
steps:
# 拉取最新代码
- name: 🔍 Check out repository code
uses: actions/checkout@v3
# 编译并测试
- name: 🛠️ Test Codes and Build an Artifact
run: mvn clean package
# 推送镜像到仓库
- name: 🚀 Push Artifact to devstar.cn and docker.io Registry
run: |
echo "Push image to registry"
# docker push 命令可根据实际需要补充
# 输出流水线状态
- name: 🍏 Job Status Report
run: echo "🍏 This job's status is ${{ job.status }}."
# 更新dev环境
- name: 📝 Update dev.devstar.cn
run: echo "Update dev.devstar.cn"
分步讲解:
on
: 定义流水线的触发条件(当代码推送或发起PR到master分支时自动执行)jobs
: 定义流水线中的任务集合runs-on
: 指定流水线运行的操作系统环境(如 Ubuntu)steps
: 明确流水线的每一步操作- Check out repository code:检出(拉取)最新的仓库代码,为后续操作做准备
- Test Codes and Build an Artifact:使用 Maven 对项目进行编译和测试,确保代码质量和可用性
- Push Artifact to devstar.cn and docker.io Registry:将构建好的镜像或产物推送到 devstar.cn 和 docker.io 镜像仓库,实现自动交付
- Job Status Report:输出本次流水线的执行状态,便于追踪和归档
- Update dev.devstar.cn:自动更新开发环境或测试环境,实现持续集成到持续部署的闭环
3. 提交并推送脚本
git add .gitea/workflows/ci.yaml
git commit -m "添加Java项目CI/CD流水线"
git push origin master
五、流水线执行与日志分析
-
查看流水线状态
打开DevStar网页端,进入项目页面,点击「Actions」进行查看。
-
日志分析
- 每一步都有详细日志输出(如JDK安装、Maven编译、测试结果等)
- 若有错误,日志会高亮显示,便于快速定位和修复
六、常见问题与解决办法
-
流水线未触发
- 检查
.gitea/workflows/ci.yaml
路径和文件名 - 确认Actions Runner在线
- 检查
-
JDK版本不兼容
- 修改
java-version
为项目实际需要的版本(如8、11、17、21)
- 修改
-
Maven依赖下载慢或失败
- 网络原因,建议多尝试几次或更换国内Maven源
-
测试失败
- 查看
mvn clean package
日志,修复代码或测试用例
- 查看
七、实验总结与体会
通过本实验,我不仅掌握了Java项目CI/CD流水线的基本配置和使用,还学会了如何分析流水线日志、排查常见错误。CI/CD让开发流程高度自动化,每次提交都能自动编译、测试和输出结果,大大提升了开发效率和代码质量。未来可以继续扩展自动部署、代码检查等更高级的自动化能力。
八、参考资料
如有问题,欢迎留言交流!