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.
Exécuter des builds par lots
Vous pouvez l'utiliser AWS CodeBuild pour exécuter des versions simultanées et coordonnées d'un projet à l'aide de versions par lots.
Rôle de sécurité
Les builds par lots introduisent un nouveau rôle de sécurité dans la configuration par lots. Ce nouveau rôle est obligatoire car CodeBuild il doit être capable d'appeler les RetryBuild
actions StartBuild
StopBuild
, et en votre nom pour exécuter des builds dans le cadre d'un lot. Les clients doivent utiliser un nouveau rôle, et non le même que celui qu'ils utilisent dans leur build, pour deux raisons :
-
L'attribution du rôle
StartBuild
de construction etRetryBuild
des autorisations permettrait à une seule version de démarrer d'autres versions via le buildspec.StopBuild
-
CodeBuild les versions par lots fournissent des restrictions qui limitent le nombre de versions et les types de calcul qui peuvent être utilisés pour les versions du lot. Si le rôle de build dispose de ces autorisations, il est possible que les builds eux-mêmes puissent contourner ces restrictions.
Types de build par lots
CodeBuild prend en charge les types de génération par lots suivants :
Types de build par lots
Construire un graphe
Un graphe de génération définit un ensemble de tâches qui dépendent d'autres tâches du lot.
L'exemple suivant définit un graphe de construction qui crée une chaîne de dépendances.
batch: fast-fail: false build-graph: - identifier: build1 env: variables: BUILD_ID: build1 ignore-failure: false - identifier: build2 buildspec: build2.yml env: variables: BUILD_ID: build2 depend-on: - build1 - identifier: build3 env: variables: BUILD_ID: build3 depend-on: - build2 - identifier: build4 env: compute-type: ARM_LAMBDA_1GB - identifier: build5 env: fleet: fleet_name
Dans cet exemple :
-
build1
s'exécute en premier car il n'a aucune dépendance. -
build2
dépend debuild1
, doncbuild2
s'exécute une foisbuild1
terminé. -
build3
dépend debuild2
, doncbuild3
s'exécute une foisbuild2
terminé.
Pour plus d'informations sur la syntaxe buildspec du graphe de construction, consultez. batch/build-graph
Construire une liste
Une liste de build définit un certain nombre de tâches exécutées en parallèle.
L'exemple suivant définit une liste de build. Les build2
builds build1
et seront exécutés en parallèle.
batch: fast-fail: false build-list: - identifier: build1 env: variables: BUILD_ID: build1 ignore-failure: false - identifier: build2 buildspec: build2.yml env: variables: BUILD_ID: build2 ignore-failure: true - identifier: build3 env: compute-type: ARM_LAMBDA_1GB - identifier: build4 env: fleet: fleet_name - identifier: build5 env: compute-type: GENERAL_LINUX_XLAGRE
Pour plus d'informations sur la syntaxe buildspec de la liste de compilation, consultez. batch/build-list
Construire une matrice
Une matrice de génération définit les tâches avec différentes configurations qui s'exécutent en parallèle. CodeBuild crée une version distincte pour chaque combinaison de configuration possible.
L'exemple suivant montre une matrice de construction avec deux fichiers buildspec et trois valeurs pour une variable d'environnement.
batch: build-matrix: static: ignore-failure: false dynamic: buildspec: - matrix1.yml - matrix2.yml env: variables: MY_VAR: - VALUE1 - VALUE2 - VALUE3
Dans cet exemple, CodeBuild crée six versions :
-
matrix1.yml
avec$MY_VAR=VALUE1
-
matrix1.yml
avec$MY_VAR=VALUE2
-
matrix1.yml
avec$MY_VAR=VALUE3
-
matrix2.yml
avec$MY_VAR=VALUE1
-
matrix2.yml
avec$MY_VAR=VALUE2
-
matrix2.yml
avec$MY_VAR=VALUE3
Chaque build comportera les paramètres suivants :
-
ignore-failure
réglé surfalse
-
env/type
réglé surLINUX_CONTAINER
-
env/image
réglé suraws/codebuild/amazonlinux-x86_64-standard:4.0
-
env/privileged-mode
réglé surtrue
Ces builds s'exécutent en parallèle.
Pour plus d'informations sur la syntaxe buildspec de la matrice de construction, consultez. batch/build-matrix
Construire un ventilateur
Un fanout de build définit une tâche qui sera divisée en plusieurs builds dans le lot. Cela peut être utilisé pour exécuter des tests en parallèle. CodeBuild crée une version distincte pour chaque fragment de cas de test en fonction de la valeur définie dans le parallelism
champ.
L'exemple suivant définit un fanout de build qui crée cinq builds exécutés en parallèle.
version: 0.2 batch: fast-fail: false build-fanout: parallelism: 5 ignore-failure: false phases: install: commands: - npm install build: commands: - mkdir -p test-results - cd test-results - | codebuild-tests-run \ --test-command 'npx jest --runInBand --coverage' \ --files-search "codebuild-glob-search '**/test/**/*.test.js'" \ --sharding-strategy 'equal-distribution'
Dans cet exemple, en supposant que 100 tests doivent être exécutés, CodeBuild crée cinq versions qui exécutent chacune 20 tests en parallèle.
Pour plus d'informations sur la syntaxe buildspec du graphe de construction, consultez. batch/build-fanout
Mode de rapport par lots
Si le fournisseur source de votre projet est Bitbucket ou GitHub Enterprise GitHub, et que votre projet est configuré pour signaler les statuts de construction au fournisseur source, vous pouvez sélectionner la manière dont vous souhaitez que les statuts de génération par lots soient envoyés au fournisseur source. Vous pouvez choisir d'envoyer les statuts sous forme de rapport d'état agrégé unique pour le lot, ou de faire en sorte que le statut de chaque build du lot soit signalé individuellement.
Pour plus d’informations, consultez les rubriques suivantes :
En savoir plus
Pour plus d’informations, consultez les rubriques suivantes :