AWS CloudFormation 템플릿을 사용하여 그룹 웹후크 이벤트를 필터링하려면 AWS CodeBuild 프로젝트의 ScopeConfiguration
속성을 사용합니다. 그룹 GitLab 웹후크에 대한 자세한 내용은 GitLab 그룹 웹후크 섹션을 참조하세요.
다음 AWS CloudFormation 템플릿의 YAML 형식 부분은 네 개의 필터 그룹을 생성합니다. 이들은 하나 또는 모두 true로 평가되면 빌드를 트리거합니다.
-
첫 번째 필터 그룹은 계정 ID가
12345
와 일치하지 않는 GitLab 사용자가 정규식^refs/heads/main$
와 일치하는 Git 참조 이름을 갖는 분기에서 생성 또는 업데이트한 pull 요청을 지정합니다. -
두 번째 필터 그룹은 정규식
^refs/heads/.*
와 일치하는 Git 참조 이름을 갖는 브랜치에서 정규식READ_ME
와 일치하는 이름을 갖는 파일에 생성되는 push 요청을 지정합니다. -
세 번째 필터 그룹은 정규식
\[CodeBuild\]
와 일치하는 헤드 커밋 메시지에서 push 요청을 지정합니다. -
네 번째 필터 그룹은 정규식
\[CI-CodeBuild\]
와 일치하는 CI/CD 파이프라인 이름이 있는 GitLab CI/CD 파이프라인 작업 요청을 지정합니다.
CodeBuildProject:
Type: AWS::CodeBuild::Project
Properties:
Name: MyProject
ServiceRole: service-role
Artifacts:
Type: NO_ARTIFACTS
Environment:
Type: LINUX_CONTAINER
ComputeType: BUILD_GENERAL1_SMALL
Image: aws/codebuild/standard:5.0
Source:
Type: GITLAB
Location: source-location
Triggers:
Webhook: true
ScopeConfiguration:
Name: group-name
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\]