Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Führen Sie Builds stapelweise aus
Sie können AWS CodeBuild es verwenden, um gleichzeitige und koordinierte Builds eines Projekts mit Batch-Builds auszuführen.
Rolle „Sicherheit“
Stapel-Builds führen eine neue Sicherheitsrolle in der Stapelkonfiguration ein. Diese neue Rolle ist erforderlich, da Sie in der Lage sein CodeBuild müssenStartBuild, die RetryBuild AktionenStopBuild, und in Ihrem Namen aufzurufen, um Builds als Teil eines Batches auszuführen. Kunden sollten aus zwei Gründen eine neue Rolle verwenden und nicht dieselbe Rolle, die sie in ihrem Build nutzen:
-
Wenn Sie der Build-Rolle die Berechtigungen
StartBuild,StopBuildundRetryBuilderteilen, kann ein einzelnes Build mehr Builds über buildspec zu starten. -
CodeBuild Batch-Builds enthalten Einschränkungen, die die Anzahl der Builds und Berechnungstypen einschränken, die für die Builds im Batch verwendet werden können. Wenn die Build-Rolle über diese Berechtigungen verfügt, können die Builds selbst diese Einschränkungen möglicherweise umgehen.
Typen von Batch-Builds
CodeBuild unterstützt die folgenden Batch-Build-Typen:
Typen für die Batch-Erstellung
Diagramm erstellen
Ein Build-Diagramm definiert eine Reihe von Aufgaben, die von anderen Aufgaben im Batch abhängig sind.
Das folgende Beispiel definiert ein Build-Diagramm, das eine Abhängigkeitskette erstellt.
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 diesem Beispiel:
-
build1wird zuerst ausgeführt, da es keine Abhängigkeiten hat. -
build2hat eine Abhängigkeit vonbuild1,build2wird also nachbuild1Abschluss ausgeführt. -
build3hat eine Abhängigkeit vonbuild2,build3wird also nachbuild2Abschluss ausgeführt.
Weitere Hinweise zur Buildspec-Syntax von Buildgraph finden Sie unter. batch/build-Diagramm
Liste erstellen
Eine Build-Liste definiert eine Reihe von Aufgaben, die parallel ausgeführt werden.
Das folgende Beispiel definiert eine Build-Liste. Die build2 Builds build1 und werden parallel ausgeführt.
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
Weitere Hinweise zur Buildspec-Syntax der Buildliste finden Sie unter. batch/build-Liste
Matrix erstellen
Eine Buildmatrix definiert Aufgaben mit unterschiedlichen Konfigurationen, die parallel ausgeführt werden. CodeBuild erstellt einen separaten Build für jede mögliche Konfigurationskombination.
Das folgende Beispiel zeigt eine Buildmatrix mit zwei Buildspec-Dateien und drei Werten für eine Umgebungsvariable.
batch: build-matrix: static: ignore-failure: false dynamic: buildspec: - matrix1.yml - matrix2.yml env: variables: MY_VAR: - VALUE1 - VALUE2 - VALUE3
In diesem Beispiel werden sechs Builds CodeBuild erstellt:
-
matrix1.ymlmit$MY_VAR=VALUE1 -
matrix1.ymlmit$MY_VAR=VALUE2 -
matrix1.ymlmit$MY_VAR=VALUE3 -
matrix2.ymlmit$MY_VAR=VALUE1 -
matrix2.ymlmit$MY_VAR=VALUE2 -
matrix2.ymlmit$MY_VAR=VALUE3
Jeder Build wird die folgenden Einstellungen haben:
-
ignore-failuregesetzt auffalse -
env/typegesetzt aufLINUX_CONTAINER -
env/imagegesetzt aufaws/codebuild/amazonlinux-x86_64-standard:4.0 -
env/privileged-modegesetzt auftrue
Diese Builds werden parallel ausgeführt.
Weitere Hinweise zur Buildspec-Syntax der Buildmatrix finden Sie unter. batch/build-Matrix
Fanout erstellen
Ein Build-Fanout definiert eine Aufgabe, die im Batch in mehrere Builds aufgeteilt wird. Dies kann für die parallele Ausführung von Tests verwendet werden. CodeBuild erstellt für jeden Shard von Testfällen einen separaten Build, der auf dem im parallelism Feld festgelegten Wert basiert.
Das folgende Beispiel definiert ein Build-Fanout, das fünf Builds erstellt, die parallel ausgeführt werden.
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 diesem Beispiel werden unter der Annahme, dass 100 Tests ausgeführt werden müssen, fünf Builds CodeBuild erstellt, die jeweils 20 Tests parallel ausführen.
Weitere Hinweise zur Buildspec-Syntax des Build-Graphen finden Sie unter. batch/build-Fanout
Modus für Batch-Berichte
Wenn der Quellanbieter für dein Projekt Bitbucket oder GitHub Enterprise ist und dein Projekt so konfiguriert ist, dass es Build-Status an den Quellanbieter meldet, kannst du auswählen, wie deine Batch-Build-Status an den Quellanbieter gesendet werden sollen. GitHub Du kannst wählen, ob die Status als einzelner aggregierter Statusbericht für den Batch gesendet werden sollen, oder ob der Status jedes Builds im Batch einzeln gemeldet werden soll.
Weitere Informationen finden Sie unter den folgenden Themen:
Weitere Informationen
Weitere Informationen finden Sie unter den folgenden Themen: