尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

Multipass PR 产物(Artifacts)安装与测试指南:从 CI 包到本地验证

发布时间:2026/9/25 20:11:46

资讯中心
01
ARTICLE

Multipass PR 产物(Artifacts)安装与测试指南:从 CI 包到本地验证

Multipass PR 产物(Artifacts)安装与测试指南:从 CI 包到本地验证
虚拟化开发工具云原生【免费下载链接】multipassMultipass orchestrates virtual Ubuntu instances项目地址https://gitcode.com/gh_mirrors/mu/multipass点击查看免费下载导读Multipass 的 CI 每天都会为每个 Pull Request 构建出可直接安装的安装包——Linux 上的 snap、Windows 上的 MSI、macOS 上的 pkg。本文以仓库中的 dev-docs/pr-artifacts.md 为核心系统讲解如何获取并安装这些 PR 构建产物用来在合入之前体验、验证某个 PR 的功能同时结合仓库里的 CI 工作流与 Snap 渠道发布逻辑说明产物从哪里来、被发布到哪个渠道、为什么某些情况下可能装到错误的版本以及如何用gh-install扩展一键安装最新构建。读完本文你将掌握三类平台下测试任意 Multipass PR 构建的完整实操方案。一、为什么需要 PR 产物ArtifactsMultipass 是一个跨平台Windows / macOS / Linux的虚拟化工具用于快速创建和管理 Ubuntu 云虚拟机。仓库的持续集成CI会为每一次 PR 提交执行编译、单元测试与集成测试并在测试通过后产出对应的安装包这些安装包就是所谓的 PR artifacts。对于贡献者、评审者或普通用户而言PR 产物有两大价值合入前体验新功能无需等待 PR 合并进main分支发布正式版本就能安装对应 PR 的构建提前验证新功能是否符合预期复现问题当某个 PR 引入缺陷或你报告的 bug 与该 PR 相关时可以精确安装该 PR 的构建进行复现和排查。从仓库的 CI 结构看PR 产物的构建由 .github/workflows/dynamic-ci.yml 统一编排它根据变更文件过滤出docs、code、hooks三类改动再分别触发 linux.yml、macos.yml、windows.yml 三个平台工作流最终把安装包作为 GitHub Actions 的 Artifacts 上传并把 Linux snap 发布到 Snap Store 的 PR 渠道。二、Linux通过 Snap 渠道安装 PR 构建2.1 核心命令与参数说明Linux 上的 Multipass 以 snap 形式分发PR 构建会被发布到edge/prPR编号这样的渠道。安装命令如下snap refresh --channel edge/prXXXXXXXX替换为 PR 编号例如要安装 PR 5135 的构建命令为snap refresh --channel edge/pr5135refresh与install的区别已安装过 Multipass 时用refresh它会将现有安装切换到指定渠道从零开始安装从未安装过 Multipass时把refresh替换为installsnap install multipass --channel edge/prXXXX。2.2 渠道不存在时的静默回退陷阱重要警告原文档特别强调了一个容易踩坑的行为警告如果某个 PR 渠道因某种原因不存在Snap 会静默地安装普通的 edge 渠道构建而不会报错。这意味着snap refresh --channel edge/pr1234可能在你不知情的情况下把 Multipass 切换到了最新的 edge 构建即main分支的每日构建而不是 PR 1234 的构建。安装完成后务必验证实际渠道snap info multipass观察输出中当前安装对应的 channel 是否为edge/prXXXX。如果显示的是latest/edge之类的其他渠道说明 PR 渠道未发布成功需要回到该 PR 的 CI 运行页确认构建与发布状态。2.3 渠道命名规则与发布逻辑源码依据为什么渠道叫edge/prXXXX这可以从仓库的 CI 参数解析逻辑中找到明确依据。.github/actions/build-params/action.yml 根据 GitHub 事件类型决定构建标签label与 Snap 发布渠道channel事件类型为pull_request输出labelprPR编号、channeledge/prPR编号事件类型为merge_group输出labelci运行号、channeledge/ci运行号匹配发布分支release/x.y或发布标签vx.y.z输出channelbeta其余情况含main分支 push输出labelci运行号channel 为空edge 由 snapcraft.io 的自动构建发布。发布动作发生在 .github/workflows/linux.yml 的Publish-Snapjob 中它下载所有*.snap构建产物通过snapcraft upload --release channel上传到 Snap Store 对应渠道linux.yml。也就是说只有 PR 构建成功并且发布 job 运行成功edge/prXXXX渠道才会存在否则就会出现上文所说的静默回退。从 snap/snapcraft.yaml 可以看到Multipass snap 包含multipassd守护进程、multipassCLI与gui图形客户端三个 app因此安装 PR 构建后可以完整测试命令行与图形界面。三、Windows 与 macOS从 GitHub Actions Artifacts 手动下载Linux 的 snap 走 Snap Store 渠道而 Windows 与 macOS 的 PR 构建则作为 GitHub Actions 的 Artifacts 提供。操作步骤如下找到该 PR 最后一次成功运行的 GitHub Actions 汇总页即 Checks / Summary 页面滚动到页面底部的 Artifacts 区域此处列出了本次运行产生的所有安装包及其大小Size与校验和Digest如上图所示下载并安装对应平台的安装包Windows选择 MSI 包例如windows-2025-multipass-版本.win-win64.msi约 70 MB 量级双击运行 MSI 安装向导即可macOS选择 pkg 包例如multipass-版本.mac-Darwin.pkg约 147 MB 量级打开 pkg 按向导安装。Artifacts 区域还提供了复制校验和链接可用于校验下载完整性、下载与删除按钮。Artifacts 的保留期由 CI 配置决定仓库中 Windows / macOS 工作流设置的retention-days: 7即默认保留 7 天需要及时下载。3.1 产物从何而来各平台打包流程macOS.github/workflows/macos.yml 在macos-26Apple Silicon与macos-26-intelIntel两个 runner 上分别构建、打包得到各自的.pkg后由CombineMacOSPackagejob 调用 packaging/macos/merge_pkgs.py 合并为通用universalpkg再经 packaging/macos/sign-and-notarize.sh 签名后上传为 Artifact并同步发布到 S3multipass-ci桶供公开下载Windows.github/workflows/windows.yml 在windows-2025runner 上通过 CPack/WiX 生成 MSI见 packaging/windows/wix 下的.wxs文件同时还会收集 PDB 调试符号打包上传便于崩溃后的离线分析MSI 与符号包同样会上传到 S3。因此除了从 GitHub Actions 页面下载Windows/macOS 用户也可以从 CI 发布的公开 S3 URL 直接下载对应 PR 的安装包。3.2 版本命名如何读懂产物文件名Artifacts 文件名中蕴含了版本、PR 编号与提交哈希信息例如multipass-1.17.0-dev.pr4733g563e29f4.mac-Darwin.pkg windows-2025-multipass-1.17.0-dev.pr4733g563e29f4.win-win64.msi拆解如下1.17.0-dev基础版本号-dev表示开发构建pr4733该构建对应的 PR 编号即build-params输出的 labelg563e29f4对应的 git 提交短哈希后缀平台标识Darwin/win-win64与包类型pkg/msi。四、一键安装 CI 构建gh-install 扩展对于需要频繁安装不同 PR 构建或最新夜间构建的开发者原文档推荐了 GitHub CLI 扩展 gh-install。它的定位是下载并安装由 CI 为给定 PR 构建的 Multipass 包。可以把它类比为gh co 5135——只不过它不是检出 PR 的代码而是安装该 PR 的 CI 运行所产出的安装包并自动适配你当前的操作系统。不带任何参数时它安装最新的 nightly 构建。安装该扩展gh extension install sharder996/gh-install使用示例以 PR 5135 为例# 安装 PR 5135 的 CI 构建 gh install 5135 # 不带参数安装最新 nightly 构建 gh install其工作方式与手动流程互补Linux 上它会引导 snap 安装对应edge/prXXXX渠道Windows/macOS 上则直接抓取 CI 产出的 pkg/MSI 并执行安装省去在 Actions 页面逐项翻找下载的步骤。五、安装后的验证与常见问题5.1 验证安装的是正确的 PR 构建Linuxsnap info multipass检查 channel 是否为edge/prXXXX见 2.2 节Windows / macOS查看安装的版本号是否包含prXXXX标识例如运行multipass version或到系统应用程序中核对版本字符串macOS 上也可以通过pkgutil --pkg-info查询安装记录若为验证某个具体功能修复可结合 docs/how-to-guides 中对应功能的操作指南进行冒烟测试例如用multipass launch创建实例、multipass shell进入实例等。5.2 常见问题排查现象可能原因处理方式Linux 上安装后版本不对PR 渠道不存在静默回退到 edge用snap info multipass核对渠道回到 PR 的 Actions 页确认构建/发布状态Actions 页面找不到 Artifacts构建失败、运行未结束或产物已过期保留期约 7 天查看该 PR 最后一次成功运行产物过期则重新触发或直接等待新提交下载的包无法安装下载不完整用 Artifacts 区域的 SHA256 校验和Digest核对文件想装最新开发版而非某个 PR不需要指定 PRLinuxsnap refresh --channel edgeWindows/macOS使用不带参数的gh install六、相关资源PR artifacts 官方开发文档本文所依据的原始文档Linux CI 工作流snap 构建、测试与渠道发布macOS CI 工作流pkg 构建、合并、签名与上传Windows CI 工作流MSI 构建、PDB 符号收集与上传build-params 动作PR 渠道与构建标签的生成逻辑snap 打包配置Linux snap 的应用与部件定义安装 Multipass 官方指南各平台安装前置条件与正式渠道安装方式Windows MSI 打包文档Windows 安装包构建细节Multipass 发布流程正式版本如何从 CI 走向 Snap Store / S3。七、总结测试一个 Multipass PR 构建本质上有两条互补路径Linuxsnap refresh --channel edge/prXXXX新装用install并以snap info multipass确认渠道未发生静默回退Windows / macOS前往该 PR 最后一次成功运行的 GitHub Actions 汇总页在 Artifacts 区域下载 MSI / pkg 安装。频繁测试时安装gh-install扩展可一键完成按 PR 编号安装对应包、或安装最新 nightly 构建的整个流程。理解 build-params 中的渠道映射规则能帮助你准确判断每个构建应出现在哪个渠道从而在测试与调试 Multipass 上游开发时做到有的放矢。赞分享虚拟化开发工具云原生【免费下载链接】multipassMultipass orchestrates virtual Ubuntu instances项目地址https://gitcode.com/gh_mirrors/mu/multipass点击查看免费下载相关推荐GitHub Desktop Linux 社区测试指南从 RC 安装包验证到本地打包与反馈流程GitHub Desktop Linux 社区测试指南从 RC 安装包验证到本地打包与反馈流程 GitHub Desktop本仓库即其官方开源代码库目前并桌面应用版本控制开发工具Civitai 贡献指南从 Fork PR 的 CI 语义到本地验证与测试守门的完整实践Civitai 贡献指南从 Fork PR 的 CI 语义到本地验证与测试守门的完整实践 导读 本文基于 Civitai 仓库根目录的 CONTRIBUTIN后端前端AI 应用n8n-skills表达式语法终极指南告别{{}}使用困惑n8n skills表达式语法终极指南告别{{}}使用困惑 n8n skills是一套专为构建完美n8n工作流设计的技能集其中表达式语法是实现工作流自动化的AI 技能AI 插件工作流自动化流程编排创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。