5.4. 파이프라인 실행에 일치하는 이벤트의 주석
파이프라인 실행에 주석을 사용하여 각 파이프라인 실행과 다른 Git 공급자 이벤트를 일치시킬 수 있습니다. 이벤트와 일치하는 파이프라인이 여러 개 있는 경우 코드가 병렬로 실행되고 파이프라인 실행이 완료되면 결과를 Git 공급자에 게시합니다.
5.4.1. 가져오기 요청 이벤트와 파이프라인 실행 일치 링크 복사링크가 클립보드에 복사되었습니다!
다음 예제를 사용하여 기본 분기를 대상으로 하는 pull_request
이벤트와 함께 pipeline-pr-
파이프라인 실행을 일치시킬 수 있습니다.
main
- 1
- 쉼표로 구분된 항목을 추가하여 여러 분기를 지정할 수 있습니다. 예를 들면
"[main, release-nightly]"
입니다. 또한 다음 항목을 지정할 수 있습니다.-
"refs/heads/main"
과 같은 분기에 대한 전체 참조 -
"refs/heads/\*"
와 같은 패턴 일치가 있는 글러입니다. -
"refs/tags/1.\*"
와 같은 태그
-
5.4.2. 파이프라인 실행에 푸시 이벤트 일치 링크 복사링크가 클립보드에 복사되었습니다!
다음 예제를 사용하여 refs/heads/main
분기를 대상으로 하는 푸시 이벤트와 함께 pipeline-
파이프라인 실행과 일치시킬 수 있습니다.
push
-on-main
- 1
- 쉼표로 구분된 항목을 추가하여 여러 분기를 지정할 수 있습니다. 예를 들면
"[main, release-nightly]"
입니다. 또한 다음 항목을 지정할 수 있습니다.-
"refs/heads/main"
과 같은 분기에 대한 전체 참조 -
"refs/heads/\*"
와 같은 패턴 일치가 있는 글러입니다. -
"refs/tags/1.\*"
와 같은 태그
-
5.4.3. 주석 이벤트와 파이프라인 실행 일치 링크 복사링크가 클립보드에 복사되었습니다!
주석 이벤트를 파이프라인 실행에 일치시키는 것은 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
다음 예제를 사용하여 주석의 텍스트가 ^/merge-pr
정규식과 일치하는 경우 가져오기 요청에 대한 주석과 함께 pipeline-comment
파이프라인 실행을 일치시킬 수 있습니다.
파이프라인 실행이 주석 작성자가 다음 요구 사항 중 하나를 충족하는 경우에만 시작됩니다.
- 작성자는 리포지토리의 소유자입니다.
- 작성자는 리포지토리의 공동 작업자입니다.
- 작성자는 리포지토리 조직에 있는 공용 멤버입니다.
-
주석 작성자는 Kubernetes 문서에 정의된 대로 리포지토리 루트에 있는
OWNERS
파일의승인자
또는검토자
섹션에 나열됩니다. 코드로서의 파이프라인은OWNERS
및OWNERS_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
-ignoreon-cel-expression
주석은 우선순위를 사용하고 Pipeline은 다른 주석을 무시합니다.
Pipeline과 함께 CEL 기반 필터링을 코드로 사용하려면 다음 주석 예제를 고려하십시오.
기본
분기를 대상으로 하는pull_request
이벤트를 일치시키고wip
분기에서 가져오는 경우 다음을 수행합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 경로가 변경된 경우에만 파이프라인을 실행하려면
.pathChanged
접미사 함수를 glob 패턴과 함께 사용하면 됩니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
docs
디렉터리의 모든 마크다운 파일과 일치합니다.
제목
[DOWNSTREAM]
으로 시작하는 모든 가져오기 요청을 일치시킵니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow pull_request
이벤트에서 파이프라인을 실행하려면실험적
분기를 건너뜁니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
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인 경우에만 파이프라인 실행이 시작됩니다.
-
가져오기 요청은
주요
분기를 대상으로 합니다. -
가져오기 요청 작성자는
슈퍼유저
입니다. -
작업은 동기화됩니다. 이 작업은 가져오기 요청에서 업데이트가 수행될 때 트리거됩니다.
이벤트 일치에 header
또는 body
필드를 사용하는 경우 retest
와 같은 Git 명령을 사용하여 파이프라인 실행을 트리거하지 못할 수 있습니다. Git 명령을 사용하는 경우 페이로드 본문은 원래 페이로드가 아닌 이 명령을 포함하는 주석입니다.
이벤트 일치에 body
필드를 사용할 때 파이프라인 실행을 다시 트리거하려면 가져오기 요청을 닫거나 병합하거나 새 SHA 커밋을 추가할 수 있습니다. 다음 명령을 사용하여 새 SHA 커밋을 추가할 수 있습니다.
git commit --amend --no-edit && git push --force-with-lease
git commit --amend --no-edit && git push --force-with-lease