教程:使用 Git 标签启动管道 - Amazon CodePipeline
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

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

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

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

注意

连接 CodePipeline 操作不适用于中国(北京)和中国(宁夏)区域。要参考其他可用操作,请参阅 产品和服务与 CodePipeline

先决条件

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

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

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

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

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

  1. 登录到 Amazon Web Services Management Console。

  2. 在顶部导航栏中,选择图 Amazon 标。此时显示 Amazon Web Services Management Console 主页。

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

    注意

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

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

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

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

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

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

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

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

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

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

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

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

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

    注意

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

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

    注意

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

    选择下一步

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

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

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

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

    4. 管道触发器下,选择 Git 标签

      包含字段中输入 release*

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

      重要

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

    选择下一步

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

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

    2. 选择创建项目

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

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

    5. 对于运行时,选择标准。对于映像,选择 aws/codebuild/standard: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 项目。构建项目使用服务角色来管理 Amazon Web Service 权限。此步骤可能需要几分钟时间。

    9. 选择下一步

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

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

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

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

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

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

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

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

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

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

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