教程:使用带有 GitHub 管道源的完整克隆 - AWS CodePipeline

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

教程:使用带有 GitHub 管道源的完整克隆

您可以在中为 GitHub 源操作选择完全克隆选项 CodePipeline。使用此选项可在管道构建操作中运行 Git 元数据的 CodeBuild 命令。

重要

作为创建管道的一部分,客户提供的 S3 工件存储桶将 CodePipeline 用于项目。(这与用于 S3 源操作的存储桶不同。) 如果 S3 工件存储桶与您的管道账户位于不同的账户中,请确保 S3 工件存储桶归其所有 AWS 账户 ,该存储桶是安全且可靠的。

在本教程中,您将创建一个连接到 GitHub 仓库的管道,对源数据使用完整克隆选项,并运行一个用于克隆仓库并对仓库执行 Git 命令的 CodeBuild 构建。

注意

此功能不适用于亚太地区(香港)、非洲(开普敦)、中东(巴林)、欧洲(苏黎世)或 AWS GovCloud (美国西部)区域。要参考其他可用操作,请参阅 产品和服务与 CodePipeline。有关在欧洲地区(米兰)区域使用此操作的注意事项,请参阅CodeStarSourceConnection 适用于 Bitbucket Cloud GitHub、、 GitHub 企业服务器、 GitLab .com 和 GitLab 自我管理操作中的说明。

先决条件

在开始之前,您必须执行以下操作:

  • 使用您的 GitHub 账户创建 GitHub 存储库。

  • 准备好您的 GitHub 凭证。当你使用 AWS Management Console 来建立连接时,系统会要求你使用自己的 GitHub 凭据登录。

步骤 1:创建README文件

创建存储 GitHub 库后,使用以下步骤添加README文件。

  1. 登录您的 GitHub 存储库并选择您的存储库。

  2. 要创建新文件,请选择添加文件 > 创建新文件。将文件命名为 README.md 文件并添加以下文本。

    This is a GitHub repository!
  3. 选择提交更改

    确保 README.md 文件位于存储库的根级别。

步骤 2:创建管道并构建项目

在此部分中,您将使用以下操作创建管道:

  • 与您的 GitHub 仓库连接和操作的源阶段。

  • 带有生成操作的 AWS CodeBuild 生成阶段。

使用向导创建管道
  1. 登录 CodePipeline 控制台,网址为https://console.aws.amazon.com/codepipeline/

  2. 欢迎页面、入门页面或管道页面上,选择创建管道

  3. 步骤 1:选择管道设置管道名称中,输入 MyGitHubPipeline

  4. 在本教程中,为管道类型选择 V1。也可以选择 V2;但请注意,不同管道类型具有不同的特性和价格。有关更多信息,请参阅 管道类型

  5. 服务角色中,选择新建服务角色

    注意

    如果您选择使用现有的 CodePipeline 服务角色,请确保已将codeconnections:UseConnectionIAM权限添加到服务角色策略中。有关 CodePipeline 服务角色的说明,请参阅为 CodePipeline 服务角色添加权限

  6. 高级设置下,保留原定设置值。在构件存储中,选择默认位置以将默认构件存储(如指定为默认值的 Amazon S3 项目存储桶)用于为管道选择的区域中的管道。

    注意

    这不是源代码的源存储桶。这是管道的项目存储。每个管道都需要一个单独的构件存储,例如 S3 存储桶。

    选择下一步

  7. 步骤 2:添加源阶段页面上,添加源阶段:

    1. 源提供程序中,选择 GitHub (版本 2)

    2. 连接下,选择一个现有连接或创建一个新连接。要创建或管理 GitHub 源操作的连接,请参阅GitHub 连接

    3. 存储库名称中,选择存储 GitHub库的名称。

    4. 分支名称中,键入要使用的存储库分支。

    5. 确保选择了在源代码更改时启动管道选项。

    6. 输出构件格式下,选择完整克隆,对源存储库启用 Git 克隆选项。只有提供的操作 CodeBuild 才能使用 Git 克隆选项。在本教程步骤 3:更新 CodeBuild 服务角色策略以使用连接中,您将使用更新 CodeBuild 项目服务角色使用此选项的权限。

    选择下一步

  8. 添加构建阶段,添加一个构建阶段:

    1. 构建提供程序中,选择 AWS CodeBuild。允许区域默认为管道区域。

    2. 选择创建项目

    3. 项目名称中,输入此构建项目的名称。

    4. 环境映像中,选择托管映像。对于操作系统,选择 Ubuntu

    5. 对于运行时,选择标准。对于映像,选择 aws/codebuild/standard:5.0

    6. 对于服务角色,选择新建服务角色

      注意

      记下您的 CodeBuild 服务角色的名称。在本教程的最后一步,您会用到此角色名称。

    7. 构建规范下,为构建规范选择插入构建命令。选择切换到编辑器,然后将以下内容粘贴到构建命令

      注意

      在构建规范的 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
    8. 选择 “继续” CodePipeline。这将返回到 CodePipeline控制台并创建一个使用您的构建命令进行配置的 CodeBuild 项目。构建项目使用服务角色来管理 AWS 服务 权限。此步骤可能需要几分钟时间。

    9. 选择下一步

  9. 步骤 4:添加部署阶段页面上,选择跳过部署阶段,并通过再次选择跳过接受警告消息。选择下一步

  10. 步骤 5:审核中,选择创建管道

步骤 3:更新 CodeBuild 服务角色策略以使用连接

初始管道运行将失败,因为必须更新 CodeBuild 服务角色才能使用连接。将codeconnections:UseConnectionIAM权限添加到您的服务角色策略中。有关在IAM控制台中更新策略的说明,请参阅添加连接 Bitbucket、 GitHub、En GitHub terprise Server 或 GitLab .com 的 CodeBuild GitClone 权限

步骤 4:在构建输出中查看存储库命令

  1. 成功更新服务角色后,在失败 CodeBuild 阶段选择 “重试”。

  2. 管道成功运行后,在成功的构建阶段上,选择查看详细信息

    在详细信息页面上,选择日志选项卡。查看 CodeBuild 构建输出。这些命令将输出所输入变量的值。

    这些命令输出README.md文件内容,列出目录中的文件,克隆存储库,查看日志,并将存储库存档为ZIP文件。