3文档

Studio · 搭建 Studio

连接 CI

把代码仓库的 CI 连接到 Studio:每个 PR 部署一个预览,合并和发布后部署到预发布和生产环境。

Studio 不自己构建代码,构建和部署由代码仓库的 CI 完成,例如 GitHub Actions 或 GitLab CI。CI 连接到 Studio 之后:

  • 每个 PR 部署一个预览,任务负责人验收时可以亲自试一遍;
  • 推送到分支或打标签时,部署到预发布或生产环境,受保护的环境要经审批人批准;
  • 任务上会标出改动已经部署到哪个环境。

不连接 CI,Agent 团队照样开发、开 PR,只是没有预览和部署。

先确认两件事

  • CI 能访问 Studio。 CI 构建完,要把产物上传到 Studio 的地址。Studio 只在内网时,云端的 CI(例如 GitHub 托管的 Actions)访问不到它,请用能访问 Studio 的自托管 CI 执行机,或者给 Studio 配置公网地址。
  • 有要部署到的环境。 Studio 默认有一个「预览」环境,PR 的预览部署在这里。预发布、生产环境由管理员添加,见 部署环境。

接入 CI

每次接入一个应用的一种触发方式。要给 PR 做预览、又要部署到预发布,就接入两次。

  1. 打开项目,进入「项目设置 › 部署」,点「接入 CI」。

  2. 「触发方式」选一种:

    触发方式 部署什么 默认的环境
    Pull request 每个改动了应用的 PR 部署成一个单独的应用,合并或关闭后删除 预览
    推送到分支 每次推送到这个分支时构建并部署,默认是仓库的默认分支 预发布(名为 staging 的环境)
    标签 每个匹配的标签构建并部署,默认匹配 v* 受保护的环境,例如生产
  3. 「环境」默认跟着触发方式走,也可以改。受保护的环境会标出来:CI 的每次部署都会变成一份等审批人批准的申请。

  4. 「应用」填写应用在仓库里的目录(在根目录就填 .)和应用 ID。PR 的预览部署到 <应用 ID>-pr-<编号>。

  5. 选择接入的方式,二选一:

    • 模板:复制 CI 文件,以及保存 CI 密钥的命令,自己提交到仓库、运行命令。
    • 给你的 Agent 的提示词:同样的内容写成提示词,交给你本地的编码工具,由它提交 CI 文件、保存密钥。

Studio 不会往仓库里写任何东西,CI 文件和密钥都由你或你的编码工具提交和保存。GitHub 上,CI 文件是 .github/workflows/nb-studio-<应用>-<用途>.yml,读取 Actions 密钥 NB_STUDIO_API_KEY;GitLab 上,CI 文件放在 .gitlab/ 下,由仓库的 .gitlab-ci.yml 引用。

仓库的 CI 密钥

CI 用一个属于组织的 API 密钥向 Studio 上传和部署,它不属于任何个人,接入 CI 的人离开团队也不受影响。生成密钥需要能管理这个项目,例如项目负责人。

  • 密钥只在生成时显示一次,Studio 不保存它。模板和提示词里的命令,会把它直接存进代码托管平台的 CI 密钥,不经过屏幕。
  • 密钥 90 天到期。到期前 14 天、前 3 天和到期当天,Studio 会在收件箱提醒项目负责人和管理员,附上更换密钥的命令。
  • 在「设置 › API 密钥」里能看到它,标着由哪个仓库管理。停用或删除它,CI 就停止部署。

确认接入成功

CI 第一次上报后,「项目设置 › 部署」的「CI 状态」里列出 CI 部署的应用,按环境分组,显示最近一次构建和部署。还没有上报时,显示等待第一次上报。

完成的标志开一个 PR 后,任务页上出现它的预览,可以打开、用初始管理员登录。

预览

  • 预览用示例数据,管理员账号由 Studio 自动生成,不包含企业的真实数据。能编辑任务的人可以在任务页看到初始管理员的账号和密码。
  • 预览环境最多同时运行 20 个预览,10 分钟没人访问就停止,24 小时后休眠,有人访问时再启动。这些默认值在「发布 › 部署环境」里调整。
  • PR 合并或关闭后,它的预览自动删除。
  • 不需要预览的任务,在任务的属性里打开「不需要预览」,Agent 会给 PR 加上 no-preview 标签,CI 模板据此跳过预览。

接着 走完第一个需求。

NocoBase 3 文档 · 草稿 2026-10-24