environment.yaml の構文と動作をすばやく参照できるリファレンスです。概念やガイドについては、環境設定を参照してください。
| フィールド | 型 | 必須 | 実行タイミング | 説明 |
|---|
initialize | string または list | いいえ | ビルド のみ | 1回限りのセットアップコマンド。実行結果はマシンイメージに保存されます。冪等である必要があります。 |
maintenance | string または list | いいえ | ビルド + セッション開始時 | 依存関係に関する定期実行コマンド。高速で、増分的に実行できるようにしてください。 |
knowledge | オブジェクトの list | いいえ | 実行されない (参照のみ) | セッション開始時に Devin の前提情報に読み込まれる情報。 |
| フィールド | 型 | 必須 | 説明 |
|---|
name | string | いいえ | ビルドログに表示される、判別しやすいラベルです。失敗箇所を特定しやすくなります。 |
run | string | いいえ | 実行するシェルコマンドです。複数行の文字列にも対応しています。run のない ステップ はスキップされます。 |
| フィールド | 型 | 必須 | 説明 |
|---|
name | string | はい | 識別子 (例: test、lint、startup、architecture、notes) 。 |
contents | string | はい | 参照内容。コマンドとしては実行されません。 |
- コマンドは bash で
set -e を有効にして実行されます。いずれかの行で失敗すると、そのステップは直ちに停止します。
- リポジトリ 固有のコマンドは リポジトリ root (
~/repos/<repo-name>) から実行されます。Enterprise および 組織全体のコマンドは ホームディレクトリ (~) から実行されます。
- expanded form の各ステップは、それぞれ独自のシェル前提情報で実行されます。
| Scope | Timeout |
|---|
| 個々のコマンド | 1時間 |
| ビルド 全体 | 2時間 |
ベストプラクティス:
- サブディレクトリでコマンドを実行する場合は、subshell を利用してください:
(cd packages/frontend && npm install).
maintenance では 増分インストール を優先してください (例: npm ci ではなく npm install) 。
maintenance では ビルド コマンド (npm run build, make) を避けてください。これらは毎セッション実行されます。
- 対話型の prompt を防ぐため、
-y フラグを追加してください: sudo DEBIAN_FRONTEND=noninteractive apt-get install -y.
- コマンドは 複数回実行しても安全 である必要があります。
maintenance は毎セッション実行されます。
Devinのベースイメージ (Ubuntu 22.04、x86_64) には、以下のツールが含まれています。これらをインストールする必要はありません。
| カテゴリ | 含まれるツール |
|---|
| 言語 | Node.js (nvm経由) 、Python 3.12 (pyenv経由、3.9〜3.11も利用可能) 、Rust (rustup経由) 、Java (OpenJDK 17) 、Scala、Go |
| パッケージマネージャ | npm、yarn、pnpm、pip、cargo |
| バージョン管理 | git、gh (GitHub CLI) 、git-lfs |
| コンテナ | Docker (Composeプラグイン付き — docker compose を利用し、docker-compose は利用しないでください) |
| ビルドツール | make、build-essential (gcc、g++) |
| ユーティリティ | curl、wget、jq、ripgrep、direnv、awscli、ffmpeg、Homebrew、OpenVPN |
| ブラウザ | Chrome (ブラウザベースのテスト用) |
この一覧は網羅的ではない可能性があります。確認するには、Devin セッションで which <tool> または <tool> --version を実行してください。必要なものが見つからない場合は、initialize セクションでインストールしてください。
| Term | Definition |
|---|
| 設定 | 保存された環境設定 (YAML の内容) です。リポジトリ / 組織 / enterprise ごとに、それぞれ固有の設定があります。 |
| 設定バージョン | 設定の特定のリビジョンです。保存のたびに新しいバージョンが作成されます。 |
| ビルド | 設定を実行してマシンイメージを作成するプロセスです。 |
| マシンイメージ | ビルドの成功によって作成される、保存済みの環境です。セッションは最新の成功したイメージから起動します。 |
| 設定済み | 明示的な YAML 設定 (initialize/maintenance/knowledge) がある リポジトリ です。 |
| 含まれる | マシンイメージにクローンされるものの、カスタム設定はない リポジトリ です。 |
| 利用可能 | 組織 からアクセスできるものの、環境には追加されていない リポジトリ です。 |
| $ENVRC | 環境変数を設定するための特別なファイルです。GitHub Actions の $GITHUB_ENV に似ています。 |
| 部分的成功 | 中核部分は成功したものの、一部の リポジトリ レベルの設定が失敗したビルドです。 |