

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

# 針對 INSTALL、PRE\$1BUILD 和 POST\$1BUILD 階段執行 buildspec 命令
<a name="sample-runner-buildkite-buildspec"></a>

根據預設，CodeBuild 會在執行自我託管的 Buildkite 執行器建置時忽略任何 buildspec 命令。若要在建置期間執行 buildspec 命令，

```
buildspec-override: "true"
```

 可以新增為標籤的尾碼：

```
agents:
  project: "codebuild-<project name>"
  buildspec-override: "true"
```

透過使用此命令，CodeBuild `buildkite-runner` 將在容器的主要來源資料夾中建立名為 的資料夾。當 Buildkite 執行器在`BUILD`階段期間啟動時，執行器將在 `buildkite-runner`目錄中執行。

在自我託管的 Buildkite 建置中使用 buildspec 覆寫時，有幾個限制：
+ Buildkite 代理程式要求來源憑證存在於建置環境中，以提取任務的來源儲存庫。如果您使用 CodeBuild 來源登入資料進行身分驗證，則需要在 buildspec `git-credential-helper`中啟用 。例如，您可以使用下列 buildspec 為 `git-credential-helper` Buildkite 組建啟用 ：

  ```
  version: 0.2
  env:
    git-credential-helper: yes
  phases:
    pre_build:
      commands:
         - echo "Hello World"
  ```
+ CodeBuild 不會在`BUILD`階段期間執行 buildspec 命令，因為自我託管執行器會在`BUILD`階段中執行。
+ CodeBuild 不支援 Buildkite Runner 組建的 buildspec 檔案。Buildlkite 自我託管執行器僅支援內嵌 buildspec
+ 如果建置命令在 `PRE_BUILD`或 `INSTALL`階段失敗，CodeBuild 將不會啟動自我託管執行器，而且需要手動取消 Buildkite 任務。