

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# GitHub Actions auto-hébergées se lance dans AWS CodeBuild
<a name="action-runner-overview"></a>

Vous pouvez configurer votre projet pour configurer des exécuteurs d' GitHub actions auto-hébergés dans des CodeBuild conteneurs afin de traiter vos tâches de flux de travail GitHub Actions. Cela peut être fait en configurant un webhook à l'aide de votre CodeBuild projet et en mettant à jour votre flux de travail GitHub Actions YAML pour utiliser des coureurs auto-hébergés hébergés sur des machines. CodeBuild 

Les étapes de haut niveau pour configurer un CodeBuild projet afin d'exécuter GitHub des tâches Actions sont les suivantes :

1. Si ce n'est pas déjà fait, créez un jeton d'accès personnel ou connectez-vous à une OAuth application à laquelle connecter votre projet GitHub.

1. Accédez à la CodeBuild console, créez un CodeBuild projet avec un webhook et configurez vos filtres webhook.

1. Mettez à jour votre flux de travail GitHub Actions YAML GitHub pour configurer votre environnement de génération.

Pour une procédure plus détaillée, voir[Tutoriel : Configuration d'un CodeBuild exécuteur d' GitHub actions hébergé](action-runner.md).

Cette fonctionnalité permet à vos tâches de flux de travail GitHub Actions de s'intégrer de manière native AWS, ce qui apporte sécurité et commodité grâce à des fonctionnalités telles que l'IAM AWS CloudTrail, AWS Secrets Manager l'intégration et Amazon VPC. Vous pouvez accéder aux derniers types d'instances, y compris les instances basées sur ARM.

**Topics**
+ [À propos de l'application GitHub Actions CodeBuild Runner hébergée](action-runner-questions.md)
+ [Tutoriel : Configuration d'un CodeBuild exécuteur d' GitHub actions hébergé](action-runner.md)
+ [Résoudre les problèmes liés au webhook](action-runner-troubleshoot-webhook.md)
+ [Les remplacements d'étiquettes sont pris en charge avec le programme Actions Runner CodeBuild hébergé par -hosted GitHub](sample-github-action-runners-update-labels.md)
+ [Calculez les images prises en charge avec le CodeBuild lanceur d' GitHub actions hébergé](sample-github-action-runners-update-yaml.images.md)

# À propos de l'application GitHub Actions CodeBuild Runner hébergée
<a name="action-runner-questions"></a>

Voici quelques questions fréquemment posées à propos du lanceur d' GitHub actions CodeBuild hébergé par -hosted.

## Quand dois-je inclure les remplacements d'image et d'instance dans l'étiquette ?
<a name="action-runner-image-label"></a>

Vous pouvez inclure les remplacements d'image et d'instance dans l'étiquette afin de spécifier un environnement de génération différent pour chacune de vos tâches de flux de travail GitHub Actions. Cela peut être fait sans qu'il soit nécessaire de créer plusieurs CodeBuild projets ou webhooks. Par exemple, cela est utile lorsque vous devez utiliser une [matrice pour vos tâches de flux de travail](https://docs.github.com/en/actions/using-jobs/using-a-matrix-for-your-jobs).

```
name: Hello World
on: [push]
jobs:
  Hello-World-Job:
    runs-on:
      - codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }}
        image:${{ matrix.os }}
        instance-size:${{ matrix.size }}
    strategy:
      matrix:
        include:
          - os: arm-3.0
            size: small
          - os: linux-5.0
            size: large
    steps:
      - run: echo "Hello World!"
```

**Note**  
Les guillemets peuvent être nécessaires si `runs-on` plusieurs libellés contiennent le contexte GitHub des actions.

## Puis-je utiliser CloudFormation cette fonctionnalité ?
<a name="action-runner-cfn"></a>

Oui, vous pouvez inclure un groupe de filtres dans votre CloudFormation modèle qui spécifie un filtre d'événements de travail du flux de travail GitHub Actions dans le webhook de votre projet.

```
Triggers:
  Webhook: true
  FilterGroups:
    - - Type: EVENT
        Pattern: WORKFLOW_JOB_QUEUED
```

Pour de plus amples informations, veuillez consulter [Filtrer les événements du GitHub webhook ()CloudFormation](github-webhook-events-cfn.md).

Si vous avez besoin d'aide pour configurer les informations d'identification du projet dans votre CloudFormation modèle, consultez [AWS::CodeBuild::SourceCredential](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-sourcecredential.html)le *guide de AWS CloudFormation l'utilisateur* pour plus d'informations.

## Comment masquer des secrets lors de l'utilisation de cette fonctionnalité ?
<a name="action-runner-secrets"></a>

Par défaut, les secrets imprimés dans le journal ne sont pas masqués. Si vous souhaitez masquer vos secrets, vous pouvez utiliser la syntaxe suivante :`::add-mask::value`. Voici un exemple de la façon dont vous pouvez utiliser cette syntaxe dans votre fichier YAML :

```
name: Secret Job
on: [push]
jobs:
  Secret-Job:
    runs-on: codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }}
    env:
      SECRET_NAME: "secret-name"
    steps:
      - run: echo "::add-mask::$SECRET_NAME"
```

Pour plus d'informations, consultez la section [Masquage d'une valeur lors d'une connexion](https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#masking-a-value-in-a-log). GitHub

## Puis-je recevoir des événements Webhook GitHub Actions provenant de plusieurs référentiels au sein d'un même projet ?
<a name="action-runner-webhooks"></a>

CodeBuild prend en charge les webhooks au niveau des organisations et au niveau mondial, qui reçoivent des événements d'une organisation ou d'une entreprise spécifiée. Pour de plus amples informations, veuillez consulter [GitHub webhooks mondiaux et organisationnels](github-global-organization-webhook.md).

## Quelles régions proposent l'utilisation d'un CodeBuild programme GitHub Actions Runner hébergé ?
<a name="action-runner-hosted-regions"></a>

CodeBuild-Hosted GitHub Actions : les coureurs sont soutenus dans toutes les CodeBuild régions. Pour plus d'informations sur Régions AWS les CodeBuild zones disponibles, consultez la section [AWS Services par région](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/).

## Quelles plateformes prennent en charge l'utilisation d'un CodeBuild exécuteur d' GitHub actions hébergé ?
<a name="action-runner-platform"></a>

CodeBuild-hosted GitHub Actions Runners sont pris en charge à la fois sur Amazon EC2 [AWS Lambda](lambda.md)et Compute. Vous pouvez utiliser les plateformes suivantes : Amazon Linux 2, Amazon Linux 2023, Ubuntu et Windows Server Core 2019. Pour plus d’informations, consultez [images de calcul EC2](ec2-compute-images.md) et [Images de calcul Lambda](lambda-compute-images.md).

# Tutoriel : Configuration d'un CodeBuild exécuteur d' GitHub actions hébergé
<a name="action-runner"></a>

Ce didacticiel explique comment configurer vos CodeBuild projets pour exécuter GitHub des tâches Actions. Pour plus d'informations sur l'utilisation d' GitHub Actions avec, CodeBuild voir[Tutoriel : Configuration d'un CodeBuild exécuteur d' GitHub actions hébergé](#action-runner).<a name="sample-github-action-runners-prerequisites"></a>

Pour effectuer ce didacticiel, vous devez d'abord :
+ Connectez-vous à l'aide d'un jeton d'accès personnel, d'un secret du Gestionnaire de Secrets, d'une OAuth application ou d'une GitHub appli. Si vous souhaitez vous connecter à une OAuth application, vous devez utiliser la CodeBuild console pour ce faire. Si vous souhaitez créer un jeton d'accès personnel, vous pouvez utiliser la CodeBuild console ou l'[ImportSourceCredentials API](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ImportSourceCredentials.html). Pour plus d’informations, consultez [GitHub et accès au serveur d' GitHub entreprise dans CodeBuild](access-tokens-github-overview.md).
+ Connectez-vous CodeBuild à votre GitHub compte. Pour ce faire, vous pouvez effectuer l'une des opérations suivantes :
  + Vous pouvez l'ajouter GitHub en tant que fournisseur de source dans la console. Vous pouvez vous connecter à l'aide d'un jeton d'accès personnel, d'un secret du Gestionnaire de Secrets, d'une OAuth application ou d'une GitHub application. Pour obtenir des instructions, veuillez consulter [GitHub et accès au serveur d' GitHub entreprise dans CodeBuild](access-tokens-github-overview.md).
  + Vous pouvez importer vos GitHub informations d'identification via l'[ImportSourceCredentials API](https://docs.aws.amazon.com/cli/latest/reference/codebuild/import-source-credentials.html). Cela ne peut être fait qu'avec un jeton d'accès personnel. Si vous vous connectez à l'aide d'une OAuth application, vous devez plutôt vous connecter à l'aide de la console. Pour obtenir des instructions, veuillez consulter [Connectez-vous à GitHub l'aide d'un jeton d'accès (CLI)](access-tokens-github.md#access-tokens-github-cli).
**Note**  
Cela ne doit être fait que si vous n'êtes pas connecté GitHub à votre compte.

## Étape 1 : Création d'un CodeBuild projet avec un webhook
<a name="sample-github-action-runners-create-project"></a>

Au cours de cette étape, vous allez créer un CodeBuild projet avec un webhook et le passer en revue dans la GitHub console. Vous pouvez également choisir GitHub Enterprise comme fournisseur source. Pour en savoir plus sur la création d'un webhook dans GitHub Enterprise, consultez[GitHub webhooks manuels](github-manual-webhook.md).

**Pour créer un CodeBuild projet avec un webhook**

1. Ouvrez la AWS CodeBuild console sur [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. Créez un projet de génération. Pour plus d’informations, consultez [Création d'un projet de génération (console)](create-project.md#create-project-console) et [Exécution d'une génération (console)](run-build-console.md).

1. Dans **Type de projet**, choisissez le **projet Runner**.

   Dans **Runner** :

   1. Pour le **fournisseur Runner**, choisissez **GitHub**.

   1. Pour l'**emplacement de Runner**, choisissez **Repository**.

   1. Pour URL du référentiel sous **Repository**, choisissez **https://github.com/user-name/repository-name**.
**Note**  
Par défaut, votre projet ne recevra que les `WORKFLOW_JOB_QUEUED` événements d'un seul référentiel. Si vous souhaitez recevoir des événements pour tous les référentiels d'une organisation ou d'une entreprise, consultez[GitHub webhooks mondiaux et organisationnels](github-global-organization-webhook.md).

1. 
   +  Dans **Environment (Environnement)** : 
     + Choisissez une **image d'environnement** compatible et **calculez**. Notez que vous avez la possibilité de remplacer les paramètres d'image et d'instance en utilisant une étiquette dans le code YAML de votre flux de travail GitHub Actions. Pour de plus amples informations, consultez [Étape 2 : mettez à jour votre flux de travail GitHub Actions YAML](#sample-github-action-runners-update-yaml).
   +  Dans **Buildspec**: 
     + Notez que votre spécification de construction sera ignorée à moins qu'elle ne `buildspec-override:true` soit ajoutée sous forme d'étiquette. Au lieu de cela, il le CodeBuild remplacera pour utiliser des commandes qui configureront le coureur auto-hébergé.

1. Continuez avec les valeurs par défaut, puis choisissez **Create build project**.

1. Ouvrez la GitHub console sur `https://github.com/user-name/repository-name/settings/hooks` pour vérifier qu'un webhook a été créé et qu'il est activé pour diffuser des événements de **tâches Workflow**.

## Étape 2 : mettez à jour votre flux de travail GitHub Actions YAML
<a name="sample-github-action-runners-update-yaml"></a>

Au cours de cette étape, vous allez mettre à jour le fichier YAML de votre flux de travail GitHub Actions [https://github.com/](https://github.com/)pour configurer votre environnement de construction et utiliser les coureurs auto-hébergés par GitHub Actions dans. CodeBuild Pour plus d'informations, consultez les sections [Utilisation d'étiquettes avec des coureurs auto-hébergés](https://docs.github.com/en/actions/hosting-your-own-runners/managing-self-hosted-runners/using-labels-with-self-hosted-runners) et[Les remplacements d'étiquettes sont pris en charge avec le programme Actions Runner CodeBuild hébergé par -hosted GitHub](sample-github-action-runners-update-labels.md).

### Mettez à jour votre flux de travail GitHub Actions (YAML)
<a name="sample-github-action-runners-update-yaml.setup"></a>

Accédez au [https://docs.github.com/en/actions/hosting-your-own-runners/managing-self-hosted-runners/using-labels-with-self-hosted-runners](https://docs.github.com/en/actions/hosting-your-own-runners/managing-self-hosted-runners/using-labels-with-self-hosted-runners)paramètre YAML de votre flux de travail GitHub Actions [https://github.com/](https://github.com/)et mettez-le à jour pour configurer votre environnement de génération. Pour ce faire, vous pouvez effectuer l'une des opérations suivantes :
+ Vous pouvez spécifier le nom du projet et l'ID d'exécution, auquel cas le build utilisera la configuration de votre projet existante pour le calcul, l'image, la version de l'image et la taille de l'instance. Le nom du projet est nécessaire pour lier AWS les paramètres associés de votre tâche GitHub Actions à un CodeBuild projet spécifique. En incluant le nom du projet dans le YAML, CodeBuild il est autorisé à invoquer des tâches avec les paramètres de projet corrects. En fournissant l'ID d'exécution, votre build CodeBuild sera mappé à des exécutions de flux de travail spécifiques et arrêtera la génération lorsque l'exécution du flux de travail est annulée. Pour plus d'informations, reportez-vous à la section [`github`Contexte](https://docs.github.com/en/actions/learn-github-actions/contexts#github-context).

  ```
  runs-on: codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }}
  ```
**Note**  
Assurez-vous que vous *<project-name>* correspondez au nom du projet que vous avez créé à l'étape précédente. S'il ne correspond pas, le webhook ne CodeBuild sera pas traité et le flux de travail GitHub Actions risque de se bloquer.

  Voici un exemple de flux de travail GitHub Actions YAML :

  ```
  name: Hello World
  on: [push]
  jobs:
    Hello-World-Job:
      runs-on:
        - codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }}
      steps:
        - run: echo "Hello World!"
  ```
+ Vous pouvez également remplacer votre image et le type de calcul dans l'étiquette. Consultez [Calculez les images prises en charge avec le CodeBuild lanceur d' GitHub actions hébergé](sample-github-action-runners-update-yaml.images.md) la liste des images sélectionnées. Pour utiliser des images personnalisées, voir[Les remplacements d'étiquettes sont pris en charge avec le programme Actions Runner CodeBuild hébergé par -hosted GitHub](sample-github-action-runners-update-labels.md). Le type de calcul et l'image figurant dans l'étiquette remplaceront les paramètres d'environnement de votre projet. Pour remplacer les paramètres de votre environnement pour une version de calcul CodeBuild EC2 ou Lambda, utilisez la syntaxe suivante :

  ```
  runs-on:
    - codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }}
      image:<environment-type>-<image-identifier>
      instance-size:<instance-size>
  ```

  Voici un exemple de flux de travail GitHub Actions YAML :

  ```
  name: Hello World
  on: [push]
  jobs:
    Hello-World-Job:
      runs-on:
        - codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }}
          image:arm-3.0
          instance-size:small
      steps:
        - run: echo "Hello World!"
  ```
+ Vous pouvez remplacer le parc utilisé pour votre construction dans l'étiquette. Cela remplacera les paramètres de flotte configurés dans votre projet pour utiliser le parc spécifié. Pour de plus amples informations, veuillez consulter [Exécutez des builds sur des flottes à capacité réservée](fleets.md). Pour remplacer les paramètres de votre flotte pour une version de calcul Amazon EC2, utilisez la syntaxe suivante :

  ```
  runs-on:
    - codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }}
      fleet:<fleet-name>
  ```

  Pour remplacer à la fois la flotte et l'image utilisées pour la génération, utilisez la syntaxe suivante :

  ```
  runs-on:
    - codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }}
      fleet:<fleet-name>
      image:<environment-type>-<image-identifier>
  ```

  Voici un exemple de flux de travail GitHub Actions YAML :

  ```
  name: Hello World
  on: [push]
  jobs:
    Hello-World-Job:
      runs-on:
        - codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }}
          fleet:myFleet
          image:arm-3.0
      steps:
        - run: echo "Hello World!"
  ```
+ Pour exécuter vos tâches GitHub Actions sur une image personnalisée, vous pouvez configurer une image personnalisée dans votre CodeBuild projet et éviter de fournir une étiquette de remplacement d'image. CodeBuild utilisera l'image configurée dans le projet si aucune étiquette de remplacement d'image n'est fournie.
+ Vous pouvez éventuellement fournir des étiquettes autres que celles prises CodeBuild en charge. Ces étiquettes seront ignorées dans le but de remplacer les attributs de la version, mais elles n'échoueront pas à la demande de webhook. Par exemple, l'ajout `testLabel` d'une étiquette n'empêchera pas le build de s'exécuter.

**Note**  
Si une dépendance fournie par GitHub -hosted runners n'est pas disponible dans l' CodeBuildenvironnement, vous pouvez l'installer à l'aide d' GitHub Actions dans votre flux de travail. Par exemple, vous pouvez utiliser l'[https://github.com/actions/setup-python](https://github.com/actions/setup-python)action pour installer Python dans votre environnement de construction.

### Exécutez les commandes buildspec pendant les phases INSTALL, PRE\$1BUILD et POST\$1BUILD
<a name="sample-github-action-runners-update-yaml.buildspec"></a>

Par défaut, CodeBuild ignore les commandes buildspec lors de l'exécution d'une version Actions auto-hébergée. GitHub Pour exécuter les commandes buildspec pendant la construction, `buildspec-override:true` vous pouvez les ajouter en tant que suffixe à l'étiquette :

```
runs-on:
  - codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }}
    buildspec-override:true
```

En utilisant cette commande, CodeBuild vous créerez un dossier appelé `actions-runner` dans le dossier source principal du conteneur. Lorsque le lanceur d' GitHub actions démarre pendant la `BUILD` phase, il s'exécute dans le `actions-runner` répertoire.

L'utilisation d'une dérogation buildspec dans une version Actions auto-hébergée présente plusieurs limites : GitHub 
+ CodeBuild n'exécutera pas de commandes buildspec pendant la `BUILD` phase, car le lanceur auto-hébergé s'exécute pendant la phase. `BUILD`
+ CodeBuild ne téléchargera aucune source principale ou secondaire pendant la `DOWNLOAD_SOURCE` phase. Si vous avez configuré un fichier buildspec, seul ce fichier sera téléchargé depuis la source principale du projet.
+ Si une commande de génération échoue pendant la `INSTALL` phase `PRE_BUILD` ou, elle ne CodeBuild démarrera pas le lanceur auto-hébergé et le travail du flux de travail GitHub Actions devra être annulé manuellement.
+ CodeBuild récupère le jeton du coureur pendant la `DOWNLOAD_SOURCE` phase, dont le délai d'expiration est d'une heure. Si votre `PRE_BUILD` ou vos `INSTALL` phases dépassent une heure, le jeton de course peut expirer avant le départ du coureur GitHub auto-hébergé.

## Étape 3 : Passez en revue vos résultats
<a name="sample-github-action-runners-verify"></a>

Chaque fois qu'un flux de travail GitHub Actions est exécuté, CodeBuild il reçoit les événements de travail du flux de travail via le webhook. Pour chaque tâche du flux de travail, CodeBuild lance une compilation pour exécuter un exécuteur d' GitHub actions éphémère. Le coureur est responsable de l'exécution d'une seule tâche de flux de travail. Une fois le travail terminé, le lanceur et le processus de construction associé seront immédiatement interrompus.

Pour consulter les journaux des tâches de votre flux de travail GitHub, accédez à votre référentiel dans, choisissez **Actions**, choisissez le flux de travail souhaité, puis choisissez le **travail** spécifique dont vous souhaitez consulter les journaux.

Vous pouvez consulter les étiquettes demandées dans le journal pendant que le travail attend d'être récupéré par un coureur auto-hébergé. CodeBuild

![\[Chargement du journal de la tâche.\]](http://docs.aws.amazon.com/fr_fr/codebuild/latest/userguide/images/hello-world-loading.png)


Une fois la tâche terminée, vous pourrez consulter le journal de la tâche.

![\[Le journal de la tâche.\]](http://docs.aws.amazon.com/fr_fr/codebuild/latest/userguide/images/hello-world-log.png)


## GitHub Options de configuration d'Actions Runner
<a name="sample-github-action-runners-config"></a>

Vous pouvez spécifier les variables d'environnement suivantes dans la configuration de votre projet pour modifier la configuration de vos coureurs auto-hébergés.

`CODEBUILD_CONFIG_GITHUB_ACTIONS_ORG_REGISTRATION_NAME`  
CodeBuild enregistrera les coureurs auto-hébergés au nom de l'organisation spécifié comme valeur de cette variable d'environnement. Pour plus d'informations sur l'enregistrement des coureurs au niveau de l'organisation et sur les autorisations nécessaires, voir [Créer une configuration pour un just-in-time coureur au sein d'une organisation](https://docs.github.com/en/rest/actions/self-hosted-runners?apiVersion=2022-11-28#create-configuration-for-a-just-in-time-runner-for-an-organization).

`CODEBUILD_CONFIG_GITHUB_ACTIONS_ENTERPRISE_REGISTRATION_NAME`  
CodeBuild enregistrera les coureurs auto-hébergés sous le nom d'entreprise spécifié comme valeur de cette variable d'environnement. Pour plus d'informations sur l'enregistrement des coureurs au niveau de l'entreprise et sur les autorisations nécessaires, voir [Créer une configuration pour un just-in-time coureur pour une entreprise](https://docs.github.com/en/enterprise-server/rest/actions/self-hosted-runners?apiVersion=2022-11-28#create-configuration-for-a-just-in-time-runner-for-an-enterprise).  
Par défaut, les Enterprise Runners ne sont pas disponibles dans les référentiels de l'organisation. Pour que les coureurs auto-hébergés puissent prendre en charge les tâches liées au flux de travail, vous devrez peut-être configurer les paramètres d'accès de votre groupe de coureurs. Pour plus d'informations, consultez la section Mise [à disposition des Enterprise Runners dans les référentiels.](https://docs.github.com/en/enterprise-server/actions/hosting-your-own-runners/managing-self-hosted-runners/adding-self-hosted-runners#making-enterprise-runners-available-to-repositories)

`CODEBUILD_CONFIG_GITHUB_ACTIONS_RUNNER_GROUP_ID`  
CodeBuild enregistrera les coureurs auto-hébergés selon l'identifiant entier du groupe de coureurs stocké sous forme de valeur de cette variable d'environnement. Par défaut, cette valeur est 1. Pour plus d'informations sur les groupes de coureurs auto-hébergés, voir [Gestion de l'accès aux coureurs auto-hébergés à l'aide](https://docs.github.com/en/rest/actions/self-hosted-runners?apiVersion=2022-11-28#create-configuration-for-a-just-in-time-runner-for-an-organization) de groupes.

`CODEBUILD_CONFIG_GITHUB_ACTIONS_ORG_REGISTRATION_NAME`  
Pour configurer l'enregistrement des coureurs au niveau de l'organisation à l'aide du fichier YAML de votre flux de travail GitHub Actions, vous pouvez utiliser la syntaxe suivante :  

```
name: Hello World
on: [push]
jobs:
  Hello-World-Job:
    runs-on:
      - codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }}
        organization-registration-name:myOrganization
    steps:
      - run: echo "Hello World!"
```

`CODEBUILD_CONFIG_GITHUB_ACTIONS_ENTERPRISE_REGISTRATION_NAME`  
Pour configurer l'enregistrement des coureurs au niveau de l'entreprise à l'aide du fichier YAML de votre flux de travail GitHub Actions, vous pouvez utiliser la syntaxe suivante :  

```
name: Hello World
on: [push]
jobs:
  Hello-World-Job:
    runs-on:
      - codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }}
        enterprise-registration-name:myEnterprise
    steps:
      - run: echo "Hello World!"
```

`CODEBUILD_CONFIG_GITHUB_ACTIONS_RUNNER_GROUP_ID`  
Pour configurer l'enregistrement des coureurs à un identifiant de groupe de coureurs spécifique à l'aide du fichier YAML de votre flux de travail GitHub Actions, vous pouvez utiliser la syntaxe suivante :  

```
name: Hello World
on: [push]
jobs:
  Hello-World-Job:
    runs-on:
      - codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }}
        registration-group-id:3
    steps:
      - run: echo "Hello World!"
```

## Filtrer GitHub les actions et les événements du webhook ()CloudFormation
<a name="sample-github-action-runners-webhooks-cfn"></a>

La partie suivante d'un CloudFormation modèle au format YAML crée un groupe de filtres qui déclenche une génération lorsqu'elle est évaluée à true. Le groupe de filtres suivant spécifie une demande de travail de flux de travail GitHub Actions avec un nom de flux de travail correspondant à l'expression régulière`\[CI-CodeBuild\]`.

```
CodeBuildProject:
  Type: AWS::CodeBuild::Project
  Properties:
    Name: MyProject
    ServiceRole: service-role
    Artifacts:
      Type: NO_ARTIFACTS
    Environment:
      Type: LINUX_CONTAINER
      ComputeType: BUILD_GENERAL1_SMALL
      Image: aws/codebuild/standard:5.0
    Source:
      Type: GITHUB
      Location: CODEBUILD_DEFAULT_WEBHOOK_SOURCE_LOCATION
    Triggers:
      Webhook: true
      ScopeConfiguration:
        Name: organization-name
        Scope: GITHUB_ORGANIZATION
      FilterGroups:
        - - Type: EVENT
            Pattern: WORKFLOW_JOB_QUEUED
          - Type: WORKFLOW_NAME
            Pattern: \[CI-CodeBuild\]
```

## Filtrer GitHub les actions et les événements du webhook ()AWS CDK
<a name="sample-github-action-runners-webhooks-cdk"></a>

Le AWS CDK modèle suivant crée un groupe de filtres qui déclenche une génération lorsqu'il est évalué comme vrai. Le groupe de filtres suivant spécifie une demande de travail dans le flux de travail GitHub Actions.

```
import { aws_codebuild as codebuild } from 'aws-cdk-lib';
import {EventAction, FilterGroup} from "aws-cdk-lib/aws-codebuild";

const source = codebuild.Source.gitHub({
      owner: 'owner',
      repo: 'repo',
      webhook: true,
      webhookFilters: [FilterGroup.inEventOf(EventAction.WORKFLOW_JOB_QUEUED)],
    })
```

## Filtrer GitHub les actions et les événements du webhook (Terraform)
<a name="sample-github-action-runners-webhooks-terraform"></a>

Le modèle Terraform suivant crée un groupe de filtres qui déclenche une génération lorsqu'il est évalué comme vrai. Le groupe de filtres suivant spécifie une demande de travail dans le flux de travail GitHub Actions.

```
resource "aws_codebuild_webhook" "example" {
  project_name = aws_codebuild_project.example.name
  build_type   = "BUILD"
  filter_group {
    filter {
      type    = "EVENT"
      pattern = "WORKFLOW_JOB_QUEUED"
    }
  }
}
```

## Filtrer GitHub les actions et les événements du webhook ()AWS CLI
<a name="sample-github-action-runners-webhooks-cli"></a>

Les AWS CLI commandes suivantes créent un projet GitHub Actions Runner auto-hébergé avec un groupe de filtres de demandes de travail GitHub Actions Workflow qui déclenche une compilation lorsqu'elle est évaluée comme vraie.

```
aws codebuild create-project \
--name <project name> \
--source "{\"type\":\"GITHUB\",\"location\":\"<repository location>\",\"buildspec\":\"\"}" \
--artifacts {"\"type\":\"NO_ARTIFACTS\""} \
--environment "{\"type\": \"LINUX_CONTAINER\",\"image\": \"aws/codebuild/amazonlinux-x86_64-standard:5.0\",\"computeType\": \"BUILD_GENERAL1_MEDIUM\"}" \
--service-role "<service role ARN>"
```

```
aws codebuild create-webhook \
--project-name <project name> \
--filter-groups "[[{\"type\":\"EVENT\",\"pattern\":\"WORKFLOW_JOB_QUEUED\"}]]"
```

# Résoudre les problèmes liés au webhook
<a name="action-runner-troubleshoot-webhook"></a>

**Problème :** le webhook que vous avez configuré ne fonctionne [Tutoriel : Configuration d'un CodeBuild exécuteur d' GitHub actions hébergé](action-runner.md) pas ou votre tâche de flux de travail est en GitHub suspens.

**Causes possibles :**
+ Votre événement Webhook **Workflow jobs** ne parvient peut-être pas à déclencher une compilation. Consultez les journaux des **réponses** pour voir la réponse ou le message d'erreur.
+ Vos tâches sont attribuées au mauvais agent d'expédition en raison de la configuration de son étiquette. Ce problème peut se produire lorsque l'une de vos tâches au cours d'une seule exécution de flux de travail comporte moins d'étiquettes qu'une autre tâche. Par exemple, si vous avez deux tâches portant les étiquettes suivantes dans le même flux de travail, exécutez :
  + **Job 1** : `codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }}`
  + **Job 2** :`codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }}`, `instance-size:medium`

  Lors du routage d'une tâche GitHub Actions auto-hébergée, la tâche GitHub sera acheminée vers n'importe quel exécuteur avec toutes les étiquettes spécifiées pour la tâche. Ce comportement signifie que le **Job 1** peut être choisi par le coureur créé pour le **Job 1** ou **Job 2**, mais que le **Job 2** ne peut être repris que par le coureur créé pour le **Job 2** puisqu'il possède une étiquette supplémentaire. Si le **Job 1** est choisi par le coureur créé pour le **Job 2**, le **Job 2** sera bloqué car le coureur du **Job 1** n'a pas le `instance-size:medium` label.

**Solutions recommandées :**

Lorsque vous créez plusieurs tâches dans le même flux de travail, utilisez le même nombre de remplacements d'étiquettes pour chaque tâche ou attribuez à chaque tâche une étiquette personnalisée, telle que `job1` ou`job2`.

Si l'erreur persiste, suivez les instructions ci-dessous pour résoudre le problème.

1. Ouvrez la GitHub console à l'adresse `https://github.com/user-name/repository-name/settings/hooks` pour afficher les paramètres du webhook de votre dépôt. Sur cette page, vous verrez un webhook créé pour votre dépôt.

1. Choisissez **Modifier** et confirmez que le webhook est activé pour diffuser les événements relatifs aux jobs **Workflow**.  
![\[Les événements liés aux tâches du flux de travail sont activés dans votre webhook.\]](http://docs.aws.amazon.com/fr_fr/codebuild/latest/userguide/images/github-actions-workflow-jobs.png)

1.  Accédez à l'onglet **Livraisons récentes**, recherchez l'`workflow_job.queued`événement correspondant et développez l'événement. 

1.  Vérifiez le champ **des étiquettes** dans la **charge utile** et assurez-vous qu'il correspond à vos attentes. 

1.  Enfin, passez en revue l'onglet **Réponse**, car il contient la réponse ou le message d'erreur renvoyé par CodeBuild.   
![\[La réponse ou le message d'erreur renvoyé par CodeBuild.\]](http://docs.aws.amazon.com/fr_fr/codebuild/latest/userguide/images/github-actions-workflow-jobs-response.png)

1.  Vous pouvez également déboguer les échecs de webhook à l'aide GitHub de. APIs Vous pouvez consulter les livraisons récentes d'un webhook à l'aide de l'API [Lister les livraisons pour un webhook de référentiel](https://docs.github.com/en/rest/repos/webhooks?apiVersion=2022-11-28#list-deliveries-for-a-repository-webhook) : 

   ```
   gh api \
     -H "Accept: application/vnd.github+json" \
     -H "X-GitHub-Api-Version: 2022-11-28" \
     /repos/owner/repo/hooks/hook-id/deliveries
   ```

    Après avoir trouvé la livraison du webhook que vous souhaitez débuguer et avoir noté l'ID de livraison, vous pouvez utiliser l'API [Get a delivery for a repository webhook](https://docs.github.com/en/rest/repos/webhooks?apiVersion=2022-11-28#get-a-delivery-for-a-repository-webhook). CodeBuildla réponse à la charge utile de livraison du webhook se trouve dans la `response` section : 

   ```
   gh api \
     -H "Accept: application/vnd.github+json" \
     -H "X-GitHub-Api-Version: 2022-11-28" \
     /repos/owner/repo/hooks/hook-id/deliveries/delivery-id
   ```

**Problème :** vos GitHub actions lorsque les règles de [protection du déploiement](https://docs.github.com/en/actions/managing-workflow-runs-and-deployments/managing-deployments/reviewing-deployments) sont activées déclenchent des déclencheurs CodeBuild intégrés avant que le déploiement ne soit approuvé.

**Causes possibles :** CodeBuild récupère le déploiement et l'environnement associés à la tâche GitHub Actions s'ils existent pour vérifier s'ils sont approuvés. Si vous CodeBuild ne parvenez pas à récupérer le déploiement ou l'environnement, la CodeBuild compilation peut être déclenchée prématurément.

**Solutions recommandées :** Vérifiez que les informations d'identification associées à vos CodeBuild projets disposent d'autorisations de lecture pour les déploiements et les actions dans le cadre GitHub de ces projets.

# Les remplacements d'étiquettes sont pris en charge avec le programme Actions Runner CodeBuild hébergé par -hosted GitHub
<a name="sample-github-action-runners-update-labels"></a>

Dans votre flux de travail GitHub Actions YAML, vous pouvez fournir diverses remplacements d'étiquettes qui modifient la version de votre runner auto-hébergée. Toutes les versions non reconnues par CodeBuild seront ignorées mais n'échoueront pas à votre demande de webhook. Par exemple, le flux de travail YAML suivant inclut des remplacements pour l'image, la taille de l'instance, le parc et les spécifications de construction :

```
name: Hello World
on: [push]
jobs:
  Hello-World-Job:
    runs-on:
      - codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }}
        image:${{ matrix.os }}
        instance-size:${{ matrix.size }}
        fleet:myFleet
        buildspec-override:true
    strategy:
      matrix:
        include:
          - os: arm-3.0
            size: small
          - os: linux-5.0
            size: large
    steps:
      - run: echo "Hello World!"
```

**Note**  
Si votre tâche de flux de travail est en suspens GitHub, reportez-vous [Résoudre les problèmes liés au webhook](action-runner-troubleshoot-webhook.md) à la section [Utilisation d'étiquettes personnalisées pour acheminer les tâches](https://docs.github.com/en/enterprise-server@3.12/actions/hosting-your-own-runners/managing-self-hosted-runners/using-self-hosted-runners-in-a-workflow?learn=hosting_your_own_runners&learnProduct=actions#using-custom-labels-to-route-jobs).

`codebuild-<project-name>-${{github.run_id}}-${{github.run_attempt}}` (obligatoire)
+ Exemple : `codebuild-fake-project-${{ github.run_id }}-${{ github.run_attempt }}`
+ Obligatoire pour tous les flux de travail GitHub Actions YAMLs. *<project name>*doit être égal au nom du projet pour lequel le runner webhook auto-hébergé est configuré.

`image:<environment-type>-<image-identifier>`
+ Exemple : `image:arm-3.0`
+ Remplace l'image et le type d'environnement utilisés lors du démarrage de la version auto-hébergée par Runner avec une image organisée. Pour en savoir plus sur les valeurs prises en charge, consultez[Calculez les images prises en charge avec le CodeBuild lanceur d' GitHub actions hébergé](sample-github-action-runners-update-yaml.images.md).
  + Pour remplacer l'image et le type d'environnement utilisés par une image personnalisée, utilisez `image:custom-<environment-type>-<custom-image-identifier>`
  + Exemple : `image:custom-arm-public.ecr.aws/codebuild/amazonlinux-aarch64-standard:3.0`
**Note**  
Si l'image personnalisée se trouve dans un registre privé, consultez[Configurer un identifiant de registre privé pour les coureurs auto-hébergés](private-registry-sample-configure-runners.md).

`instance-size:<instance-size>`
+ Exemple : `instance-size:medium`
+ Remplace le type d'instance utilisé lors du démarrage de la version de course auto-hébergée. Pour en savoir plus sur les valeurs prises en charge, consultez[Calculez les images prises en charge avec le CodeBuild lanceur d' GitHub actions hébergé](sample-github-action-runners-update-yaml.images.md).

`fleet:<fleet-name>`
+ Exemple : `fleet:myFleet`
+ Remplace les paramètres de flotte configurés dans votre projet pour utiliser le parc spécifié. Pour de plus amples informations, veuillez consulter [Exécutez des builds sur des flottes à capacité réservée](fleets.md).

`buildspec-override:<boolean>`
+ Exemple : `buildspec-override:true`
+ Permet à la compilation d'exécuter des commandes buildspec dans les `POST_BUILD` phases `INSTALL``PRE_BUILD`, et si elle est définie sur. `true`

## Dérogation d'une seule étiquette (ancienne version)
<a name="sample-github-action-runners-update-single-labels"></a>

CodeBuild vous permet de fournir plusieurs remplacements dans une seule étiquette en utilisant ce qui suit :
+ Pour remplacer les paramètres de votre environnement pour une version de calcul Amazon EC2/Lambda, utilisez la syntaxe suivante :

  ```
  runs-on: codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }}-<environment-type>-<image-identifier>-<instance-size>
  ```
+ Pour modifier les paramètres de votre flotte pour Amazon EC2 Compute Build, utilisez la syntaxe suivante :

  ```
  runs-on: codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }}-fleet-<fleet-name>
  ```
+ Pour remplacer à la fois la flotte et l'image utilisées pour la génération, utilisez la syntaxe suivante :

  ```
  runs-on: codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }}-image-<image-version>-fleet-<fleet-name>
  ```
+ Pour exécuter les commandes buildspec pendant la construction, `-with-buildspec` vous pouvez les ajouter en tant que suffixe à l'étiquette :

  ```
  runs-on: codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }}-<image>-<image-version>-<instance-size>-with-buildspec
  ```
+ Vous pouvez éventuellement modifier la taille de l'instance sans remplacer l'image. Pour les versions Amazon EC2, vous pouvez exclure à la fois le type d'environnement et l'identifiant d'image. Pour les versions Lambda, vous pouvez exclure l'identifiant de l'image.

# Calculez les images prises en charge avec le CodeBuild lanceur d' GitHub actions hébergé
<a name="sample-github-action-runners-update-yaml.images"></a>

Dans l'étiquette que vous avez configurée[Tutoriel : Configuration d'un CodeBuild exécuteur d' GitHub actions hébergé](action-runner.md), vous pouvez remplacer les paramètres de votre environnement Amazon EC2 en utilisant les valeurs des trois premières colonnes. CodeBuild fournit les images de calcul Amazon EC2 suivantes. Pour plus d'informations sur 

<a name="build-env-ref.supported-images"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/codebuild/latest/userguide/sample-github-action-runners-update-yaml.images.html)

En outre, vous pouvez modifier les paramètres de votre environnement Lambda en utilisant les valeurs suivantes. Pour plus d'informations sur le calcul CodeBuild Lambda, consultez. [Exécuter des builds sur AWS Lambda ordinateur](lambda.md) CodeBuild prend en charge les images de calcul Lambda suivantes :

<a name="lambda.supported-images"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/codebuild/latest/userguide/sample-github-action-runners-update-yaml.images.html)

Pour plus d’informations, consultez [Modes et types de calcul de l'environnement de création](build-env-ref-compute-types.md) et [Images Docker fournies par CodeBuild](build-env-ref-available.md).