Saltar al contenido principal
Devin es compatible con Windows como plataforma de compilación y de sesiones. Los entornos de Windows usan el mismo shell de bash (Git Bash) que Linux, por lo que la mayoría de los comandos de plantilla funcionan en ambas plataformas sin modificaciones.
La compatibilidad con Windows está disponible actualmente de forma limitada. Si te interesa probar Windows con Devin, contáctanos para obtener más información y solicitar acceso.

Cómo funciona

La compatibilidad con Windows se basa en el mismo sistema de configuración declarativa que Linux. La principal diferencia está en el campo runs-on de tu plantilla, que le indica a Devin en qué plataforma debe compilarse y ejecutarse. Como ambas plataformas usan bash, puedes escribir los mismos comandos de shell tanto en Linux como en Windows. Las principales diferencias están en la estructura del sistema de archivos y en los gestores de paquetes disponibles:
AspectoLinux (predeterminado)Windows
Directorio de inicio/home/ubuntu/c/Users/Administrator
Directorio del repositorio~/repos/<repo-name>/c/Users/Administrator/repos/<repo-name>
Gestor de paquetesapt-getchoco, winget o instaladores directos

Crear plantillas para Windows

Plantilla para una sola plataforma

Si tu repositorio solo es compatible con Windows, usa runs-on: windows en el nivel superior:
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

Blueprint multiplataforma

Para compilar el mismo repositorio tanto en Linux como en Windows, escribe cada plataforma como un documento YAML independiente, separado por ---. Cada documento declara su propia etiqueta runs-on. Consulta el recuadro de YAML de varios documentos en la guía de blueprints para obtener más contexto sobre este formato.
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
Cada documento genera una compilación de instantánea independiente para su plataforma. Las sesiones se inician a partir de la instantánea específica de la plataforma.
El YAML de nivel superior debe ser un mapeo, no una secuencia. Si escribes el ejemplo anterior como una sola lista (- runs-on: default / - runs-on: windows), el backend lo rechazará con Invalid YAML: each YAML document must be a mapping, not a sequence; use '---' to separate multiple blocks. Usa el separador --- que se muestra arriba.

El campo runs-on

El campo runs-on corresponde a una configuración de máquina registrada en tu cuenta:
ValorPlataforma
default o linuxLinux (plataforma predeterminada)
windowsWindows
Puedes especificar runs-on como una cadena o una lista:
# Plataforma única
runs-on: windows

# Múltiples plataformas en un bloque (los mismos comandos se ejecutan en cada una)
runs-on: [default, windows]
Cuando un bloque enumera múltiples plataformas, el sistema de compilación crea una instantánea por plataforma con los mismos comandos.
La sintaxis de lista ejecuta comandos idénticos en cada plataforma de la lista. Úsala solo cuando los comandos sean realmente multiplataforma (e.g., npm install, uv sync). Para comandos específicos de cada plataforma (como apt-get en Linux o choco en Windows), usa en su lugar el formato de múltiples documentos: un documento por plataforma, separado por ---.

Comportamiento de la sesión en Windows

Shell

Las sesiones de Windows usan Git Bash como shell predeterminado, el mismo shell de bash que se usa en Linux. La sintaxis estándar de bash funciona en ambas plataformas:
- run: |
    export MY_VAR="hello"
    echo $MY_VAR

Rutas

Windows usa el formato de rutas de Git Bash (/c/... en lugar de C:\...):
# Rutas de Linux
- run: cp config.json ~/.config/myapp/config.json

# Rutas de Windows (formato Git Bash)
- run: cp config.json /c/Users/Administrator/.config/myapp/config.json

Secretos

Los secretos están disponibles como variables de entorno durante las sesiones y se usan con la sintaxis estándar de bash ($SECRET_NAME):
maintenance:
  - name: "Configure registry"
    run: |
      npm config set //registry.npmjs.org/:_authToken $NPM_TOKEN

Archivos adjuntos

En Windows, los archivos subidos se guardan en /c/Users/Administrator/.files/ en lugar de en /home/ubuntu/.files/.

Computer Use

Computer Use es totalmente compatible con las sesiones de Windows. Devin dispone de un entorno de escritorio de Windows con acceso a Chrome, mouse y teclado, por lo que puede probar apps web, así como aplicaciones de escritorio nativas de Windows (p. ej., apps de WPF y WinForms) y registrar sus sesiones de testing.

Consejos sobre plantillas para Windows

Instalar herramientas

Usa choco (Chocolatey), winget o scripts de descarga directa:
initialize:
  - name: "Install Chocolatey packages"
    run: |
      choco install git -y
      choco install nodejs-lts -y
      choco install python --version=3.12 -y

  - name: "Install with winget"
    run: |
      winget install --id Microsoft.DotNet.SDK.8 --accept-source-agreements --accept-package-agreements

Patrones comunes

Proyecto .NET:
runs-on: windows

initialize:
  - name: "Install .NET SDK"
    run: |
      winget install --id Microsoft.DotNet.SDK.8 --accept-source-agreements --accept-package-agreements

maintenance: |
  dotnet restore

knowledge:
  - name: build
    contents: dotnet build
  - name: test
    contents: dotnet test
  - name: lint
    contents: dotnet format --verify-no-changes
Proyecto de 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