使用 AWS CodeBuild 的源版本示例
此示例演示如何使用提交 ID 以外的格式(也称为提交 SHA)指定源的版本。您可以通过以下方式指定源的版本:
-
对于 Amazon S3 源提供程序,请使用表示构建输入 ZIP 文件的对象的版本 ID。
-
对于 CodeCommit、Bitbucket、GitHub 和 GitHub Enterprise Server,请使用下列项之一:
-
拉取请求作为拉取请求参考(例如,
refs/pull/1/head
)。 -
分支作为分支名称。
-
提交 ID。
-
标签。
-
参考和提交 ID。参考可以是下列项之一:
-
标签(例如,
refs/tags/mytagv1.0^{full-commit-SHA}
)。 -
分支(例如,
refs/heads/mydevbranch^{full-commit-SHA}
)。 -
拉取请求(例如,
refs/pull/1/head^{full-commit-SHA}
)。
-
-
仅当存储库为 GitHub 或 GitHub Enterprise Server 时,才能指定拉取请求源的版本。
如果使用参考和提交 ID 指定版本,则构建的 DOWNLOAD_SOURCE
阶段比仅提供版本时更快。这是因为,在添加参考时,CodeBuild 不需要下载整个存储库来查找提交。
-
您可以指定仅使用提交 ID 的源版本,例如
12345678901234567890123467890123456789
。 如果您执行此操作,CodeBuild 必须下载整个存储库以查找版本。 -
您可以使用此格式的引用和提交 ID 指定源版本:
(例如,refs
/heads
/branchname
^{full-commit-SHA
}refs/heads/main^{12345678901234567890123467890123456789}
)。如果您执行此操作,则 CodeBuild 仅下载指定的分支来查找版本。
要加快构建的 DOWNLOAD_SOURCE
阶段,您也可以将 Git clone depth (Git 克隆深度) 设置为较小数字。CodeBuild 下载较少版本的存储库。
使用提交 ID 指定 GitHub 存储库版本
-
Open the AWS CodeBuild console at https://console.amazonaws.cn/codesuite/codebuild/home
. -
创建构建项目。有关信息,请参阅 创建构建项目 (控制台) 和 运行构建(控制台)。除这些设置以外,将所有设置保留为默认值:
-
在 Source (源) 中:
-
对于 Source provider (源提供商),选择 GitHub。 如果您未连接到 GitHub,请按照说明进行连接。
-
对于 Repository (存储库),选择 Public repository (公有存储库)。
-
对于 Repository URL (存储库 URL),输入
https://github.com/aws/aws-sdk-ruby.git
。
-
-
在 Environment (环境) 中:
-
For Environment image, choose Managed image.
-
For Operating system, choose Amazon Linux 2.
-
For Runtime(s), choose Standard.
-
For Image, choose aws/codebuild/amazonlinux2-x86_64-standard:2.0.
-
-
-
对于 Build specifications (构建规范),选择 Insert build commands (插入构建命令),然后选择 Switch to editor (切换到编辑器)。
-
在 Build commands (构建命令) 中,将占位符文本替换为以下内容:
version: 0.2 phases: install: runtime-versions: ruby: 2.6 build: commands: - echo $CODEBUILD_RESOLVED_SOURCE_VERSION
在使用 Ubuntu 标准映像 2.0 时需要
runtime-versions
部分。这里指定了 Ruby 版本 2.6 运行时,但您可以使用任何运行时。echo
命令显示存储在CODEBUILD_RESOLVED_SOURCE_VERSION
环境变量中的源代码的版本。 -
在 Build configuration (构建配置) 上,接受默认值,然后选择 Start build (开始构建)。
-
对于 Source version (源版本),输入
046e8b67481d53bdc86c3f6affdd5d1afae6d369
。 这是https://github.com/aws/aws-sdk-ruby.git
存储库中提交的 SHA。 -
选择 Start build。
-
在构建完成后,您应该看到以下内容:
-
在 Build logs (构建日志) 选项卡上,使用了哪个版本的项目源。以下是 示例。
[Container] Date Time Running command echo $CODEBUILD_RESOLVED_SOURCE_VERSION 046e8b67481d53bdc86c3f6affdd5d1afae6d369 [Container] Date Time Phase complete: BUILD State: SUCCEEDED
-
在 Environment variables (环境变量) 选项卡上,Resolved source version (解析的源版本) 与用于创建构建的提交 ID 匹配。
-
在 Phase details (阶段详细信息) 选项卡上,显示
DOWNLOAD_SOURCE
阶段的持续时间。
-
这些步骤说明如何使用相同版本的源创建构建。这一次,使用参考和提交 ID 指定源的版本。
使用提交 ID 和参考指定 GitHub 存储库版本
-
在左侧导航窗格中,选择 Build projects (构建项目),然后选择您之前创建的项目。
-
选择 Start build。
-
在 Source version (源版本) 中,输入
refs/heads/main^{046e8b67481d53bdc86c3f6affdd5d1afae6d369}
。 这是相同的提交 ID 以及对
格式的分支的引用。refs
/heads
/branchname
^{full-commit-SHA
} -
选择 Start build。
-
在构建完成后,您应该看到以下内容:
-
在 Build logs (构建日志) 选项卡上,使用了哪个版本的项目源。以下是 示例。
[Container] Date Time Running command echo $CODEBUILD_RESOLVED_SOURCE_VERSION 046e8b67481d53bdc86c3f6affdd5d1afae6d369 [Container] Date Time Phase complete: BUILD State: SUCCEEDED
-
在 Environment variables (环境变量) 选项卡上,Resolved source version (解析的源版本) 与用于创建构建的提交 ID 匹配。
-
在 Phase details (阶段详细信息) 选项卡上,
DOWNLOAD_SOURCE
阶段的持续时间应短于仅使用提交 ID 指定源版本时的持续时间。
-