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.
Les remplacements d'étiquettes sont pris en charge avec le logiciel CodeBuild-hosted GitHub Actions Runner
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. Le flux de travail YAML suivant définit deux tâches : job1 utilise des remplacements pour l'image, la taille de l'instance, le parc et les spécifications de construction, et job2 utilise uniquement un remplacement d'image. Donnez à chaque tâche une étiquette unique (job1etjob2) afin qu'elle GitHub achemine chaque tâche vers le coureur créé pour elle :
name: Hello World on: [push] jobs: job1: runs-on: - codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }} - image:arm-3.0 - instance-size:small - fleet:myFleet - buildspec-override:true - job1 steps: - run: echo "Hello from Job 1!" job2: runs-on: - codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }} - image:linux-5.0 - job2 steps: - run: echo "Hello from Job 2!"
Vous pouvez également utiliser une stratégie matricielle pour exécuter une seule tâche dans plusieurs configurations. Les extensions d'une tâche matricielle unique ont toujours le même nombre d'étiquettes, de sorte que le problème de correspondance des coureurs ne les affecte pas. Toutefois, si une exécution de flux de travail contient plusieurs tâches matricielles, attribuez à chaque tâche matricielle une étiquette personnalisée unique (par exemple, matrix-job-1 etmatrix-job-2) afin qu' GitHub aucune tâche ne corresponde à une tâche créée pour une tâche matricielle différente :
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 - matrix-job-1 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 persiste GitHub, reportez-vous à la section Utilisation Résoudre les problèmes liés au webhook d'étiquettes personnalisées pour acheminer les tâches
codebuild- (obligatoire)<project-name>-${{github.run_id}}-${{github.run_attempt}}
Exemple :
codebuild-fake-project-${{ github.run_id }}-${{ github.run_attempt }}-
Obligatoire pour tous les YAML du flux de travail GitHub Actions.
<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, consultezCalculer les images prises en charge par le logiciel CodeBuild-hosted GitHub Actions Runner.
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.0Note
Si l'image personnalisée se trouve dans un registre privé, consultezConfigurer un identifiant de registre privé pour les coureurs auto-hébergés.
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, consultezCalculer les images prises en charge par le logiciel CodeBuild-hosted GitHub Actions Runner.
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.
buildspec-override:<boolean>
Exemple :
buildspec-override:true-
Permet à la compilation d'exécuter des commandes buildspec dans les
POST_BUILDphasesINSTALLPRE_BUILD, et si elle est définie sur.true
(recommandé lorsqu'une exécution de flux de travail comporte plusieurs tâches)<unique-label>
Exemple :
job1-
Une étiquette personnalisée que vous définissez et qu'aucune autre tâche n'utilise dans le même flux de travail. L'attribution d'une étiquette unique à chaque tâche garantit que chaque tâche sera GitHub acheminée uniquement vers le coureur créé pour elle. Sans cela, lorsque les tâches d'une même exécution de flux de travail comportent un nombre différent de remplacements d'étiquettes, une tâche contenant moins d'étiquettes peut être sélectionnée par un sous-traitant créé pour une tâche comportant plus d'étiquettes, ce qui laisse la deuxième tâche sans exécuteur. Pour de plus amples informations, veuillez consulter Résoudre les problèmes liés au webhook.
Dérogation d'une seule étiquette
CodeBuild vous permet de fournir plusieurs remplacements dans une seule étiquette en utilisant ce qui suit :
Note
Comme toutes les dérogations sont combinées en une seule étiquette, le responsable de chaque tâche s'inscrit avec exactement une étiquette. Cela signifie que le problème de mise en correspondance des exécuteurs de tâches multiples décrit dans Résoudre les problèmes liés au webhook ne peut pas se produire avec ce format, même sans étiquette unique sur chaque tâche. Utilisez le format à étiquette unique si vous préférez ce comportement et que vos tâches n'ont besoin que des remplacements qu'il prend en charge. Ne l'utilisez pas lorsque vous avez besoin d'une dérogation qu'il ne prend pas en charge. Par exemple, les images personnalisées (y compris les images d'un registre privé) ne peuvent être spécifiées qu'en utilisant le format image:custom- d'étiquette. Pour ces remplacements, utilisez le format d'étiquette distinct décrit plus haut dans cette rubrique.<environment-type>-<custom-image-identifier>
-
Pour remplacer les paramètres de votre environnement pour une version de EC2/Lambda calcul Amazon, 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-buildspecvous 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.