RunLogosRunLogos

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 地址,显示结果与耗时

发布

  1. 点「发布…」,在「发布到 <环境>」中选择版本:「当前代码(HEAD)」,或「指定版本(tag、分支或 commit)」;
  2. 点「检查(dry-run)」:只做检查、不执行,展示将部署的版本、执行的脚本或工作流、工作目录与超时、门禁结论;
  3. 在确认层点「执行」。执行前会按已锁定的版本再预演一次,如果部署计划或门禁结论在这期间变了,会提示「部署计划或门禁结论已变化,请重新确认」,需要你重新确认;
  4. 部署中显示「正在部署到 <环境>」与已用时间;完成后显示「已部署 <版本> 到 <环境>」,失败时显示「部署未成功」及原因。

检查没通过时,确认层会给出对应的处理按钮:

情况提示可选操作
版本还没在上游通过已验证的冒烟晋级未满足「改发可晋级版本」改为发布上游已验证的版本;「仍要发布(越过晋级)…」必须填写越过理由,理由会写入部署账本,越过后仍需满足审批要求
环境要求审批,该版本尚未批准需要审批「批准并继续…」批准该版本后继续发布
环境声明的密钥变量未设置缺少密钥「去设置密钥」跳到「密钥」标签
该环境有未结束的部署该环境有未结束的部署见下文「环境占用」

确认层同时显示「等价命令」,方便你了解背后执行的 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)。点「设为提案默认…」或「取消提案默认」,确认层会说明:

  1. 需要部署的新提案不再询问部署到哪个环境,默认部署到该环境;你在需求里另行指定环境时以指定为准;
  2. 不决定提案是否需要部署:纯文档、纯规格类提案仍判为无需部署;
  3. 不授权自动部署:部署仍按半自动 / 全自动的既有规则执行;
  4. 部署方式、回滚、冒烟的依据不全时,AI 仍会询问缺的项。

确认后会写入 logos/environments.yaml 的 proposal_default_env。如果该环境要求审批或晋级,确认层也会提示提案部署会停在「等待审批」或「晋级未满足」。

启用版本管理

部署、晋级、回滚、审批都以 git 提交作为版本号。项目还不是 git 仓库(或还没有任何提交)时,面板显示横幅「部署需要版本管理」,点「启用版本管理…」,确认后依次执行:

  1. 创建本地 git 仓库;
  2. 把依赖目录、构建产物和疑似密钥文件加入忽略列表(疑似密钥文件始终忽略,不能取消);
  3. 本机还没有 git 用户名与邮箱时,设置只写入这个仓库的提交身份;
  4. 暂存区已有命中忽略项或疑似密钥的路径时,从暂存区移除这些路径(工作区文件保留);
  5. 创建初始提交,提交前核对实际暂存列表,仍含 .env 等路径时中止、不提交。

只在本机建仓库,不需要远程或 GitHub。某一步失败时,已完成的步骤不会自动撤销;处理后再次点「启用版本管理…」,已完成的步骤会跳过。

环境占用

同一环境同一时间只允许一次部署。部署进行中不提供「停止」。如果一次部署的结果没能确认(例如 CI 运行观察超时),环境会保持占用:

  • 核对远程状态(仅 ci 方式):按运行身份查询流水线结果并补记;
  • 放弃该占用…:把这次部署记为结果未知并释放环境,之后可以重新部署。远程若仍在运行不会被停止。

下一步