本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
教程:使用 Git 标签启动管道
在本教程中,您将创建一个连接到 GitHub 存储库的管道,其中为 Git 标签触发器类型配置了源操作。在提交时创建 Git 标签后,您的管道就会启动。此示例说明如何创建允许根据标签名称语法筛选标签的管道。有关使用 glob 模式筛选的更多信息,请参阅使用语法中的 glob 模式。
本教程 GitHub 通过CodeStarSourceConnection
操作类型连接到。
注意
连接 CodePipeline 操作不适用于中国(北京)和中国(宁夏)区域。要参考其他可用操作,请参阅 产品和服务与 CodePipeline。
先决条件
在开始之前,您必须执行以下操作:
-
使用您的 GitHub 账户创建 GitHub 存储库。
-
准备好您的 GitHub 凭证。当你使用 Amazon Web Services Management Console 来建立连接时,系统会要求你使用自己的 GitHub 凭据登录。
第 1 步:打开 CloudShell 并克隆您的存储库
您可以使用命令行界面来克隆存储库、执行提交和添加标签。本教程启动命令行界面的 CloudShell 实例。
-
登录到 Amazon Web Services Management Console。
-
在顶部导航栏中,选择图 Amazon 标。此时显示 Amazon Web Services Management Console 主页。
-
在顶部导航栏中,选择图 Amazon CloudShell 标。 CloudShell 打开。等待 CloudShell 环境创建完成。
注意
如果您没有看到该 CloudShell 图标,请确保您所在的区域由支持 CloudShell。本教程假设您位于美国西部(俄勒冈州)区域。
-
在中 GitHub,导航到您的存储库。选择代码,然后选择 HTTPS。复制路径。用于克隆 Git 存储库的地址复制到您的剪贴板。
-
运行以下命令以克隆存储库。
git clone https://github.com/<account>/MyGitHubRepo.git
-
在出现提示
Password
时输入您的 GitHub 帐户Username
。对于Password
条目,您必须使用用户创建的令牌,而不是您的账户密码。
步骤 2:创建在 Git 标签上触发的管道
在此部分中,您将使用以下操作创建管道:
-
一个与您的 GitHub 仓库连接和操作的源阶段。
-
带有生成操作的 Amazon CodeBuild 生成阶段。
使用向导创建管道
-
登录 CodePipeline 控制台,网址为 https://console.aws.amazon.com/codepipeline/
。 -
在欢迎页面、入门页面或管道页面上,选择创建管道。
-
在步骤 1:选择管道设置的管道名称中,输入
MyGitHubTagsPipeline
。 -
在管道类型中,保留默认选择 V2。管道类型有不同的特点和价格。有关更多信息,请参阅 管道类型。
-
在服务角色中,选择新建服务角色。
注意
如果您选择使用现有的 CodePipeline 服务角色,请确保已
codestar-connections:UseConnection
将 IAM 权限添加到您的服务角色策略中。有关 CodePipeline 服务角色的说明,请参阅为 CodePipeline 服务角色添加权限。 -
在高级设置下,保留原定设置值。在构件存储中,选择默认位置以将默认构件存储(如指定为默认值的 Amazon S3 项目存储桶)用于为管道选择的区域中的管道。
注意
这不是源代码的源存储桶。这是管道的项目存储。每个管道都需要一个单独的构件存储,例如 S3 存储桶。
选择下一步。
-
在步骤 2:添加源阶段页面上,添加源阶段:
-
在源提供程序中,选择 GitHub (版本 2)。
-
在连接下,选择一个现有连接或创建一个新连接。要创建或管理 GitHub 源操作的连接,请参阅GitHub 连接。
-
在存储库名称中,选择存储 GitHub库的名称。
-
在管道触发器下,选择 Git 标签。
在包含字段中输入
release*
。在默认分支中,选择在管道手动启动或使用非 Git 标签的源事件时要指定的分支。如果更改的来源不是触发器,或者管道执行是手动启动的,则使用的更改将是来自默认分支的 HEAD 提交。
重要
使用 Git 标签触发器类型启动的管道配置为使用 WebHookv2 事件,而不会使用 Webhook 事件(对所有推送事件进行更改检测)来启动管道。
选择下一步。
-
-
在添加构建阶段,添加一个构建阶段:
-
在构建提供程序中,选择 Amazon CodeBuild。允许区域默认为管道区域。
-
选择创建项目。
-
在项目名称中,输入此构建项目的名称。
-
在环境映像中,选择托管映像。对于操作系统,选择 Ubuntu。
-
对于运行时,选择标准。对于映像,选择 aws/codebuild/standard:5.0。
-
对于服务角色,选择新建服务角色。
注意
记下您的 CodeBuild 服务角色的名称。在本教程的最后一步,您会用到此角色名称。
-
在构建规范下,为构建规范选择插入构建命令。选择切换到编辑器,然后将以下内容粘贴到构建命令。
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
-
选择 “继续” CodePipeline。这将返回到 CodePipeline控制台并创建一个使用您的构建命令进行配置的 CodeBuild 项目。构建项目使用服务角色来管理 Amazon Web Service 权限。此步骤可能需要几分钟时间。
-
选择下一步。
-
-
在步骤 4:添加部署阶段页面上,选择跳过部署阶段,并通过再次选择跳过接受警告消息。选择下一步。
-
在步骤 5:审核中,选择创建管道。
第 3 步:标记要发布的提交
创建管道并指定 Git 标签后,可以在 GitHub仓库中标记提交。在这些步骤中,您将使用 release-1
标签标记提交。Git 存储库中的每个提交都必须有唯一的 Git 标签。当您选择提交并对其进行标记时,可将来自不同分支的更改合并到您的管道部署中。请注意,标签名称版本不适用于中版本的概念 GitHub。
-
参考您想要标记的复制的提交 ID。要查看每个分支中的提交,请在 CloudShell 终端中输入以下命令以捕获要标记的提交 ID:
git log
-
在 CloudShell 终端中,输入命令来标记你的提交并将其推送到 Origin。标记提交后,您可以使用 git push 命令将标签推送到源。在以下示例中,输入以下命令将
release-1
标签用于 ID 为49366bd
的第二次提交。此标签将按管道release*
标签筛选条件筛选并启动管道。git tag release-1 49366bd
git push origin release-1
步骤 4:发布更改并查看日志
-
管道成功运行后,在成功构建阶段,选择查看日志。
在 “日志” 下,查看 CodeBuild 生成输出。这些命令将输出所输入变量的值。
-
在历史记录页面中,查看触发器列。查看触发器类型 GitTag :release-1。