教程:对 GitHub 管道源使用完整克隆
您可以在 CodePipeline 中为 GitHub 源操作选择完整克隆选项。使用此选项可对管道构建操作中的 Git 元数据运行 CodeBuild 命令。
注意
此处描述的完整克隆选项指的是指定 CodePipeline 是否应克隆存储库元数据,这些元数据只能由 CodeBuild 命令使用。要在 CodeBuild 项目中使用 GitHub 用户访问令牌
重要
作为创建管道的一部分,CodePipeline 将使用客户提供的 S3 构件存储桶来存放构件。(这与用于 S3 源操作的存储桶不同。) 如果 S3 构件存储桶所在的账户与您的管道账户不同,请确保 S3 构件存储桶归 AWS 账户所有,并且安全可靠。
在本教程中,您将创建一个管道,它连接到 GitHub 存储库,对源数据使用完整克隆选项,并运行 CodeBuild 构建来克隆存储库并对存储库执行 Git 命令。
注意
此功能在亚太地区(香港)、非洲(开普敦)、中东(巴林)、欧洲(苏黎世)或 AWS GovCloud(美国西部)区域不可用。要参考其他可用操作,请参阅 与 CodePipeline 的产品和服务集成。有关在欧洲地区(米兰)区域使用此操作的注意事项,请参阅CodeStarSourceConnection(适用于 Bitbucket Cloud, GitHub、GitHub Enterprise Server、GitLab.com 和 GitLab 自托管操作)中的说明。
先决条件
在开始之前,您必须执行以下操作:
-
使用您的 GitHub 账户创建 GitHub 存储库。
-
准备好您的 GitHub 凭证。当您使用 AWS 管理控制台 设置连接时,系统会要求您使用 GitHub 凭证登录。
步骤 1:创建自述文件
创建 GitHub 存储库后,使用以下步骤添加自述文件。
-
登录您的 GitHub 存储库并选择您的存储库。
-
要创建新文件,请选择添加文件 > 创建新文件。将文件命名为
README.md文件并添加以下文本。This is a GitHub repository! -
选择提交更改。
确保
README.md文件位于存储库的根级别。
步骤 2:创建管道并构建项目
在此部分中,您将使用以下操作创建管道:
-
与您的 GitHub 存储库和操作连接的源阶段。
-
AWS CodeBuild 构建操作的构建阶段。
使用向导创建管道
-
在 https://console.aws.amazon.com/codepipeline/
登录 CodePipeline 控制台。 -
在欢迎页面、入门页面或管道页面上,选择创建管道。
-
在步骤 1:选择创建选项页面上的创建选项下,选择构建自定义管道选项。选择下一步。
-
在步骤 2:选择管道设置的管道名称中,输入
MyGitHubPipeline。 -
在本教程中,为管道类型选择 V1。也可以选择 V2;但请注意,不同管道类型具有不同的特性和价格。有关更多信息,请参阅 管道类型。
-
在服务角色中,选择新建服务角色。
注意
如果您选择改为使用现有的 CodePipeline 服务角色,请确保您已将
codestar-connections:UseConnectionIAM 权限添加到您的服务角色策略。有关 CodePipeline 服务角色的说明,请参阅为 CodePipeline 服务角色添加权限。 -
在高级设置下,保留原定设置值。在构件存储中,选择默认位置以将默认构件存储(如指定为默认值的 Amazon S3 项目存储桶)用于为管道选择的区域中的管道。
注意
这不是源代码的源存储桶。这是管道的项目存储。每个管道都需要一个单独的构件存储,例如 S3 存储桶。
选择下一步。
-
在步骤 3:添加源阶段页面上,添加源阶段:
-
在源提供程序中,选择 GitHub(通过 GitHub 应用程序)。
-
在连接下,选择一个现有连接或创建一个新连接。要创建或管理 GitHub 源操作的连接,请参阅GitHub 连接。
您可以为与特定提供程序的所有连接安装一个应用程序。如果您已经安装了 AWS Connector for GitHub 应用程序,选择它并跳过此步骤。
注意
如果要创建用户访问令牌
,请确保您已经安装了 AWS Connector for GitHub 应用程序,然后将应用程序安装字段留空。CodeConnections 将使用用户访问令牌进行连接。有关更多信息,请参阅在 CodeBuild 中访问您的源提供商。 -
在存储库名称中,选择 GitHub 存储库的名称。
-
在分支名称中,键入要使用的存储库分支。
-
确保选择了在源代码更改时启动管道选项。
-
在输出构件格式下,选择完整克隆,对源存储库启用 Git 克隆选项。只有 CodeBuild 提供的操作才能使用 Git 克隆选项。在本教程中,您将使用步骤 3:更新 CodeBuild 服务角色策略以使用连接更新您的 CodeBuild 项目服务角色使用此选项的权限。
选择下一步。
-
-
在步骤 4:添加构建阶段中,添加一个构建阶段:
-
在构建提供程序中,选择 AWS CodeBuild。允许区域默认为管道区域。
-
选择创建项目。
-
在项目名称中,输入此构建项目的名称。
-
在环境映像中,选择托管映像。对于操作系统,选择 Ubuntu。
-
对于运行时,选择标准。对于映像,选择 aws/codebuild/standard:5.0。
-
对于服务角色,选择新建服务角色。
注意
记下您的 CodeBuild 服务角色的名称。在本教程的最后一步,您会用到此角色名称。
-
在构建规范下,为构建规范选择插入构建命令。选择切换到编辑器,然后将以下内容粘贴到构建命令。
注意
在构建规范的
env部分中,确保启用了 Git 命令的凭证助手,如本示例所示。version: 0.2 env: git-credential-helper: yes phases: install: #If you use the Ubuntu standard image 2.0 or later, you must specify runtime-versions. #If you specify runtime-versions and use an image other than Ubuntu standard image 2.0, the build fails. runtime-versions: nodejs: 12 # name: version #commands: # - command # - command pre_build: commands: - ls -lt - cat README.md build: commands: - git log | head -100 - git status - ls - git archive --format=zip HEAD > application.zip #post_build: #commands: # - command # - command artifacts: files: - application.zip # - location #name: $(date +%Y-%m-%d) #discard-paths: yes #base-directory: location #cache: #paths: # - paths -
选择前往 CodePipeline。这将返回到 CodePipeline 控制台并创建一个 CodeBuild 项目,该项目使用您的构建命令用于配置。该构建项目使用服务角色来管理 AWS 服务 权限。此步骤可能需要几分钟时间。
-
选择下一步。
-
-
在步骤 5:添加测试阶段中,选择跳过测试阶段,并通过再次选择跳过接受警告消息。
选择下一步。
-
在步骤 6:添加部署阶段页面上,选择跳过部署阶段,并通过再次选择跳过接受警告消息。选择下一步。
-
在步骤 7:审核中,选择创建管道。
步骤 3:更新 CodeBuild 服务角色策略以使用连接
初始管道运行将失败,因为必须更新 CodeBuild 服务角色,使之有权使用连接。在服务角色策略中添加 codestar-connections:UseConnection IAM 权限。有关在 IAM 控制台中更新策略的说明,请参阅添加 CodeBuild GitClone 权限以连接到 Bitbucket、GitHub、GitHub Enterprise Server 或 GitLab.com。
步骤 4:在构建输出中查看存储库命令
-
成功更新服务角色后,在失败的 CodeBuild 阶段上选择重试。
-
管道成功运行后,在成功的构建阶段上,选择查看详细信息。
在详细信息页面上,选择日志选项卡。查看 CodeBuild 构建输出。这些命令将输出所输入变量的值。
这些命令输出
README.md文件内容,列出目录中的文件,克隆存储库,查看日志,然后将存储库存档为 ZIP 文件。