AWS CodeBuild
用户指南 (API 版本 2016-10-06)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

适用于 CodeBuild 的生成规范参考

此主题提供有关构建规范文件的重要参考信息。生成规范 是生成命令和相关设置的集合,采用 YAML 格式,由 CodeBuild 用来运行生成任务。 您可以将生成规范作为源代码的一部分,也可以在创建构建项目时定义生成规范。有关生成规范工作原理的信息,请参阅CodeBuild 的工作原理

构建规范文件名称和存储位置

如果您在源代码中包含生成规范,则默认情况下,构建规范文件必须命名为 buildspec.yml 且放置在源目录的根目录中。

可以覆盖默认构建规范文件名和位置。例如,您可以:

  • 对同一存储库中的不同构建使用不同的构建规范文件,如 buildspec_debug.ymlbuildspec_release.yml

  • 将构建规范文件存储在源目录的根目录之外的位置,如 config/buildspec.yml

您可以只为构建项目指定一个生成规范,而不管构建规范文件的名称如何。

要覆盖默认构建规范文件名、默认位置或这两者,执行下列操作之一:

  • 运行 AWS CLI create-projectupdate-project 命令,将 buildspec 值设置为备用构建规范文件的路径(相对于内置环境变量 CODEBUILD_SRC_DIR 的值)。您还可以在 AWS 开发工具包中执行与 create project 操作等效的操作。有关更多信息,请参阅 创建构建项目更改生成项目的设置

  • 运行 AWS CLI start-build 命令,将 buildspecOverride 值设置为备用构建规范文件的路径(相对于内置环境变量 CODEBUILD_SRC_DIR 的值)。您还可以在 AWS 开发工具包中执行与 start build 操作等效的操作。有关更多信息,请参阅运行生成项目

  • 在 AWS CloudFormation 模板中,将类型为 AWS::CodeBuild::Project 的资源中 SourceBuildSpec 属性设置为备用规范文件的路径(相对于内置环境变量 CODEBUILD_SRC_DIR 的值)。有关更多信息,请参阅 AWS CloudFormation User Guide 中的 AWS CodeBuild 项目源中的 BuildSpec 属性。

生成规范语法

构建规范文件必须以 YAML 格式表示。

重要

如果您使用 Ubuntu 标准映像 2.0 及更高版本或 Amazon Linux 2 (AL2) 标准映像 1.0 及更高版本,则必须在构建规格文件中指定 runtime-versions。有关更多信息,请参阅 在 Buildspec 文件中指定运行时版本

生成规范的语法如下:

version: 0.2 run-as: Linux-user-name env: variables: key: "value" key: "value" parameter-store: key: "value" key: "value" git-credential-helper: yes proxy: upload-artifacts: yes logs: yes phases: install: run-as: Linux-user-name runtime-versions: runtime: version runtime: version commands: - command - command finally: - command - command pre_build: run-as: Linux-user-name commands: - command - command finally: - command - command build: run-as: Linux-user-name commands: - command - command finally: - command - command post_build: run-as: Linux-user-name commands: - command - command finally: - command - command artifacts: files: - location - location name: artifact-name discard-paths: yes base-directory: location secondary-artifacts: artifactIdentifier: files: - location - location name: secondary-artifact-name discard-paths: yes base-directory: location artifactIdentifier: files: - location - location discard-paths: yes base-directory: location cache: paths: - path - path

生成规范包含以下内容:

  • version:必需的映射。表示生成规范版本。建议使用 0.2

    注意

    虽然仍支持版本 0.1,但建议尽可能使用版本 0.2。有关更多信息,请参阅生成规范版本

  • run-as:可选的序列。仅适用于 Linux 用户。指定用于运行此 buildspec 文件中的命令的 Linux 用户。run-as 向指定的用户授予读取和执行权限。当您在构建规范文件的顶部指定 run-as 时,它将全局应用于所有命令。如果您不希望为所有构建规范文件命令指定一个用户,可以通过在其中一个 phases 语句块中使用 run-as,为一个阶段中的命令指定一个用户。如果未指定 run-as,则所有命令都将以根用户身份运行。

  • env:可选的序列。表示一个或多个自定义环境变量的信息。

    • variables:在指定了 env 并且您希望定义纯文本格式的自定义环境变量时必需。包含 key/value 标量的映射,其中每个映射表示一个纯文本形式的自定义环境变量。key 是自定义环境变量的名称,value 是该变量的值。

      重要

      强烈建议不要将敏感值(尤其是 AWS 访问密钥 ID 和秘密访问密钥)存储在环境变量中。使用 CodeBuild 控制台和 AWS CLI 等工具能够以纯文本格式显示环境变量。对于敏感值,建议改用 parameter-store 映射,如本节后面所述。

      您设置的任何环境变量都将替换现有的环境变量。例如,如果 Docker 镜像已经包含一个名为 MY_VAR 的环境变量 (值为 my_value),并且您设置了一个名为 MY_VAR 的环境变量 (值为 other_value),那么 my_value 将被替换为 other_value。同样,如果 Docker 镜像已经包含一个名为 PATH 的环境变量 (值为 /usr/local/sbin:/usr/local/bin),并且您设置了一个名为 PATH 的环境变量 (值为 $PATH:/usr/share/ant/bin),那么/usr/local/sbin:/usr/local/bin 将被替换为文本值 $PATH:/usr/share/ant/bin

      请勿设置名称以 CODEBUILD_ 开头的任何环境变量。此前缀是专为内部使用预留的。

      如果具有相同名称的环境变量在多处都有定义,则应按照如下方式确定其值:

    • parameter-store:在指定了 env 并且您要检索存储在 Amazon EC2 Systems Manager Parameter Store 中的自定义环境变量时必需。包含 key/value 标量的映射,其中每个映射表示存储在 Amazon EC2 Systems Manager Parameter Store 中的一个自定义环境变量。key 是您之后在构建命令中用于表示此自定义环境变量的名称,而 value 是存储在 Amazon EC2 Systems Manager Parameter Store 中的自定义环境变量的名称。要存储敏感值,请参阅 Amazon EC2 Systems Manager 用户指南 中的 Systems Manager Parameter StoreSystems Manager Parameter Store 控制台演练

      重要

      要允许 CodeBuild 检索存储在 Amazon EC2 Systems Manager Parameter Store 中的自定义环境变量,您必须将 ssm:GetParameters 操作添加到您的 CodeBuild 服务角色。有关更多信息,请参阅创建 CodeBuild 服务角色

      从 Amazon EC2 Systems Manager Parameter Store 检索到的任何环境变量都将替换现有环境变量。例如,如果 Docker 镜像已经包含一个名为 MY_VAR 的环境变量,其值为 my_value,且您检索到一个名为 MY_VAR 的环境变量,其值为 other_value,那么,my_value 将替换为 other_value。同样,如果 Docker 镜像已经包含一个名为 PATH 的环境变量,其值为 /usr/local/sbin:/usr/local/bin,且您检索到一个名为 PATH 的环境变量,其值为 $PATH:/usr/share/ant/bin,那么,/usr/local/sbin:/usr/local/bin 将替换为文本值 $PATH:/usr/share/ant/bin

      请勿存储名称以 CODEBUILD_ 开头的任何环境变量。此前缀是专为内部使用预留的。

      如果具有相同名称的环境变量在多处都有定义,则应按照如下方式确定其值:

    • git-credential-helper:可选的映射。用于指示 CodeBuild 是否使用其 Git 凭证辅助程序来提供 Git 凭证。如果使用该辅助程序,则为 yes。否则为 no 或未指定。有关更多信息,请参阅 Git 网站上的 gitcredentials

      注意

      由 Webhook 触发的公有 Git 存储库的构建不支持 git-credential-helper

  • proxy:可选的序列。如果是在显式代理服务器中运行构建,则用于表示设置。有关更多信息,请参阅 在显式代理服务器中运行 CodeBuild

    • upload-artifacts:可选的映射。如果您希望显式代理服务器中的构建来上传构件,请设置为 yes。默认为 no

    • logs:可选的映射。要使显式代理服务器中的构建创建 CloudWatch 日志,请设置为 yes。默认为 no

  • phases:必需的序列。表示 CodeBuild 在构建的各个阶段将运行的命令。

    注意

    在生成规范版本 0.1 中,CodeBuild 将在构建环境中的默认 Shell 的单独实例中运行每条命令。这表示各个命令独立于其他所有命令而运行。因此,在默认情况下,您无法运行依赖所有上一个命令状态的单个命令 (如更改目录或设置环境变量)。要绕开此限制,建议使用版本 0.2 来解决此问题。如果必须使用生成规范版本 0.1,建议使用构建环境中的 Shell 和命令中的方法。

    • run-as:可选的序列。在构建阶段中使用,以指定运行命令的 Linux 用户。如果还在构建规范文件的顶部为所有命令全局指定了 run-as,则阶段级别用户优先。例如,如果 run-as 全局指定用户 1,并且对于 install 阶段,只有一条 run-as 语句指定用户 2,则构建规范文件中的所有命令将以用户 1 的身份运行,但 install 阶段中的命令除外,这些命令以用户 2 的身份运行。

    允许的构建阶段名称是:

    • install:可选的序列。表示 CodeBuild 在安装过程中将运行的命令(如果有)。建议使用仅适用于在构建环境中安装软件包的 install 阶段。例如,您可以使用此阶段来安装代码测试框架 (如 Mocha 或 RSpec)。

      • runtime-versions:如果使用的是 Ubuntu 标准映像 2.0 或更高版本或者 Amazon Linux (AL2) 标准映像 1.0 或更高版本,则此项是必需的。自定义映像或 Ubuntu 标准映像 1.0 不支持运行时版本。如果指定,则本节中必须包含至少一个运行时。仅指定使用主要版本(如“java: openjdk11”或“ruby: 2.6”)的运行时。 您可以使用一个数字或一个环境变量来指定运行时。例如,如果您使用 Amazon Linux 2 标准映像 1.0,则下面指定安装版本 8 的 Java、版本 29 的 Android 以及环境变量中包含的版本的 Ruby。有关更多信息,请参阅CodeBuild 提供的 Docker 镜像

        phases: install: runtime-versions: java: corretto8 android: 29 ruby: "$MY_RUBY_VAR"
        • 某些运行时必须包含特定版本的其他运行时。如果未指定必需运行时,构建将失败。例如,如果您使用任何受支持版本的 android,则需要使用版本 8 的 Java。如果您使用 Ubuntu 标准映像 2.0,则可以使用 java: openjdk8 来指定。如果使用 Amazon Linux 2 标准映像 1.0,则可以使用 java: corretto8 来指定。

        • 如果两个指定运行时冲突,构建将失败。例如,android: 29java: openjdk11 冲突,因此,如果同时指定了这两项,构建将失败。

        • 可以指定以下支持的运行时。

          运行时名称 版本 如何在 buildspec 文件中指定
          android 28、29 android: 28android: 29
          docker 18 docker: 18
          dotnet 2.2 dotnet: 2.2
          golang 1.12、1.13 golang: 1.12golang: 1.13
          nodejs 8、10 nodejs: 8nodejs: 10
          java(仅限 Ubuntu) openjdk8、openjdk11 java: openjdk8java: openjdk11
          java(仅限 Amazon Linux 2) corretto8、corretto11 java: corretto8java: corretto11
          php 7.3 php: 7.3
          python 3.7 python: 3.7
          ruby 2.6 ruby: 2.6

        注意

        如果您指定 runtime-versions 部分并使用除 Ubuntu 标准映像 2.0 及更高版本或 Amazon Linux 2 (AL2) 标准映像 1.0 及更高版本以外的其他映像,构建过程将会发出警告““Skipping install of runtimes.Runtime version selection is not supported by this build image (跳过运行时安装。此构建映像不支持运行时版本选择)””

      • commands:必需序列,除非您指定了 runtime-versions。(可选)如果您指定了 runtime-versions。包含一系列标量,其中每个标量表示 CodeBuild 在安装期间运行的单个命令。CodeBuild 按照命令列出的顺序依次运行每个命令。

    • pre_build:可选的序列。表示 CodeBuild 在构建之前将运行的命令(如果有)。例如,可以使用此阶段登录 Amazon ECR,也可以安装 npm 依赖项。

      • commands:如果指定 pre_build,则为必需的序列。包含一系列标量,其中每个标量表示 CodeBuild 在构建之前运行的单个命令。CodeBuild 按照命令列出的顺序依次运行每个命令。

    • build:可选的序列。表示 CodeBuild 在生成过程中将运行的命令(如果有)。例如,您可以使用此阶段运行 Mocha、RSpec 或 sbt。

      • commands:在指定 build 时是必需的。包含一系列标量,其中每个标量表示 CodeBuild 在构建期间运行的单个命令。CodeBuild 按照命令列出的顺序依次运行每个命令。

    • post_build:可选的序列。表示 CodeBuild 在生成后将运行的命令(如果有)。例如,您可以使用 Maven 将构建项目打包成 JAR 或 WAR 文件,还可以将 Docker 镜像推入到 Amazon ECR 中。然后,您可以通过 Amazon SNS 发送构建通知。

      • commands:在指定 post_build 时是必需的。包含一系列标量,其中每个标量表示 CodeBuild 在构建之后运行的单个运行。CodeBuild 按照命令列出的顺序依次运行每个命令。

    重要

    如果早期构建阶段中的命令失败,则一些构建阶段中的命令可能无法运行。例如,如果 install 阶段的命令失败,则 pre_buildbuildpost_build 阶段的命令都不会在构建的生命周期内运行。有关更多信息,请参阅构建阶段过渡

  • finally:可选语句块。在 finally 语句块中指定的命令在 commands 语句块命令之后执行。即便 commands 语句块命令失败,仍会执行 finally 语句块命令。例如,如果 commands 语句块包含三条命令,而第一条命令失败了,则 CodeBuild 会跳过剩下的两条命令来运行 finally 语句块中的任何命令。当 commandsfinally 语句块中的所有命令都成功运行后,此阶段才算成功。如果某个阶段有任何命令失败,则该阶段失败。

  • artifacts:可选的序列。表示有关 CodeBuild 可在何处查找构建输出以及 CodeBuild 如何进行准备以便将其上传到 Amazon S3 输出存储桶的信息。如果出现以下情况,则不需要此序列,例如,您正在构建或将 Docker 镜像推送到 Amazon ECR,或者正在运行源代码上的单元测试,但并未构建源代码。

    • files:必需的序列。表示包含构建环境中的输出项目的位置。包含一系列标量,其中每个标量表示一个相对于原始构建位置或基本目录 (如果已设置) 的单独位置,CodeBuild 可在此处查找构建输出项目。位置可包含以下内容:

      • 单个文件 (如 my-file.jar)。

      • 子目录中的单个文件 (例如,my-subdirectory/my-file.jarmy-parent-subdirectory/my-subdirectory/my-file.jar)。

      • '**/*' 表示所有文件均采用递归方式。

      • my-subdirectory/* 表示名为 my-subdirectory 的子目录中的所有文件。

      • my-subdirectory/**/* 表示采用递归方式的所有文件都从名为 my-subdirectory 的子目录开始。

      您在指定构建输出项目位置时,CodeBuild 可在构建环境中查找原始构建位置。您无需将包含路径的构建项目输出位置放在原始构建位置的前面,或指定 ./ 或类似。如果您需要了解此位置的路径,则可以在构建过程中运行命令 echo $CODEBUILD_SRC_DIR。各个构建环境的位置可能略有不同。

    • name:可选名称。为构建构件指定名称。将在以下任一条件为 true 时使用此名称。

      • 使用 CodeBuild API 创建构建,并于更新项目、创建项目或启动构建后,在 ProjectArtifacts 对象上设置 overrideArtifactName 标记。

      • 使用 CodeBuild 控制台创建您的构建,在构建规范文件中指定名称,并在创建或更新项目时选择 Enable semantic versioning (启用语义版本控制)。有关更多信息,请参阅创建构建项目 (控制台)

      可以在构建规范文件中指定于构建时计算得出的名称。构建规范文件中指定的名称使用 Shell 命令语言。例如,您可以将日期和时间附加到您的项目名称后面,以便它始终是唯一的。构件名称唯一防止覆盖构件。有关更多信息,请参阅 Shell 命令语言

      这是追加有构件创建日期的构件名称的示例。

      version: 0.2 phases: build: commands: - rspec HelloWorld_spec.rb artifacts: files: - '**/*' name: myname-$(date +%Y-%m-%d)

      这是使用 CodeBuild 环境变量的构件名称的示例。有关更多信息,请参阅构建环境中的环境变量

      version: 0.2 phases: build: commands: - rspec HelloWorld_spec.rb artifacts: files: - '**/*' name: myname-$AWS_REGION

      这是使用 CodeBuild 环境变量且追加了构件创建日期的构件名称的示例。

      version: 0.2 phases: build: commands: - rspec HelloWorld_spec.rb artifacts: files: - '**/*' name: $AWS_REGION-$(date +%Y-%m-%d)
    • discard-paths:可选的映射。表示是否放弃构建输出项目中的文件的路径。如果丢弃路径,则为 yes;否则为 no 或未指定(默认)。例如,如果构建输出项目中的文件路径为 com/mycompany/app/HelloWorld.java,则指定 yes 可能会将此路径缩短为 HelloWorld.java

    • base-directory:可选的映射。表示相对于原始构建位置的一个或多个顶级目录,CodeBuild 使用这些目录确定在构建输出项目中包含哪些文件和子目录。有效值包括:

      • 单个顶级目录 (如 my-directory)。

      • 'my-directory*' 表示名称以 my-directory 为开头的所有顶级目录。

      构建输出项目中不包含映射顶级目录,只包含其文件和子目录。

      您可以使用 filesdiscard-paths 进一步限制包含哪些文件和子目录。例如,对于以下目录结构:

      |-- my-build1 | `-- my-file1.txt `-- my-build2 |-- my-file2.txt `-- my-subdirectory `-- my-file3.txt

      对于以下 artifacts 序列:

      artifacts: files: - '*/my-file3.txt' base-directory: my-build2

      以下子目录和文件应包含在构建输出项目中:

      my-subdirectory `-- my-file3.txt

      对于以下 artifacts 序列:

      artifacts: files: - '**/*' base-directory: 'my-build*' discard-paths: yes

      以下文件应包含在构建输出项目中:

      |-- my-file1.txt |-- my-file2.txt `-- my-file3.txt
    • secondary-artifacts:可选的序列。将一个或多个构件定义表示为构件标识符与构件定义之间的映射。此块中的每个构件标识符都必须与项目的 secondaryArtifacts 属性中定义的构件匹配。每个单独的定义与上面的 artifacts: 块具有相同的语法。例如,如果项目具有以下结构:

      { "name": "sample-project", "secondaryArtifacts": [ { "type": "S3", "location": "output-bucket1", "artifactIdentifier": "artifact1", "name": "secondary-artifact-name-1" }, { "type": "S3", "location": "output-bucket2", "artifactIdentifier": "artifact2", "name": "secondary-artifact-name-2" } ] }

      则 Buildpec 如下所示:

      version: 0.2 phases: build: commands: - echo Building... artifacts: secondary-artifacts: artifact1: files: - directory/file name: secondary-artifact-name-1 artifact2: files: - directory/file2 name: secondary-artifact-name-2
  • cache:可选的序列。表示 CodeBuild 可在何处准备用于将缓存上传到 Amazon S3 缓存存储桶的文件的相关信息。如果项目的缓存类型为 No Cache,则不需要此序列。

    • paths:必需的序列。表示缓存的位置。包含一系列标量,其中每个标量表示一个相对于原始构建位置或基本目录 (如果已设置) 的单独位置,CodeBuild 可在此处查找构建输出项目。位置可包含以下内容:

      • 单个文件 (如 my-file.jar)。

      • 子目录中的单个文件 (例如,my-subdirectory/my-file.jarmy-parent-subdirectory/my-subdirectory/my-file.jar)。

      • '**/*' 表示所有文件均采用递归方式。

      • my-subdirectory/* 表示名为 my-subdirectory 的子目录中的所有文件。

      • my-subdirectory/**/* 表示采用递归方式的所有文件都从名为 my-subdirectory 的子目录开始。

重要

因为生成规范声明必须为有效的 YAML,所以生成规范声明中的间隔至关重要。如果生成规范声明中的间隔数量无效,则构建可能会立即失败。您可以使用 YAML 验证程序测试生成规范声明是否为效的 YAML。

如果您在创建或更新构建项目时使用 AWS CLI 或 AWS 开发工具包声明生成规范,则生成规范必须是以 YAML 格式表示的单个字符串,包括必需的空格和换行转义字符。将在下一部分中提供示例。

如果您使用 CodeBuild 或 AWS CodePipeline 控制台而不是 buildspec.yml 文件,则您只能插入适合 build 阶段的命令。不要使用前一语法,改为单行列出要在构建阶段运行的所有命令。对于多个命令,使用 && 分开各个命令 (例如 mvn test && mvn package)。

您可以使用 CodeBuild 或 CodePipeline 控制台而不是 buildspec.yml 文件指定构建环境中构建输出项目的位置。您不要使用前一语法,而是要使用单行列出所有位置。对于多个位置,使用逗号分开各个位置(例如 buildspec.yml, target/my-app.jar)。

生成规范示例

以下是 buildspec.yml 文件的示例。

version: 0.2 env: variables: JAVA_HOME: "/usr/lib/jvm/java-8-openjdk-amd64" parameter-store: LOGIN_PASSWORD: /CodeBuild/dockerLoginPassword phases: install: commands: - echo Entered the install phase... - apt-get update -y - apt-get install -y maven finally: - echo This always runs even if the update or install command fails pre_build: commands: - echo Entered the pre_build phase... - docker login –u User –p $LOGIN_PASSWORD finally: - echo This always runs even if the login command fails build: commands: - echo Entered the build phase... - echo Build started on `date` - mvn install finally: - echo This always runs even if the install command fails post_build: commands: - echo Entered the post_build phase... - echo Build completed on `date` artifacts: files: - target/messageUtil-1.0.jar discard-paths: yes secondary-artifacts: artifact1: files: - target/messageUtil-1.0.jar discard-paths: yes artifact2: files: - target/messageUtil-1.0.jar discard-paths: yes cache: paths: - '/root/.m2/**/*'

以下是上一生成规范的示例,此规范与 AWS CLI 或 AWS 开发工具包一起使用并表示为单个字符串。

"version: 0.2\n\nenv:\n variables:\n JAVA_HOME: \"/usr/lib/jvm/java-8-openjdk-amd64\"\n parameter-store:\n LOGIN_PASSWORD: /CodeBuild/dockerLoginPassword\n\nphases:\n install:\n commands:\n - apt-get update -y\n - apt-get install -y maven\n pre_build:\n commands:\n - echo Entered the pre_build phase...\n build:\n commands:\n - echo Build started on `date`\n - mvn install\n post_build:\n commands:\n - echo Build completed on `date`\nartifacts:\n files:\n - target/messageUtil-1.0.jar\n discard-paths: yes"

以下是 build 阶段中命令的示例,与 CodeBuild 或 CodePipeline 控制台一起使用。

echo Build started on `date` && mvn install

在这些示例中:

  • 将设置密钥为 JAVA_HOME,值为 /usr/lib/jvm/java-8-openjdk-amd64 的纯文本格式的自定义环境变量。

  • 之后,将通过使用密钥 LOGIN_PASSWORD 在构建命令中引用您在 Amazon EC2 Systems Manager Parameter Store 中存储的一个名为 dockerLoginPassword 的自定义环境变量。

  • 您无法更改这些构建阶段名称。将在此示例中运行的命令有 apt-get update -yapt-get install -y maven(用于安装 Apache Maven)、mvn install(用于编译和测试源代码并将源代码打包到构建输出项目中,以及在构建输出项目的内部存储库中安装该项目)、docker login (用于使用与您在 Amazon EC2 Systems Manager Parameter Store 中设置的自定义环境变量 dockerLoginPassword 的值对应的密码登录 Docker)以及若干 echo 命令。此处包含的 echo 命令用于显示 CodeBuild 运行命令的方式以及运行命令的顺序。

  • files 表示要上传到构建输出位置的文件。在此示例中,CodeBuild 将上传单个文件 messageUtil-1.0.jar。在构建环境中名为 messageUtil-1.0.jar 的相对目录中,可找到 target 文件。由于指定了 discard-paths: yes,因此将直接上传 messageUtil-1.0.jar(而不上传到中间 target 目录)。文件名称 messageUtil-1.0.jartarget 的相对目录名称均基于 Apache Maven 如何创建并存储构建输出项目 (仅针对此示例)。在您自己的方案中,这些文件名称和目录会有所不同。

生成规范版本

下表列出了生成规范版本以及版本间的变化。

版本 更改
0.2
  • environment_variables 已重命名为 env

  • plaintext 已重命名为 variables

  • artifactstype 属性已被弃用。

  • 在版本 0.1 中,AWS CodeBuild 将在构建环境内默认 Shell 的单独实例中运行每个构建命令。在版本 0.2 中,CodeBuild 将在构建环境中默认 Shell 的同一实例中运行所有构建命令。

0.1 这是生成规范格式的初始定义。