首页 / 资讯中心 / 文章详情

从 Git 标签到 GitHub Release:Persona 三平台构建打包与资产许可证门禁指南

从 Git 标签到 GitHub Release:Persona 三平台构建打包与资产许可证门禁指南 ★ FEATURED ARTICLE
【免费下载链接】personaBringing real-time voice to life.项目地址https://gitcode.com/gh_mirrors/persona3/persona点击查看免费下载️ Persona 是一款开源的桌面实时语音角色工具它监听语音应用的声音驱动 VRM 虚拟形象做口型与动作。本文带你快速看懂 Persona 的完整发布流程——只需打一个 Git 标签CI 就会自动完成 Linux / Windows / macOS 三平台构建打包并在发布前执行严格的资产许可证门禁license gate。一次标签推送触发完整发布流水线Persona 的发布只由版本标签驱动。工作流 release.yml 监听所有形如v*.*.*的标签推送随后串联三个任务任务运行器职责release-gateubuntu-latest验证资产许可证 校验标签与版本号一致packageubuntu / windows / macos 矩阵四平台并行构建安装程序publishubuntu-latest生成 SHA256 校验和并发布 GitHub Release四个打包目标分别是Linux x64→ AppImage DEBWindows x64→ NSIS 安装程序.exemacOS arm64/macOS x64→ DMG ZIP注意macOS x64 使用 Intel 专用 runnermacos-15-intel两个架构各自独立打包互不阻塞fail-fast: false。发布门禁一资产许可证检查assets:release这是 Persona 最有特色的环节。打包进发布的 VRM 模型与 VRMA 动画必须逐一登记许可信息否则门禁直接失败在 public/assets/library.json 中声明每个打包模型和动画契约来源在 public/assets/manifest.json 中镜像所有媒体路径填写license与source字段在 public/assets/LICENSES.md 中补全归属说明将distributionAllowed设为true。校验逻辑位于 scripts/check-assets.cts由npm run assets:release调用对应 package.json。在--release模式下它会检查manifest 路径与 library 声明完全一致角色model / animation匹配distributionAllowed必须为true否则报错Asset distribution is disabled. Replace the test-only files and set distributionAllowed to true.每个资产的license/source不能为空且source不能是local-test-only。仓库里当前就是故意占位的测试素材见 manifest.json.example所以直接打标签会被这一步拦下——这正是门禁的设计意图。发布门禁二标签必须等于包版本第二个检查由 scripts/check-release-tag.cts 完成git tag v0.1.0-beta.0 git push origin v0.1.0-beta.0规则很简单标签必须是v package.json 中的version。比如版本是0.1.0-beta.0标签就必须是v0.1.0-beta.0不一致会抛出Release tag v0.2.0 must match v0.1.0-beta.0.CI 中通过npm run release:check-tag -- ${GITHUB_REF_NAME}传入当前标签执行校验。三平台构建打包签名与公证怎么配package任务为每个矩阵成员执行npm run dist:linux/dist:windows/dist:mac定义见 package.json底层都是 electron-builder 配置。配置代码签名 Secrets在仓库设置中添加 GitHub Actions secrets详见 docs/RELEASING.mdSecret用途MAC_CSC_LINK/MAC_CSC_KEY_PASSWORDmacOS Developer ID 证书Base64与密码APPLE_ID/APPLE_APP_SPECIFIC_PASSWORD/APPLE_TEAM_IDApple 公证notarization账号WIN_CSC_LINK/WIN_CSC_KEY_PASSWORDWindows 代码签名证书工作流会根据MAC_CSC_LINK是否为空自动切换有证书→ 走Build signed macOS installer步骤注入签名与公证环境变量无证书→ 走Build unsigned macOS installerCSC_IDENTITY_AUTO_DISCOVERY: false但产物会触发 macOS Gatekeeper 与 Windows SmartScreen 警告。 官方建议把签名 公证的产物视为正式生产发布路径。打包细节构建产物统一输出到release/目录各平台 runner 以 artifact 形式上传if-no-files-found: error缺一即失败Windows 与 macOS 任务会先编译并自测原生音频监听器native:buildnative:test产物随extraResources一并打包见 package.jsonmacOS 启用hardenedRuntime并声明NSAudioCaptureUsageDescription权限文案。发布校验和 自动 Release 笔记最后一步publish任务下载所有平台的安装包 artifact运行npm run release:checksums由 scripts/write-checksums.cts 为全部.AppImage / .deb / .dmg / .exe / .zip生成SHA256SUMS.txt创建 GitHub Release自动生成 release notes标签名含-如v0.1.0-beta.0时自动标记为prerelease文件缺失时fail_on_unmatched_files: true直接让发布失败。用户下载后可用sha256sum -c SHA256SUMS.txt自行验证完整性。打标签前的本地检查清单 ✅正式打标签前docs/RELEASING.md 建议在本地依次执行npm ci npm run check # lint 测试 资产契约 依赖审计 构建 npm run assets:release # 发布模式的资产门禁 npm run native:build npm run native:testnpm run check等价于 ci.yml 中所有检查的合集Lint、运行/渲染层测试、assets:check、audit:production和生产构建。此外还需在 Linux、Windows、macOS arm64、macOS x64 上人工验证安装启动、四种语音源模式、口型响应、托盘菜单、点击穿透与卸载等关键行为完整清单见 docs/RELEASING.md。常见失败原因速查 失败现象原因解决release-gate第一步失败测试占位素材未替换distributionAllowed为false补齐 manifest.json 的license/source并置trueRelease tag ... must match ...标签与package.json版本不一致更新版本号后重新打标签No Persona release files found in ...打包矩阵有成员未产出文件修复对应平台的dist:*构建macOS 安装被 Gatekeeper 拦截未配置签名/公证 secrets按 RELEASING.md 配置 Apple 相关 secrets打包任务超时/失败原生监听器编译失败本地先跑npm run native:test定位小结Persona 的发布流程可以用一句话概括门禁先行、标签即发布。两道门禁资产许可证 标签版本一致性保证只有许可合规、版本一致的代码才会进入四平台并行打包最终自动产出带 SHA256 校验和的 GitHub Release。理解这套流程后你既能为 Persona 贡献可安全发布的媒体素材也能借鉴这套契约式资产校验 多平台矩阵打包的模式用于自己的 Electron 项目 相关入口发布流程文档 docs/RELEASING.md、CI 配置 ci.yml、发布工作流 release.yml、资产校验源码 scripts/check-assets.cts。赞分享【免费下载链接】personaBringing real-time voice to life.项目地址https://gitcode.com/gh_mirrors/persona3/persona点击查看免费下载相关推荐CodePilot 发版契约实战指南从 Release Notes 到三平台签名发布与不可变资产门禁CodePilot 发版契约实战指南从 Release Notes 到三平台签名发布与不可变资产门禁 本文以 CodePilot 仓库的发版契约文档 doc人工智能AI 应用AI Agent交互助手MCP Clients本地部署Netcatty AI Agent 图标资产溯源与合规接入指南从第三方许可证到源码实现Netcatty AI Agent 图标资产溯源与合规接入指南从第三方许可证到源码实现 本指南以 public/ai/agents/NOTICE.md httFlyingMouse Format 发布流程实战指南从发布门禁、多平台构建到 GitHub Release 精确交付FlyingMouse Format 发布流程实战指南从发布门禁、多平台构建到 GitHub Release 精确交付 本篇技术指南以开源项目 FlyingM桌面应用AI 技能上一篇使用 TDengine taosExplorer 将 Apache Pulsar 数据接入 TDengine无代码数据接入指南下一篇如何用EasyRead读非英语论文9种语言翻译与术语统一全指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?
咨询建站