创建包含多个输入和输出的构建项目 - AWS CodeBuild

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

创建包含多个输入和输出的构建项目

使用以下步骤创建包含多个输入和输出的构建项目。

创建包含多个输入和输出的构建项目
  1. 将您的源上传到一个或多个 S3 存储桶、、 CodeCommit GitHub、 GitHub 企业服务器或 Bitbucket 存储库。

  2. 选择一个源作为主要源。这是在其中 CodeBuild 查找和运行您的 buildspec 文件的源代码。

  3. 创建构建项目。有关更多信息,请参阅 在中创建构建项目 AWS CodeBuild

  4. 创建您的构建项目,运行构建,并获取有关构建的信息。

  5. 如果您使用创建构建项目,则create-project命令的 JSON-格式输入可能与以下内容类似: AWS CLI

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

主要源在 source 属性下定义。所有其他源都称为辅助源,出现在 secondarySources 下方。所有辅助源都安装在各自的目录中。目录存储在内置环境变量 CODEBUILD_SRC_DIR_sourceIdentifer 中。有关更多信息,请参阅 构建环境中的环境变量

secondaryArtifacts 属性包含构件定义列表。这些构件使用 buildspec 文件的 secondary-artifacts 块(嵌套在 artifacts 块内)。

buildspec 文件中的辅助构件与构件具有相同的结构,以其构件标识符分隔。

注意

在中 CodeBuild API,次要工件artifactIdentifier上的是CreateProject和中的必需属性UpdateProject。必须使用它引用辅助构件。

使用前面的JSON格式化输入,项目的 buildspec 文件可能如下所示:

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

您可以使用带sourceVersion属性的来覆盖主来源API的版本StartBuild。要覆盖一个或多个辅助源版本,请使用 secondarySourceVersionOverride 属性。

JSON中start-build命令的格式化输入 AWS CLI 可能如下所示:

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