{"meta":{"title":"Choix de l’exécuteur pour un travail","intro":"Définissez le type de machine qui va traiter un travail dans votre workflow.","product":"GitHub Actions","breadcrumbs":[{"href":"/fr/actions","title":"GitHub Actions"},{"href":"/fr/actions/how-tos","title":"Guides pratiques"},{"href":"/fr/actions/how-tos/write-workflows","title":"Écrire des workflows"},{"href":"/fr/actions/how-tos/write-workflows/choose-where-workflows-run","title":"Choisir où les workflows s’exécutent"},{"href":"/fr/actions/how-tos/write-workflows/choose-where-workflows-run/choose-the-runner-for-a-job","title":"Choisir l’exécuteur pour un travail"}],"documentType":"article"},"body":"# Choix de l’exécuteur pour un travail\n\nDéfinissez le type de machine qui va traiter un travail dans votre workflow.\n\n## Vue d’ensemble\n\nUtilisez `jobs.<job_id>.runs-on` pour définir le type de machine sur laquelle le travail doit être exécuté.\n\n* La machine de destination peut être soit un [GitHubrunner hébergé](#choosing-github-hosted-runners), [exécuteur plus grand](#choosing-runners-in-a-group), soit un [runner auto-hébergé](#choosing-self-hosted-runners).\n\n* Vous pouvez cibler les coureurs en fonction des étiquettes qui leur ont été attribuées, de leur appartenance à un groupe ou d'une combinaison de ces éléments.\n\n* Vous pouvez fournir `runs-on` sous la forme suivante :\n  * Une seule chaîne de caractères\n  * Une seule variable contenant une chaîne\n  * Un tableau de chaînes, des variables contenant des chaînes ou une combinaison des deux\n  * Une paire `key: value` utilisant les clés `group` ou `labels`\n\n* Si vous spécifiez un tableau de chaînes ou de variables, votre workflow s’exécute sur n’importe quel exécuteur correspondant à toutes les valeurs `runs-on` spécifiées. Par exemple, ici, la tâche ne s’exécutera que sur un exécuteur auto-hébergé portant les étiquettes `linux`, `x64` et `gpu` :\n\n  ```yaml\n  runs-on: [self-hosted, linux, x64, gpu]\n  ```\n\n  Pour plus d’informations, consultez [Choisir des runners auto-hébergés](#choosing-self-hosted-runners).\n\n* Vous pouvez mélanger des chaînes et des variables dans un tableau. Par exemple :\n\n  ```yaml\n  on:\n    workflow_dispatch:\n      inputs:\n        chosen-os:\n          required: true\n          type: choice\n          options:\n          - Ubuntu\n          - macOS\n\n  jobs:\n    test:\n      runs-on: [self-hosted, \"${{ inputs.chosen-os }}\"]\n      steps:\n      - run: echo Hello world!\n  ```\n\n* Si vous souhaitez exécuter votre workflow sur plusieurs machines, utilisez [`jobs.<job_id>.strategy`](/fr/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idstrategy).\n\n> \\[!NOTE]\n> Les guillemets ne sont pas obligatoires autour de chaînes simples comme `self-hosted`, mais elles sont requises pour les expressions comme`\"${{ inputs.chosen-os }}\"` .\n\n## Choisir les runners hébergés par GitHub\n\nSi vous utilisez un runner hébergé sur GitHub, chaque tâche s’exécute sur une nouvelle instance d’une image de runner spécifiée par `runs-on`.\n\nLa valeur de runs-on, lorsque vous utilisez un exécuteur hébergé par GitHub, correspond à une étiquette de workflow ou au nom d’un groupe d’exécuteurs. Les étiquettes des exécuteurs standard hébergés GitHub sont affichées dans les tableaux suivants.\n\nPour plus d’informations, consultez « [Exécuteurs hébergés par GitHub](/fr/actions/concepts/runners/github-hosted-runners) ».\n\n### Runners standard hébergés par GitHub pour les référentiels publics\n\nPour les dépôts publics, les travaux utilisant les étiquettes de flux de travail indiquées dans le tableau ci-dessous s’exécutent avec les spécifications associées.\nÀ l’exception des coureurs à UC unique, tous les GitHub-hosted runners sont des nouvelles machines virtuelles hébergées par GitHub. Les exécuteurs Single-CPU sont hébergés dans un conteneur sur une machine virtuelle partagée, voir [Référence des exécuteurs hébergés par GitHub](/fr/actions/reference/runners/github-hosted-runners#single-cpu-runners). L'utilisation des runners standard hébergés par GitHub est gratuite et illimitée pour les référentiels publics.\n\n<table style=\"width:100%\">\n  <thead>\n    <tr>\n      <th scope=\"col\">\n<b>Machine virtuelle / conteneur</b></th>\n      <th scope=\"col\">\n<b>Processeur (CPU)</b></th>\n      <th scope=\"col\">\n<b>Mémoire (RAM)</b></th>\n      <th scope=\"col\">\n<b>Stockage (SSD)</b></th>\n      <th scope=\"col\">\n<b>Architecture</b></th>\n      <th scope=\"col\">\n<b>Étiquette de workflow</b></th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n          <td>Linux</td>\n          <td>1</td>\n          <td>5 GB</td>\n          <td>14 GB</td>\n          <td> x64 </td>\n          <td>\n            <code><a href=\"https://github.com/actions/runner-images/blob/main/images/ubuntu-slim/ubuntu-slim-Readme.md\">ubuntu-slim</a></code>\n          </td>\n        </tr>\n    <tr>\n      <td>Linux</td>\n      <td>4</td>\n      <td>16 Go</td>\n      <td>14 Go</td>\n      <td> x64 </td>\n      <td>\n\n```\n    <code><a href=\"https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2404-Readme.md\">ubuntu-latest</a></code>, <code><a href=\"https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2404-Readme.md\">ubuntu-24.04</a></code>, <code><a href=\"https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2204-Readme.md\">ubuntu-22.04</a></code>, <code><a href=\"https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2604-Readme.md\">ubuntu-26.04</a></code> (Version d'essai publique) </td>\n</tr>\n<tr>\n  <td>Windows</td>\n  <td>4</td>\n  <td>16 Go</td>\n  <td>14 Go</td>\n  <td> x64 </td>\n  <td>\n          \n    <code><a href=\"https://github.com/actions/runner-images/blob/main/images/windows/Windows2025-Readme.md\">windows-latest</a></code>, , <code><a href=\"https://github.com/actions/runner-images/blob/main/images/windows/Windows2025-Readme.md\">windows-2025</a></code><code><a href=\"https://github.com/actions/runner-images/blob/main/images/windows/Windows2025-VS2026-Readme.md\">windows-2025-vs2026</a></code>, ,<code><a href=\"https://github.com/actions/runner-images/blob/main/images/windows/Windows2022-Readme.md\">windows-2022</a></code></td>\n</tr>\n<tr>\n  <td>Linux</td>\n  <td>4</td>\n  <td>16 Go</td>\n  <td>14 Go</td>\n  <td> arm64 </td>\n  <td>\n          \n    <code><a href=\"https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2404-Arm64-Readme.md\">ubuntu-24.04-arm</a></code>, <code><a href=\"https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2204-Arm64-Readme.md\">ubuntu-22.04-arm</a></code>, <code><a href=\"https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2604-Arm64-Readme.md\">ubuntu-26.04-arm</a></code> (Version d'essai publique) </td>\n</tr>\n<tr>\n  <td>Windows</td>\n  <td>4</td>\n  <td>16 Go</td>\n  <td>14 Go</td>\n  <td>arm64</td>\n  <td>\n          \n    <code><a href=\"https://github.com/actions/runner-images/blob/main/images/windows/Windows11-Arm64-Readme.md\">windows-11-arm</a></code>, <code><a href=\"https://github.com/actions/runner-images/blob/main/images/windows/Windows11-VS2026-Arm64-Readme.md\">windows-11-vs2026-arm</a></code></td>\n</tr>\n<tr>\n  <td>macOS</td>\n  <td>4</td>\n  <td>14 Go</td>\n  <td>14 Go</td>\n  <td> Intel </td>\n  <td>\n          \n    <code><a href=\"https://github.com/actions/runner-images/blob/main/images/macos/macos-15-Readme.md\">macos-15-intel</a></code>, <code><a href=\"https://github.com/actions/runner-images/blob/main/images/macos/macos-26-Readme.md\">macos-26-intel</a></code></td>\n</tr>\n<tr>\n  <td>macOS</td>\n  <td>3 (M1)</td>\n  <td>7 Go</td>\n  <td>14 Go</td>\n  <td> arm64 </td>\n  <td>\n          \n    <code><a href=\"https://github.com/actions/runner-images/blob/main/images/macos/macos-26-arm64-Readme.md\">macos-latest</a></code>, , <code><a href=\"https://github.com/actions/runner-images/blob/main/images/macos/macos-14-arm64-Readme.md\">macos-14</a></code>, <code><a href=\"https://github.com/actions/runner-images/blob/main/images/macos/macos-15-arm64-Readme.md\">macos-15</a></code><code><a href=\"https://github.com/actions/runner-images/blob/main/images/macos/macos-26-arm64-Readme.md\">macos-26</a></code>, (<code><a href=\"https://github.com/actions/runner-images/blob/main/images/macos/xcode-27-arm64-Readme.md\">xcode-27</a></code>Version d'essai publique) </td>\n</tr>\n```\n\n  </tbody>\n\n</table>\n\n### Runners standard hébergés par GitHub pour les référentiels  privés\n\nPour  privés, les travaux utilisant les étiquettes de flux de travail indiquées dans le tableau ci-dessous s’exécutent sur des machines virtuelles avec les spécifications associées. Ces runners utilisent le quota de minutes gratuites de votre compte GitHub, puis sont facturés à la minute. Consultez « [Tarification des runners Actions](/fr/billing/reference/actions-runner-pricing) ».\n\n<table style=\"width:100%\">\n  <thead>\n    <tr>\n      <th scope=\"col\">\n<b>Machine virtuelle</b></th>\n      <th scope=\"col\">\n<b>Processeur (CPU)</b></th>\n      <th scope=\"col\">\n<b>Mémoire (RAM)</b></th>\n      <th scope=\"col\">\n<b>Stockage (SSD)</b></th>\n      <th scope=\"col\">\n<b>Architecture</b></th>\n      <th scope=\"col\">\n<b>Étiquette de workflow</b></th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n          <td>Linux</td>\n          <td>1</td>\n          <td>5 GB</td>\n          <td>14 GB</td>\n          <td> x64 </td>\n          <td>\n            <code><a href=\"https://github.com/actions/runner-images/blob/main/images/ubuntu-slim/ubuntu-slim-Readme.md\">ubuntu-slim</a></code>\n          </td>\n        </tr>\n    <tr>\n      <td>Linux</td>\n      <td>2</td>\n      <td>8 Go</td>\n      <td>14 Go</td>\n      <td> x64 </td>\n      <td>\n\n```\n    <code><a href=\"https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2404-Readme.md\">ubuntu-latest</a></code>, <code><a href=\"https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2404-Readme.md\">ubuntu-24.04</a></code>, <code><a href=\"https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2204-Readme.md\">ubuntu-22.04</a></code>, <code><a href=\"https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2604-Readme.md\">ubuntu-26.04</a></code> (Version d'essai publique) </td>\n</tr>\n<tr>\n  <td>Windows</td>\n  <td>2</td>\n  <td>8 Go</td>\n  <td>14 Go</td>\n  <td> x64 </td>\n  <td>\n          \n    <code><a href=\"https://github.com/actions/runner-images/blob/main/images/windows/Windows2025-Readme.md\">windows-latest</a></code>, , <code><a href=\"https://github.com/actions/runner-images/blob/main/images/windows/Windows2025-Readme.md\">windows-2025</a></code><code><a href=\"https://github.com/actions/runner-images/blob/main/images/windows/Windows2022-Readme.md\">windows-2022</a></code></td>\n</tr>\n<tr>\n  <td>Linux</td>\n  <td>2</td>\n  <td>8 Go</td>\n  <td>14 Go</td>\n  <td> arm64 </td>\n  <td>\n          \n    <code><a href=\"https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2404-Arm64-Readme.md\">ubuntu-24.04-arm</a></code>, <code><a href=\"https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2204-Arm64-Readme.md\">ubuntu-22.04-arm</a></code>, <code><a href=\"https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2604-Arm64-Readme.md\">ubuntu-26.04-arm</a></code> (Version d'essai publique) </td>\n</tr>\n<tr>\n  <td>Windows</td>\n  <td>2</td>\n  <td>8 Go</td>\n  <td>14 Go</td>\n  <td> arm64 </td>\n  <td>\n          \n    <code><a href=\"https://github.com/actions/runner-images/blob/main/images/windows/Windows11-Arm64-Readme.md\">windows-11-arm</a></code>, <code><a href=\"https://github.com/actions/runner-images/blob/main/images/windows/Windows11-Arm64-VS2026-Readme.md\">windows-11-vs2026-arm</a></code></td>\n</tr>\n<tr>\n  <td>macOS</td>\n  <td>4</td>\n  <td>14 Go</td>\n  <td>14 Go</td>\n  <td> Intel </td>\n  <td>\n          \n    <code><a href=\"https://github.com/actions/runner-images/blob/main/images/macos/macos-15-Readme.md\">macos-15-intel</a></code>, <code><a href=\"https://github.com/actions/runner-images/blob/main/images/macos/macos-26-Readme.md\">macos-26-intel</a></code></td>\n</tr>\n<tr>\n  <td>macOS</td>\n  <td>3 (M1)</td>\n  <td>7 Go</td>\n  <td>14 Go</td>\n  <td> arm64 </td>\n  <td>\n          \n    <code><a href=\"https://github.com/actions/runner-images/blob/main/images/macos/macos-26-arm64-Readme.md\">macos-latest</a></code>, , <code><a href=\"https://github.com/actions/runner-images/blob/main/images/macos/macos-14-arm64-Readme.md\">macos-14</a></code>, <code><a href=\"https://github.com/actions/runner-images/blob/main/images/macos/macos-15-arm64-Readme.md\">macos-15</a></code><code><a href=\"https://github.com/actions/runner-images/blob/main/images/macos/macos-26-arm64-Readme.md\">macos-26</a></code>, (<code><a href=\"https://github.com/actions/runner-images/blob/main/images/macos/xcode-27-arm64-Readme.md\">xcode-27</a></code>Version d'essai publique) </td>\n</tr>\n```\n\n  </tbody>\n</table>\n\nOutre les runners hébergés standard GitHub, GitHub offre aux abonnés aux offres GitHub Team et GitHub Enterprise Cloud une gamme de machines virtuelles gérées dotées de fonctionnalités avancées, par exemple : davantage de cœurs et d’espace disque, des machines équipées de GPU et des machines basées sur ARM. Pour plus d’informations, consultez « [Exécuteurs plus grands](/fr/actions/concepts/runners/larger-runners) ».\n\n> \\[!NOTE]\n> Les `-latest` images de runner sont les dernières images stables que GitHub fournit et ne sont pas nécessairement la version la plus récente du système d’exploitation disponible chez l’éditeur du système d’exploitation.\n\n> \\[!WARNING]\n> Les images bêta et dépréciées sont fournies « en l’état », « avec toutes les imperfections » et « selon la disponibilité », et sont exclues du contrat de niveau de service et de la garantie. Les images bêta peuvent ne pas être couvertes par le service client.\n\n#### Exemple : Spécification d’un système d’exploitation\n\n```yaml\nruns-on: ubuntu-latest\n```\n\nPour plus d’informations, consultez « [Exécuteurs hébergés par GitHub](/fr/actions/concepts/runners/github-hosted-runners) ».\n\n## Choix des exécuteurs auto-hébergés\n\nSi vous souhaitez spécifier un exécuteur autohébergé pour votre travail, configurez `runs-on` dans votre fichier de workflow avec des étiquettes d’exécuteur autohébergé.\n\nLes runners auto-hébergés peuvent avoir le `self-hosted` label. Lors de la configuration d’un exécuteur auto-hébergé, nous inclurons l’étiquette `self-hosted` par défaut. Vous pouvez utiliser l’option `--no-default-labels` pour empêcher l’application du label auto-hébergé. Les étiquettes peuvent être utilisées pour créer des options de ciblage pour les exécuteurs, telles que le système d’exploitation ou l’architecture. Nous recommandons de fournir un tableau d’étiquettes qui commence par `self-hosted` (ceci doit être listé en premier) et inclut ensuite des étiquettes supplémentaires si nécessaire. Quand vous spécifiez un tableau d’étiquettes, les travaux sont mis en file d’attente sur des exécuteurs qui comportent toutes les étiquettes que vous indiquez.\n\n> \\[!NOTE] Actions Runner Controller ne prend pas en charge le `self-hosted` label.\n\n#### Exemple : Utilisation d’étiquettes pour la sélection des exécuteurs\n\n```yaml\nruns-on: [self-hosted, linux]\n```\n\nPour plus d’informations, consultez « [Exécuteurs auto-hébergés](/fr/actions/concepts/runners/self-hosted-runners) » et « [Utilisation d’exécuteurs auto-hébergés dans un workflow](/fr/actions/how-tos/manage-runners/self-hosted-runners/use-in-a-workflow) ».\n\n## Choix des exécuteurs dans un groupe\n\nVous pouvez utiliser `runs-on` pour cibler des groupes de runners, de sorte que la tâche s’exécute sur n’importe quel runner membre de ce groupe. Pour un contrôle plus précis, vous pouvez également combiner des groupes d’exécuteurs avec des étiquettes.\n\nLes groupes de runners ne peuvent avoir comme membres que des [exécuteur plus grand](/fr/actions/concepts/runners/larger-runners) ou des [runners auto-hébergés](/fr/actions/how-tos/manage-runners/self-hosted-runners).\n\n#### Exemple : utilisation de groupes pour contrôler où les travaux sont exécutés\n\nDans cet exemple, des runners ont été ajoutés à un groupe appelé `build-runners`. La clé `runs-on` envoie le travail à n’importe quel exécuteur disponible dans le groupe `build-runners` :\n\n```yaml\nname: learn-github-actions\non: [push]\njobs:\n  check-bats-version:\n    runs-on: \n      group: build-runners\n    steps:\n      - uses: actions/checkout@v6\n      - uses: actions/setup-node@v7\n        with:\n          node-version: '14'\n      - run: npm install -g bats\n      - run: bats -v\n```\n\n#### Exemple : combinaison de groupes et d’étiquettes\n\nQuand vous combinez des groupes et des étiquettes, l’exécuteur doit satisfaire aux deux exigences pour pouvoir exécuter le travail.\n\nDans cet exemple, la clé `runs-on` combine `group` et `labels` de sorte que le job soit acheminé vers n’importe quel runner disponible dans le groupe qui possède également une étiquette correspondante :\n\n```yaml\nname: learn-github-actions\non: [push]\njobs:\n  check-bats-version:\n    runs-on:\n      group: ubuntu-runners\n      labels: ubuntu-24.04-16core\n    steps:\n      - uses: actions/checkout@v6\n      - uses: actions/setup-node@v7\n        with:\n          node-version: '14'\n      - run: npm install -g bats\n      - run: bats -v\n```"}