파일 스키마를 트리거합니다.

이 페이지에서는 Secure Source Manager 트리거 파일의 스키마를 설명합니다. 트리거 파일 만들기에 대한 자세한 내용은 트리거 파일 만들기를 참고하세요.

트리거 파일에는 Secure Source Manager의 푸시 또는 풀 요청 이벤트를 기반으로 Cloud Build 구성 파일에 정의된 단계를 트리거하도록 Secure Source Manager에 지시하는 내용이 포함되어 있습니다.

특정 트리거에서 상태 확인이 성공하도록 브랜치 보호 규칙을 구성할 수 있습니다. 브랜치 보호에 대해 자세히 알아보려면 브랜치 보호 개요를 참고하세요.

트리거 파일의 구조

트리거 구성 파일은 저장소의 기본 브랜치에 만들어야 합니다. YAML 구문을 사용하여 트리거 파일을 작성할 수 있습니다.

트리거 파일의 구조는 다음과 같습니다.

triggers:
- name: string
  project: string
  configFilePath: string
  eventType: string
  includedGitRefs: string
  ignoredGitRefs: string
  includedFiles: string
  ignoredFiles: string
  serviceAccount: string
  disabled: bool
  substitutions: map[string]string
- name: string
...

트리거 파일의 이름이 지정된 각 섹션은 Secure Source Manager에서 지정된 이벤트 유형에 사용할 Cloud Build 구성을 정의합니다.

트리거

트리거는 특정 Cloud Build 구성 파일의 단계 완료를 트리거하는 데 사용할 보안 소스 관리자 이벤트 유형을 지정합니다. 지정된 이벤트를 모니터링할 브랜치를 지정할 수도 있습니다.

트리거 파일의 name 필드를 사용하여 트리거를 식별합니다. 다음은 트리거 파일에 설정할 수 있는 구성의 예입니다.

triggers:
- name: presubmit-test
  project: my-project
  configFilePath: test.yaml
  eventType: pull_request
  includedGitRefs: ^main$
  ignoredGitRefs: .*log
  serviceAccount: projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com
  includedFiles: .*
  ignoredFiles: my-file.txt
  disabled: false
- name: postsubmit-run
  project: my-project
  configFilePath: run.yaml
  eventType: push
  includedGitRefs: ^main$
  ignoredGitRefs: dev-branch
  serviceAccount: projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com
  disabled: false
  substitutions:
    _NODE_VERSION_1: v6.9.1
    REPO_NAME: dev

name

필수 입력란입니다. 트리거의 name 필드를 사용하여 트리거를 식별합니다. 트리거 이름에는 영숫자 문자와 대시만 포함할 수 있으며 대시로 시작하거나 끝날 수 없습니다. 트리거 이름은 64자(영문 기준) 미만이어야 합니다.

project

선택사항입니다. project 필드를 사용하여 Cloud Build를 사용 설정한 Google Cloud 프로젝트를 식별합니다.

기본값은 Secure Source Manager 프로젝트입니다.

configFilePath

선택사항입니다. Cloud Build 구성 파일의 경로입니다.

기본값은 .cloudbuild/cloudbuild.yaml입니다.

eventType

선택사항입니다. 트리거할 이벤트 유형입니다. 옵션은 선택한 브랜치로 푸시하는 경우 push이고 선택한 브랜치로 풀 요청하는 경우 pull_request입니다.

기본값은 push입니다.

includedGitRefs

선택사항입니다. 빌드를 트리거하는 Git 참조와 일치하는 RE2 형식 정규 표현식

기본값은 비어 있습니다. includedGitRefs 필터 필드가 비어 있으면 제한이 없음을 나타냅니다.

Git 참조가 ignoredGitRefs 필터 필드에 포함되지 않은 경우 Secure Source Manager는 includedGitRefs 필터 필드를 확인합니다. Git 참조가 includedGitRefs 필드에 있으면 빌드가 트리거됩니다. includedGitRefs 필터 필드가 비어 있지 않고 Git 참조가 includedGitRefs 필터 필드에 포함되어 있지 않으면 빌드가 트리거되지 않습니다.

ignoredGitRefs

선택사항입니다. 빌드를 트리거해서는 안 되는 Git 참조와 일치하는 RE2 형식 정규 표현식입니다.

기본값은 비어 있습니다. ignoredGitRefs 필터 필드가 비어 있으면 제한이 없음을 나타냅니다.

Secure Source Manager는 먼저 ignoredGitRefs 필터 필드를 확인합니다. 비어 있지 않고 Git 참조가 ignoredGitRefs 필터 필드와 일치하면 빌드가 트리거되지 않습니다.

serviceAccount

필수 입력란입니다. 빌드에 사용할 Cloud Build 서비스 계정입니다.

형식: projects/PROJECT_ID/serviceAccounts/ACCOUNT

다음을 바꿉니다.

  • PROJECT_ID를 서비스 계정을 만든 Google Cloud 프로젝트 ID로 바꿉니다.
  • ACCOUNT: 서비스 계정의 이메일 주소 또는 고유 ID로 바꿉니다.

includedFiles

선택사항입니다. 변경 시 빌드를 트리거해야 하는 파일과 일치하는 RE2 형식 정규 표현식입니다.

변경된 파일이 ignoredFiles 필터 필드에 없고 변경된 파일이 includedFiles 필터 필드와 일치하면 빌드가 트리거됩니다.

기본값은 비어 있습니다. 빈 필터 필드는 제한이 없음을 나타냅니다.

ignoredFiles

선택사항입니다. 변경 시 빌드를 트리거하지 않아야 하는 파일과 일치하는 RE2 형식 정규 표현식입니다.

ignoredFiles 필터 필드가 비어 있지 않으면 ignoredFiles 필터 필드와 일치하는 파일만 포함하는 커밋은 빌드를 트리거하지 않습니다. 기본값은 비어 있습니다. 빈 필터는 제한이 없음을 나타냅니다.

disabled

선택사항입니다. 트리거가 사용 중지되었는지 여부를 설정하는 불리언입니다. 값은 true 또는 false입니다.

기본값은 false입니다.

substitutions

트리거 파일에서 대체 기능을 사용하여 Cloud Build 구성 파일의 빌드 시 특정 변수를 대체합니다.

대체는 밑줄로 시작해야 하며 대문자, 밑줄, 숫자만 포함하거나 Secure Source Manager 대체 변수 중 하나여야 합니다.

Secure Source Manager는 다음과 같은 기본 대체 변수를 제공합니다.

  • TRIGGER_NAME: 트리거와 연결된 이름입니다.
  • COMMIT_SHA: 트리거와 연결된 커밋 ID입니다.
  • REVISION_ID: 트리거와 연결된 커밋 ID입니다.
  • SHORT_SHA: COMMIT_SHA의 처음 7개 문자입니다.
  • REPO_NAME: 저장소의 이름입니다. 예를 들면 my-repo입니다.
  • REPO_FULL_NAME: 저장소의 리소스 경로입니다(예: projects/my-project/locations/us-central/repositories/test-repo).
  • REF_NAME: 트리거와 연결된 브랜치 또는 태그의 이름입니다.
  • TRIGGER_BUILD_CONFIG_PATH: 빌드 실행 중에 사용된 빌드 구성 파일의 경로입니다.

Cloud Build 구성 파일에 Secure Source Manager 대체 변수를 포함하는 방법은 변수 값 대체를 참고하세요.

다음 단계