目标区域
在新加坡、日本(东京)、韩国(首尔)和香港中选择离主要开发者或制品存储路径更合适的区域。不要只按个人所在地判断,也要考虑代码仓库与依赖源的网络路径。
SG · JP · KR · HK先选定区域、机型与周期,再完成凭据加固、SSH 验证、图形桌面初始化和首个 Xcode 构建。每一步都留下可复查的状态记录。
选型不是只看芯片。区域、访问方式、工具链版本和团队责任人会直接影响节点开通后的第一小时。
在新加坡、日本(东京)、韩国(首尔)和香港中选择离主要开发者或制品存储路径更合适的区域。不要只按个人所在地判断,也要考虑代码仓库与依赖源的网络路径。
SG · JP · KR · HK轻量构建可从 Orb M4 16 开始;更大的依赖图和并行任务可评估 Orb M4 24;高内存构建或本地 AI 实验选择 Orb M4 Pro。
共 3 档配置短期验证可选日或周,稳定流水线可选月或季。先记录内部验收时间,再决定是否续期,避免将业务发布节点交给无人跟进的临时订单。
日 · 周 · 月 · 季准备专用于该节点的 Ed25519 公钥,并确认私钥只保存在授权设备或受控密钥系统中。不要复制个人日常密钥作为团队共享凭据。
推荐 Ed25519明确节点负责人、CI 管理者和故障联系人。每位成员使用独立密钥,保留加入、变更和撤销记录,不用一份凭据覆盖整个团队。
一人一份凭据提前锁定 macOS、Xcode、命令行工具、Ruby、Node、CocoaPods 和依赖管理器版本。把版本要求写进仓库,节点初始化时逐项核对。
版本必须可复现控制台会按机型展示可选区域。目录内组合常态可订,实际可用状态以控制台实时返回为准。
Orb M4 16 为 M4、16GB 内存、256GB 存储;Orb M4 24 为 M4、24GB 内存、512GB 存储;Orb M4 Pro 为 M4 Pro、64GB 内存、2TB 存储。
区域可选新加坡、日本(东京)、韩国(首尔)或香港;周期可选日、周、月或季。团队应把区域代码和续期时间写入内部资产记录。
确认机型、区域、周期和附加项后完成下单。节点地址、初始访问资料与服务状态会在控制台中提供,不要通过非授权渠道转发。
初始资料只用于建立第一条受控连接。完成密钥验证、访问调整和恢复记录前,不要导入生产仓库或签名材料。
开发者密钥用于交互排查,运行器密钥只授予流水线所需权限。成员离开团队时撤销对应公钥,不更换全员共用凭据。
网络、SSH 或图形会话设置变更前,保留当前可用会话,并确认控制台中的恢复信息已经由第二位负责人复核。
不要跳过主机指纹核对。地址与端口来自控制台,可信指纹应通过团队已确认的交付记录比对。
# 仅在已取得控制台地址后设置变量
export NODE_HOST="节点地址"
export NODE_PORT="22"
# 修正专用私钥权限
chmod 600 ~/.ssh/orbvps_node
# 读取并显示主机指纹,随后与交付记录核对
ssh-keyscan -p "$NODE_PORT" "$NODE_HOST" \
| ssh-keygen -lf -
# 发起首次连接
ssh -p "$NODE_PORT" \
-i ~/.ssh/orbvps_node \
nodeadmin@"$NODE_HOST"
# 登录后确认硬件、系统与磁盘状态
$ uname -m
arm64
$ sw_vers
$ sysctl -n machdep.cpu.brand_string
$ df -h /
$ uptime
图形桌面适合完成显示、系统偏好和 Xcode 首次交互设置。公开页面不提供连接凭据,具体地址与访问资料只在开通后查看。
每项设置完成后退出并重新连接一次,确认配置在新会话中仍然有效。
先选择适合当前网络和屏幕的分辨率。文字过小或画面延迟明显时,优先降低分辨率,再评估网络路径。
统一团队约定的系统语言、地区格式和时区,使构建日志、日期输出与自动化脚本保持一致。
确认锁屏不会中断需要持续运行的任务,同时限制未授权访问。交互会话和 CI 任务应分别验证。
主动断开一次图形会话,再重新连接并确认桌面状态、分辨率和正在运行的进程符合预期。
迁移分三段进行。先移动可验证的数据,再锁定工具链,最后接入 CI。不要把仓库、依赖和自动化配置一次性无检查地复制过去。
只迁移需要的仓库、依赖锁文件、构建脚本和测试数据。排除临时缓存、旧制品及无主文件,迁移后校验仓库状态与关键文件摘要。
按仓库要求安装 Xcode、命令行工具和依赖管理器。将实际版本输出保存到基线记录,不以“最新版”代替明确版本号。
注册 self-hosted runner 后先运行受控测试任务。确认失败日志、缓存清理和恢复步骤可执行,再逐步接入正式分支。
迁移完成标准:同一提交在本地和云端 Mac 上使用已记录的工具链完成构建,关键测试结果一致,并且能够按文档重新部署。
第一次构建的目标不是追求最短耗时,而是证明工具链、依赖、权限和输出路径均可重复。
确认当前选择的开发者目录、Xcode 版本和可用 SDK 与项目要求一致。
接受 Xcode 许可后,严格依据锁文件安装 Ruby、Node、CocoaPods 或其他项目依赖。
明确指定 workspace、scheme 和 configuration,并将完整标准输出保存到独立日志文件。
记录提交号、工具链版本、开始与结束时间、退出码及制品位置,作为后续变更对照。
$ xcode-select -p
/Applications/Xcode.app/Contents/Developer
$ xcodebuild -version
Xcode <项目要求版本>
$ sudo xcodebuild -license accept
$ bundle install
$ bundle exec pod install
$ mkdir -p build-logs
$ set -o pipefail
$ xcodebuild \
-workspace App.xcworkspace \
-scheme App \
-configuration Release \
clean build \
| tee build-logs/first-success.log
** BUILD SUCCEEDED **
self-hosted runner 接入后,先用专用标签和测试分支限制范围,再逐步开放正式构建。
任务只执行环境输出、依赖恢复、单元测试和一次无发布动作的构建。确认标签路由正确、日志完整、缓存可清理、失败时能停止后,再接入正式分支。
把下面的检查结果写进团队运行手册。节点可以全年运行,但构建流程仍需要明确的数据、监控和响应责任。
仓库、构建配置、密钥恢复信息和必要制品均有节点之外的副本,并完成一次恢复验证。
已验证恢复至少记录磁盘余量、构建退出码、任务等待时间和运行器在线状态,并定义异常阈值。
指标有负责人主负责人和替补负责人都能访问节点记录、构建日志与控制台工单,交接路径已经写明。
主备联系人齐全订单周期和内部确认时间已登记,不依赖单个成员记忆。配置变更前先评估现有任务窗口。
周期已登记已列出人员密钥、运行器密钥和对应权限,能够在不影响其他成员的情况下单独撤销。
一项一份记录节点编号、发生时间、复现步骤和脱敏日志可随时整理,并能由授权成员登录控制台提交工单。
材料可直接提交选择机型、区域与周期,开通后按本指南完成安全接入、首次构建和 CI 验收。