Files
RemoteDesk/docs/ci-drone.md
T

1.8 KiB
Raw Blame History

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 和校验清单。

两条流水线都会在 pushpull_requesttag 事件运行。构建脚本只生成未签名开发包;正式签名仍需要受保护的证书和独立发布流程,不能把私钥放进 Drone 配置。

Runner 要求

Linux Docker runner 使用 rust:1.89-bookworm,流水线会安装 GStreamer 开发包、rpmpkg-config 和 CA 证书。Runner 需要允许访问 crates.io、NuGetWindows WiX 下载)以及项目依赖的 HTTPS 服务。

Windows Exec runner 需要 Rust stable(包含 rustfmtcargo)与 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 签名和更新清单密钥。