构建环境中的 Shell 和命令 - Amazon CodeBuild
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

构建环境中的 Shell 和命令

您为 Amazon CodeBuild 提供了一组命令,用于在构建的生命周期期间(例如,安装构建依赖项、测试和编译您的源代码)在构建环境中运行。可通过多种方式指定这些命令:

  • 创建构建规范文件并将其包含在您的源代码中。在此文件中,指定您要在构建生命周期的每个阶段运行的命令。有关更多信息,请参阅 的构建规范参考 CodeBuild

  • 使用 CodeBuild 控制台创建构建项目。在插入构建命令中,对于构建命令,输入您要在 build 阶段运行的命令。有关更多信息,请参阅创建构建项目(控制台)

  • 使用 CodeBuild 控制台更改构建项目的设置。在插入构建命令中,对于构建命令,输入您要在 build 阶段运行的命令。有关更多信息,请参阅更改构建项目的设置(控制台)

  • 使用 Amazon CLI 或 Amazon 开发工具包创建生成项目或更改生成项目的设置。参考包含构建规范文件以及您的命令的源代码,或指定一个包含同等构建规范文件的内容的字符串。有关更多信息,请参阅 创建构建项目更改构建项目的设置

  • 使用 Amazon CLI 或 Amazon 开发工具包开始构建,指定构建规范文件或一个包含同等构建规范文件内容的字符串。有关更多信息,请参阅 运行构建buildspecOverride 值的描述。

您可以指定任何 Shell 命令语言 (sh) 命令。在 buildspec 版本 0.1 中,CodeBuild 在构建环境内单独的实例中运行每个 Shell 命令。这表示各个命令独立于其他所有命令而运行。因此,在默认情况下,您无法运行依赖所有上一个命令状态的单个命令(如更改目录或设置环境变量)。要绕开此限制,建议使用版本 0.2 来解决此问题。如果您必须使用版本 0.1,我们建议使用以下方法:

  • 在包含您要在默认 Shell 的单个实例中运行的命令的源代码中包含一个 Shell 脚本。例如,您可以在包含 cd MyDir; mkdir -p mySubDir; cd mySubDir; pwd; 等命令的源代码中包含一个名为 my-script.sh 的文件。然后,在您的 buildspec 文件中,指定命令 ./my-script.sh

  • 在您的 buildspec 文件中,或对于仅针对 build 阶段的构建命令设置,输入包含您想在默认 Shell 的单个实例中运行的所有命令的单个命令(例如,cd MyDir && mkdir -p mySubDir && cd mySubDir && pwd)。

如果 CodeBuild 遇到错误,那么与在默认 Shell 的实例中运行单个命令相比,错误更难排除。

在 Windows Server Core 映像中运行的命令使用 Powershell shell。