CodeBuild 的 GitHub Enterprise Server 示例 - Amazon CodeBuild
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

CodeBuild 的 GitHub Enterprise Server 示例

Amazon CodeBuild支持 GitHub 将 Enterprise Server 作为源存储库。此示例演示如何设置您的 CodeBuild 当你的项目 GitHub 企业服务器存储库已安装证书。它还说明了如何启用 webhook,以便 CodeBuild 每次将代码更改推送到您的时候都会重新构建源代码。 GitHub Gitprise Server 存储库。

先决条件

  1. 为您生成个人访问令牌 CodeBuild 项目。建议您创建 GitHub 并为该用户生成个人访问令牌。将它复制到您的剪贴板,以便在创建您的 CodeBuild 项目。有关更多信息,请参阅 。为命令行创建个人访问令牌在 GitHub 帮助网站。

    在创建个人访问令牌时,请在定义中包含存储库范围。

  2. 从下载您的证书 GitHub Enterprise Server。 CodeBuild 使用此证书与存储库建立可信 SSL 连接。

    Linux/macOS 客户端:

    从您的 终端窗口中运行以下命令:

    echo -n | openssl s_client -connect HOST:PORTNUMBER \ | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /folder/filename.pem

    将命令中的占位符替换为以下值:

    HOST。您的 IP 地址 GitHub Gitprise Server 存储库。

    PORTNUMBER。用于连接的端口号 (例如,443)。

    folder。下载证书的文件夹。

    filename。证书文件的文件名。

    重要

    将证书另存为 .pem 文件。

    Windows 客户端:

    使用浏览器从下载您的证书 GitHub Enterprise Server。要查看站点的证书详细信息,请选择挂锁图标。有关如何导出证书的信息,请参阅浏览器文档。

    重要

    将证书另存为 .pem 文件。

  3. 将您的证书文件上传到 S3 存储桶。有关如何创建 S3 存储桶的信息,请参阅如何创建 S3 存储桶? 有关如何将对象上传到 S3 存储桶的信息,请参阅如何将文件和文件夹上传至存储桶?

    注意

    此存储桶必须位于同一个位置Amazon区域作为你的构建。例如,如果你指示 CodeBuild 要在美国东部(俄亥俄)区域运行构建任务,存储桶也必须位于美国东部(俄亥俄)区域中。

创建将 GitHub Enterprise Server 作为源存储库的构建项目,并启用 Webhook(控制台)

  1. 打开Amazon CodeBuild控制台https://console.aws.amazon.com/codesuite/codebuild/home.

  2. 如果 CodeBuild 显示信息页面,请选择。创建构建项目. 否则,在导航窗格中,展开。构建,选择构建项目选择,然后选择创建构建项目.

  3. Project name (项目名称),输入此构建项目的名称。构建项目名称在您的各个 Amazon 账户内必须是唯一的。您还可以包含构建项目的可选描述,以帮助其他用户了解此项目的用途。

  4. Source (源)Source provider (源提供商) 中,选择 GitHub Enterprise

    • 对于 Personal Access Token,粘贴您复制到剪贴板的令牌,然后选择 Save Token。In存储库 URL输入您的的 URL GitHub Gitprise Server 存储库。

      注意

      您只需输入并保存一次个人访问令牌。未来所有 Amazon CodeBuild 项目均会使用此令牌。

    • Repository URL (存储库 URL) 中,输入您的存储库的路径,包括存储库的名称。

    • 展开 Additional configuration (其他配置)

    • 选择 Rebuild every time a code change is pushed to this repository (每次将代码推送到此存储库时都会重建) 以便每次将代码推送到此存储库时进行重建。

    • Select启用不安全的 SSL要在连接到您的时候忽略 SSL 警告 GitHub 企业服务器项目存储库。

      注意

      建议您仅将 Enable insecure SSL (启用不安全的 SSL) 用于测试。它不应在生产环境中使用。

  5. Environment (环境) 中:

    对于 Environment image (环境映像),执行下列操作之一:

    • 要使用由 Amazon CodeBuild 托管的 Docker 映像,请选择 Managed image (托管映像),然后从 Operating system (操作系统)Runtime(s) (运行时)Image (映像) 以及 Image version (映像版本) 中进行相应选择。从 Environment type (环境类型) 中进行选择(如果可用)。

    • 要使用其他 Docker 映像,请选择 Custom image (自定义映像)。适用于环境类型,选择手臂Linux的Linux GPU,或者Windows. 如果选择其他注册表,对于外部注册表 URL,请在 Docker Hub 中按照格式输入 Docker 映像的名称和标签docker repository/docker image name. 如果选择Amazon ECR,使用Amazon ECR 存储库Amazon ECR 镜像在您的中选择 Docker 镜像Amazonaccount.

    • 要使用私有 Docker 映像,请选择。自定义映像. 适用于环境类型,选择手臂Linux的Linux GPU,或者Windows. 对于 Image registry (映像注册表),选择 Other registry (其他注册表),然后输入您的私有 Docker 映像的凭证的 ARN。凭证必须由 Secrets Manager 创建。有关更多信息,请参阅 。什么是Amazon Secrets Manager?中的Amazon Secrets Manager用户指南.

  6. Service role (服务角色) 中,执行下列操作之一:

    • 如果您没有 CodeBuild 服务角色,选择新的服务角色. 在 Role name 中,为新角色输入名称。

    • 如果您有 CodeBuild 服务角色,选择现有服务角色. In角色 ARN中,选择服务角色。

    注意

    当您使用控制台来创建或更新构建项目时,您可以创建 CodeBuild 同时提交服务角色。默认情况下,这个角色仅能与该构建项目配合使用。如果您使用控制台将此服务角色与另一个构建项目关联,则此角色将更新以便与关联的构建项目结合使用。一个服务角色最多可与 10 个构建项目结合使用。

  7. 展开 Additional configuration (其他配置)

    如果要 CodeBuild 要将与您的 VPC 结合使用:

    • 适用于VPC中,选择该 VPC ID CodeBuild 使用。

    • 适用于VPC 子网中,选择包含以下资源的子网: CodeBuild 使用。

    • 适用于VPC 安全组中,选择哪些安全组 CodeBuild 用来支持对 VPC 中的资源的访问。

    有关更多信息,请参阅 使用Amazon CodeBuild使用 Amazon Virtual Private Cloud

  8. InBuildSpec中,执行以下操作之一:

    • 选择使用 buildspec 文件使用源代码根目录中的 buildspec.yml 文件。

    • 选择插入构建命令以使用控制台插入构建命令。

    有关更多信息,请参见 构建规范参考

  9. Artifacts (构件) 中,对于 Type (类型),执行以下操作之一:

    • 如果您不想创建构建输出项目,请选择 No artifacts (无构件)

    • 要在 S3 存储桶中存储生成输出,请选择Amazon S3然后,执行以下操作:

      • 如果要将项目名称用于构建输出 ZIP 文件或文件夹,请将 Name (名称) 留空。否则,请输入名称。默认情况下,构件名称是项目名称。如果您要使用其他名称,请在构件名称框中输入该名称。如果您要输出 ZIP 文件,请包含 zip 扩展名。

      • 对于 Bucket name (存储桶名称),请选择输出存储桶的名称。

      • 如果您在此过程的前面部分选择了 Insert build commands (插入构建命令),对于 Output files (输出文件),请输入构建(该构建要放到构建输出 ZIP 文件或文件夹中)中的文件位置。对于多个位置,使用逗号分开各个位置 (appspec.yml, target/my-app.jar)。有关更多信息,请参阅 构建规范语法files 的描述。

  10. 对于 Cache type (缓存类型),请选择下列选项之一:

    • 如果您不想使用缓存,请选择 No cache (无缓存)

    • 如果要使用 Amazon S3 缓存,请选择Amazon S3然后,执行以下操作:

      • 对于 Bucket (存储桶),选择存储缓存的 S3 存储桶的名称。

      • (可选)对于缓存路径前缀,请输入 Amazon S3 路径前缀。Cache path prefix (缓存路径前缀)值类似于目录名称。它使您能够在存储桶的同一目录下存储缓存。

        重要

        请勿将一个尾斜杆 (/) 附加到路径前缀后面。

    • 如果想要使用本地缓存,请选择 Local (本地),然后选择一个或多个本地缓存模式。

      注意

      Docker 层缓存模式仅适用于 Linux。如果您选择该模式,您的项目必须在特权模式下运行。

    使用缓存可节省大量构建时间,因为构建环境的可重用部分被存储在缓存中,并且可跨构建使用。有关在构建规范文件中指定缓存的信息,请参阅构建规范语法。有关缓存的更多信息,请参阅在 Amazon CodeBuild 中构建缓存

  11. 选择 Create build project (创建构建项目)。在生成项目页面上,选择 Start build (开始生成)

  12. 如果您在 Source (源) 中启用了 Webhook,将出现 Create webhook (创建 Webhook) 对话框,其中显示 Payload URL (负载 URL)Secret (密钥) 的值。

    重要

    Create webhook 对话框只出现一次。请复制负载 URL 和私有密钥。在中添加 Webhook 时会用到它们。 GitHub Enterprise Server。

    如果您需要再次生成负载 URL 和私有密钥,则必须首先删除您的 Webhook。 GitHub Gitprise Server 存储库。在您的 CodeBuild 项目中,清除 Webhook 复选框,然后选择 Save (保存)。然后您可以使用创建或更新 CodeBuild 项目。Webhook复选框已选中。Create webhook (创建 webhook) 对话框将再次出现。

  13. In GitHub 选择企业服务器,选择存储库 CodeBuild 项目已存储。

  14. 选择 Settings (设置),选择 Hooks & services (挂钩和服务),然后选择 Add webhook (添加 webhook)

  15. 输入负载 URL 和私有密钥,接受其他字段的默认值,然后选择 Add webhook

  16. 返回您的 CodeBuild 项目。关闭 Create webhook 对话框,然后选择 Start build