Skip to main content

Exécution de travaux sur des exécuteurs de plus grande taille

Vous pouvez accélérer vos workflows en les configurant pour qu’ils s’exécutent sur des exécuteur plus grand.

Qui peut utiliser cette fonctionnalité ?

Les Exécuteur de plus grande taille sont uniquement disponibles pour les organisations et les entreprises qui utilisent les plans GitHub Team ou GitHub Enterprise Cloud.

Platform navigation

Exécution de travaux sur votre exécuteur

Une fois que votre type d’exécuteur a été défini, vous pouvez mettre à jour vos fichiers YAML de workflow pour envoyer des travaux aux instances de l’exécuteur qui viennent d’être créées afin de les traiter. Vous pouvez utiliser des groupes d’exécuteurs ou des étiquettes pour définir l’emplacement d’exécution de vos travaux.

Remarque : les Exécuteur de plus grande taille ont automatiquement des étiquettes attribuées par défaut qui correspondent au nom de l’exécuteur. Vous ne pouvez pas ajouter d’étiquettes personnalisées aux exécuteur plus grand, mais vous pouvez utiliser les étiquettes par défaut ou le groupe de l’exécuteur pour envoyer des travaux à des types spécifiques d’exécuteurs.

Seuls les comptes de propriétaire ou d’administrateur peuvent voir les paramètres de l’exécuteur. Les utilisateurs non administratifs peuvent contacter le propriétaire de l’organisation pour savoir quels exécuteurs sont activés. Le propriétaire de votre organisation peut créer de nouveaux exécuteurs et groupes d’exécuteurs, ainsi que configurer des autorisations pour spécifier quels référentiels peuvent accéder à un groupe d’exécuteurs. Pour plus d’informations, consultez « Gestion des exécuteurs de plus grande taille ».

Une fois que votre type d’exécuteur a été défini, vous pouvez mettre à jour vos fichiers YAML de workflow pour envoyer des travaux aux instances de l’exécuteur qui viennent d’être créées afin de les traiter. Vous pouvez utiliser des groupes d’exécuteurs ou des étiquettes pour définir l’emplacement d’exécution de vos travaux.

Remarque : les Exécuteur de plus grande taille ont automatiquement des étiquettes attribuées par défaut qui correspondent au nom de l’exécuteur. Vous ne pouvez pas ajouter d’étiquettes personnalisées aux exécuteur plus grand, mais vous pouvez utiliser les étiquettes par défaut ou le groupe de l’exécuteur pour envoyer des travaux à des types spécifiques d’exécuteurs.

Seuls les comptes de propriétaire ou d’administrateur peuvent voir les paramètres de l’exécuteur. Les utilisateurs non administratifs peuvent contacter le propriétaire de l’organisation pour savoir quels exécuteurs sont activés. Le propriétaire de votre organisation peut créer de nouveaux exécuteurs et groupes d’exécuteurs, ainsi que configurer des autorisations pour spécifier quels référentiels peuvent accéder à un groupe d’exécuteurs. Pour plus d’informations, consultez « Gestion des exécuteurs de plus grande taille ».

Une fois que votre type d’exécuteur a été défini, vous pouvez mettre à jour vos fichiers YAML de workflow pour envoyer des tâches aux instances de l’exécuteur afin de les traiter. Pour exécuter des tâches sur des exécuteur plus grand macOS, mettez à jour la clé runs-on dans vos fichiers YAML de workflow afin d’utiliser l’une des étiquettes définies par GitHub pour les exécuteurs macOS. Pour plus d’informations, consultez « Des exécuteur plus grand macOS disponibles ».

Des exécuteur plus grand macOS disponibles

Utilisez les étiquettes du tableau ci-dessous pour exécuter vos workflows sur les exécuteur plus grand macOS correspondants.

Taille de l’exécuteurArchitectureSous-traitant (UC)Mémoire (RAM)Stockage (SSD)Étiquette de flux de travail
GrandeIntel1230 Go14 Gomacos-latest-large, macos-12-large, macos-13-large, macos-14-large [latest], macos-15-large [Beta]
XLargearm64 (M1)6 (+ 8 accélération matérielle GPU)14 Go14 Gomacos-latest-xlarge, macos-13-xlarge , macos-14-xlarge [latest], macos-15-xlarge [Bêta]

Remarque : Pour les exécuteur plus grand macOS, l’étiquette d’exécuteur -latest utilise l’image d’exécuteur macOS 12. Pour macOS Xlarge, l’étiquette d’exécuteur -latest utilise l’image d’exécuteur macOS 13

Visualisation des exécuteurs disponibles pour un référentiel

Si vous avez un accès repo: write à un référentiel, vous pouvez visualiser une liste des exécuteurs disponibles pour le référentiel.

  1. Dans GitHub.com, accédez à la page principale du dépôt.

  2. Sous le nom de votre dépôt, cliquez sur Actions.

    Capture d’écran des onglets du référentiel « github/docs ». L’onglet « Actions » est mis en surbrillance avec un encadré orange.

  3. Dans la barre latérale gauche, sous la section « Gestion », cliquez sur Exécuteurs.

  4. Passez en revue la liste des exécuteurs disponibles pour le référentiel.

  5. 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 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 ».

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

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

Utilisation d’étiquettes pour contrôler où les travaux sont exécutés

Vous pouvez transmettre implicitement une étiquette à la clé runs-on à l’aide de la syntaxe runs-on: LABEL. Vous pouvez également utiliser la clé labels, comme illustré dans l’exemple ci-dessous.

Dans cet exemple, la clé runs-on envoie la tâche à n’importe quel exécuteur disponible qui a été attibué à l’étiquette ubuntu-20.04-16core :

name: learn-github-actions
on: [push]
jobs:
  check-bats-version:
    runs-on:
      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

Toute personne disposant d’un accès en écriture à un référentiel avec Actions activées peut trouver les étiquettes des exécuteurs disponibles dans ce référentiel. Consultez « Exécution de travaux sur des exécuteurs de plus grande taille ».

Utilisation d’étiquettes pour contrôler où les travaux sont exécutés

Vous pouvez transmettre implicitement une étiquette à la clé runs-on à l’aide de la syntaxe runs-on: LABEL. Vous pouvez également utiliser la clé labels, comme illustré dans l’exemple ci-dessous.

Dans cet exemple, la clé runs-on envoie la tâche à n’importe quel exécuteur disponible qui a été attibué à l’étiquette windows-2022-16core :

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

Toute personne disposant d’un accès en écriture à un référentiel avec Actions activées peut trouver les étiquettes des exécuteurs disponibles dans ce référentiel. Consultez « Exécution de travaux sur des exécuteurs de plus grande taille ».

Ciblage des exécuteur plus grand macOS dans un workflow

Pour exécuter vos workflows sur des exécuteur plus grand macOS, définissez la valeur de la clé runs-on sur une étiquette associée à un exécuteur plus grand macOS. Pour obtenir une liste des étiquettes exécuteur plus grand macOS, consultez « Des exécuteur plus grand macOS disponibles ».

Dans cet exemple, le workflow utilise une étiquette associée à des exécuteurs macOS XL. La clé runs-on envoie le travail à n’importe quel exécuteur disponible avec une étiquette correspondante :

name: learn-github-actions-testing
on: [push]
jobs:
  build:
    runs-on: macos-13-xlarge
    steps:
      - uses: actions/checkout@v4
      - name: Build
        run: swift build
      - name: Run tests
        run: swift test

Utilisation d’étiquettes et de groupes pour contrôler où les travaux sont exécutés

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

Utilisation d’étiquettes et de groupes pour contrôler où les travaux sont exécutés

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

Résolution des problèmes des exécuteur plus grand

Si vous remarquez que les travaux qui ciblent vos exécuteur plus grand sont retardés ou ne sont pas en cours d’exécution, plusieurs facteurs peuvent en être à l’origine.

  • Paramètres de concurrence : vous avez peut-être atteint votre limite maximale de concurrence. Si vous voulez permettre l’exécution en parallèle de plus de travaux, vous pouvez mettre à jour vos paramètres de mise à l’échelle automatique sur un nombre plus élevé. Pour plus d’informations, consultez « Gestion des exécuteurs de plus grande taille ».
  • Autorisations de dépôt : vérifiez que les autorisations de dépôt appropriées sont activées pour vos exécuteur plus grand. Par défaut, les exécuteurs d’entreprise ne sont pas disponibles au niveau du dépôt et doivent être activés manuellement par un administrateur d’organisation. Pour plus d’informations, consultez « Gestion des exécuteurs de plus grande taille ».
  • Informations de facturation : vous devez avoir une carte de crédit valide dans le fichier pour pouvoir utiliser des exécuteur plus grand. Après avoir ajouté une carte de crédit à votre compte, il peut être nécessaire d’attendre jusqu’à 10 minutes avant de pouvoir activer vos exécuteur plus grand. Pour plus d’informations, consultez « Adding or editing a payment method ».
  • Limite de dépense : votre limite de dépense GitHub Actions doit être définie sur une valeur supérieure à zéro. Pour plus d’informations, consultez « Managing your spending limit for GitHub Actions ».
  • Stratégie d’utilisation équitable : GitHub a une stratégie d’utilisation équitable qui commence à limiter les travaux en fonction de plusieurs facteurs, comme le nombre de travaux que vous exécutez ou le nombre de travaux exécutés dans tout GitHub Actions.
  • Durée entre la mise en file d’attente et l’attribution de la tâche : la durée entre la mise en file d’attente et l’attribution de la tâche correspond au temps qui s’écoule entre la demande d’une tâche et l’attribution par GitHub d’une machine virtuelle pour l’exécution de la tâche. Les exécuteurs standard hébergés par GitHub qui utilisent les étiquettes de flux de travail YAML prescrites (telles que ubuntu-latest) sont toujours dans un état « chaud ». Dans le cas d’exécuteurs de plus grande taille, une machine à l’état chaud peut ne pas être prête à prendre une tâche à la première demande, car les groupes de ces machines sont plus petits. Par conséquent, GitHub peut avoir besoin de créer une nouvelle machine virtuelle, ce qui augmente la durée entre la mise en file d’attente et l’attribution. Une fois qu’un exécuteur est en cours d’utilisation, les machines virtuelles sont prêtes pour les exécutions de flux de travail suivantes, ce qui réduit la durée entre la mise en file d’attente et l’attribution pour les exécutions de flux de travail à venir au cours des 24 heures suivantes.

Si vous remarquez que les travaux qui ciblent vos exécuteur plus grand sont retardés ou ne sont pas en cours d’exécution, plusieurs facteurs peuvent en être à l’origine.

  • Paramètres de concurrence : vous avez peut-être atteint votre limite maximale de concurrence. Si vous voulez permettre l’exécution en parallèle de plus de travaux, vous pouvez mettre à jour vos paramètres de mise à l’échelle automatique sur un nombre plus élevé. Pour plus d’informations, consultez « Gestion des exécuteurs de plus grande taille ».
  • Autorisations de dépôt : vérifiez que les autorisations de dépôt appropriées sont activées pour vos exécuteur plus grand. Par défaut, les exécuteurs d’entreprise ne sont pas disponibles au niveau du dépôt et doivent être activés manuellement par un administrateur d’organisation. Pour plus d’informations, consultez « Gestion des exécuteurs de plus grande taille ».
  • Informations de facturation : vous devez avoir une carte de crédit valide dans le fichier pour pouvoir utiliser des exécuteur plus grand. Après avoir ajouté une carte de crédit à votre compte, il peut être nécessaire d’attendre jusqu’à 10 minutes avant de pouvoir activer vos exécuteur plus grand. Pour plus d’informations, consultez « Adding or editing a payment method ».
  • Limite de dépense : votre limite de dépense GitHub Actions doit être définie sur une valeur supérieure à zéro. Pour plus d’informations, consultez « Managing your spending limit for GitHub Actions ».
  • Stratégie d’utilisation équitable : GitHub a une stratégie d’utilisation équitable qui commence à limiter les travaux en fonction de plusieurs facteurs, comme le nombre de travaux que vous exécutez ou le nombre de travaux exécutés dans tout GitHub Actions.
  • Durée entre la mise en file d’attente et l’attribution de la tâche : la durée entre la mise en file d’attente et l’attribution de la tâche correspond au temps qui s’écoule entre la demande d’une tâche et l’attribution par GitHub d’une machine virtuelle pour l’exécution de la tâche. Les exécuteurs standard hébergés par GitHub qui utilisent les étiquettes de flux de travail YAML prescrites (telles que ubuntu-latest) sont toujours dans un état « chaud ». Dans le cas d’exécuteurs de plus grande taille, une machine à l’état chaud peut ne pas être prête à prendre une tâche à la première demande, car les groupes de ces machines sont plus petits. Par conséquent, GitHub peut avoir besoin de créer une nouvelle machine virtuelle, ce qui augmente la durée entre la mise en file d’attente et l’attribution. Une fois qu’un exécuteur est en cours d’utilisation, les machines virtuelles sont prêtes pour les exécutions de flux de travail suivantes, ce qui réduit la durée entre la mise en file d’attente et l’attribution pour les exécutions de flux de travail à venir au cours des 24 heures suivantes.

Étant donné que macOS arm64 ne prend pas en charge Node 12, les exécuteur plus grand macOS utilisent automatiquement Node 16 pour exécuter n’importe quelle action JavaScript écrite pour Node 12. Certaines actions de communauté peuvent ne pas être compatibles avec Node 16. Si vous utilisez une action qui nécessite une autre version de Node, vous devrez peut-être installer manuellement une version spécifique au moment du runtime.

Remarque : Les exécuteurs alimentés par ARM sont actuellement en beta et peuvent faire l’objet de modifications.