Passer au contenu 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 prend en charge Windows comme plateforme pour les builds et les sessions. Les environnements Windows utilisent le même shell bash (Git Bash) que Linux ; la plupart des commandes de blueprint fonctionnent donc sur les deux plateformes sans modification.
La prise en charge de Windows est actuellement disponible de façon limitée. Si vous souhaitez essayer Windows avec Devin, veuillez nous contacter pour en savoir plus et obtenir un accès.

Fonctionnement

La prise en charge de Windows repose sur le même système de configuration déclarative que Linux. La principale différence réside dans le champ runs-on de votre blueprint, qui indique à Devin sur quelle plateforme effectuer le build et l’exécution. Comme les deux plateformes utilisent bash, vous pouvez écrire les mêmes commandes shell sur Linux et sur Windows. Les principales différences concernent l’organisation du système de fichiers et les gestionnaires de paquets disponibles :
AspectLinux (par défaut)Windows
Répertoire personnel/home/ubuntu/c/Users/Administrator
Répertoire du repo~/repos/<repo-name>/c/Users/Administrator/repos/<repo-name>
Gestionnaire de paquetsapt-getchoco, winget ou des installateurs directs

Créer des blueprints Windows

Blueprint pour une seule plateforme

Si votre dépôt cible uniquement Windows, utilisez runs-on: windows au niveau racine :
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 multiplateforme

Pour effectuer le build du même dépôt sous Linux et Windows, utilisez le format YAML à plusieurs blocs. Chaque bloc déclare son propre libellé 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
Chaque bloc produit un build du snapshot distinct pour sa plateforme. Les sessions démarrent depuis le snapshot propre à la plateforme.

Le champ runs-on

Le champ runs-on correspond à une configuration de machine enregistrée sur votre compte :
ValeurPlateforme
default ou linuxLinux (plateforme par défaut)
windowsWindows
Vous pouvez spécifier runs-on sous forme de chaîne ou de liste :
# Plateforme unique
runs-on: windows

# Plusieurs plateformes dans un même bloc (les mêmes commandes s'exécutent sur chacune)
runs-on: [default, windows]
Lorsqu’un bloc énumère plusieurs plateformes, le système de build crée un snapshot par plateforme en exécutant les mêmes commandes.
Avec la syntaxe de liste, les mêmes commandes sont exécutées sur chaque plateforme de la liste. Utilisez-la uniquement lorsque les commandes sont réellement multiplateformes (p. ex., npm install, uv sync). Pour les commandes spécifiques à une plateforme (comme apt-get sur Linux ou choco sur Windows), utilisez plutôt le format multi-bloc — un bloc par plateforme.

Comportement des sessions sous Windows

Shell

Les sessions Windows utilisent Git Bash comme shell par défaut — le même shell Bash que sous Linux. La syntaxe Bash standard fonctionne sur les deux plateformes :
- run: |
    export MY_VAR="hello"
    echo $MY_VAR

Chemins

Sous Windows, les chemins utilisent le format Git Bash (/c/... au lieu de C:\...) :
# Chemins Linux
- run: cp config.json ~/.config/myapp/config.json

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

Secrets

Les secrets sont disponibles sous forme de variables d’environnement durant les sessions, via la syntaxe bash standard ($SECRET_NAME) :
maintenance:
  - name: "Configure registry"
    run: |
      npm config set //registry.npmjs.org/:_authToken $NPM_TOKEN

Fichiers joints

Sous Windows, les fichiers importés sont enregistrés dans /c/Users/Administrator/.files/ au lieu de /home/ubuntu/.files/.

Conseils pour Blueprint sous Windows

Installation des outils

Utilisez choco (Chocolatey), winget ou des scripts de téléchargement directs :
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

Schémas courants

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