

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

# 对于 INSTALL、PRE\$1BUILD 和 POST\$1BUILD 阶段运行 buildspec 命令
<a name="sample-runner-buildkite-buildspec"></a>

默认情况下，在运行自托管 Buildkite 运行器版本时会 CodeBuild 忽略所有 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 为 Buildkite 构建启用 `git-credential-helper`：

  ```
  version: 0.2
  env:
    git-credential-helper: yes
  phases:
    pre_build:
      commands:
         - echo "Hello World"
  ```
+ CodeBuild 在此`BUILD`阶段不会运行 buildspec 命令，因为自托管运行器将在该`BUILD`阶段运行。
+ CodeBuild 不支持 Buildkite 运行器版本的 buildspec 文件。Buildlkite 自托管运行程序仅支持内联 buildspec
+ 如果构建命令在`PRE_BUILD`或`INSTALL`阶段失败， CodeBuild 则无法启动自托管运行器，并且需要手动取消 Buildkite 作业。