Exemples de projets avec plusieurs sources d'entrée et plusieurs artefacts de sortie - 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.

Exemples de projets avec plusieurs sources d'entrée et plusieurs artefacts de sortie

Vous pouvez créer un projet de AWS CodeBuild construction avec plusieurs sources d'entrée et plusieurs ensembles d'artefacts de sortie. Cet exemple vous montre comment configurer un projet de génération qui :

  • utilise plusieurs sources et référentiels de différents types ;

  • publie des artefacts de génération vers plusieurs compartiments S3 dans une seule génération.

Dans cet exemple, vous allez créer un projet de génération et l'utiliser pour exécuter une génération. L'exemple utilise le fichier buildspec du projet de génération pour vous montrer comment intégrer plusieurs sources et créer plusieurs ensembles d'artefacts.

  1. Téléchargez vos sources vers un ou plusieurs buckets S3, CodeCommit GitHub, GitHub Enterprise Server ou référentiels Bitbucket.

  2. Choisissez quelle source est la source principale. Il s'agit de la source dans laquelle vous CodeBuild recherchez et exécutez votre fichier buildspec.

  3. Créez un projet de génération. Pour plus d’informations, consultez Création d'un projet de génération dans AWS CodeBuild.

  4. Créez votre projet de build, exécutez le build et obtenez des informations sur le build.

  5. Si vous utilisez le AWS CLI pour créer le projet de construction, l'entrée au format JSON de la create-project commande peut ressembler à ce qui suit :

    { "name": "sample-project", "source": { "type": "S3", "location": "<bucket/sample.zip>" }, "secondarySources": [ { "type": "CODECOMMIT", "location": "https://git-codecommit.us-west-2.amazonaws.com/v1/repos/repo", "sourceIdentifier": "source1" }, { "type": "GITHUB", "location": "https://github.com/awslabs/aws-codebuild-jenkins-plugin", "sourceIdentifier": "source2" } ], "secondaryArtifacts": [ss { "type": "S3", "location": "<output-bucket>", "artifactIdentifier": "artifact1" }, { "type": "S3", "location": "<other-output-bucket>", "artifactIdentifier": "artifact2" } ], "environment": { "type": "LINUX_CONTAINER", "image": "aws/codebuild/standard:5.0", "computeType": "BUILD_GENERAL1_SMALL" }, "serviceRole": "arn:aws:iam::account-ID:role/role-name", "encryptionKey": "arn:aws:kms:region-ID:account-ID:key/key-ID" }

Votre source principale est définie sous l'attribut source. Toutes les autres sources sont appelées « sources secondaires » et apparaissent sous secondarySources. Toutes les sources secondaires sont installées dans leur propre répertoire. Ce répertoire est stocké dans la variable d'environnement intégrée CODEBUILD_SRC_DIR_sourceIdentifer. Pour plus d’informations, consultez Variables d'environnement dans les environnements de génération.

L'attribut secondaryArtifacts contient une liste de définitions d'artefacts. Ces artefacts utilisent le bloc secondary-artifacts du fichier buildspec qui est imbriqué dans le bloc artifacts.

Les artefacts secondaires du fichier buildspec ont la même structure que tous les artefacts et sont séparés par leur identifiant d'artefact.

Note

Dans l'CodeBuild API, l'attribut artifactIdentifier sur un artefact secondaire est obligatoire dans CreateProject etUpdateProject. Il doit être utilisé pour référencer un artefact secondaire.

Lorsque vous utilisez l'entrée précédente au format JSON, le fichier buildspec du projet peut ressembler à ce qui suit :

version: 0.2 phases: install: runtime-versions: java: openjdk11 build: commands: - cd $CODEBUILD_SRC_DIR_source1 - touch file1 - cd $CODEBUILD_SRC_DIR_source2 - touch file2 artifacts: files: - '**.*' secondary-artifacts: artifact1: base-directory: $CODEBUILD_SRC_DIR_source1 files: - file1 artifact2: base-directory: $CODEBUILD_SRC_DIR_source2 files: - file2

Vous pouvez substituer la version de la source principale à l'aide de l'API avec l'attribut sourceVersion dans StartBuild. Pour substituer une ou plusieurs versions de source secondaire, utilisez l'attribut secondarySourceVersionOverride.

L'entrée au format JSON de la start-build commande dans le AWS CLI peut ressembler à ceci :

{ "projectName": "sample-project", "secondarySourcesVersionOverride": [ { "sourceIdentifier": "source1", "sourceVersion": "codecommit-branch" }, { "sourceIdentifier": "source2", "sourceVersion": "github-branch" }, ] }

Exemple de projet sans source

Vous pouvez configurer un CodeBuild projet en choisissant le type de NO_SOURCE source lorsque vous configurez votre source. Lorsque votre type de source est NO_SOURCE, vous ne pouvez pas spécifier de fichier buildspec car votre projet n'a pas de source. Au lieu de cela, vous devez spécifier une chaîne buildspec au format YAML dans l'attribut buildspec de l'entrée au format JSON pour la commande de l'interface de ligne de commande create-project. Elle peut ressembler à ceci :

{ "name": "project-name", "source": { "type": "NO_SOURCE", "buildspec": "version: 0.2\n\nphases:\n build:\n commands:\n - command" }, "environment": { "type": "LINUX_CONTAINER", "image": "aws/codebuild/standard:5.0", "computeType": "BUILD_GENERAL1_SMALL", }, "serviceRole": "arn:aws:iam::account-ID:role/role-name", "encryptionKey": "arn:aws:kms:region-ID:account-ID:key/key-ID" }

Pour plus d’informations, consultez Création d'un projet de génération (AWS CLI).

Pour savoir comment créer un pipeline qui utilise plusieurs entrées source afin de CodeBuild créer plusieurs artefacts de sortie, voirAWS CodePipeline intégration avec CodeBuild plusieurs sources d'entrée et échantillons d'artefacts de sortie .