Pular para o conteúdo 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.

O Devin oferece suporte ao Windows como plataforma de build e sessão. Os ambientes do Windows usam o mesmo shell bash (Git Bash) do Linux, então a maioria dos comandos de blueprint funciona nas duas plataformas sem necessidade de modificação.
No momento, o suporte ao Windows está disponível de forma limitada. Se você tiver interesse em usar o Windows com Devin, entre em contato conosco para saber mais e obter acesso.

Como funciona

O suporte ao Windows é baseado no mesmo sistema de configuração declarativa do Linux. A principal diferença é o campo runs-on no seu blueprint, que informa ao Devin em qual plataforma fazer build e executar. Como ambas as plataformas usam bash, você pode escrever os mesmos comandos de shell no Linux e no Windows. As principais diferenças estão na estrutura do sistema de arquivos e nos gerenciadores de pacotes disponíveis:
AspectoLinux (padrão)Windows
Diretório home/home/ubuntu/c/Users/Administrator
Diretório do repositório~/repos/<repo-name>/c/Users/Administrator/repos/<repo-name>
Gerenciador de pacotesapt-getchoco, winget ou instaladores diretos

Como escrever blueprints para Windows

Blueprint de plataforma única

Se o seu repositório for compatível apenas com Windows, use runs-on: windows no nível 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 fazer o build do mesmo repositório tanto em Linux quanto em Windows, use o formato YAML de múltiplos blocos. Cada bloco declara seu próprio rótulo 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 bloco gera um build do snapshot separado para sua plataforma. As sessões são inicializadas a partir do snapshot específico da plataforma.

O campo runs-on

O campo runs-on corresponde a uma configuração de máquina registrada na sua conta:
ValorPlataforma
default ou linuxLinux (plataforma padrão)
windowsWindows
Você pode especificar runs-on como uma string ou uma lista:
# Plataforma única
runs-on: windows

# Múltiplas plataformas em um bloco (os mesmos comandos são executados em cada uma)
runs-on: [default, windows]
Quando um bloco lista várias plataformas, o sistema de build cria um snapshot por plataforma usando os mesmos comandos.
A sintaxe de lista executa comandos idênticos em todas as plataformas da lista. Use-a apenas quando os comandos forem realmente compatíveis com várias plataformas (e.g., npm install, uv sync). Para comandos específicos de cada plataforma (como apt-get no Linux ou choco no Windows), use o formato com vários blocos — um bloco por plataforma.

Comportamento da sessão no Windows

Shell

Nas sessões do Windows, o Git Bash é usado como shell padrão — o mesmo bash usado no Linux. A sintaxe padrão do bash funciona em ambas as plataformas:
- run: |
    export MY_VAR="hello"
    echo $MY_VAR

Caminhos

O Windows usa o formato de caminho do Git Bash (/c/... em vez de C:\...):
# Caminhos Linux
- run: cp config.json ~/.config/myapp/config.json

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

Segredos

Os segredos ficam disponíveis como variáveis de ambiente durante as sessões, usando a sintaxe padrão do bash ($SECRET_NAME):
maintenance:
  - name: "Configure registry"
    run: |
      npm config set //registry.npmjs.org/:_authToken $NPM_TOKEN

Arquivos anexados

No Windows, os arquivos importados são gravados em /c/Users/Administrator/.files/ em vez de /home/ubuntu/.files/.

Dicas de Blueprint para Windows

Instalação de ferramentas

Use choco (Chocolatey), winget ou scripts de download direto:
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

Padrões comuns

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