> For the complete documentation index, see [llms.txt](https://docs.devolutions.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.devolutions.net/cli/fr/pour-le-devops-et-les-administrateurs/automate/install-on-runners.md).

# Installer Devolutions CLI sur les agents de build

Installer Devolutions CLI sur des agents de build CI à partir d’une archive, garder la configuration de chaque tâche séparée, et contrôler le processus en arrière-plan.

Devolutions CLI n’a besoin d’aucun runtime ni d’aucun service : extrayez l’archive pour la plateforme de votre agent, ajoutez son dossier au `PATH`, et l’agent est prêt. Cette page couvre ce qui diffère sur un agent de build : choisir la bonne archive, empêcher les tâches de partager la configuration, et nettoyer après une tâche.

## Choisissez le paquet pour votre agent

<table><thead><tr><th width="160">PLATEFORME</th><th width="160">ARCHITECTURE</th><th>COMMANDE</th></tr></thead><tbody><tr><td>Windows</td><td>x64, Arm64</td><td><code>devo.exe</code></td></tr><tr><td>macOS</td><td>x64, Arm64</td><td><code>devo</code></td></tr><tr><td>Linux</td><td>x64, Arm64</td><td><code>devo</code></td></tr></tbody></table>

Chaque plateforme et chaque architecture a sa propre version, offerte en archive `.zip` ou `.tar.gz` : utilisez celle qui correspond à l’agent. L’archive peut contenir d’autres fichiers à côté de `devo`, comme des bibliothèques natives, donc gardez le dossier extrait ensemble.

## Installez-le

{% tabs %}
{% tab title="Linux and macOS" %}

```bash
mkdir -p "$HOME/devo"
tar -xzf <archive>.tar.gz -C "$HOME/devo"
export PATH="$HOME/devo:$PATH"
devo --help
```

Utilisez n’importe quel dossier dans lequel la tâche peut écrire.
{% endtab %}

{% tab title="Windows" %}

```powershell
Expand-Archive <archive>.zip -DestinationPath "$env:TEMP\devo" -Force
$env:PATH = "$env:TEMP\devo;$env:PATH"
devo --help
```

Remplacez `$env:TEMP` par n’importe quel dossier dans lequel la tâche peut écrire.
{% endtab %}
{% endtabs %}

## Garder la configuration de chaque tâche séparée

Devolutions CLI enregistre vos contextes, vos sessions de connexion et l’état de son processus en arrière-plan dans un dossier de configuration du profil de l’utilisateur. Sur un agent de build qui exécute les tâches l’une après l’autre sous le même compte, chaque tâche partagerait ce dossier : une tâche pourrait utiliser un contexte créé par une autre.

Définissez `DEVO_CLI_CONFIG_HOME` sur un dossier qui appartient à la tâche, avant la première commande `devo` :

{% tabs %}
{% tab title="Bash" %}

```bash
export DEVO_CLI_CONFIG_HOME="$(mktemp -d)"
```

{% endtab %}

{% tab title="PowerShell" %}

```powershell
$env:DEVO_CLI_CONFIG_HOME = Join-Path $env:TEMP "devo-config"
```

{% endtab %}
{% endtabs %}

Chaque commande `devo` de la tâche utilise ensuite ce dossier pour ses contextes et son processus en arrière-plan, et les autres tâches ne le voient pas.

## Contrôler le processus en arrière-plan

La première commande `devo` qui a besoin de votre espace de travail démarre un processus en arrière-plan et le laisse en cours pour les commandes suivantes. C’est le même fichier `devo`, qui s’exécute sous le compte d’utilisateur de la tâche. Il ne garde pas ouverte la sortie de votre tâche, donc l’étape qui l’a démarré peut se terminer normalement.

Par défaut, le processus en arrière-plan s’arrête de lui-même après 60 minutes sans requête. Sur un agent de build, vous voulez habituellement qu’il disparaisse plus tôt.

<table><thead><tr><th width="290">PARAMÈTRE</th><th>CE QU’IL FAIT</th></tr></thead><tbody><tr><td><code>DEVO_DAEMON_IDLE_TIMEOUT</code></td><td>Combien de temps le processus en arrière-plan attend sans demandes avant de s’arrêter, par exemple <code>30s</code>, <code>5m</code>, <code>1h</code> ou <code>00:05:00</code>. La valeur par défaut est 60 minutes. <code>0s</code> désactive l’arrêt pour inactivité. Si Devolutions CLI ne peut pas lire la valeur, la commande qui démarrerait le processus en arrière-plan échoue avec <code>invalidParameterValue</code>.</td></tr><tr><td>option <code>--daemon</code> ou <code>DEVO_DAEMON_MODE</code></td><td><code>auto</code> (par défaut) : démarre le processus en arrière-plan au besoin. <code>require</code> : en utilise un qui est déjà en cours, sans jamais en démarrer un. <code>never</code> : ne le contacte pas, donc les commandes qui en ont besoin échouent.</td></tr><tr><td>Option <code>--no-daemon-autostart</code> ou <code>DEVO_DAEMON_AUTOSTART</code></td><td>Ne démarrez pas le processus en arrière-plan automatiquement. Définissez la variable à <code>0</code>, <code>false</code> ou <code>no</code> pour désactiver le démarrage automatique.</td></tr></tbody></table>

Avec `require`, ou quand le démarrage automatique est désactivé, démarrez vous-même le processus au début de la tâche :

```bash
devo daemon ensure
```

{% hint style="info" %}
Définissez les variables d’environnement que Devolutions CLI lit plus tard, comme la variable qui contient votre secret d’application, **avant** la première commande `devo`. Le processus en arrière-plan lit son environnement au démarrage. Consultez [Se connecter depuis un pipeline CI](/cli/fr/pour-le-devops-et-les-administrateurs/automate/ci-sign-in.md).
{% endhint %}

## Nettoyer à la fin de la tâche

Exécutez ces commandes dans une étape qui s’exécute toujours, même quand la tâche échoue :

```bash
devo logout <context-name>
devo daemon stop --wait
rm -rf "$DEVO_CLI_CONFIG_HOME"
```

* `devo logout` efface l’authentification enregistrée du contexte.
* `devo daemon stop --wait` arrête le processus en arrière-plan de ce dossier de configuration et attend qu’il ait disparu. Si aucun n’est en cours d’exécution, il ne fait rien.
* Supprimez le dossier de configuration en dernier : `devo daemon stop` l’utilise pour trouver le processus en arrière-plan.

Sur les agents de build supprimés après chaque tâche, comme les conteneurs ou les machines virtuelles temporaires, le nettoyage n’est pas requis, mais il ne coûte rien.

## Bon à savoir

* Vérifiez que l’agent est prêt avec `devo doctor`. Il affiche un instantané de diagnostic sans démarrer le processus en arrière-plan. Consultez [Collecter les diagnostics pour le soutien](/cli/fr/aide/troubleshooting/collect-diagnostics.md).
* Si une commande indique que le processus en arrière-plan n’est pas disponible, consultez [Le processus en arrière-plan ne démarre pas](/cli/fr/aide/troubleshooting/daemon-wont-start.md).
* Toutes les variables d’environnement sont énumérées dans [Variables d’environnement](/cli/fr/reference/environment-variables.md).

## Suivant

* [Sign in from a CI pipeline](/cli/fr/pour-le-devops-et-les-administrateurs/automate/ci-sign-in.md)
* [Read results as JSON](/cli/fr/pour-le-devops-et-les-administrateurs/automate/json-output.md)
* [Install Devolutions CLI](/cli/fr/reference/installation.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.devolutions.net/cli/fr/pour-le-devops-et-les-administrateurs/automate/install-on-runners.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
