Remarque
Les exécuteurs hébergés sur GitHub ne sont pas pris en charge sur GitHub Enterprise Server. Vous pouvez voir plus d’informations sur le support futur planifié dans la GitHub public roadmap.
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
oumacOS
: selon le système d’exploitation.x64
,ARM
ouARM64
: 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écuter 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 router 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écuter 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 router des travaux
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@v4
- 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-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@v4
- uses: actions/setup-node@v4
with:
node-version: '14'
- run: npm install -g bats
- run: bats -v