筛选 GitHub Webhook 事件 (CloudFormation)
要使用 CloudFormation 模板来筛选 Webhook 事件,请使用 AWS CodeBuild 项目的 FilterGroups 属性。
有关 GitHub webhook 事件的更多信息,请参阅 GitHub Webhook 事件。
CloudFormation 模板的以下 YAML 格式的部分创建两个筛选条件组。当这两个筛选条件的其中一个或两个评估为 True 时触发构建:
-
第一个筛选条件组使用与正则表达式
^refs/heads/main$匹配的 Git 引用名称,指定由账户 ID 不为12345的 GitHub 用户在分支上创建或更新的拉取请求。 -
第二个筛选条件组使用与正则表达式
READ_ME匹配的 Git 引用名称,指定在名称与正则表达式^refs/heads/.*匹配的文件上创建的推送请求。 -
第三个筛选条件组指定一个推送请求,其中包含与正则表达式
\[CodeBuild\]匹配的 HEAD 提交消息。 -
第四个筛选条件组指定 GitHub Actions 工作流作业请求,其工作流名称与正则表达式
\[CI-CodeBuild\]匹配。
CodeBuildProject: Type: AWS::CodeBuild::Project Properties: Name: MyProject ServiceRole:service-roleArtifacts: Type: NO_ARTIFACTS Environment: Type: LINUX_CONTAINER ComputeType: BUILD_GENERAL1_SMALL Image: aws/codebuild/standard:5.0 Source: Type: GITHUB Location:source-locationTriggers: Webhook: true FilterGroups: - - Type: EVENT Pattern: PULL_REQUEST_CREATED,PULL_REQUEST_UPDATED - Type: BASE_REF Pattern: ^refs/heads/main$ ExcludeMatchedPattern: false - Type: ACTOR_ACCOUNT_ID Pattern: 12345 ExcludeMatchedPattern: true - - Type: EVENT Pattern: PUSH - Type: HEAD_REF Pattern: ^refs/heads/.* - Type: FILE_PATH Pattern: READ_ME ExcludeMatchedPattern: true - - Type: EVENT Pattern: PUSH - Type: COMMIT_MESSAGE Pattern: \[CodeBuild\] - Type: FILE_PATH Pattern: ^src/.+|^test/.+ - - Type: EVENT Pattern: WORKFLOW_JOB_QUEUED - Type: WORKFLOW_NAME Pattern: \[CI-CodeBuild\]