Devin は、ビルドおよびセッションのプラットフォームとして Windows をサポートしています。Windows 環境では Linux と同じ bash シェル (Git Bash) を利用するため、ほとんどのブループリントのコマンドは両方のプラットフォームでそのまま動作します。
Windows サポートは現在、限定提供です。Devin で Windows を試してみたい場合は、詳細の確認とアクセス権の取得について、お問い合わせください。
Windows サポートは、Linux と同じ宣言的構成システムに基づいています。主な違いはブループリントの runs-on フィールドで、ここで Devin がどのプラットフォームでビルドと実行を行うかを指定します。
どちらのプラットフォームでも bash を利用するため、Linux と Windows で同じシェルコマンドを記述できます。主な違いは、ファイルシステムの構成と利用可能なパッケージマネージャーです。
| 項目 | Linux (デフォルト) | Windows |
|---|
| ホームディレクトリ | /home/ubuntu | /c/Users/Administrator |
| リポジトリディレクトリ | ~/repos/<repo-name> | /c/Users/Administrator/repos/<repo-name> |
| パッケージマネージャー | apt-get | choco、または直接インストーラーの利用 |
リポジトリが Windows のみを対象とする場合は、トップレベルで runs-on: windows を利用します。
runs-on: windows
initialize:
- name: "Install Node.js"
uses: github.com/actions/setup-node@v4
with:
node-version: "20"
- name: "Install build tools"
run: |
choco install visualstudio2022buildtools -y
choco install python --version=3.12 -y
maintenance: |
npm install
knowledge:
- name: lint
contents: npm run lint
- name: test
contents: npm test
- name: build
contents: npm run build
同じリポジトリを Linux と Windows の両方でビルドするには、各プラットフォームを --- で区切られた個別の YAML ドキュメントとして記述します。各ドキュメントで、それぞれ独自の runs-on ラベルを指定します。この形式の背景については、ブループリントガイドの Multi-document YAML のコールアウトを参照してください。
runs-on: default
initialize: |
curl -LsSf https://astral.sh/uv/install.sh | sh
apt-get update && apt-get install -y build-essential
maintenance: |
uv sync
knowledge:
- name: test
contents: uv run pytest
---
runs-on: windows
initialize: |
choco install python --version=3.12 -y
maintenance: |
uv sync
knowledge:
- name: test
contents: uv run pytest
各ドキュメントごとに、そのプラットフォーム用の個別のスナップショットのビルドが生成されます。セッションはプラットフォーム固有のスナップショットから起動します。
最上位の YAML は、シーケンスではなくマッピングである必要があります。上記の例を単一のリスト (- runs-on: default / - runs-on: windows) として記述すると、バックエンドで Invalid YAML: each YAML document must be a mapping, not a sequence; use '---' to separate multiple blocks として拒否されます。上記の --- 区切りを利用してください。
runs-on フィールドは、アカウントに登録されているマシン構成に対応します。
| Value | Platform |
|---|
default or linux | Linux (デフォルトのプラットフォーム) |
windows | Windows |
runs-on は、文字列またはリストで指定できます。
# 単一プラットフォーム
runs-on: windows
# 1つのブロックに複数のプラットフォームを指定(同じコマンドが各プラットフォームで実行される)
runs-on: [default, windows]
ブロックに複数のプラットフォームが列挙されている場合、ビルドシステムは同じコマンドを使って、各プラットフォームごとに1つのスナップショットを作成します。
リスト構文では、リスト内のすべてのプラットフォームで同一のコマンドが実行されます。コマンドが真にクロスプラットフォーム対応である場合にのみ利用してください (例: npm install、uv sync) 。プラットフォーム固有のコマンド (Linux の apt-get や Windows の choco など) には、代わりに マルチドキュメント形式 を利用してください。プラットフォームごとに1つのドキュメントを使用し、--- で区切ります。
Windowsセッションでは、デフォルトのシェルとして Git Bash を使用します。これは Linux で使われているものと同じ bash シェルです。標準的な bash 構文は、どちらのプラットフォームでもそのまま使えます。
- run: |
export MY_VAR="hello"
echo $MY_VAR
Windows では Git Bash のパス形式 (C:\... ではなく /c/...) を使用します:
# Linuxのパス
- run: cp config.json ~/.config/myapp/config.json
# Windowsのパス(Git Bash形式)
- run: cp config.json /c/Users/Administrator/.config/myapp/config.json
セッション中は、標準的な bash 構文 ($SECRET_NAME) でシークレットを環境変数として利用できます。
maintenance:
- name: "Configure registry"
run: |
npm config set //registry.npmjs.org/:_authToken $NPM_TOKEN
Windows では、アップロードされたファイルは /home/ubuntu/.files/ ではなく、/c/Users/Administrator/.files/ に書き込まれます。
Computer Use は、Windows セッションで完全にサポートされています。Devin は、Chrome、マウス、キーボードを利用できる Windows デスクトップ環境を備えているため、Web アプリに加え、Windows ネイティブのデスクトップアプリケーション (例: WPF や WinForms アプリ) もテストし、そのテスト セッションを記録できます。
choco (Chocolatey) または直接ダウンロード用のスクリプトを利用します:
initialize:
- name: "Install Chocolatey packages"
run: |
choco install git -y
choco install nodejs-lts -y
choco install python --version=3.12 -y
choco install dotnet-sdk -y
.NET プロジェクト:
runs-on: windows
initialize:
- name: "Install .NET SDK"
run: |
choco install dotnet-sdk -y
maintenance: |
dotnet restore
knowledge:
- name: build
contents: dotnet build
- name: test
contents: dotnet test
- name: lint
contents: dotnet format --verify-no-changes
Visual Studio / C++ プロジェクト:
runs-on: windows
initialize:
- name: "Install Visual Studio Build Tools"
run: |
choco install visualstudio2022buildtools -y
choco install visualstudio2022-workload-vctools -y
maintenance: |
msbuild /t:Restore MySolution.sln
knowledge:
- name: build
contents: msbuild MySolution.sln /p:Configuration=Release
- name: test
contents: vstest.console.exe bin/Release/Tests.dll