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'configuration
oggetto 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 chiavePrimarySource
viene utilizzata per specificare la fonte primaria nellaconfiguration
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