mirror of
https://github.com/zyphrzero/Termy.git
synced 2026-07-22 17:10:32 +00:00
| .. | ||
| build-rust.yml | ||
| ci.yml | ||
| README.md | ||
| release.yml | ||
GitHub Actions 工作流
工作流文件
ci.yml - 插件 CI
触发条件:
- 推送到
main/develop分支 - Pull Request
- 手动触发
功能:
- 安装依赖并校验 lockfile
- 构建 TypeScript 插件
- 运行终端层 Node 测试
- 运行发布脚本级测试(例如 R2 上传前置检查)
build-rust.yml - CI 构建
触发条件:
- 推送到
main/develop分支 - Pull Request
- 手动触发
功能:
- 构建 5 个平台的
termy-server二进制 - 测试二进制启动和端口输出
- 使用
Swatinem/rust-cache做 Rust 缓存
平台:
- Windows x64
- macOS ARM64 / x64
- Linux x64 / ARM64
release.yml - 发布
触发条件:
- 推送版本标签 (
*.*.*)
功能:
- 构建所有平台二进制 + SHA256 校验和
- 构建 TypeScript 插件
- 上传二进制到 Cloudflare R2
- 打包为带版本号的
termy-<version>.zip - 从
CHANGELOG.md自动提取当前 tag 对应的发布说明 - 创建 GitHub Release
产物结构:
termy-<version>.zip
└── termy/
├── main.js
├── manifest.json
├── styles.css
└── binaries/
├── termy-server-win32-x64.exe
├── termy-server-darwin-arm64
├── termy-server-darwin-x64
├── termy-server-linux-x64
└── termy-server-linux-arm64
发布说明来源:
release.yml会读取CHANGELOG.md中与 tag 同名的章节,例如 tag1.0.0对应## [1.0.0]- 如果找不到对应章节,Release 会失败,避免发布说明缺失或错配
R2 同步:
release.yml会调用scripts/upload-r2-assets.js- Release job 固定运行在 Node 22 上,并固定使用
wrangler@4.88.0 - 需要配置 GitHub Actions secrets:
CLOUDFLARE_API_TOKENCLOUDFLARE_ACCOUNT_ID
使用
创建发布
# 更新 manifest.json 和 package.json 版本号
git tag 1.0.0
git push origin 1.0.0
手动触发 CI
GitHub → Actions → Build Rust Server → Run workflow
配置
GITHUB_TOKEN- 自动提供contents: write- Release 权限
相关文件
scripts/build-rust.js- 本地构建脚本rust-servers/Cargo.toml- Rust 配置