6장. 파이프라인 실행 관리


Pipeline을 코드로 사용하여 코드 리포지토리에서 파이프라인을 생성하고 이러한 파이프라인을 실행할 수 있습니다.

6.1. Pipeline을 코드로 사용하여 파이프라인 실행 생성

코드로 파이프라인을 사용하여 파이프라인을 실행하려면 리포지토리의 .tekton/ 디렉터리에 파이프라인 정의 또는 템플릿을 YAML 파일로 생성할 수 있습니다. 원격 URL을 사용하여 다른 리포지토리의 YAML 파일을 참조할 수 있지만 파이프라인 실행은 .tekton/ 디렉터리가 포함된 리포지토리의 이벤트에서만 트리거됩니다.

코드 확인자인 파이프라인은 외부 종속 항목 없이 단일 파이프라인 실행으로 모든 작업을 통해 파이프라인을 번들로 실행합니다.

참고
  • 파이프라인의 경우 spec 또는 분리된 Pipeline 오브젝트와 함께 하나 이상의 파이프라인 실행을 사용합니다.
  • 작업의 경우 파이프라인 내부에 작업 사양을 포함하거나 Task 오브젝트로 별도로 정의합니다.

커밋 및 URL 매개 변수화

{{<var>}} 형식으로 동적 확장 가능한 변수를 사용하여 커밋 및 URL의 매개변수를 지정할 수 있습니다. 현재 다음 변수를 사용할 수 있습니다.

  • {{repo_owner}}: 리포지토리 소유자.
  • {{REPO_NAME}}: 리포지토리 이름입니다.
  • {{repo_url}}: 리포지토리 전체 URL입니다.
  • {{revision}}: 커밋의 전체 SHA 버전.
  • {{sender}}: 커밋 보낸 사람의 사용자 이름 또는 계정 ID입니다.
  • {{source_branch}}: 이벤트가 시작된 분기 이름입니다.
  • {{target_branch}}: 이벤트가 대상으로 하는 분기 이름입니다. 푸시 이벤트의 경우 source_branch 와 동일합니다.
  • {{pull_request_number}}: pull_request 이벤트 유형에 대해서만 정의된 가져오기 또는 병합 요청 번호입니다.
  • {{git_auth_secret}}: 개인 리포지터리를 확인하기 위해 Git 공급자의 토큰을 사용하여 자동으로 생성되는 시크릿 이름입니다.

파이프라인 실행에 이벤트 일치

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

파이프라인 실행에 가져오기 이벤트 일치

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

...
  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.\*"와 같은 태그

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

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

...
  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.\*"와 같은 태그

고급 이벤트 일치

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

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

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

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

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

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

    ...
      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만 공급자로 지원됩니다.

Github API 작업에 임시 GitHub 앱 토큰 사용

Pipelines에서 GitHub App에서 코드로 생성한 임시 설치 토큰을 사용하여 GitHub API에 액세스할 수 있습니다. 토큰 값은 git-provider-token 키의 개인 리포지토리에 대해 생성된 임시 {{git_auth_secret}} 동적 변수에 저장됩니다.

예를 들어 가져오기 요청에 주석을 추가하려면 Pipelines를 Code 주석으로 사용하여 Tekton Hub의 github-add-comment 작업을 사용할 수 있습니다.

...
  pipelinesascode.tekton.dev/task: "github-add-comment"
...
Copy to Clipboard Toggle word wrap

그런 다음 파이프라인 실행 정의의 tasks 섹션 또는 finally 작업에 작업을 추가할 수 있습니다.

[...]
tasks:
  - name:
      taskRef:
        name: github-add-comment
      params:
        - name: REQUEST_URL
          value: "{{ repo_url }}/pull/{{ pull_request_number }}" 
1

        - name: COMMENT_OR_FILE
          value: "Pipelines as Code IS GREAT!"
        - name: GITHUB_TOKEN_SECRET_NAME
          value: "{{ git_auth_secret }}"
        - name: GITHUB_TOKEN_SECRET_KEY
          value: "git-provider-token"
...
Copy to Clipboard Toggle word wrap
1
동적 변수를 사용하면 모든 리포지터리의 가져오기 요청에 이 스니펫 템플릿을 재사용할 수 있습니다.
참고

GitHub 앱에서는 생성된 설치 토큰을 8시간 동안 사용할 수 있으며 클러스터에서 다르게 구성하지 않는 한 이벤트가 시작된 저장소로 범위가 지정됩니다.

추가 리소스

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat