5.4. 파이프라인 실행에 일치하는 이벤트의 주석


파이프라인 실행에 주석을 사용하여 각 파이프라인 실행과 다른 Git 공급자 이벤트를 일치시킬 수 있습니다. 이벤트와 일치하는 파이프라인이 여러 개 있는 경우 코드가 병렬로 실행되고 파이프라인 실행이 완료되면 결과를 Git 공급자에 게시합니다.

5.4.1. 가져오기 요청 이벤트와 파이프라인 실행 일치

다음 예제를 사용하여 기본 분기를 대상으로 하는 pull_request 이벤트와 함께 pipeline-pr- main 파이프라인 실행을 일치시킬 수 있습니다.

apiVersion: tekton.dev/v1
kind: PipelineRun
metadata:
  name: pipeline-pr-main
annotations:
  pipelinesascode.tekton.dev/on-target-branch: "[main]" 
1

  pipelinesascode.tekton.dev/on-event: "[pull_request]"
# ...
Copy to Clipboard Toggle word wrap
1
쉼표로 구분된 항목을 추가하여 여러 분기를 지정할 수 있습니다. 예를 들면 "[main, release-nightly]" 입니다. 또한 다음 항목을 지정할 수 있습니다.
  • "refs/heads/main"과 같은 분기에 대한 전체 참조
  • "refs/heads/\*"와 같은 패턴 일치가 있는 글러입니다.
  • "refs/tags/1.\*"와 같은 태그

5.4.2. 파이프라인 실행에 푸시 이벤트 일치

다음 예제를 사용하여 refs/heads/main 분기를 대상으로 하는 푸시 이벤트와 함께 pipeline- push -on-main 파이프라인 실행과 일치시킬 수 있습니다.

apiVersion: tekton.dev/v1
kind: PipelineRun
metadata:
  name: pipeline-push-on-main
annotations:
  pipelinesascode.tekton.dev/on-target-branch: "[refs/heads/main]" 
1

  pipelinesascode.tekton.dev/on-event: "[push]"
# ...
Copy to Clipboard Toggle word wrap
1
쉼표로 구분된 항목을 추가하여 여러 분기를 지정할 수 있습니다. 예를 들면 "[main, release-nightly]" 입니다. 또한 다음 항목을 지정할 수 있습니다.
  • "refs/heads/main"과 같은 분기에 대한 전체 참조
  • "refs/heads/\*"와 같은 패턴 일치가 있는 글러입니다.
  • "refs/tags/1.\*"와 같은 태그

5.4.3. 주석 이벤트와 파이프라인 실행 일치

중요

주석 이벤트를 파이프라인 실행에 일치시키는 것은 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.

다음 예제를 사용하여 주석의 텍스트가 ^/merge-pr 정규식과 일치하는 경우 가져오기 요청에 대한 주석과 함께 pipeline-comment 파이프라인 실행을 일치시킬 수 있습니다.

apiVersion: tekton.dev/v1
kind: PipelineRun
metadata:
  name: pipeline-comment
annotations:
  pipelinesascode.tekton.dev/on-comment: "^/merge-pr"
# ...
Copy to Clipboard Toggle word wrap

파이프라인 실행이 주석 작성자가 다음 요구 사항 중 하나를 충족하는 경우에만 시작됩니다.

  • 작성자는 리포지토리의 소유자입니다.
  • 작성자는 리포지토리의 공동 작업자입니다.
  • 작성자는 리포지토리 조직에 있는 공용 멤버입니다.
  • 주석 작성자는 Kubernetes 문서에 정의된 대로 리포지토리 루트에 있는 OWNERS 파일의 승인자 또는 검토자 섹션에 나열됩니다. 코드로서의 파이프라인은 OWNERSOWNERS_ALIASES 파일에 대한 사양을 지원합니다. OWNERS 파일에 필터 섹션이 포함된 경우 코드로서의 파이프라인은 승인자 및 검토자가 .* 필터에 대해서만 일치합니다.

5.4.4. 고급 이벤트 일치

코드로서의 파이프라인은 고급 이벤트 일치에 대한 CEL(Common Expression Language) 기반 필터링 사용을 지원합니다. 파이프라인 실행에 pipelinesascode.tekton.dev/on-cel-expression 주석이 있는 경우 Pipeline은 CEL 표현식을 사용하고 on-target-branch 주석을 건너뜁니다. CEL 표현식은 간단한 on-target-branch 주석 일치와 비교하여 복잡한 필터링 및 부정을 허용합니다.

중요

on-cel-expression 주석을 사용하는 경우 on-event,on-target-branch, on-path-change- ignore 주석 또는 on-path-change -ignore 주석과 동일한 파이프라인에서 실행되는 경우 on-cel-expression 주석은 우선순위를 사용하고 Pipeline은 다른 주석을 무시합니다.

Pipeline과 함께 CEL 기반 필터링을 코드로 사용하려면 다음 주석 예제를 고려하십시오.

  • 기본 분기를 대상으로 하는 pull_request 이벤트를 일치시키고 wip 분기에서 가져오는 경우 다음을 수행합니다.

    apiVersion: tekton.dev/v1
    kind: PipelineRun
    metadata:
      name: pipeline-advanced-pr
    annotations:
      pipelinesascode.tekton.dev/on-cel-expression: |
        event == "pull_request" && target_branch == "main" && source_branch == "wip"
    ...
    Copy to Clipboard Toggle word wrap
  • 경로가 변경된 경우에만 파이프라인을 실행하려면 .pathChanged 접미사 함수를 glob 패턴과 함께 사용하면 됩니다.

    apiVersion: tekton.dev/v1
    kind: PipelineRun
    metadata:
      name: pipeline-advanced-pr-pathchanged
    annotations:
      pipelinesascode.tekton.dev/on-cel-expression: |
        event == "pull_request" && "docs/\*.md".pathChanged() 
    1
    
    # ...
    Copy to Clipboard Toggle word wrap
    1
    docs 디렉터리의 모든 마크다운 파일과 일치합니다.
  • 제목 [DOWNSTREAM] 으로 시작하는 모든 가져오기 요청을 일치시킵니다.

    apiVersion: tekton.dev/v1
    kind: PipelineRun
    metadata:
      name: pipeline-advanced-pr-downstream
    annotations:
      pipelinesascode.tekton.dev/on-cel-expression: |
        event == "pull_request && event_title.startsWith("[DOWNSTREAM]")
    # ...
    Copy to Clipboard Toggle word wrap
  • pull_request 이벤트에서 파이프라인을 실행하려면 실험적 분기를 건너뜁니다.

    apiVersion: tekton.dev/v1
    kind: PipelineRun
    metadata:
      name: pipeline-advanced-pr-not-experimental
    annotations:
      pipelinesascode.tekton.dev/on-cel-expression: |
        event == "pull_request" && target_branch != experimental"
    # ...
    Copy to Clipboard Toggle word wrap

Pipeline을 코드로 사용하는 동안 고급 CEL 기반 필터링의 경우 다음 필드 및 접미사 함수를 사용할 수 있습니다.

  • 이벤트: push 또는 pull_request 이벤트입니다.
  • target_branch: 대상 분기입니다.
  • source_branch: pull_request 이벤트의 출처 분기입니다. 푸시 이벤트의 경우 target_branch 와 동일합니다.
  • event_title: push 이벤트의 커밋 제목과 pull_request 이벤트에 대한 가져오기 또는 병합 요청과 같은 이벤트 제목과 일치합니다. 현재 GitHub, Gitlab 및 Bitbucket Cloud만 지원되는 공급자입니다.
  • .pathChanged: 문자열에 대한 접미사 함수입니다. 문자열은 경로가 변경되었는지 확인하는 경로의 glob일 수 있습니다. 현재 GitHub 및 Gitlab만 공급자로 지원됩니다.

또한 Git 리포지토리 공급자가 전달하는 대로 전체 페이로드에 액세스할 수 있습니다. headers 필드를 사용하여 페이로드의 헤더(예: headers['x-github-event'] )에 액세스합니다. body 필드를 사용하여 페이로드 본문(예: body.pull_request.state )에 액세스합니다.

중요

코드로 CEL 기반 필터링에 대한 페이로드의 헤더와 본문을 코드로 사용하는 것은 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.

다음 예제에서는 다음 조건이 모두 true인 경우에만 파이프라인 실행이 시작됩니다.

  • 가져오기 요청은 주요 분기를 대상으로 합니다.
  • 가져오기 요청 작성자는 슈퍼유저 입니다.
  • 작업은 동기화됩니다. 이 작업은 가져오기 요청에서 업데이트가 수행될 때 트리거됩니다.
apiVersion: tekton.dev/v1
kind: PipelineRun
metadata:
  annotations:
    pipelinesascode.tekton.dev/on-cel-expression: |
      body.pull_request.base.ref == "main" &&
        body.pull_request.user.login == "superuser" &&
        body.action == "synchronize"
# ...
Copy to Clipboard Toggle word wrap
참고

이벤트 일치에 header 또는 body 필드를 사용하는 경우 retest 와 같은 Git 명령을 사용하여 파이프라인 실행을 트리거하지 못할 수 있습니다. Git 명령을 사용하는 경우 페이로드 본문은 원래 페이로드가 아닌 이 명령을 포함하는 주석입니다.

이벤트 일치에 body 필드를 사용할 때 파이프라인 실행을 다시 트리거하려면 가져오기 요청을 닫거나 병합하거나 새 SHA 커밋을 추가할 수 있습니다. 다음 명령을 사용하여 새 SHA 커밋을 추가할 수 있습니다.

git commit --amend --no-edit && git push --force-with-lease
Copy to Clipboard Toggle word wrap
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat