任务输入
将代码、依赖锁定文件、代理素材、模型权重或自动化任务同步到物理节点。先确定输入规模、来源位置与增量同步方式。
Reproducible workflows
MiniDeploy 提供整台 Mac mini 的独享物理机资源,不与其他租户共享芯片、内存或存储,也不是虚拟机。你可以通过远程 Mac 桌面操作图形界面,也可以使用 SSH、脚本和 self-hosted runner 执行自动化任务。
将代码、依赖锁定文件、代理素材、模型权重或自动化任务同步到物理节点。先确定输入规模、来源位置与增量同步方式。
在独享 Apple Silicon 芯片、16GB 内存与 256GB SSD 上运行 Xcode、测试、推理或编码任务。系统命令行与 macOS 图形界面完整可用。
把归档包、测试报告、性能数据或媒体文件回传到团队存储。验收时同时检查完整性、日志、耗时与可重复执行能力。
Usecase cards
同一台云端 Mac 可以承担交互式与自动化任务,但输入规模、网络依赖和完成条件不同。先按任务类型确定关键指标,再决定节点与连接方式。
通过远程 Mac 桌面打开工程,在图形界面完成断点调试、配置检查和归档;依赖安装、测试与重复构建交给命令行。
代码提交后由 runner 接单,在隔离工作目录中执行依赖恢复、测试、构建与产物上传,让构建环境和缓存策略由团队控制。
固定 Python 环境、模型版本、量化方式和输入样本,在 Apple Silicon 上记录首轮加载、稳定吞吐、内存峰值与输出一致性。
先上传低体积代理素材,再通过远程桌面完成剪辑、时间线检查与编码;高分辨率源文件和成片传输安排在非交互阶段。
Developer workflow
适合需要持续维护 iOS、macOS 或 visionOS 工程,但本地没有可长期运行 Mac 环境的开发者。交互式调试使用远程 Mac 桌面,构建与归档则保留可复现命令。
拉取指定提交,确认子模块、依赖锁定文件和构建配置已同步。不要以未经记录的本地缓存作为唯一依赖来源。
验收:git status 无意外改动,提交标识与待构建版本一致。
记录 Xcode 版本、命令行工具路径、Ruby 与 Python 运行环境,以及包管理器解析结果。先执行依赖安装,再打开工程检查方案和目标。
验收:xcodebuild -version 与项目基线一致,依赖解析无漂移。
通过远程桌面进入 Xcode,检查编译错误、断点、控制台输出和模拟器行为。降低桌面分辨率可以减少高延迟网络中的画面传输量。
验收:目标能够启动,关键路径可复现,调试日志包含对应提交标识。
将签名材料限制在专用目录和最小权限账户中,通过可审计脚本执行归档与导出。完成检查后再进入 TestFlight 分发步骤。
验收:归档版本、构建号、导出配置和分发结果均写入本次任务日志。
CI/CD workflow
独享物理机适合需要固定 Xcode 版本、可控缓存和持续可用执行环境的流水线。节点全年 365 天正常运行,团队仍应为脚本失败、磁盘占满和上游依赖异常设置明确退出路径。
以提交标识、分支、目标方案和构建类型组成任务输入。禁止让不同项目共享同一个未清理工作目录。
runner 接单后创建独立目录,恢复经过版本化的依赖缓存。缓存键至少包含工具链、架构与锁定文件摘要。
使用固定参数调用测试和 xcodebuild,将标准输出、退出码、测试结果包与耗时写入同一任务记录。
上传归档包、测试报告和校验值,确认接收端完整后再清理任务目录。敏感日志应在上传前完成脱敏。
Runner acceptance
AI inference workflow
M4 Core 提供 M4、16GB RAM 与 256GB SSD。它适合验证能够放入可用内存和存储范围内的本地推理任务,不应只凭模型名称判断能否运行。
python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install -r requirements.lock
python3 benchmark.py --warmup 3 --runs 10 --seed 42
记录 macOS 版本、Python 版本、依赖锁定文件和执行命令。模型运行依赖应从空环境安装成功,而不是依赖个人终端历史。
固定模型修订版、量化方式、提示词、样本长度、批次大小和随机种子。模型文件同步完成后核对文件大小与摘要。
将首次加载耗时和预热后的连续推理分开记录。每轮保存开始时间、结束时间、峰值内存与异常退出信息。
报告至少包含首轮延迟、中位耗时、稳定吞吐、内存峰值和十轮结果离散程度。不同环境的数字不可直接混用。
Media workflow
远程桌面传输的是操作画面,不会消除源素材上传时间。把高体积传输和交互式剪辑分开安排,通常比直接远程操作原始素材更稳定。
在上传前统一代理编码、分辨率、帧率与文件命名。保留源素材和代理素材之间的映射清单,避免后续重新链接时依赖人工记忆。
验收:代理文件可播放,时码、音轨和原始素材一一对应。先同步工程文件、代理素材和必要资源,再单独传输可延后的源文件。网络中断后应支持从未完成部分继续,而不是重新发送全部内容。
验收:随机抽查文件大小和摘要,工程打开后没有离线代理。根据节点延迟调整远程桌面分辨率、色深和帧率。时间线编辑可使用代理画面;精确色彩、实时音频和逐帧判断应先进行兼容性测试。
验收:连续操作无明显输入阻塞,关键音画同步点经过复核。使用固定预设输出,保存编码日志。成片生成后先在节点内检查时长、帧率、音轨和文件大小,再回传团队存储并核对摘要。
验收:接收端文件摘要一致,工程归档包含预设和版本说明。Terminal mock
下面是示例执行记录。它展示 runner 接单、依赖缓存命中、xcodebuild 测试和 fastlane 上传四个阶段,以及每一阶段需要保留的标识与退出状态。
09:41:02 runner accepted job build-1842
09:41:02 checkout commit 8f31c2a · branch release
09:41:03 workspace /Users/runner/work/build-1842
09:41:04 cache key xcode-m4-lock-77d1
09:41:04 cache HIT · restored dependencies
09:41:07 toolchain Xcode selected · configuration Release
09:41:08 test xcodebuild test -scheme App -destination platform=macOS
09:42:46 test executed 128 tests · 0 failures
09:42:46 test result bundle saved
09:42:48 archive xcodebuild archive -scheme App
09:44:19 archive SUCCEEDED · App.xcarchive
09:44:20 deliver fastlane upload_artifact
09:44:37 deliver artifact uploaded · checksum verified
09:44:38 runner job completed · exit 0
09:44:38 cleanup workspace removed · cache retained
Migration path
迁移不是复制整个用户目录。先分离项目数据与可再生数据,再复刻工具链,最后接入 CI。每一步通过验收后再进入下一步,可以缩小故障范围。
按代码、项目资源、签名材料、缓存与输出文件分类。代码优先通过版本库同步;大文件采用支持增量续传的方式;缓存和可重新生成的产物不作为首批输入。
代码提交一致;关键文件摘要一致;工程引用路径没有指向本地旧目录;敏感材料仅对指定账户可读。
从版本清单重建 Xcode、命令行工具、包管理器和项目依赖。将环境变量、脚本入口和构建参数纳入项目文档,避免只存在于个人终端配置中。
空缓存构建成功;测试数量与本地基线一致;归档结果可生成;所有必要环境参数都有来源记录。
将节点注册为 self-hosted runner,限制可执行项目和工作目录。先接入非发布任务,再逐步加入归档、签名与产物回传,避免一次迁移整条链路。
连续三次任务结果一致;失败任务可定位;取消后能继续接单;产物上传完成后通过大小与摘要检查。
数据错误、工具链漂移和 CI 配置问题具有不同修复路径。分阶段迁移可以避免把三类问题混成一次难以复现的失败。
Fit boundaries
云端 Mac 提供完整物理节点资源,但远程连接无法改变客户端到节点的网络路径,也不能替代必须接在使用者身边的实时设备。以下需求应先做小范围验证,再决定是否迁移完整流程。
需要持续连接本地采集卡、专业音频接口、摄像设备或其他低层硬件的流程,应先确认设备能否通过现有远程方案使用。
先测:设备识别、驱动兼容、断线恢复和数据回传路径。逐帧色彩判断、实时音频处理和对输入延迟高度敏感的操作,不应只根据普通桌面可用性判断。客户端网络抖动会直接影响体验。
先测:往返延迟、抖动、丢包、目标分辨率和连续操作时长。数百 GB 以上素材的首次同步时间主要取决于上传带宽和源数据位置。先测一组代表性文件,不能用短时峰值速度估算全部迁移。
先测:持续上传速度、续传能力、摘要耗时和团队存储位置。如果项目尚未区分代码、密钥、签名材料、客户数据和可再生缓存,应先完成分类、最小权限和备份设计,再进行迁移。
先测:权限边界、密钥轮换、日志脱敏和租期结束前的迁出流程。Start with one workflow
选择一个固定提交、一个明确命令和一个可校验产物。确认数据同步、远程连接、执行日志与输出回传都符合要求后,再扩展到完整团队流程。