Saltar al contenido principal

Documentation Index

Fetch the complete documentation index at: https://docs.devinenterprise.com/llms.txt

Use this file to discover all available pages before exploring further.

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

Plantilla multiplataforma

Para compilar el mismo repositorio tanto en Linux como en Windows, usa el formato YAML de varios bloques. Cada bloque declara su propia etiqueta runs-on:
- 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 bloque 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 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 bloques: un bloque por plataforma.

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/.

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