本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
教程:使用带有 GitHub 管道源的完整克隆
您可以在中为 GitHub 源操作选择完全克隆选项 CodePipeline。使用此选项可在管道构建操作中运行 Git 元数据的 CodeBuild 命令。
注意
此处描述的完整克隆选项是指指定是否 CodePipeline 应克隆存储库元数据,这些元数据只能由 CodeBuild 命令使用。要将 GitHub 用户访问令牌
重要
作为创建管道的一部分,客户提供的 S3 工件存储桶将 CodePipeline 用于项目。(这与用于 S3 源操作的存储桶不同。) 如果 S3 工件存储桶与您的管道账户位于不同的账户中,请确保 S3 工件存储桶归其所有 Amazon Web Services 账户 ,该存储桶是安全且可靠的。
在本教程中,您将创建一个连接到 GitHub 仓库的管道,对源数据使用完整克隆选项,并运行一个用于克隆仓库并对仓库执行 Git 命令的 CodeBuild 构建。
注意
连接 CodePipeline 操作不适用于中国(北京)和中国(宁夏)区域。要参考其他可用操作,请参阅 产品和服务与 CodePipeline。
先决条件
在开始之前,您必须执行以下操作:
-
使用您的 GitHub 账户创建 GitHub 存储库。
-
准备好您的 GitHub 凭证。当你使用 Amazon Web Services Management Console 来建立连接时,系统会要求你使用自己的 GitHub 凭据登录。
步骤 1:创建README文件
创建存储 GitHub 库后,使用以下步骤添加README文件。
-
登录您的 GitHub 存储库并选择您的存储库。
-
要创建新文件,请选择添加文件 > 创建新文件。将文件命名为
README.md
文件并添加以下文本。This is a GitHub repository!
-
选择提交更改。
确保
README.md
文件位于存储库的根级别。
步骤 2:创建管道并构建项目
在此部分中,您将使用以下操作创建管道:
-
一个与您的 GitHub 仓库连接和操作的源阶段。
-
带有生成操作的 Amazon CodeBuild 生成阶段。
使用向导创建管道
-
登录 CodePipeline 控制台,网址为https://console.aws.amazon.com/codepipeline/
。 -
在欢迎页面、入门页面或管道页面上,选择创建管道。
-
在步骤 1:选择管道设置的管道名称中,输入
MyGitHubPipeline
。 -
在本教程中,为管道类型选择 V1。也可以选择 V2;但请注意,不同管道类型具有不同的特性和价格。有关更多信息,请参阅 管道类型。
-
在服务角色中,选择新建服务角色。
注意
如果您选择使用现有的 CodePipeline 服务角色,请确保已将
codestar-connections:UseConnection
IAM权限添加到服务角色策略中。有关 CodePipeline 服务角色的说明,请参阅为 CodePipeline 服务角色添加权限。 -
在高级设置下,保留原定设置值。在构件存储中,选择默认位置以将默认构件存储(如指定为默认值的 Amazon S3 项目存储桶)用于为管道选择的区域中的管道。
注意
这不是源代码的源存储桶。这是管道的项目存储。每个管道都需要一个单独的构件存储,例如 S3 存储桶。
选择下一步。
-
在步骤 2:添加源阶段页面上,添加源阶段:
-
在源提供程序中,选择 GitHub (版本 2)。
-
在连接下,选择一个现有连接或创建一个新连接。要创建或管理 GitHub 源操作的连接,请参阅GitHub 连接。
您可以为与特定提供程序的所有连接安装一个应用程序。如果您已经安装了 GitHub 应用程序 Amazon 连接器,请选择它并跳过此步骤。
注意
如果要创建用户访问令牌
,请确保已经为 GitHub 应用程序安装了 Conn Amazon ector,然后将 “应用程序安装” 字段留空。 CodeConnections 将使用用户访问令牌进行连接。有关更多信息,请参阅中的访问您的源提供商 CodeBuild。 -
在存储库名称中,选择存储 GitHub库的名称。
-
在分支名称中,键入要使用的存储库分支。
-
确保选择了在源代码更改时启动管道选项。
-
在输出构件格式下,选择完整克隆,对源存储库启用 Git 克隆选项。只有提供的操作 CodeBuild 才能使用 Git 克隆选项。在本教程步骤 3:更新 CodeBuild 服务角色策略以使用连接中,您将使用更新 CodeBuild 项目服务角色的权限,以使用此选项。
选择下一步。
-
-
在添加构建阶段,添加一个构建阶段:
-
在构建提供程序中,选择 Amazon 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 项目。构建项目使用服务角色来管理 Amazon Web Services 服务 权限。此步骤可能需要几分钟时间。
-
选择下一步。
-
-
在步骤 4:添加部署阶段页面上,选择跳过部署阶段,并通过再次选择跳过接受警告消息。选择下一步。
-
在步骤 5:审核中,选择创建管道。
步骤 3:更新 CodeBuild 服务角色策略以使用连接
初始管道运行将失败,因为必须更新 CodeBuild 服务角色才能使用连接。将codestar-connections:UseConnection
IAM权限添加到您的服务角色策略中。有关在IAM控制台中更新策略的说明,请参阅添加连接 Bitbucket、 GitHub、En GitHub terprise Server 或 GitLab .com 的 CodeBuild GitClone 权限。
步骤 4:在构建输出中查看存储库命令
-
成功更新服务角色后,在失败 CodeBuild 阶段选择 “重试”。
-
管道成功运行后,在成功的构建阶段上,选择查看详细信息。
在详细信息页面上,选择日志选项卡。查看编 CodeBuild 译输出。这些命令将输出所输入变量的值。
这些命令输出
README.md
文件内容,列出目录中的文件,克隆存储库,查看日志,并将存储库存档为ZIP文件。