本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
教程:使用带有 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 库后,使用以下步骤添加自述文件。
-
登录您的 GitHub 存储库并选择您的存储库。
-
要创建新文件,请选择添加文件 > 创建新文件。将文件命名为
README.md
文件并添加以下文本。This is a GitHub repository!
-
选择提交更改。
确保
README.md
文件位于存储库的根级别。
步骤 2:创建管道并构建项目
在此部分中,您将使用以下操作创建管道:
-
与您的 GitHub 仓库连接和操作的源阶段。
-
带有生成操作的 AWS CodeBuild 生成阶段。
使用向导创建管道
-
通过 https://console.aws.amazon.com/codepipeline/
登录主 CodePipeline 机。 -
在欢迎页面、入门页面或管道页面上,选择创建管道。
-
在步骤 1:选择管道设置的管道名称中,输入
MyGitHubPipeline
。 -
在本教程中,为管道类型选择 V1。也可以选择 V2;但请注意,不同管道类型具有不同的特性和价格。有关更多信息,请参阅 管道类型。
-
在服务角色中,选择新建服务角色。
注意
如果您选择使用现有的 CodePipeline 服务角色,请确保已
codeconnections:UseConnection
将 IAM 权限添加到您的服务角色策略中。有关 CodePipeline 服务角色的说明,请参阅为 CodePipeline 服务角色添加权限。 -
在高级设置下,保留原定设置值。在构件存储中,选择默认位置以将默认构件存储(如指定为默认值的 Amazon S3 项目存储桶)用于为管道选择的区域中的管道。
注意
这不是源代码的源存储桶。这是管道的项目存储。每个管道都需要一个单独的构件存储,例如 S3 存储桶。
选择下一步。
-
在步骤 2:添加源阶段页面上,添加源阶段:
-
在源提供程序中,选择 GitHub (版本 2)。
-
在连接下,选择一个现有连接或创建一个新连接。要创建或管理 GitHub 源操作的连接,请参阅GitHub 连接。
-
在存储库名称中,选择存储 GitHub库的名称。
-
在分支名称中,键入要使用的存储库分支。
-
确保选择了在源代码更改时启动管道选项。
-
在输出构件格式下,选择完整克隆,对源存储库启用 Git 克隆选项。只有提供的操作 CodeBuild 才能使用 Git 克隆选项。在本教程步骤 3:更新 CodeBuild 服务角色策略以使用连接中,您将使用更新 CodeBuild 项目服务角色使用此选项的权限。
选择下一步。
-
-
在添加构建阶段,添加一个构建阶段:
-
在构建提供程序中,选择 AWS CodeBuild。允许区域默认为管道区域。
-
选择创建项目。
-
在项目名称中,输入此构建项目的名称。
-
在环境映像中,选择托管映像。对于操作系统,选择 Ubuntu。
-
对于运行时,选择标准。对于映像,选择 aws/codebuild/standard:5.0。
-
对于服务角色,选择新建服务角色。
注意
记下您的 CodeBuild 服务角色的名称。在本教程的最后一步,您会用到此角色名称。
-
在构建规范下,为构建规范选择插入构建命令。选择切换到编辑器,然后将以下内容粘贴到构建命令。
注意
在构建规范的
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
-
选择 “继续” CodePipeline。这将返回到 CodePipeline控制台并创建一个使用您的构建命令进行配置的 CodeBuild 项目。构建项目使用服务角色来管理 AWS 服务 权限。此步骤可能需要几分钟时间。
-
选择下一步。
-
-
在步骤 4:添加部署阶段页面上,选择跳过部署阶段,并通过再次选择跳过接受警告消息。选择下一步。
-
在步骤 5:审核中,选择创建管道。
步骤 3:更新 CodeBuild 服务角色策略以使用连接
初始管道运行将失败,因为必须更新 CodeBuild 服务角色才能使用连接。在服务角色策略中添加 codeconnections:UseConnection
IAM 权限。有关在 IAM 控制台中更新策略的说明,请参阅添加连接 Bitbucket、 GitHub、En GitHub terprise Server 或 GitLab .com 的 CodeBuild GitClone 权限。
步骤 4:在构建输出中查看存储库命令
-
成功更新服务角色后,在失败 CodeBuild 阶段选择 “重试”。
-
管道成功运行后,在成功的构建阶段上,选择查看详细信息。
在详细信息页面上,选择日志选项卡。查看编 CodeBuild 译输出。这些命令将输出所输入变量的值。
这些命令输出
README.md
文件内容,列出目录中的文件,克隆存储库,查看日志,然后将存储库存档为 ZIP 文件。