Remarque
Les exécuteurs hébergés sur GitHub Enterprise Server ne sont pas pris en charge sur GitHub.
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 aux exécuteurs auto-hébergés.linux,windowsoumacOS: selon le système d’exploitation.x64,ARMouARM64: 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 aux trois étiquettes est autorisé à exécuter le travail :
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.
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 exécuteur auto-hébergé qui correspond à toutes les étiquettes attribuées sera alors autorisé à 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é.
Ces étiquettes fonctionnent par accumulation, si bien qu’un exécuteur auto-hébergé doit avoir les quatre étiquettes pour pouvoir traiter le travail.
Utilisation de groupes pour diriger des tâches
Dans 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 :
name: learn-github-actions
on: [push]
jobs:
check-bats-version:
runs-on:
group: build-runners
steps:
- uses: actions/checkout@v6
- 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, 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 :
name: learn-github-actions
on: [push]
jobs:
check-bats-version:
runs-on:
group: ubuntu-runners
labels: ubuntu-24.04-16core
steps:
- uses: actions/checkout@v6
- uses: actions/setup-node@v4
with:
node-version: '14'
- run: npm install -g bats
- run: bats -v