CodePipeline échantillons pour CodeBuild - AWS CodeBuild

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

CodePipeline échantillons pour CodeBuild

AWS CodePipeline intégration avec CodeBuild et constructions par lots

AWS CodeBuild prend désormais en charge les builds par lots. Cet exemple montre comment AWS CodePipeline créer un projet de génération utilisant des builds par lots.

Vous pouvez utiliser un fichier JSON au format -qui définit la structure de votre pipeline, puis l'utiliser avec le AWS CLI pour créer le pipeline. Pour plus d'informations, consultez la section Référence sur la structure du AWS CodePipeline pipeline dans le guide de AWS CodePipeline l'utilisateur.

Construction par lots avec des artefacts individuels

Utilisez le JSON fichier suivant comme exemple de structure de pipeline qui crée une construction par lots avec des artefacts distincts. Pour activer les intégrations par lots CodePipeline, définissez le BatchEnabled paramètre de l'configurationobjet surtrue.

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

Voici un exemple de fichier CodeBuild buildspec qui fonctionnera avec cette configuration de 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

Les noms des artefacts de sortie spécifiés dans le JSON fichier du pipeline doivent correspondre à l'identifiant des builds et des artefacts définis dans votre fichier buildspec. La syntaxe est buildIdentifier pour les artefacts principaux, et buildIdentifier_artifactIdentifier pour les artefacts secondaires.

Par exemple, pour le nom de l'artefact en sortiebuild1, CodeBuild téléchargera l'artefact principal de build1 à l'emplacement de. build1 Pour le nom de sortiebuild1_artifact1, CodeBuild téléchargera l'artefact secondaire artifact1 de build1 à l'emplacement debuild1_artifact1, et ainsi de suite. Si un seul emplacement de sortie est spécifié, le nom doit être buildIdentifier uniquement.

Après avoir créé le JSON fichier, vous pouvez créer votre pipeline. Utilisez le AWS CLI pour exécuter la commande create-pipeline et transmettre le fichier au --cli-input-json paramètre. Pour plus d'informations, voir Créer un pipeline (CLI) dans le guide de AWS CodePipeline l'utilisateur.

Construction par lots avec des artefacts combinés

Utilisez le JSON fichier suivant comme exemple de structure de pipeline qui crée une construction par lots avec des artefacts combinés. Pour activer les intégrations par lots CodePipeline, définissez le BatchEnabled paramètre de l'configurationobjet surtrue. Pour combiner les artefacts de construction au même endroit, définissez le CombineArtifacts paramètre de l'configurationobjet surtrue.

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

Voici un exemple de fichier CodeBuild buildspec qui fonctionnera avec cette configuration de 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

Si les artefacts combinés sont activés pour la génération par lots, une seule sortie est autorisée. CodeBuild combinera les principaux artefacts de toutes les versions dans un seul ZIP fichier.

Après avoir créé le JSON fichier, vous pouvez créer votre pipeline. Utilisez le AWS CLI pour exécuter la commande create-pipeline et transmettre le fichier au --cli-input-json paramètre. Pour plus d'informations, voir Créer un pipeline (CLI) dans le guide de AWS CodePipeline l'utilisateur.

AWS CodePipeline intégration avec CodeBuild plusieurs sources d'entrée et échantillons d'artefacts de sortie

Un AWS CodeBuild projet peut utiliser plusieurs sources d'entrée. Il peut également créer plusieurs artefacts de sortie. Cet exemple montre comment AWS CodePipeline créer un projet de génération qui utilise plusieurs sources d'entrée pour créer plusieurs artefacts de sortie. Pour plus d’informations, consultez Exemples de projets avec plusieurs sources d'entrée et plusieurs artefacts de sortie.

Vous pouvez utiliser un fichier JSON au format -qui définit la structure de votre pipeline, puis l'utiliser avec le AWS CLI pour créer le pipeline. Utilisez le JSON fichier suivant comme exemple de structure de pipeline qui crée une construction avec plusieurs sources d'entrée et plusieurs artefacts de sortie. Ultérieurement dans cet exemple, vous apprendrez comment ce fichier spécifie les différentes entrées et sorties. Pour plus d'informations, consultez la référence sur la structure du CodePipeline pipeline dans le guide de AWS CodePipeline l'utilisateur.

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

Dans ce JSON fichier :

  • L'une de vos sources d'entrée doit être désignée comme PrimarySource. Cette source est le répertoire dans lequel CodeBuild recherche et exécute votre fichier buildspec. Le mot clé PrimarySource est utilisé pour spécifier la source principale dans la configuration section du CodeBuild stage du JSON fichier.

  • Chaque source d'entrée est installée dans son propre répertoire. Ce répertoire est stocké dans la variable d'environnement intégrée $CODEBUILD_SRC_DIR pour la source principale et $CODEBUILD_SRC_DIR_yourInputArtifactName pour toutes les autres sources. Pour le pipeline de cet exemple, les deux répertoires des sources d'entrée sont $CODEBUILD_SRC_DIR et $CODEBUILD_SRC_DIR_source2. Pour plus d’informations, consultez Variables d'environnement dans les environnements de génération.

  • Les noms des artefacts de sortie spécifiés dans le JSON fichier du pipeline doivent correspondre aux noms des artefacts secondaires définis dans votre fichier buildspec. Ce pipeline utilise le fichier buildspec suivant. Pour plus d’informations, consultez Syntaxe d'un fichier 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

Après avoir créé le JSON fichier, vous pouvez créer votre pipeline. Utilisez le AWS CLI pour exécuter la commande create-pipeline et transmettre le fichier au --cli-input-json paramètre. Pour plus d'informations, voir Créer un pipeline (CLI) dans le guide de AWS CodePipeline l'utilisateur.