本目录包含了项目的GitHub Actions自动化工作流配置。
触发条件:
- 推送到 master/main/develop 分支
- 创建或更新 Pull Request
- 手动触发
功能:
- 在多个Java版本 (8, 11, 17) 上测试编译
- 运行单元测试
- 生成构建产物
- 缓存Maven依赖以加速构建
触发条件:
- 推送版本标签 (如
v1.3.1) - 手动触发并指定版本
功能:
- 自动编译和打包项目
- 生成详细的变更日志
- 创建GitHub Release
- 上传JAR文件和校验和文件
- 支持手动和自动发布
触发条件:
- Pull Request 创建、更新或重新打开
功能:
- 验证代码编译
- 运行测试套件
- 检查JAR文件完整性
- 验证项目结构
- 检查提交消息格式
- 扫描合并冲突标记
触发条件:
- 推送到 master/main 分支(当pom.xml或源码变更时)
- 手动触发
功能:
- 检测pom.xml中的版本变更
- 自动创建版本标签
- 触发发布流程
- 避免重复发布
- 更新
pom.xml中的版本号 - 提交并推送到 master 分支
- 系统将自动检测版本变更并创建发布
- 创建并推送版本标签:
git tag -a v1.3.2 -m "Release version 1.3.2"
git push origin v1.3.2- 在GitHub Actions页面找到 "Release" 工作流
- 点击 "Run workflow"
- 输入版本标签(如 v1.3.2)
为了更好地生成变更日志,建议使用约定式提交格式:
feat: 添加新功能
fix: 修复bug
docs: 更新文档
style: 代码格式调整
refactor: 代码重构
test: 添加测试
chore: 构建工具或辅助工具的变动
build: 构建系统或外部依赖的变动
ci: CI配置文件和脚本的变动
或使用中文:
新增: 添加新功能
修复: 修复bug问题
优化: 性能或代码优化
更新: 更新文档或依赖
文档: 文档相关变更
测试: 测试相关变更
构建: 构建相关变更
发布工作流会自动生成结构化的变更日志,包括:
- 🚀 新增功能
- 🐛 问题修复
- 🔧 改进优化
- 📚 文档更新
- 🔨 构建和部署
- 📊 完整变更记录
- 🔗 相关链接
- 📦 安装方法
⚠️ 重要提醒
在 ci.yml 中修改 matrix.java-version 来改变测试的Java版本。
更新各工作流中的 branches 配置来改变触发分支。
可以在工作流中添加Slack、Teams或邮件通知步骤。
修改 release.yml 中的变更日志生成逻辑来自定义输出格式。
-
构建失败
- 检查Java版本兼容性
- 确认依赖项是否正确
- 查看完整的构建日志
-
发布失败
- 确认版本标签格式正确 (vX.Y.Z)
- 检查仓库权限设置
- 验证pom.xml版本号
-
权限问题
- 确保仓库开启了Actions权限
- 检查GITHUB_TOKEN权限设置
- 在工作流步骤中添加调试输出:
- name: Debug
run: |
echo "Current directory: $(pwd)"
ls -la
echo "Java version: $(java -version)"- 使用
act本地测试工作流:
# 安装 act
curl https://raw.githubusercontent.com/nektos/act/master/install.sh | sudo bash
# 运行工作流
act push- 使用Maven依赖缓存减少构建时间
- 并行执行多个测试作业
- 只在必要时运行完整的测试套件
- 合理设置artifact保留时间
- 不在工作流中暴露敏感信息
- 使用GitHub Secrets存储密钥
- 定期更新Action版本
- 审查第三方Actions的安全性