Skip to main content

Utilisation d’exécuteurs auto-hébergés dans un workflow

Pour utiliser des runners auto-hébergés dans un workflow, vous pouvez utiliser des étiquettes ou des groupes pour déterminer le runner d'un travail.

Affichage des runners disponibles pour un référentiel

  1. Cliquez sur l’onglet Auto-hébergé en haut de la liste des runners.
  2. Passez en revue la liste des exécuteurs auto-hébergés disponibles pour le référentiel. Cette liste inclut les exécuteurs auto-hébergés et les ensembles d'échelles d'exécuteurs créés avec le contrôleur GitHub Actions. Pour plus d’informations, consultez « Actions Runner Controller (Contrôleur de Gestionnaire d'Actions) ».
  3. Si vous le souhaitez, pour copier l’étiquette d’un exécuteur pour l’utiliser dans un flux de travail, cliquez sur à droite de l’exécuteur, puis cliquez sur Copier l’étiquette.

Remarque

Les propriétaires d’entreprise et d’organisation et les utilisateurs disposant de l’autorisation « Gérer les exécuteurs d’organisation et les groupes d’exécuteurs » peuvent créer de nouveaux exécuteurs à partir de cette page. Pour créer un exécuteur, cliquez sur Nouvel exécuteur en haut à droite de la liste des exécuteurs pour en ajouter au référentiel.

Pour plus d’informations, consultez Gestion des exécuteurs de plus grande taille et Ajout d’exécuteurs auto-hébergés. Pour plus d’informations sur les rôles d’organisation personnalisés, consultez Autorisations des rôles d’organisation personnalisés.

Utilisation d’étiquettes par défaut pour router les travaux

Un exécuteur auto-hébergé reçoit automatiquement certaines étiquettes lorsqu’il est ajouté à GitHub Actions. Elles indiquent son système d’exploitation et sa plateforme matérielle :

  •         `self-hosted` : étiquette par défaut appliquée à tous les exécuteurs auto-hébergés.
    
  •         `linux`, `windows` ou `macOS` : selon le système d’exploitation.
    
  •         `x64`, `ARM` ou `ARM64` : selon l’architecture matérielle.
    

Vous pouvez utiliser le code YAML de votre workflow pour envoyer des travaux à une combinaison de ces étiquettes. Dans cet exemple, un exécuteur auto-hébergé qui correspond à toutes les trois étiquettes sera éligible pour exécuter le job.

runs-on: [self-hosted, linux, ARM64]
  •         `self-hosted` – Exécutez ce travail sur un exécuteur auto-hébergé.
    
  •         `linux` – Utiliser uniquement un exécuteur Linux.
    
  •         `ARM64` – Utiliser uniquement un exécuteur basé sur du matériel ARM64.
    

Pour créer des exécuteurs auto-hébergés individuels sans les étiquettes par défaut, passez l’indicateur --no-default-labels lorsque vous créez l’exécuteur. Actions Runner Controller ne prend pas en charge plusieurs étiquettes.

Utilisation d’étiquettes personnalisées pour acheminer les travaux

Vous pouvez créer des étiquettes personnalisées et les affecter à vos exécuteurs auto-hébergés à tout moment. Les étiquettes personnalisées vous permettent d’envoyer des travaux à des types particuliers d’exécuteurs auto-hébergés, selon la manière dont ils sont étiquetés.

Par exemple, si vous avez un travail qui requiert un type spécifique de matériel graphique, vous pouvez créer une étiquette personnalisée appelée gpu et l’affecter aux exécuteurs sur lesquels le matériel est installé. Un agent auto-hébergé qui correspond à toutes les étiquettes attribuées sera alors éligible pour exécuter le travail.

Cet exemple montre un travail qui combine des étiquettes par défaut et personnalisées :

runs-on: [self-hosted, linux, x64, gpu]
  •         `self-hosted` – Exécutez ce travail sur un exécuteur auto-hébergé.
    
  •         `linux` – Utiliser uniquement un exécuteur Linux.
    
  •         `x64` – Utiliser uniquement un exécuteur basé sur du matériel x64.
    
  •         `gpu` – Cette étiquette personnalisée a été affectée manuellement aux exécuteurs auto-hébergés sur lesquels le matériel GPU est installé.
    

Pour être éligible au traitement d'une tâche, ces étiquettes fonctionnent cumulativement, si bien qu'un runner auto-hébergé doit avoir les quatre étiquettes nécessaires.

Utilisation de groupes pour diriger des tâches

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@v5
      - uses: actions/setup-node@v4
        with:
          node-version: '14'
      - run: npm install -g bats
      - run: bats -v

Utilisation d’étiquettes et de groupes pour router des travaux

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-24.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-24.04-16core
    steps:
      - uses: actions/checkout@v5
      - uses: actions/setup-node@v4
        with:
          node-version: '14'
      - run: npm install -g bats
      - run: bats -v