RunLogos 环境面板
环境面板是 RunLogos 1.0.4 起提供的环境管理界面:你在这里查看每个环境当前跑的版本、最近一次冒烟结果,并完成发布、晋级、回滚、冒烟、审批、密钥与配置管理。面板上的每个操作背后都是 OpenLogos 命令,规则与终端执行完全一致。
环境管理的整体概念与门禁规则见 概览与上手。
入口
- 菜单:项目 → 环境...,打开「环境管理」窗口。
- OPENLOGOS 侧栏「环境」卡:项目有
logos/environments.yaml时才出现。每行显示一个环境的名称、层级、「提案默认」徽标、当前版本、冒烟状态(「未冒烟」「冒烟通过」「冒烟通过 · 已验证」「冒烟失败」),有待批准版本时显示「N 个版本待批准」。点卡片右上角「管理 ›」打开「环境管理」。 - 还没有登记表:「环境管理」显示「这个项目还没有登记环境」,可以点「新建登记表」用表单填写,也可以对 Agent 说「按部署方案生成环境登记表」。
版本门槛:环境面板需要 OpenLogos CLI ≥ 0.16.7。CLI 版本过低时,侧栏卡片提示「环境管理需要 openlogos … 及以上(当前 …)」,「管理 ›」不可点。运行 npm install -g @miniidealab/openlogos@latest 升级后重新打开项目即可。
四个标签
「环境管理」左侧是环境列表(底部「+ 新增环境」),右侧是选中环境的四个标签:
| 标签 | 内容 |
|---|---|
| 概览 | 当前版本、上一个版本、最近部署、最近冒烟、晋级来源与可晋级版本、部署方式、提案默认;以及各项操作按钮 |
| 历史 | 该环境的部署、冒烟、审批记录(时间、类型、结果、版本、通道 / 方式、提案) |
| 密钥 | 部署时需要的环境变量:变量名与「已设置 / 未设置」状态 |
| 配置 | 用表单编辑该环境在登记表中的定义 |
「概览」的操作按钮:
| 按钮 | 作用 |
|---|---|
| 晋级到此环境 | 把上游环境已验证的版本发布到当前环境(配置了 promote_from 时出现) |
| 发布… | 选择版本发布到当前环境 |
| 回滚 → 上一个版本 | 重新部署该环境的上一个版本 |
| 运行冒烟 | 在当前环境执行冒烟测试 |
| 让 Agent 发布… | 把发布任务交给 Agent 执行 |
| 健康检查 | 访问登记表中的 health / version 地址,显示结果与耗时 |
发布
- 点「发布…」,在「发布到 <环境>」中选择版本:「当前代码(HEAD)」,或「指定版本(tag、分支或 commit)」;
- 点「检查(dry-run)」:只做检查、不执行,展示将部署的版本、执行的脚本或工作流、工作目录与超时、门禁结论;
- 在确认层点「执行」。执行前会按已锁定的版本再预演一次,如果部署计划或门禁结论在这期间变了,会提示「部署计划或门禁结论已变化,请重新确认」,需要你重新确认;
- 部署中显示「正在部署到 <环境>」与已用时间;完成后显示「已部署 <版本> 到 <环境>」,失败时显示「部署未成功」及原因。
检查没通过时,确认层会给出对应的处理按钮:
| 情况 | 提示 | 可选操作 |
|---|---|---|
| 版本还没在上游通过已验证的冒烟 | 晋级未满足 | 「改发可晋级版本」改为发布上游已验证的版本;「仍要发布(越过晋级)…」必须填写越过理由,理由会写入部署账本,越过后仍需满足审批要求 |
| 环境要求审批,该版本尚未批准 | 需要审批 | 「批准并继续…」批准该版本后继续发布 |
| 环境声明的密钥变量未设置 | 缺少密钥 | 「去设置密钥」跳到「密钥」标签 |
| 该环境有未结束的部署 | 该环境有未结束的部署 | 见下文「环境占用」 |
确认层同时显示「等价命令」,方便你了解背后执行的 OpenLogos 命令。
审批
配置了 require_approval: true 的环境,「概览」中会出现「审批」卡片:列出待批准版本与「已批准未使用」的版本。点「批准版本…」,确认版本、可选填写备注后点「批准」。
- 批准只放行这一个 commit,成功部署一次后即视为已使用;
- 背后执行的是
openlogos approve。它只能由人触发:在界面上点击,或在终端自己执行;Agent 没有审批入口,Agent 自己调用该命令会被拦下等你在宿主里批准。
运行冒烟
点「运行冒烟」,在弹窗中点「运行」。冒烟通过且计为「已验证」后,下游环境才能晋级这个版本。
如果结果显示「冒烟通过,但未计为已验证」,弹窗会列出原因,常见的有:
- 没有实际运行冒烟命令,只汇总了已有结果——需要在
logos/logos.config.json配置smoke.command; - 有结果没有声明验证的是哪个环境——冒烟 runner 需要在结果中写入
target_environment; - 有结果声明验证的是其他环境;
- 该环境最近一次部署未成功,或部署版本未知。
未验证的结果不能用于晋级。
有活跃提案时:冒烟属于提案流程,面板会提示你到 OPENLOGOS 面板执行,那里会按提案的 DEPLOY_DONE 记录的目标环境运行冒烟。
让 Agent 发布…
适合部署方式为 agent、或你希望 Agent 代为处理整个发布过程的情况。点「让 Agent 发布…」,确认环境与版本,预览「将发送给 Agent 的消息」,点「发送给 Agent」。Agent 完成后环境会自动刷新。
Agent 发布同样经过晋级与审批检查:遇到「需要审批」或「晋级未满足」时,Agent 会停下,由你批准版本或先在上游冒烟后再继续。
密钥
「密钥」标签管理部署时需要的令牌、密码等敏感值:
- 加密保存在本机:值使用系统加密存储(Electron safeStorage;macOS 由钥匙串保管加密密钥,Windows 使用 DPAPI)保存,不写入仓库;界面只显示「已设置 / 未设置」,不回显值。系统不提供加密存储时,RunLogos 不会以明文保存,需要你在启动 RunLogos 前自行 export 这些变量。
- 变量名写入登记表:点「+ 新增密钥」时,变量名会追加到
logos/environments.yaml中该环境的secrets;值可以稍后点「设置值」填写,也可以「更换值」「清除」「改名」「删除」。 - 注入范围:RunLogos 启动的
openlogos deploy、openlogos smoke、openlogos env check,Agent 面板中的 Agent 终端,以及无人值守驱动派发的 Agent,都会拿到保存的值。底部终端不注入。 - 修改后需要重启 Agent:已经在运行的 Agent 要重启后才能拿到新值。
- 多环境同名变量:同一个变量名在多个环境取值不同时,Agent 终端里不提供原名,改为别名
RUNLOGOS_ENV_<环境 id 大写>__<变量名>(环境 id 中的连字符编码为_2D)。建议按环境区分变量名(例如PROD_前缀),或用「让 Agent 发布…」。
从 Finder 或开始菜单启动的 RunLogos 拿不到你在 shell 配置里 export 的变量。部署报缺少密钥时,在「密钥」标签保存一次即可,不需要改 shell 配置。
配置
「配置」标签用表单编辑当前环境:基本信息(id、名称、层级、别名、说明、健康检查与版本地址)、部署(方式、脚本或工作流、参数、超时等)、密钥变量名、晋级与审批(promote_from、require_approval)。
- 只改你动过的字段:保存时只写入改动的字段,登记表原有的注释和格式保持不变;无法在保留原文格式的前提下写入时,会提示你「以文本打开」编辑。
- 防止覆盖外部修改:编辑期间登记表被 Agent 或其他编辑器改过时,本次不保存,可以「重新加载并放弃我的修改」。
- 保存后自动检查:保存后自动运行
openlogos env check并显示结果。 - 减弱门禁要二次确认:去掉审批、去掉晋级来源等会让门禁变松的修改,保存前会弹出「这次保存会减弱部署门禁」,确认后立即生效。
- 登记表只写脚本路径与参数,不写命令;改动部署脚本本身需要立案。
提案默认
「概览」中的「提案默认」行显示当前环境是否为提案默认部署环境(需要 OpenLogos CLI ≥ 0.16.7)。点「设为提案默认…」或「取消提案默认」,确认层会说明:
- 需要部署的新提案不再询问部署到哪个环境,默认部署到该环境;你在需求里另行指定环境时以指定为准;
- 不决定提案是否需要部署:纯文档、纯规格类提案仍判为无需部署;
- 不授权自动部署:部署仍按半自动 / 全自动的既有规则执行;
- 部署方式、回滚、冒烟的依据不全时,AI 仍会询问缺的项。
确认后会写入 logos/environments.yaml 的 proposal_default_env。如果该环境要求审批或晋级,确认层也会提示提案部署会停在「等待审批」或「晋级未满足」。
启用版本管理
部署、晋级、回滚、审批都以 git 提交作为版本号。项目还不是 git 仓库(或还没有任何提交)时,面板显示横幅「部署需要版本管理」,点「启用版本管理…」,确认后依次执行:
- 创建本地 git 仓库;
- 把依赖目录、构建产物和疑似密钥文件加入忽略列表(疑似密钥文件始终忽略,不能取消);
- 本机还没有 git 用户名与邮箱时,设置只写入这个仓库的提交身份;
- 暂存区已有命中忽略项或疑似密钥的路径时,从暂存区移除这些路径(工作区文件保留);
- 创建初始提交,提交前核对实际暂存列表,仍含
.env等路径时中止、不提交。
只在本机建仓库,不需要远程或 GitHub。某一步失败时,已完成的步骤不会自动撤销;处理后再次点「启用版本管理…」,已完成的步骤会跳过。
环境占用
同一环境同一时间只允许一次部署。部署进行中不提供「停止」。如果一次部署的结果没能确认(例如 CI 运行观察超时),环境会保持占用:
- 核对远程状态(仅
ci方式):按运行身份查询流水线结果并补记; - 放弃该占用…:把这次部署记为结果未知并释放环境,之后可以重新部署。远程若仍在运行不会被停止。
下一步
- 回到 概览与上手 了解门禁与硬停点
- 全自动驱动停在「等待审批」:见 遇阻与恢复
- 登记表字段与命令参数:OpenLogos 官网 环境登记表规范、
deploy命令、approve命令