

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# CodeBuild 託管的 GitHub 動作執行器支援標籤覆寫
<a name="sample-github-action-runners-update-labels"></a>

在 GitHub Actions 工作流程 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 Actions 工作流程 YAMLs都需要。*<project name>* 應等於設定自我託管執行器 Webhook 的專案名稱。

`image:<environment-type>-<image-identifier>`
+ 範例：`image:arm-3.0`
+ 覆寫使用精選映像啟動自我託管執行器建置時所使用的映像和環境類型。若要了解支援的值，請參閱 [CodeBuild 託管的 GitHub Actions Runner 支援運算映像](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 Actions Runner 支援運算映像](sample-github-action-runners-update-yaml.images.md)。

`fleet:<fleet-name>`
+ 範例：`fleet:myFleet`
+ 覆寫專案上設定的機群設定，以使用指定的機群。如需詳細資訊，請參閱[在預留容量機群上執行組建](fleets.md)。

`buildspec-override:<boolean>`
+ 範例：`buildspec-override:true`
+ 如果設為 `PRE_BUILD`，允許組建在 `INSTALL`、 和 `POST_BUILD`階段中執行 buildspec 命令`true`。

## 單一標籤覆寫 （舊版）
<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 組建，您可以排除影像識別符。