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.
AWS CodePipeline Proben für CodeBuild
In diesem Abschnitt werden Beispielintegrationen zwischen CodePipeline und CodeBuild beschrieben.
Beispiel | Beschreibung |
---|---|
Beispiele für CodePipeline CodeBuild /-Integrationen und Batch-Builds |
Diese Beispiele zeigen, wie Sie AWS CodePipeline ein Build-Projekt erstellen, das Batch-Builds verwendet. |
In diesem Beispiel wird gezeigt, wie Sie AWS CodePipeline ein Build-Projekt erstellen, das mehrere Eingabequellen verwendet, um mehrere Ausgabeartefakte zu erstellen. |
Beispiele für CodePipeline CodeBuild /-Integrationen und Batch-Builds
AWS CodeBuild unterstützt Batch-Builds. Die folgenden Beispiele zeigen, wie Sie AWS CodePipeline ein Build-Projekt erstellen, das Batch-Builds verwendet.
Sie können eine Datei im JSON -Format verwenden, die die Struktur Ihrer Pipeline definiert, und sie dann zusammen mit der verwenden, AWS CLI um die Pipeline zu erstellen. Weitere Informationen finden Sie unter Referenz zur AWS CodePipeline Pipeline-Struktur im AWS CodePipeline Benutzerhandbuch.
Batch-Build mit einzelnen Artefakten
Verwenden Sie die folgende JSON Datei als Beispiel für eine Pipeline-Struktur, die einen Batch-Build mit separaten Artefakten erstellt. Um Batch-Builds zu aktivieren CodePipeline, setzen Sie den BatchEnabled
Parameter des configuration
Objekts auftrue
.
{ "pipeline": { "roleArn": "arn:aws:iam::account-id:role/my-AWS-CodePipeline-service-role-name", "stages": [ { "name": "Source", "actions": [ { "inputArtifacts": [], "name": "Source1", "actionTypeId": { "category": "Source", "owner": "AWS", "version": "1", "provider": "S3" }, "outputArtifacts": [ { "name": "source1" } ], "configuration": { "S3Bucket": "
<my-input-bucket-name>
", "S3ObjectKey": "my-source-code-file-name.zip" }, "runOrder": 1 }, { "inputArtifacts": [], "name": "Source2", "actionTypeId": { "category": "Source", "owner": "AWS", "version": "1", "provider": "S3" }, "outputArtifacts": [ { "name": "source2" } ], "configuration": { "S3Bucket": "<my-other-input-bucket-name>
", "S3ObjectKey": "my-other-source-code-file-name.zip" }, "runOrder": 1 } ] }, { "name": "Build", "actions": [ { "inputArtifacts": [ { "name": "source1" }, { "name": "source2" } ], "name": "Build", "actionTypeId": { "category": "Build", "owner": "AWS", "version": "1", "provider": "CodeBuild" }, "outputArtifacts": [ { "name": "build1" }, { "name": "build1_artifact1" }, { "name": "build1_artifact2" }, { "name": "build2_artifact1" }, { "name": "build2_artifact2" } ], "configuration": { "ProjectName": "my-build-project-name", "PrimarySource": "source1", "BatchEnabled": "true" }, "runOrder": 1 } ] } ], "artifactStore": { "type": "S3", "location": "<AWS-CodePipeline-internal-bucket-name>
" }, "name": "my-pipeline-name", "version": 1 } }
Im Folgenden finden Sie ein Beispiel für eine CodeBuild Buildspec-Datei, die mit dieser Pipeline-Konfiguration funktioniert.
version: 0.2 batch: build-list: - identifier: build1 env: compute-type: BUILD_GENERAL1_SMALL - identifier: build2 env: compute-type: BUILD_GENERAL1_MEDIUM phases: build: commands: - echo 'file' > output_file artifacts: files: - output_file secondary-artifacts: artifact1: files: - output_file artifact2: files: - output_file
Die Namen der in der JSON Pipeline-Datei angegebenen Ausgabeartefakte müssen mit der Kennung der Builds und Artefakte übereinstimmen, die in Ihrer Buildspec-Datei definiert sind. Die Syntax lautet buildIdentifier
für die primären Artefakte und buildIdentifier
_artifactIdentifier
für die sekundären Artefakte.
Für den Namen des Ausgabeartefakts CodeBuild wird build1
beispielsweise das primäre Artefakt von build1
an den Speicherort von hochgeladen. build1
Als Ausgabename build1_artifact1
CodeBuild wird das sekundäre Artefakt artifact1
von build1
an den Speicherort von build1_artifact1
hochgeladen usw. Wenn nur ein Ausgabespeicherort angegeben ist, sollte der Name lauten buildIdentifier
nur.
Nachdem Sie die JSON Datei erstellt haben, können Sie Ihre Pipeline erstellen. Verwenden Sie den Befehl create-pipeline AWS CLI , um den Befehl create-pipeline auszuführen und die Datei an den Parameter zu übergeben. --cli-input-json
Weitere Informationen finden Sie unter Create a pipeline (CLI) im AWS CodePipeline Benutzerhandbuch.
Batch-Build mit kombinierten Artefakten
Verwenden Sie die folgende JSON Datei als Beispiel für eine Pipeline-Struktur, die einen Batch-Build mit kombinierten Artefakten erstellt. Um Batch-Builds zu aktivieren CodePipeline, setzen Sie den BatchEnabled
Parameter des configuration
Objekts auftrue
. Um die Build-Artefakte an derselben Stelle zu kombinieren, setzen Sie den CombineArtifacts
Parameter des configuration
Objekts auftrue
.
{ "pipeline": { "roleArn": "arn:aws:iam::account-id:role/my-AWS-CodePipeline-service-role-name", "stages": [ { "name": "Source", "actions": [ { "inputArtifacts": [], "name": "Source1", "actionTypeId": { "category": "Source", "owner": "AWS", "version": "1", "provider": "S3" }, "outputArtifacts": [ { "name": "source1" } ], "configuration": { "S3Bucket": "
<my-input-bucket-name>
", "S3ObjectKey": "my-source-code-file-name.zip" }, "runOrder": 1 }, { "inputArtifacts": [], "name": "Source2", "actionTypeId": { "category": "Source", "owner": "AWS", "version": "1", "provider": "S3" }, "outputArtifacts": [ { "name": "source2" } ], "configuration": { "S3Bucket": "<my-other-input-bucket-name>
", "S3ObjectKey": "my-other-source-code-file-name.zip" }, "runOrder": 1 } ] }, { "name": "Build", "actions": [ { "inputArtifacts": [ { "name": "source1" }, { "name": "source2" } ], "name": "Build", "actionTypeId": { "category": "Build", "owner": "AWS", "version": "1", "provider": "CodeBuild" }, "outputArtifacts": [ { "name": "output1 " } ], "configuration": { "ProjectName": "my-build-project-name", "PrimarySource": "source1", "BatchEnabled": "true", "CombineArtifacts": "true" }, "runOrder": 1 } ] } ], "artifactStore": { "type": "S3", "location": "<AWS-CodePipeline-internal-bucket-name>
" }, "name": "my-pipeline-name", "version": 1 } }
Im Folgenden finden Sie ein Beispiel für eine CodeBuild Buildspec-Datei, die mit dieser Pipeline-Konfiguration funktioniert.
version: 0.2 batch: build-list: - identifier: build1 env: compute-type: BUILD_GENERAL1_SMALL - identifier: build2 env: compute-type: BUILD_GENERAL1_MEDIUM phases: build: commands: - echo 'file' > output_file artifacts: files: - output_file
Wenn kombinierte Artefakte für den Batch-Build aktiviert sind, ist nur eine Ausgabe zulässig. CodeBuild kombiniert die primären Artefakte aller Builds in einer einzigen ZIP Datei.
Nachdem Sie die JSON Datei erstellt haben, können Sie Ihre Pipeline erstellen. Verwenden Sie den Befehl create-pipeline AWS CLI , um den Befehl create-pipeline auszuführen und die Datei an den Parameter zu übergeben. --cli-input-json
Weitere Informationen finden Sie unter Create a pipeline (CLI) im AWS CodePipeline Benutzerhandbuch.
Beispiel für eine CodePipeline/CodeBuild -Integration mit mehreren Eingabequellen und Ausgabeartefakten
Ein AWS CodeBuild Projekt kann mehr als eine Eingabequelle verwenden. Es kann zudem mehr als ein Ausgabeartefakt erstellen. Dieses Beispiel zeigt, wie Sie AWS CodePipeline ein Build-Projekt erstellen, das mehrere Eingabequellen verwendet, um mehrere Ausgabeartefakte zu erstellen. Weitere Informationen finden Sie unter Beispiel für mehrere Eingabequellen und Ausgabeartefakte.
Sie können eine Datei im JSON -Format verwenden, die die Struktur Ihrer Pipeline definiert, und sie dann zusammen mit der verwenden, AWS CLI um die Pipeline zu erstellen. Verwenden Sie die folgende JSON Datei als Beispiel für eine Pipeline-Struktur, die einen Build mit mehr als einer Eingabequelle und mehr als einem Ausgabeartefakt erstellt. Unten in diesem Beispiel werden Sie sehen, wie diese Datei mehrere Eingaben und Ausgaben angibt. Weitere Informationen finden Sie in der CodePipeline Pipeline-Strukturreferenz im AWS CodePipeline Benutzerhandbuch.
{ "pipeline": { "roleArn": "arn:aws:iam::account-id:role/my-AWS-CodePipeline-service-role-name", "stages": [ { "name": "Source", "actions": [ { "inputArtifacts": [], "name": "
Source1
", "actionTypeId": { "category": "Source", "owner": "AWS", "version": "1", "provider": "S3" }, "outputArtifacts": [ { "name": "source1
" } ], "configuration": { "S3Bucket": "my-input-bucket-name
", "S3ObjectKey": "my-source-code-file-name.zip
" }, "runOrder": 1 }, { "inputArtifacts": [], "name": "Source2
", "actionTypeId": { "category": "Source", "owner": "AWS", "version": "1", "provider": "S3" }, "outputArtifacts": [ { "name": "source2
" } ], "configuration": { "S3Bucket": "my-other-input-bucket-name
", "S3ObjectKey": "my-other-source-code-file-name.zip
" }, "runOrder": 1 } ] }, { "name": "Build", "actions": [ { "inputArtifacts": [ { "name": "source1
" }, { "name": "source2
" } ], "name": "Build", "actionTypeId": { "category": "Build", "owner": "AWS", "version": "1", "provider": "AWS CodeBuild" }, "outputArtifacts": [ { "name": "artifact1
" }, { "name": "artifact2
" } ], "configuration": { "ProjectName": "my-build-project-name
", "PrimarySource": "source1
" }, "runOrder": 1 } ] } ], "artifactStore": { "type": "S3", "location": "AWS-CodePipeline-internal-bucket-name
" }, "name": "my-pipeline-name
", "version": 1 } }
In dieser JSON Datei:
-
Eine der Eingabequellen muss als
PrimarySource
fungieren. Diese Quelle ist das Verzeichnis, in dem CodeBuild nach Ihrer Buildspec-Datei gesucht und diese ausgeführt wird. Das SchlüsselwortPrimarySource
wird verwendet, um die Primärquelle imconfiguration
Abschnitt der CodeBuild Phase in der Datei anzugeben. JSON -
Jede Eingabequelle ist in einem eigenen Verzeichnis installiert. Dieses Verzeichnis ist in der integrierten Umgebungsvariable
$CODEBUILD_SRC_DIR
für die primäre Quelle und$CODEBUILD_SRC_DIR_yourInputArtifactName
für alle anderen Quellen gespeichert. Für die Pipeline in diesem Beispiel lauten die beiden Eingabequellverzeichnisse$CODEBUILD_SRC_DIR
und$CODEBUILD_SRC_DIR_source2
. Weitere Informationen finden Sie unter Umgebungsvariablen in Build-Umgebungen. -
Die Namen der in der JSON Pipeline-Datei angegebenen Ausgabeartefakte müssen mit den Namen der sekundären Artefakte übereinstimmen, die in Ihrer Buildspec-Datei definiert sind. Diese Pipeline verwendet die folgende buildspec-Datei. Weitere Informationen finden Sie unter Syntax der Build-Spezifikation.
version: 0.2 phases: build: commands: - touch source1_file - cd $CODEBUILD_SRC_DIR_source2 - touch source2_file artifacts: files: - '**/*' secondary-artifacts: artifact1: base-directory: $CODEBUILD_SRC_DIR files: - source1_file artifact2: base-directory: $CODEBUILD_SRC_DIR_source2 files: - source2_file
Nachdem Sie die JSON Datei erstellt haben, können Sie Ihre Pipeline erstellen. Verwenden Sie den Befehl create-pipeline AWS CLI , um den Befehl create-pipeline auszuführen und die Datei an den Parameter zu übergeben. --cli-input-json
Weitere Informationen finden Sie unter Create a pipeline (CLI) im AWS CodePipeline Benutzerhandbuch.