

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

# CodeBuild托管的操作运行器支持的 GitHub 标签覆盖
<a name="sample-github-action-runners-update-labels"></a>

在你的 A GitHub ctions 工作流程 YAML 中，你可以提供各种标签覆盖来修改你的自托管运行器构建。任何未被识别的版本都 CodeBuild 将被忽略，但不会使您的 webhook 请求失败。例如，以下工作流程 YAML 包括映像、实例大小、实例集和 buildspec 的覆盖：

```
name: Hello World
on: [push]
jobs:
  Hello-World-Job:
    runs-on:
      - codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }}
        image:${{ matrix.os }}
        instance-size:${{ matrix.size }}
        fleet:myFleet
        buildspec-override:true
    strategy:
      matrix:
        include:
          - os: arm-3.0
            size: small
          - os: linux-5.0
            size: large
    steps:
      - run: echo "Hello World!"
```

**注意**  
如果您的工作流程任务处于暂停 GitHub状态，请参阅[排查 webhook 的问题](action-runner-troubleshoot-webhook.md)和[使用自定义标签路由作业](https://docs.github.com/en/enterprise-server@3.12/actions/hosting-your-own-runners/managing-self-hosted-runners/using-self-hosted-runners-in-a-workflow?learn=hosting_your_own_runners&learnProduct=actions#using-custom-labels-to-route-jobs)。

`codebuild-<project-name>-${{github.run_id}}-${{github.run_attempt}}`（必需）
+ 示例：`codebuild-fake-project-${{ github.run_id }}-${{ github.run_attempt }}`
+ 所有 GitHub 操作工作流程均为必填项 YAMLs。 *<project name>*应等于为其配置自托管运行器 webhook 的项目的名称。

`image:<environment-type>-<image-identifier>`
+ 示例：`image:arm-3.0`
+ 覆盖在通过精选映像启动自托管运行程序构建时使用的映像和环境类型。要了解支持的值，请参阅[计算 CodeBuild托管的 GitHub 操作运行器支持的图像](sample-github-action-runners-update-yaml.images.md)。
  + 要覆盖与自定义映像结合使用的映像和环境类型，请使用 `image:custom-<environment-type>-<custom-image-identifier>`
  + 示例：`image:custom-arm-public.ecr.aws/codebuild/amazonlinux-aarch64-standard:3.0`
**注意**  
如果自定义映像位于私有注册表中，请参阅[为自托管运行程序配置私有注册表凭证](private-registry-sample-configure-runners.md)。

`instance-size:<instance-size>`
+ 示例：`instance-size:medium`
+ 覆盖在启动自托管运行器构建时使用的实例类型。要了解支持的值，请参阅[计算 CodeBuild托管的 GitHub 操作运行器支持的图像](sample-github-action-runners-update-yaml.images.md)。

`fleet:<fleet-name>`
+ 示例：`fleet:myFleet`
+ 覆盖在您的项目中配置的实例集设置，以便使用指定的实例集。有关更多信息，请参阅 [在预留容量实例集上运行构建](fleets.md)。

`buildspec-override:<boolean>`
+ 示例：`buildspec-override:true`
+ 如果设置为 `true`，则允许构建以在 `INSTALL`、`PRE_BUILD` 和 `POST_BUILD` 阶段运行 buildspec 命令。

## 单个标签覆盖（旧版）
<a name="sample-github-action-runners-update-single-labels"></a>

CodeBuild 允许您使用以下方法在单个标签中提供多个覆盖：
+ 要覆盖 Amazon EC2/Lambda 计算构建的环境设置，请使用以下语法：

  ```
  runs-on: codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }}-<environment-type>-<image-identifier>-<instance-size>
  ```
+ 要覆盖 Amazon EC2 计算构建的实例集设置，请使用以下语法：

  ```
  runs-on: codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }}-fleet-<fleet-name>
  ```
+ 要同时覆盖构建所用的实例集和映像，请使用以下语法：

  ```
  runs-on: codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }}-image-<image-version>-fleet-<fleet-name>
  ```
+ 要在构建期间运行 buildspec 命令，可以将 `-with-buildspec` 作为后缀添加到标签中：

  ```
  runs-on: codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }}-<image>-<image-version>-<instance-size>-with-buildspec
  ```
+ 或者，您也可以提供实例大小覆盖，而不覆盖映像。对于 Amazon EC2 构建，您可以排除环境类型和映像标识符。对于 Lambda 构建，您可以排除映像标识符。