跳转到主要内容
用于快速查阅 environment.yaml 语法和行为的参考文档。有关相关概念和指南,请参阅 环境配置

字段参考

顶层字段

字段类型必填执行阶段说明
initialize字符串或列表仅构建时一次性设置命令。结果会保存到机器镜像中。应具备幂等性。
maintenance字符串或列表构建 + 会话开始时重复执行的依赖命令。应保持快速且支持增量执行。
knowledge对象列表从不 (仅供参考)在会话开始时加载到 Devin 上下文中的信息。

步骤字段 (展开形式)

字段类型必填说明
namestring显示在构建日志中的易读标签,便于更轻松地识别失败。
runstring要执行的 Shell 命令。支持多行字符串。未设置 run 的步骤会被跳过。

Knowledge 条目字段

字段类型必填说明
namestring标识符 (例如 testlintstartuparchitecturenotes) 。
contentsstring供参考的内容。不会作为命令执行。

执行细节

  • 命令会在启用 set -ebash 中运行——如果任何一行失败,该步骤会立即停止。
  • 仓库级命令会从 仓库根目录 (~/repos/<repo-name>) 运行。Enterprise 和组织级命令会从 主目录 (~) 运行。
  • 展开形式中的每个步骤都会在各自独立的 shell 上下文中运行。
作用域超时时间
单个命令1 小时
总构建2 小时
最佳实践:
  • 对子目录中的命令使用 subshell(cd packages/frontend && npm install)
  • maintenance 中优先使用 增量安装 (例如,使用 npm install 而不是 npm ci) 。
  • maintenance 中避免使用 构建命令 (npm run buildmake) ——它们会在每次会话中运行。
  • 添加 -y 标志以避免交互式提示:sudo DEBIAN_FRONTEND=noninteractive apt-get install -y
  • 命令应当 可以安全地重复运行——maintenance 会在每次会话中运行。

预装工具

Devin 的基础镜像 (Ubuntu 22.04、x86_64) 已预装以下工具,你无需另行安装。
Category已包含
LanguagesNode.js (通过 nvm) 、Python 3.12 (通过 pyenv,另可用 3.9–3.11) 、Rust (通过 rustup) 、Java (OpenJDK 17) 、Scala、Go
Package managersnpm、yarn、pnpm、pip、cargo
Version controlgit、gh (GitHub CLI) 、git-lfs
ContainersDocker (含 Compose 插件——请使用 docker compose,不要使用 docker-compose)
Build toolsmake、build-essential (gcc、g++)
Utilitiescurl、wget、jq、ripgrep、direnv、awscli、ffmpeg、Homebrew、OpenVPN
BrowsersChrome (用于浏览器测试)
此列表可能不完全。你可以在 Devin 会话中运行 which <tool><tool> --version 进行检查。如果缺少某个工具,请在你的 initialize 部分中安装。

术语表

术语定义
配置已保存的环境配置 (即 YAML 内容) 。每个 代码仓库/org/enterprise 都有各自的配置。
配置版本配置的某个特定修订版本。每次保存都会创建一个新版本。
构建执行你的配置以创建机器镜像的过程。
机器镜像成功构建后生成的已保存环境。会话会从最新的成功镜像启动。
已配置具有显式 YAML 配置 (initialize/maintenance/knowledge) 的代码仓库。
已包含已克隆到机器镜像中、但没有自定义配置的代码仓库。
可用org 可访问但未添加到环境中的代码仓库。
$ENVRC用于设置环境变量的特殊文件,类似于 GitHub Actions 的 $GITHUB_ENV
部分成功指核心部分成功,但某些代码仓库级设置失败的构建。

后续步骤