对于 INSTALL、PRE_BUILD 和 POST_BUILD 阶段运行 buildspec 命令 - Amazon CodeBuild
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

对于 INSTALL、PRE_BUILD 和 POST_BUILD 阶段运行 buildspec 命令

默认情况下,在运行自托管 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 运行器版本的构建规范文件。Buildlkite 自托管运行程序仅支持内联 buildspec

  • 如果构建命令在PRE_BUILDINSTALL阶段失败, CodeBuild 则无法启动自托管运行器,并且需要手动取消 Buildkite 作业。