5장. Pipeline에서 코드로 파이프라인 실행 생성


Pipeline을 리포지토리 공급자와 통합하고 Repository CR(사용자 정의 리소스)을 사용하여 특정 리포지토리를 정의한 후 리포지토리에서 파이프라인 실행 정의를 생성할 수 있습니다.

5.1. Pipeline에서 코드로 실행되는 파이프라인 생성

리포지토리에서 Pipeline에 대한 파이프라인 실행 정의를 생성하고 가져오기 요청과 같은 이벤트와 일치시킬 수 있습니다. 이벤트가 발생하면 Code로서의 Pipeline이 이 정의에서 PipelineRun CR(사용자 정의 리소스)을 생성한 다음 OpenShift Pipelines가 파이프라인 실행을 실행합니다.

사전 요구 사항

  • Git 리포지토리 호스팅 서비스 공급자와 통합하도록 Pipeline을 코드로 구성했습니다.
  • Pipeline에서 리포지토리에 대한 연결을 코드로 정의하는 Repository CR(사용자 정의 리소스)을 생성하셨습니다.
  • 리포지토리의 루트에 .tekton 디렉터리가 있습니다.

프로세스

  1. .tekton 디렉터리에 .yaml 또는 .yml 확장자를 사용하여 파일을 생성합니다.
  2. 생성한 파일에서 PipelineRun CR에 대한 YAML 사양을 생성합니다. 이 사양은 OpenShift Pipelines의 모든 기능을 사용할 수 있습니다.
  3. 파이프라인 실행 정의의 요구 사항에 따라 다음 선택적 단계를 완료합니다.

    • .tekton 디렉터리에 .yaml 또는 .yml 확장자를 사용하여 다른 파일을 생성합니다. 이러한 파일에서 파이프라인에서 정의 참조를 실행하는 리소스 정의(예: Pipeline,Task 또는 StepAction CR)를 제공합니다. Code resolver로서의 Pipeline은 이러한 리소스를 자동으로 해결하고 정의를 기반으로 하는 PipelineRun CR에 포함합니다.
    • 파이프라인 실행 사양에서 동적 변수를 사용합니다. 코드로서의 파이프라인은 이러한 변수를 현재 컨텍스트를 나타내는 값으로 대체합니다. 예를 들어 {{ repo_url }} 은 리포지토리의 현재 URL이며 {{ revision }} 은 파이프라인 실행이 시작된 커밋 SHA입니다.

      동적 변수에 대한 자세한 내용은 "Dynamic variables in a pipeline run specification" 섹션을 참조하십시오.

    • 파이프라인 실행 정의에 코드 확인자 주석으로 하나 이상의 Pipeline을 추가합니다. Code resolver 주석은 Tekton Hub, HTTP 위치 또는 .tekton 디렉터리 외부의 리포지토리의 위치를 참조하는 파이프라인 또는 작업을 참조합니다. Pipeline을 Code resolver 주석으로 생성하여 리소스를 참조하는 경우 파이프라인 실행 정의에서 이름으로 이 리소스를 사용할 수 있습니다. Code resolver로서의 Pipeline은 이러한 리소스를 자동으로 해결하고 정의를 기반으로 하는 PipelineRun CR에 포함합니다.

      이러한 주석에 대한 자세한 내용은 "Pipelines as Code resolver annotations" 섹션을 참조하십시오.

  4. 파이프라인 실행 정의에 다음 주석을 추가하여 파이프라인 실행과 일치시킵니다. 정의된 이벤트가 발생하면 Code로서의 Pipeline이 파이프라인 실행을 시작합니다. 파이프라인 실행을 이벤트와 일치시키는 방법에 대한 자세한 내용은 "대개 이벤트의 주석 처리" 섹션을 참조하십시오.

    • 가져오기 요청 또는 푸시 이벤트를 정의하는 pipelinesascode.tekton.dev/on-event 주석과 가져오기 요청 또는 푸시 이벤트가 대상으로 하는 분기를 정의하는 pipelinesascode.tekton.dev/on-target-branch 주석의 조합입니다. 파이프라인 실행과 가져오기 요청 또는 푸시 이벤트와 일치하면 이벤트가 생성될 때 파이프라인 실행이 시작됩니다. 가져오기 요청의 경우 소스 분기 이벤트가 업데이트될 때마다 다시 시작됩니다.

      참고

      Git 리포지토리 공급자가 병합 요청을 사용하고 요청을 가져오지 않는 경우 pull_request 이벤트 정의는 병합 요청과 일치합니다.

    • pipeline run과 일치하는 pipelinesascode.tekton.dev/on-comment 주석으로 정규식의 가져오기 요청에 대한 주석과 일치합니다. 파이프라인 실행과 일치하는 경우 주석이 가져오기 요청에 추가될 때 시작됩니다. 파이프라인 실행을 다시 시작하려면 주석을 다시 추가합니다.
    • 지정된 CEL(Common Expression Language) 표현식이 가져오기 요청 또는 푸시 이벤트에서 true 로 평가되면 파이프라인 실행과 일치하는 pipelinesascode.tekton.dev/on-cel-expression 주석입니다.
  5. 선택 사항: 일치하는 이벤트를 필터링하는 하나 이상의 주석을 추가합니다. 이러한 주석을 사용하면 정의된 일치하는 이벤트(예: 가져오기 요청, 푸시 이벤트 또는 주석)가 발생하면 이러한 주석이 일치하는지 코드로 파이프라인에서 확인합니다. 파이프라인 실행은 사용자가 추가한 모든 주석이 일치하는 경우에만 시작됩니다. 일치하는 이벤트를 필터링하는 방법에 대한 자세한 내용은 "이벤트 필터링을 위한 주석" 섹션을 참조하십시오.

    • 가져오기 요청 또는 푸시 이벤트가 지정된 경로의 파일에 영향을 미치는 경우 pipelinesascode.tekton.dev/on-path-changed 주석이 일치합니다.
    • pipelinesascode.tekton.dev/on-path-changed-ignore 주석은 이벤트가 지정된 경로의 파일 변경하고 리포지토리의 다른 파일을 변경하지 않는 경우 이벤트와 일치하는 것을 제외합니다.
    • 가져오기 요청 또는 푸시 이벤트에 지정된 라벨 중 하나가 있는 경우 pipelinesascode.tekton.dev/on-label 주석이 일치합니다.
  6. 선택 사항: pipelinesascode.tekton.dev/cancel-progress: "true" 주석을 추가하여 특정 경우에 파이프라인 실행을 자동으로 취소할 수 있습니다. 예를 들어 가져오기 요청이 트리거되는 경우 사용자가 새 커밋을 가져오기 요청 소스 분기로 푸시하면 각 푸시가 파이프라인 실행의 새 복사본을 트리거합니다. 파이프라인 실행이 시작된 후 자동 취소-인증을 활성화하면 코드로서의 파이프라인은 이전 실행을 취소하여 동시에 실행되는 파이프라인의 많은 복사본을 실행하지 않도록 합니다. 이 주석에 대한 자세한 내용은 "파이프 라인 실행에 대한 자동 cancel-in-progress 지정에 대한 주석" 섹션을 참조하십시오.

코드 파이프라인 실행 정의로 파이프라인의 예

apiVersion: tekton.dev/v1
kind: PipelineRun
metadata:
  name: maven-build
annotations:
  pipelinesascode.tekton.dev/task: "[git-clone]" 
1

  pipelinesascode.tekton.dev/on-event: "[pull_request]" 
2

  pipelinesascode.tekton.dev/on-target-branch: "[main, release]" 
3

  pipelinesascode.tekton.dev/on-path-changed: "[src/**]" 
4

  pipelinesascode.tekton.dev/cancel-in-progress: "true" 
5

spec:
  pipelineSpec:
    workspaces:
    - name: shared-workspace
    tasks:
      - name: fetch-repo
        taskRef:
          - name: git-clone 
6

        params:
        - name: url
          value: {{ repo_url }} 
7

        - name: revision
          value: {{ revision }} 
8

        workspaces:
        - name: output
          workspace: shared-workspace
      - name: build-from-source
        taskRef:
          resolver: cluster
          params:
          - name: kind
            value: task
          - name: name
            value: maven
          - name: namespace
            value: openshift-pipelines
        workspaces:
        - name: source
          workspace: shared-workspace
Copy to Clipboard Toggle word wrap

1
pipelinesascode.tekton.dev/task 주석은 Tekton Hub의 git-clone 작업을 참조합니다.
2
pipelinesascode.tekton.dev/on-event 주석은 파이프라인 실행과 가져오기 요청 또는 병합 요청 이벤트와 일치합니다.
3
pipelinesascode.tekton.dev/on-target-branch 주석은 기본 분기 또는 릴리스 분기에 대한 가져오기 요청이 이 파이프라인 실행을 트리거하도록 지정합니다.
4
pipelinesascode.tekton.dev/on-path-changed 주석은 가져오기 요청에 src 디렉터리 아래의 파일 변경 사항이 포함된 경우에만 파이프라인 실행이 트리거되도록 지정합니다.
5
pipelinesascode.tekton.dev/cancel-in-progress 주석은 파이프라인 실행이 동일한 가져오기 요청에 대해 다시 시작되는 경우 Code와 함께 Pipeline이 이전 실행을 취소하도록 지정합니다.
6
파이프라인 실행 사양은 이름으로 git-clone 작업을 참조합니다. pipelinesascode.tekton.dev/task 주석으로 인해 Code resolver인 Pipeline은 Tekton Hub의 git-clone 작업에 대한 이 참조를 확인합니다.
7
코드로서의 파이프라인은 {{ repo_url }} 동적 변수를 Git 리포지토리의 URL로 대체합니다.
8
코드로서의 파이프라인은 {{ revision }} 동적 변수를 파이프라인 실행이 시작된 분기의 버전으로 대체합니다.
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat