Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Puoi utilizzarlo AWS CodeBuild per eseguire build simultanee e coordinate di un progetto con build in batch.
Ruolo di sicurezza
Le build batch introducono un nuovo ruolo di sicurezza nella configurazione batch. Questo nuovo ruolo è obbligatorio in quanto è CodeBuild necessario poter richiamare StartBuild
StopBuild
, e RetryBuild
le azioni per conto dell'utente per eseguire le build come parte di un batch. I clienti devono utilizzare un nuovo ruolo e non lo stesso ruolo utilizzato nella build, per due motivi:
-
L'assegnazione del ruolo
StartBuild
di build eRetryBuild
delle autorizzazioni consentirebbe a una singola build di avviare più build tramite buildspec.StopBuild
-
CodeBuild le build in batch forniscono restrizioni che limitano il numero di build e i tipi di calcolo che possono essere utilizzati per le build del batch. Se il ruolo di build dispone di queste autorizzazioni, è possibile che le build stesse possano aggirare queste restrizioni.
Tipi di build in batch
CodeBuild supporta i seguenti tipi di build in batch:
Tipi di build in batch
Crea un grafico
Un grafico di compilazione definisce un insieme di attività che dipendono da altre attività del batch.
L'esempio seguente definisce un grafico di compilazione che crea una catena di dipendenze.
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
In questo esempio:
-
build1
viene eseguito per primo perché non ha dipendenze. -
build2
dipende dabuild1
, quindibuild2
viene eseguito dopobuild1
il completamento. -
build3
dipende dabuild2
, quindibuild3
viene eseguito dopo il completamento.build2
Per ulteriori informazioni sulla sintassi build graph buildspec, vedi. batch/build-graph
Crea un elenco
Un elenco di build definisce una serie di attività eseguite in parallelo.
L'esempio seguente definisce un elenco di build. Le build2
build build1
and verranno eseguite in parallelo.
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
Per ulteriori informazioni sulla sintassi buildspec dell'elenco di compilazione, vedere. batch/build-list
Costruisci una matrice
Una matrice di compilazione definisce le attività con diverse configurazioni eseguite in parallelo. CodeBuild crea una build separata per ogni possibile combinazione di configurazione.
L'esempio seguente mostra una matrice di compilazione con due file buildspec e tre valori per una variabile di ambiente.
batch:
build-matrix:
static:
ignore-failure: false
dynamic:
buildspec:
- matrix1.yml
- matrix2.yml
env:
variables:
MY_VAR:
- VALUE1
- VALUE2
- VALUE3
In questo esempio, CodeBuild crea sei build:
-
matrix1.yml
con$MY_VAR=VALUE1
-
matrix1.yml
con$MY_VAR=VALUE2
-
matrix1.yml
con$MY_VAR=VALUE3
-
matrix2.yml
con$MY_VAR=VALUE1
-
matrix2.yml
con$MY_VAR=VALUE2
-
matrix2.yml
con$MY_VAR=VALUE3
Ogni build avrà le seguenti impostazioni:
-
ignore-failure
impostato sufalse
-
env/type
impostato suLINUX_CONTAINER
-
env/image
impostato suaws/codebuild/amazonlinux-x86_64-standard:4.0
-
env/privileged-mode
impostato sutrue
Queste build vengono eseguite in parallelo.
Per ulteriori informazioni sulla sintassi buildspec della matrice di compilazione, vedere. batch/build-matrix
Crea fanout
Un fanout di compilazione definisce un'attività che verrà suddivisa in più build nel batch. Può essere usato per eseguire test in parallelo. CodeBuild crea una build separata per ogni frammento di casi di test in base al valore impostato nel parallelism
campo.
L'esempio seguente definisce un build fanout che crea cinque build eseguite in parallelo.
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'
In questo esempio, supponendo che ci siano 100 test da eseguire, CodeBuild crea cinque build che eseguono ciascuna 20 test in parallelo.
Per ulteriori informazioni sulla sintassi build graph buildspec, consulta. batch/build-fanout
Modalità report Batch
Se il provider di origine del progetto è Bitbucket o GitHub Enterprise e il progetto è configurato per riportare gli stati di compilazione al fornitore di origine, puoi selezionare il modo in cui desideri che gli stati della compilazione in batch vengano inviati al provider di origine. GitHub Puoi scegliere di inviare gli stati come un unico rapporto di stato aggregato per il batch o di riportare singolarmente lo stato di ogni build del batch.
Per ulteriori informazioni, consulta i seguenti argomenti:
Ulteriori informazioni
Per ulteriori informazioni, consulta i seguenti argomenti: