Files
RemoteDesk/docs/ci-drone.md
T

21 lines
1.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Drone CI 打包
仓库提供 `.drone.yml`,包含两个独立流水线:
- `linux-package` 使用 Linux Docker runner,执行格式检查、工作区测试和 Clippy,然后生成 Linux Agent 的 DEB/RPM 与 Edge DEB。
- `windows-package` 使用 Windows Exec runner,执行格式检查和工作区测试,然后调用 `packaging/build-all.ps1` 生成 Windows Client/Host 的 MSI、便携 ZIP 和校验清单。
两条流水线都会在 `push``pull_request``tag` 事件运行。构建脚本只生成未签名开发包;正式签名仍需要受保护的证书和独立发布流程,不能把私钥放进 Drone 配置。
## Runner 要求
Linux Docker runner 使用 `rust:1.89-bookworm`,流水线会安装 GStreamer 开发包、`rpm``pkg-config` 和 CA 证书。Runner 需要允许访问 crates.io、NuGetWindows WiX 下载)以及项目依赖的 HTTPS 服务。
Windows Exec runner 需要 Rust stable(包含 `rustfmt``cargo`)与 PowerShell,并允许脚本下载固定 SHA-256 的 WiX 4.0.6 包。Runner 应使用 x64 Windows 主机;MSI 产物不在普通 CI 中签名,不需要 Node.js、C# 编译器或 .NET Framework 构建链。
## 产物
Linux 产物位于 `artifacts/`,并生成 `DRONE-SHA256SUMS.txt`。Windows 产物位于 `artifacts/`,并生成 `BUILD-SHA256SUMS.txt`。Drone 本身不会跨 Runner 自动保存工作区文件,部署时应给 Runner 配置对象存储/制品插件或主机卷,将这两个目录上传到构建编号对应的路径;上传步骤不包含在仓库中,避免把组织级凭据和存储端点写入源码。
建议制品路径使用 `${DRONE_REPO_OWNER}/${DRONE_REPO_NAME}/${DRONE_BUILD_NUMBER}`,并只允许 tag 构建进入正式发布桶。发布前必须再次验证清单中的 SHA-256,并按 `docs/online-updates.md` 配置 Windows 签名和更新清单密钥。