轻量钢琴应用,基于 JUCE 框架开发,用于键盘演奏与音频输出。此仓库包含 Windows x64 的构建脚本与 GitHub Actions 自动发布流程。
- 基本键盘演奏功能
- 音频输出(通过 JUCE)
- Windows x64 Release 构建与自动打包
- 在推送 tag 时自动在 GitHub 上创建 Release(支持 prerelease 标记)
DevPiano.sln- Visual Studio 解决方案scripts/build_release.ps1- Windows 构建与打包脚本(用于 CI).github/workflows/release.yml- GitHub Actions 工作流(当 pushv*tag 时触发)Builds/- 本地构建输出(CI 生成在此路径下查找)Dist/- 发布打包产物存放目录(CI 会将 zip 放入此目录)
- Windows + Visual Studio(含 C++ 工具 / MSBuild)
- Projucer(如适用)或确保工程的 JUCE 模块已正确设置
- Git
- 使用 Projucer 修改并保存工程(如适用),再在 Visual Studio 中打开
DevPiano.jucer导出的DevPiano.sln。 - 在 Visual Studio 中选择
Release与x64,编译解决方案。 - 可在
Builds\\x64\\Release\\App下找到运行时输出。
脚本会自动调用 NuGet/dotnet 恢复依赖,使用 msbuild 构建并将输出打包为 zip:
powershell -ExecutionPolicy Bypass -File scripts\\build_release.ps1 -Solution 'DevPiano.sln' -TagName 'v1.0.0' -OutDir 'Dist' -Configuration 'Release' -Platform 'x64'生成的包位置示例: Dist\\v1.0.0-windows-x64.zip。
仓库配置了 GitHub Actions:当你将以 v 开头的 tag 推送到远端时(例如 v1.0.0 或 v1.0.0-beta),工作流会执行:
- 由
prepjob 判断是否为 prerelease(仅匹配-beta和-rc)以及是否需要构建(主版本号 >= 1) - 若需要构建,则在
windows-latestrunner 上使用scripts/build_release.ps1构建并将生成的Dist/*.zip上传为 artifact - 最后
create_releasejob 会下载 artifact(若有)并在 GitHub 上创建 Release,将Dist/*.zip附加到 Release
本地常用命令:
- 创建带注释的 tag:
git tag -a v1.0.0 -m "Release v1.0.0" - 推送单个 tag:
git push origin v1.0.0
也可以使用 gh CLI 在推送后创建 Release,但 CI 已自动完成这一流程。
build_release.ps1假定构建产物位于Builds\\x64\\Release\\App,并将其打包到Dist。请确保解决方案的输出目录与此一致,或修改脚本以匹配你的工程输出。- 构建日志中可能出现编码相关的 C4819 警告,建议将相关源码文件保存为 UTF-8/Unicode 以消除这些警告。
欢迎通过 Fork + PR 的方式提交改进。提交信息请遵循常见的语义化提交约定(例如 feat:、fix:)。
本仓库采用 GPL v3 许可证。版权所有 (c) 2025 wangyan-life。请参阅仓库根目录的 LICENSE 文件了解具体条款。