在 GitHub Actions 工作流 YAML 中,您可以提供各种标签覆盖来修改您的自托管运行器构建。系统会忽略 CodeBuild 未识别的任何构建,但不会使 webhook 请求失败。例如,以下工作流 YAML 包括映像、实例大小、实例集和 buildspec 的覆盖:
name: Hello World
on: [push]
jobs:
Hello-World-Job:
runs-on:
- codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }}
- image:${{ matrix.os }}
- instance-size:${{ matrix.size }}
- fleet:myFleet
- buildspec-override:true
strategy:
matrix:
include:
- os: arm-3.0
size: small
- os: al2-5.0
size: large
steps:
- run: echo "Hello World!"
codebuild-
(必需)<project-name>
-${{github.run_id}}-${{github.run_attempt}}
例如:
codebuild-fake-project-${{ github.run_id }}-${{ github.run_attempt }}
-
所有 GitHub Actions 工作流 YAML 的必需项。
<project name>
应等于为其配置了自托管运行器 webhook 的项目的名称。
image:
<environment-type>
-<image-identifier>
例如:
image:arm-3.0
-
覆盖在启动自托管运行器构建时使用的映像和环境类型。要了解支持的值,请参阅CodeBuild 托管的 GitHub Actions 运行器支持的映像。
instance-size:
<instance-size>
例如:
instance-size:medium
-
覆盖在启动自托管运行器构建时使用的实例类型。要了解支持的值,请参阅CodeBuild 托管的 GitHub Actions 运行器支持的映像。
fleet:
<fleet-name>
例如:
fleet:myFleet
-
覆盖在您的项目中配置的实例集设置,以便使用指定的实例集。有关更多信息,请参阅 在预留容量实例集上运行构建。
buildspec-override:
<boolean>
例如:
buildspec-override:true
-
如果设置为
true
,则允许构建以在INSTALL
、PRE_BUILD
和POST_BUILD
阶段运行 buildspec 命令。
单个标签覆盖(旧版)
CodeBuild 允许您使用以下方法在单个标签中提供多个覆盖:
-
要覆盖 Amazon EC2/Lambda 计算构建的环境设置,请使用以下语法:
runs-on: codebuild-
<project-name>
-${{ github.run_id }}-${{ github.run_attempt }}-<environment-type>
-<image-identifier>
-<instance-size>
-
要覆盖 Amazon EC2 计算构建的实例集设置,请使用以下语法:
runs-on: codebuild-
<project-name>
-${{ github.run_id }}-${{ github.run_attempt }}-fleet-<fleet-name>
-
要同时覆盖构建所用的实例集和映像,请使用以下语法:
runs-on: codebuild-
<project-name>
-${{ github.run_id }}-${{ github.run_attempt }}-image
-<image-version>
-fleet-<fleet-name>
-
要在构建期间运行 buildspec 命令,可以将
-with-buildspec
作为后缀添加到标签中:runs-on: codebuild-
<project-name>
-${{ github.run_id }}-${{ github.run_attempt }}-<image>
-<image-version>
-<instance-size>
-with-buildspec -
或者,您也可以提供实例大小覆盖,而不覆盖映像。对于 Amazon EC2 构建,您可以排除环境类型和映像标识符。对于 Lambda 构建,您可以排除映像标识符。