AWS CodePipeline campioni per CodeBuild - AWS CodeBuild

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à.

AWS CodePipeline campioni per CodeBuild

Questa sezione descrive esempi di integrazioni tra CodePipeline e CodeBuild.

Project N.E.M.O. Descrizione

Esempi di CodeBuild integrazioni CodePipeline /e build in batch

Questi esempi mostrano come utilizzare per AWS CodePipeline creare un progetto di compilazione che utilizza build in batch.

Esempio di CodeBuild integrazione CodePipeline /con più sorgenti di input e artefatti di output

Questo esempio dimostra come utilizzarlo per AWS CodePipeline creare un progetto di compilazione che utilizza più fonti di input per creare più artefatti di output.

Esempi di CodeBuild integrazioni CodePipeline /e build in batch

AWS CodeBuild supporta le build in batch. Gli esempi seguenti mostrano come utilizzare per AWS CodePipeline creare un progetto di compilazione che utilizza build in batch.

È possibile utilizzare un file in JSON formato -format che definisce la struttura della pipeline e quindi utilizzarlo con il AWS CLI per creare la pipeline. Per ulteriori informazioni, vedete il riferimento alla struttura della AWS CodePipeline pipeline nella Guida per l'utente.AWS CodePipeline

Creazione in batch con singoli artefatti

Utilizzate il seguente JSON file come esempio di struttura di pipeline che crea una build in batch con artefatti separati. Per abilitare la compilazione in batch CodePipeline, impostate il BatchEnabled parametro dell'oggetto su. configuration true

{ "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 } }

Di seguito è riportato un esempio di file CodeBuild buildspec che funzionerà con questa configurazione della pipeline.

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

I nomi degli artefatti di output specificati nel file della pipeline devono corrispondere all'identificatore delle build e degli artefatti definiti nel JSON file buildspec. La sintassi è buildIdentifier per gli artefatti primari e buildIdentifier_artifactIdentifier per gli artefatti secondari.

Ad esempio, per il nome dell'artefatto di outputbuild1, CodeBuild caricherà l'artefatto principale di nella posizione di. build1 build1 Per il nome di outputbuild1_artifact1, CodeBuild caricherà l'artefatto secondario di nella posizione artifact1 build1 di, e così via. build1_artifact1 Se viene specificata una sola posizione di output, il nome deve essere buildIdentifier solo.

Dopo aver creato il JSON file, puoi creare la tua pipeline. Utilizzate il AWS CLI per eseguire il comando create-pipeline e passare il file al parametro. --cli-input-json Per ulteriori informazioni, vedete Create a pipeline (CLI) nella Guida per l'utente.AWS CodePipeline

Creazione in batch con artefatti combinati

Utilizzate il seguente JSON file come esempio di struttura di pipeline che crea una build in batch con artefatti combinati. Per abilitare la compilazione in batch CodePipeline, impostate il BatchEnabled parametro dell'oggetto su. configuration true Per combinare gli elementi di costruzione nella stessa posizione, impostate il CombineArtifacts parametro dell'configurationoggetto su. true

{ "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 } }

Di seguito è riportato un esempio di file CodeBuild buildspec che funzionerà con questa configurazione della pipeline.

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

Se gli artefatti combinati sono abilitati per la compilazione in batch, è consentito un solo output. CodeBuild combinerà gli artefatti principali di tutte le build in un unico file. ZIP

Dopo aver creato il JSON file, puoi creare la tua pipeline. Utilizzate il AWS CLI per eseguire il comando create-pipeline e passare il file al parametro. --cli-input-json Per ulteriori informazioni, vedete Create a pipeline (CLI) nella Guida per l'utente.AWS CodePipeline

Esempio di CodeBuild integrazione CodePipeline /con più sorgenti di input e artefatti di output

Un AWS CodeBuild progetto può richiedere più di una fonte di input. Può anche creare più di un artefatto di output. Questo esempio dimostra come utilizzarlo per AWS CodePipeline creare un progetto di compilazione che utilizzi più fonti di input per creare più artefatti di output. Per ulteriori informazioni, consulta Diverse origini di input ed esempi di artefatti di output.

È possibile utilizzare un file in JSON formato C che definisce la struttura della pipeline e quindi utilizzarlo con il per creare la pipeline. AWS CLI Utilizzate il JSON file seguente come esempio di struttura di pipeline che crea una build con più di una sorgente di input e più di un artefatto di output. Più avanti in questo esempio viene illustrato come questo file specifica i numerosi input e output. Per ulteriori informazioni, consultate il riferimento alla struttura della CodePipeline pipeline nella Guida per l'utente.AWS CodePipeline

{ "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 questo JSON file:

  • Una delle origini di input deve essere un percorso PrimarySource. Questa fonte è la directory in cui CodeBuild cerca ed esegue il file buildspec. La parola chiave PrimarySource viene utilizzata per specificare la fonte primaria nella configuration sezione dello CodeBuild stage del file. JSON

  • Ogni origine di input è installata nella propria directory. Questa directory viene archiviata nella variabile di ambiente integrata $CODEBUILD_SRC_DIR per l'origine principale e in$CODEBUILD_SRC_DIR_yourInputArtifactName per tutte le altre origini. Per la pipeline di questo esempio, le due directory delle origini di input sono $CODEBUILD_SRC_DIR e $CODEBUILD_SRC_DIR_source2. Per ulteriori informazioni, consulta Variabili di ambiente degli ambienti di compilazione.

  • I nomi degli artefatti di output specificati nel JSON file della pipeline devono corrispondere ai nomi degli artefatti secondari definiti nel file buildspec. Questa pipeline utilizza il seguente file buildspec. Per ulteriori informazioni, consulta Sintassi buildspec.

    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

Dopo aver creato il file, puoi creare la JSON tua pipeline. Utilizzate il AWS CLI per eseguire il comando create-pipeline e passare il file al parametro. --cli-input-json Per ulteriori informazioni, vedete Create a pipeline (CLI) nella Guida per l'utente.AWS CodePipeline