Skip to main content
Nous publions des mises à jour fréquentes de notre documentation, et la traduction de cette page peut encore être en cours. Pour obtenir les informations les plus actuelles, consultez la documentation anglaise.

Choix de l’exécuteur pour un travail

Définissez le type de machine qui va traiter un travail dans votre workflow.

Vue d’ensemble

Utilisez jobs.<job_id>.runs-on pour définir le type de machine sur laquelle le travail doit être exécuté.

  • la machine de destination peut être un exécuteur hébergé par GitHub, exécuteur plus grand ou un exécuteur auto-hébergé. - Vous pouvez cibler des exécuteurs en fonction des étiquettes qui leur sont affectées et/ou de leur appartenance au groupe.
  • Vous pouvez fournir runs-on sous la forme d’une chaîne unique ou d’un tableau de chaînes.
  • Si vous spécifiez un tableau de chaînes, votre workflow s’exécute sur n’importe quel exécuteur qui correspond à toutes les valeurs runs-on spécifiées.
  • Si vous souhaitez exécuter votre workflow sur plusieurs machines, utilisez jobs.<job_id>.strategy.

Choix des exécuteurs hébergés par GitHub

Si vous utilisez un exécuteur hébergé par GitHub, chaque travail s’exécute sur une nouvelle instance d’une image d’exécuteur spécifiée par runs-on.

Les types d’exécuteurs hébergés par GitHub disponibles sont les suivants :

Image de l’exécuteur Étiquette de workflow YAML Remarques
Windows Server 2022 windows-latest ou windows-2022 L’étiquette windows-latest utilise actuellement l’image de l’exécuteur Windows Server 2022.
Windows Server 2019 windows-2019 None
Ubuntu 22.04 ubuntu-latest ou ubuntu-22.04 L’étiquette ubuntu-latest utilise actuellement l’image de l’exécuteur Ubuntu 22.04.
Ubuntu 20.04 ubuntu-20.04 Aucun
Ubuntu 18.04 [déconseillé] ubuntu-18.04 Migrer vers ubuntu-20.04 ou ubuntu-22.04. Pour plus d’informations, consultez ce billet de blog GitHub.
macOS Monterey 12 macos-latestmacos-12macos-latest-xl, macos-12-xl ou Les étiquettes de workflow YAML macos-latest et macos-latest-xl utilisent actuellement l’image d’exécuteur macOS 12.
macOS Big Sur 11 macos-11 None
macOS Catalina 10.15 [déprécié] macos-10.15 Migrer vers macOS-11 ou macOS-12. Pour plus d’informations, consultez ce billet de blog GitHub.

Remarque : Les images d’exécuteur -latest sont les dernières images stables que fournit GitHub et peuvent ne pas correspondre à la version la plus récente du système d’exploitation disponible auprès du fournisseur du système d’exploitation.

Avertissement : 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.

Exemple : Spécification d’un système d’exploitation

runs-on: ubuntu-latest

Pour plus d’informations, consultez « À propos des exécuteurs hébergés par GitHub ».

Choix des exécuteurs auto-hébergés

Si 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é.

Tous les exécuteurs autohébergés ont l’étiquette self-hosted. L’utilisation de cette seule étiquette permet de sélectionner n’importe quel exécuteur autohébergé. Pour sélectionner des exécuteurs qui répondent à certains critères, par exemple le système d’exploitation ou l’architecture, nous vous recommandons de fournir un tableau d’étiquettes qui commence par self-hosted (doit être listé en premier), et qui comprend des étiquettes supplémentaires selon les besoins. 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.

Bien que l’étiquette self-hosted ne soit pas obligatoire, nous vous recommandons vivement de la spécifier quand vous utilisez des exécuteurs autohébergés pour avoir la certitude que votre travail ne spécifie pas par inadvertance des exécuteurs, actuels ou futurs, hébergés sur GitHub.

Exemple : Utilisation d’étiquettes pour la sélection des exécuteurs

runs-on: [self-hosted, linux]

Pour plus d’informations, consultez « À propos des exécuteurs auto-hébergés » et « Utilisation d’exécuteurs auto-hébergés dans un workflow ».

Choix des exécuteurs dans un groupe

Vous pouvez utiliser runs-on pour cibler des groupes d’exécuteurs, afin que le travail s’exécute sur n’importe quel exécuteur membre de ce groupe. Pour un contrôle plus précis, vous pouvez également combiner des groupes d’exécuteurs avec des étiquettes.

Les groupes d’exécuteurs peuvent uniquement avoir des exécuteur plus grand ou des exécuteurs auto-hébergés comme membres.

Exemple : utilisation de groupes pour contrôler où les travaux sont exécutés

Dans cet exemple, des exécuteurs Ubuntu ont été ajoutés à un groupe appelé ubuntu-runners. La clé runs-on envoie le travail à n’importe quel exécuteur disponible dans le groupe ubuntu-runners :

name: learn-github-actions
on: [push]
jobs:
  check-bats-version:
    runs-on: 
      group: ubuntu-runners
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
        with:
          node-version: '14'
      - run: npm install -g bats
      - run: bats -v

Exemple : combinaison de groupes et d’étiquettes

Quand vous combinez des groupes et des étiquettes, l’exécuteur doit satisfaire aux deux exigences pour pouvoir exécuter le travail.

Dans cet exemple, un groupe d’exécuteurs appelé ubuntu-runners est rempli avec des exécuteurs Ubuntu, qui ont également reçu l’étiquette ubuntu-20.04-16core. La clé runs-on combine group et labels afin que le travail soit routé vers n’importe quel exécuteur disponible au sein du groupe qui a également une étiquette correspondante :

name: learn-github-actions
on: [push]
jobs:
  check-bats-version:
    runs-on:
      group: ubuntu-runners
      labels: ubuntu-20.04-16core
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
        with:
          node-version: '14'
      - run: npm install -g bats
      - run: bats -v