View a markdown version of this page

教程:使用 Git 标签启动管道 - AWS CodePipeline

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

教程:使用 Git 标签启动管道

在本教程中,您将创建一个连接到 GitHub 存储库的管道,在该管道中,源操作是针对 Git 标签触发器类型配置的。在提交时创建 Git 标签后,您的管道就会启动。此示例说明如何创建允许根据标签名称语法筛选标签的管道。有关使用 glob 模式筛选的更多信息,请参阅使用语法中的 glob 模式

重要

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

本教程 GitHub 通过CodeStarSourceConnection操作类型连接到。

注意

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

先决条件

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

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

  • 准备好您的 GitHub 凭证。当您使用 AWS 管理控制台 设置连接时,系统会要求您使用您的 GitHub 证书登录。

第 1 步:打开 CloudShell 并克隆您的存储库

您可以使用命令行界面来克隆存储库、执行提交和添加标签。本教程启动命令行界面 CloudShell 实例。

  1. 登录到 AWS 管理控制台。

  2. 在顶部导航栏中,选择该 AWS 图标。此时显示 AWS 管理控制台 主页。

  3. 在顶部导航栏中,选择该 AWS CloudShell 图标。 CloudShell 打开。等待 CloudShell 环境创建完毕。

    注意

    如果您看不到该 CloudShell 图标,请确保您位于支持的区域 CloudShell。本教程假设您位于美国西部(俄勒冈州)区域。

  4. 在中 GitHub,导航到您的存储库。选择代码,然后选择 HTTPS。复制路径。用于克隆 Git 存储库的地址复制到您的剪贴板。

  5. 运行以下命令以克隆存储库。

    git clone https://github.com/<account>/MyGitHubRepo.git
  6. 输入您的 GitHub 帐户Username,并在出现提示Password时输入。对于 Password 条目,您必须使用用户创建的令牌,而不是您的账户密码。

步骤 2:创建在 Git 标签上触发的管道

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

  • 与您的 GitHub 存储库和操作相连接的源阶段。

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

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

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

  3. 步骤 1:选择创建选项页面上的创建选项下,选择构建自定义管道选项。选择下一步

  4. 步骤 2:选择管道设置管道名称中,输入 MyGitHubTagsPipeline

  5. 管道类型中,保留默认选择 V2。管道类型有不同的特点和价格。有关更多信息,请参阅 管道类型

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

    注意

    如果您选择改用现有 CodePipeline 服务角色,请确保已codestar-connections:UseConnection将 IAM 权限添加到服务角色策略中。有关 CodePipeline 服务角色的说明,请参阅向 CodePipeline 服务角色添加权限

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

    注意

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

    选择下一步

  8. 步骤 3:添加源阶段页面上,添加源阶段:

    1. 来源提供商中,选择 GitHub (通过 GitHub应用程序)

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

    3. Repository name (存储库名称) 中,选择 GitHub 存储库的名称。

    4. 默认分支中,选择在管道手动启动或使用非 Git 标签的源事件时要指定的分支。如果更改的来源不是触发器,或者管道执行是手动启动的,则使用的更改将是来自默认分支的 HEAD 提交。

    5. Webhook 事件下的筛选条件类型中,选择标签

      标签或模式字段中输入 release*

      重要

      使用 Git 标签触发器类型启动的管道配置为使用 WebhookV2 事件,而不会使用 Webhook 事件(对所有推送事件进行更改检测)来启动管道。

    选择下一步

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

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

    2. 选择创建项目

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

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

    5. 对于运行时,选择标准。对于图像,选择 aws/codebuild /standar d: 5.0。

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

      注意

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

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

      version: 0.2 #env: #variables: # key: "value" # key: "value" #parameter-store: # key: "value" # key: "value" #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 #commands: # - command # - command #pre_build: #commands: # - command # - command build: commands: - #post_build: #commands: # - command # - command artifacts: files: - '*' # - location name: $(date +%Y-%m-%d) #discard-paths: yes #base-directory: location #cache: #paths: # - paths
    8. 选择 “继续” CodePipeline 。这将返回 CodePipeline控制台并创建一个使用您的生成命令进行配置的 CodeBuild 项目。构建项目使用服务角色来管理 AWS 服务 权限。此步骤可能需要几分钟时间。

    9. 选择下一步

  10. 步骤 5:添加测试阶段中,选择跳过测试阶段,并通过再次选择跳过接受警告消息。

    选择下一步

  11. 在 “步骤 6:添加部署阶段” 页面上,选择 “跳过部署阶段”,然后再次选择 “跳过” 以接受警告消息。选择下一步

  12. 步骤 7:查看中,选择创建管道

第 3 步:标记要发布的提交

创建管道并指定 Git 标签后,可以在 GitHub仓库中标记提交。在这些步骤中,您将使用 release-1 标签标记提交。Git 存储库中的每个提交都必须有唯一的 Git 标签。当您选择提交并对其进行标记时,可将来自不同分支的更改合并到您的管道部署中。请注意,标签名称 release 不适用于中发行版的概念 GitHub。

  1. 参考您想要标记的复制的提交 ID。要查看每个分支中的提交,请在 CloudShell 终端中输入以下命令来捕获要标记的提交 ID:

    git log
  2. 在 CloudShell 终端中,输入命令来标记你的提交并将其推送到原点。标记提交后,您可以使用 git push 命令将标签推送到源。在以下示例中,输入以下命令将 release-1 标签用于 ID 为 49366bd 的第二次提交。此标签将按管道 release* 标签筛选条件筛选并启动管道。

    git tag release-1 49366bd
    git push origin release-1
    使用终端运行命令来标记提交。

步骤 4:发布更改并查看日志

  1. 管道成功运行后,在成功构建阶段,选择查看日志

    在 “日志” 下,查看 CodeBuild 编译输出。这些命令将输出所输入变量的值。

  2. 历史记录页面中,查看触发器列。查看触发器类型 GitTag :release-1。