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

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

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

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

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

注意

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

先决条件

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

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

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

步骤 1:创建自述文件

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

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

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

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

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

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

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

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

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

使用向导创建管道
  1. 通过 https://console.aws.amazon.com/codepipeline/ 登录主 CodePipeline 机。

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

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

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

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

    注意

    如果您选择使用现有的 CodePipeline 服务角色,请确保已codeconnections:UseConnection将 IAM 权限添加到您的服务角色策略中。有关 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:UseConnection IAM 权限。有关在 IAM 控制台中更新策略的说明,请参阅添加连接 Bitbucket、 GitHub、En GitHub terprise Server 或 GitLab .com 的 CodeBuild GitClone 权限

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

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

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

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

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