使用 CodeBuild 构建徽章示例 - AWS CodeBuild
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

使用 CodeBuild 构建徽章示例

AWS CodeBuild 现在支持使用构建徽章,该徽章提供一个动态生成的可嵌入映像(徽章),用以显示项目的最新构建状态。可通过为您的 CodeBuild 项目生成的公开可用的 URL 访问此映像。这将允许任何人查看 CodeBuild 项目的状态。构建徽章不包含任何安全信息,因此它们无需身份验证。

创建已启用构建徽章的构建项目(控制台)

  1. Open the AWS CodeBuild console at https://console.amazonaws.cn/codesuite/codebuild/home.

  2. If a CodeBuild information page is displayed, choose Create build project. Otherwise, on the navigation pane, expand Build, choose Build projects, and then choose Create build project.

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

  4. Source (源) 中,对于 Source provider (源提供商),选择源提供商类型,然后执行以下操作之一:

    注意

    CodeBuild 不支持 Amazon S3 源提供程序随附的构建徽章。由于 AWS CodePipeline 使用 Amazon S3 进行构件传输,因此对于作为在 CodePipeline 中创建的管道的一部分的构建项目,不支持构建徽章。

    • 如果您选择了 CodeCommit,那么对于 Repository (存储库),请选择存储库的名称。选择 Enable build badge (启用生成徽章),以使您的项目的生成状态可见且可嵌入。

    • 如果您选择 GitHub,请按照说明与 GitHub 连接(或重新连接)。 在 GitHub Authorize application (授权应用程序) 页面上,对于 Organization access (组织访问权限),选择您希望 能够访问的每个存储库旁边的 Request access (请求访问权限)AWS CodeBuild。选择 Authorize application (授权应用程序) 后,返回 AWS CodeBuild 控制台,对于 Repository (存储库),选择包含源代码的存储库的名称。选择 Enable build badge (启用生成徽章),以使您的项目的生成状态可见且可嵌入。

    • 如果您选择了 Bitbucket,请按照说明与 Bitbucket 连接 (或重新连接)。在 Bitbucket Confirm access to your account 页面上,对于 Organization access,选择 Grant access。选择 Grant access (授予访问权限) 后,返回 AWS CodeBuild 控制台,对于 Repository (存储库),选择包含源代码的存储库的名称。选择 Enable build badge (启用生成徽章),以使您的项目的生成状态可见且可嵌入。

      重要

      更新项目源可能会影响项目构建徽章的准确性。

  5. Environment (环境) 中:

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

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

    • 要使用其他 Docker 映像,请选择 Custom image (自定义映像)。对于 Environment type (环境类型),选择 ARMLinuxLinux GPUWindows。如果您针对 External registry URL (外部注册表 URL) 选择 Other registry (其他注册表),请在 Docker Hub 中按照格式 docker repository/docker image name 输入 Docker 映像的名称和标签。如果您选择 Amazon ECR,请使用 Amazon ECR repository (Amazon ECR 存储库)Amazon ECR image (Amazon ECR 映像) 在您的 AWS 账户中选择 Docker 映像。

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

  6. In Service role, do one of the following:

    • If you do not have a CodeBuild service role, choose New service role. In Role name, enter a name for the new role.

    • If you have a CodeBuild service role, choose Existing service role. In Role ARN, choose the service role.

    注意

    When you use the console to create or update a build project, you can create a CodeBuild service role at the same time. By default, the role works with that build project only. If you use the console to associate this service role with another build project, the role is updated to work with the other build project. A service role can work with up to 10 build projects.

  7. 构建规范中,执行以下操作之一:

    • 选择 Use a buildspec file (使用 buildspec 文件) 以在源代码根目录中使用 buildspec.yml 文件。

    • 选择 Insert build commands (插入构建命令) 以使用控制台插入构建命令。

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

  8. In Artifacts, for Type, do one of the following:

    • If you do not want to create build output artifacts, choose No artifacts.

    • To store the build output in an S3 bucket, choose Amazon S3, and then do the following:

      • If you want to use your project name for the build output ZIP file or folder, leave Name blank. Otherwise, enter the name. By default, the artifact name is the project name. If you want to use a different name, enter it in the artifacts name box. If you want to output a ZIP file, include the zip extension.

      • For Bucket name, choose the name of the output bucket.

      • If you chose Insert build commands earlier in this procedure, for Output files, enter the locations of the files from the build that you want to put into the build output ZIP file or folder. For multiple locations, separate each location with a comma (for example, appspec.yml, target/my-app.jar). For more information, see the description of files in 构建规范语法.

  9. 展开 Additional configuration (其他配置) 并根据需要选择选项。

  10. 选择 Create build project (创建构建项目)。在 Review (审核) 页面上,选择 Start build (启动构建) 以运行构建。

创建已启用构建徽章的构建项目 (CLI)

有关创建构建项目的信息,请参阅创建构建项目 (AWS CLI)。要在 AWS CodeBuild 项目中包含构建徽章,您必须指定 badgeEnabled ,值为 true

访问您的 AWS CodeBuild 构建徽章

您可以使用 AWS CodeBuild 控制台或 AWS CLI 访问构建徽章。

  • 在 CodeBuild 控制台中,在生成项目列表中的 Name (名称) 列,选择与生成项目相对应的链接。在 Build project 上: project-name 页面,在 Configuration (配置) 中,选择 Copy badge URL (复制徽章 URL)。有关更多信息,请参阅查看构建项目的详细信息(控制台)

  • 在 AWS CLI 中,运行 batch-get-projects 命令。构建徽章 URL 包含在输出的项目环境详细信息部分中。有关更多信息,请参阅查看构建项目的详细信息 (AWS CLI)

重要

构建徽章请求 URL 用于默认分支,但您可以指定源存储库中已用于运行构建的任何分支。

发布您的 CodeBuild 构建徽章

您可以将构建徽章请求 URL 包含在您的首选存储库 (例如,GitHub 或 CodeCommit) 中的 markdown 文件中,以显示最新构建的状态。

示例 markdown 代码:

![Build Status](https://codebuild.us-east-1.amazon.com/badges?uuid=...&branch=main)

CodeBuild 徽章状态

  • PASSING 给定分支上的最新构建已传递。

  • FAILING 给定分支上的最新构建已超时、失败、出现故障或停止。

  • IN_PROGRESS 给定分支上的最新构建正在进行中。

  • UNKNOWN 项目尚未为给定分支运行构建或根本未运行。此外,构建徽章功能可能已禁用。