本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
创建包含多个输入和输出的构建项目
使用以下步骤创建包含多个输入和输出的构建项目。
创建包含多个输入和输出的构建项目
-
将您的源上传到一个或多个 S3 存储桶、、 CodeCommit GitHub、 GitHub 企业服务器或 Bitbucket 存储库。
-
选择一个源作为主要源。这是在其中 CodeBuild 查找和运行您的 buildspec 文件的源代码。
-
创建构建项目。有关更多信息,请参阅 在中创建构建项目 AWS CodeBuild。
-
创建您的构建项目,运行构建,并获取有关构建的信息。
-
如果您使用创建构建项目,则
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" }, ] }