파이프라인을 트리거하는 이벤트 지정

Azure DevOps 서비스 | Azure DevOps Server | Azure DevOps Server 2022

파이프라인 트리거는 파이프라인을 실행할 시기를 알려줍니다. 일정에 따라 또는 끌어오기 요청 생성과 같은 이벤트에 대한 응답으로 파이프라인을 실행하도록 트리거를 구성할 수 있습니다. Azure Pipelines 다음과 같은 유형의 트리거를 지원합니다.

  • 연속 통합 트리거(CI 트리거)는 브랜치에 코드를 푸시할 때 파이프라인을 실행합니다.
  • 풀 리퀘스트 트리거(PR 트리거)는 PR을 만들거나 열려 있는 PR의 소스 브랜치에 코드를 푸시할 때 파이프라인을 실행합니다. GitHub 리포지토리는 열려 있는 끌어오기 요청에 주석을 추가할 때 파이프라인을 실행하는 주석 트리거를 지원합니다.
  • 예약된 트리거는 미리 정의된 일정에 따라 파이프라인을 실행합니다.
  • 파이프라인 완료 트리거는 다른 파이프라인이 완료될 때 파이프라인을 실행합니다.

이 문서에서는 YAML 파이프라인 트리거 및 클래식 빌드 파이프라인 트리거에 대한 개요를 제공합니다. 클래식 릴리스 파이프라인 에는 이전 목록에 설명된 유사한 버전의 트리거가 있습니다. 자세한 내용은 클래식 릴리스 파이프라인 트리거를 참조하세요.

CI 트리거

CI 트리거는 트리거에서 정의한 조건을 충족하는 브랜치에 푸시가 이루어지면 파이프라인을 실행합니다. 키워드를 trigger 사용하여 CI 트리거를 구성합니다. 예를 들어 main 브랜치에 푸시할 때 파이프라인을 실행하려면 다음 트리거를 지정합니다.

trigger:
- main

파이프라인을 명시적으로 구성하지 않으면 암시적 CI 트리거 사용 안 함이 설정되어 있거나 UI 설정이 YAML 트리거를 재정의하도록 설정된 경우가 아닌 한, 모든 분기에 대해 CI 트리거가 기본적으로 사용 설정됩니다.

파이프라인을 명시적으로 구성하지 않은 경우, 암시적 CI 트리거 사용 안 함이 설정되었거나 UI 설정이 YAML 트리거를 재정의하는 경우를 제외하면 모든 분기에서 기본적으로 CI 트리거가 활성화됩니다.

참고

암시적 CI 트리거 사용 안 함은 Azure DevOps Server 2022.2 이상에서만 사용할 수 있습니다. Azure DevOps Server 2022 및 2022.1에서는 명시적으로 구성되지 않은 경우 기본적으로 CI 트리거가 사용하도록 설정됩니다.

파이프라인에서 CI 트리거를 사용하지 않도록 설정하려면 다음 구문을 사용합니다.

trigger: none

YAML 파이프라인은 다음 리포지토리 유형에 대한 CI 트리거를 지원합니다. 특정 리포지토리 유형에서 CI 트리거를 사용하는 방법에 대한 자세한 내용은 다음 문서를 참조하세요.

CI 트리거에 사용할 수 있는 전체 YAML 트리거 구문 및 옵션에 대한 자세한 내용은 트리거 정의를 참조하세요.

Important

Git의 경로는 CI 및 PR 트리거 경로 필터를 포함하여 대/소문자를 구분합니다.

PR 트리거

끌어오기 요청(PR) 트리거는 끌어오기 요청을 열거나 끌어오기 요청의 원본 분기에 변경 내용을 푸시할 때마다 파이프라인이 실행되도록 합니다. 키워드를 pr 사용하여 PR 트리거를 구성합니다. 예를 들어 PR이 main 브랜치에 대해 생성될 때 파이프라인을 실행하려면 다음 트리거를 지정하세요.

pr:
- main

파이프라인에서 PR 트리거를 명시적으로 구성하지 않으면, UI 설정이 YAML 트리거를 재정의하는 경우를 제외하면 기본적으로 사용하도록 설정됩니다. 모든 브랜치에 대한 풀 리퀘스트는 파이프라인 실행을 트리거합니다. 파이프라인에서 PR 트리거를 사용하지 않도록 설정하려면 다음 구문을 사용합니다.

pr: none

YAML PR 트리거는 GitHub 및 Bitbucket Cloud에 대해 지원됩니다. 이러한 유형의 리포지토리에서 PR 트리거를 사용하는 방법에 대한 자세한 내용은 GitHub의 PR 트리거Bitbucket Cloud의 PR 트리거를 참조하세요. 전체 YAML PR 트리거 구문에 대한 자세한 내용은 pr 정의를 참조하세요.

Azure Repos Git은 분기 정책을 사용하여 PR 트리거를 구현합니다. 자세한 내용은 Azure Repos Git의 PR 트리거를 참조하세요.

댓글 트리거

댓글 트리거는 기여자가 /azp run와 같은 풀 리퀘스트 명령이 포함된 풀 리퀘스트 댓글을 작성하면 파이프라인이 실행되도록 구성합니다. 주석 트리거는 GitHub 리포지토리에 대해서만 지원됩니다. 자세한 내용은 GitHub 리포지토리 주석 트리거 참조하세요.

예약된 실행 조건

예약된 트리거는 미리 정의된 일정에 따라 파이프라인을 실행합니다. YAML 파이프라인을 지원하는 모든 리포지토리 형식은 YAML 파이프라인 에서 예약된 트리거를 지원합니다. 이러한 리포지토리 유형에는 Azure Repos Git, GitHub, GitHub Enterprise Server 및 Bitbucket Cloud가 포함됩니다.

YAML에서 예약된 트리거를 정의하려면 키워드를 schedules 사용하고 cron 구문을 사용하여 일정을 정의합니다. 다음 예제에서는 매일 자정에 실행되는 일정을 구성합니다.

# YAML file in the main branch
schedules:
- cron: '0 0 * * *'
  displayName: Daily midnight build
  branches:
    include:
    - main

자세한 내용 및 예제는 예약된 트리거, 일정 정의 및 schedules.cron 정의를 참조 하세요.

파이프라인 완료 트리거

YAML 파이프라인의 파이프라인 트리거 및 클래식 빌드 파이프라인의 빌드 완료 트리거 를 사용하면 다른 파이프라인이 완료될 때 하나의 파이프라인을 트리거할 수 있습니다.

파이프라인에서 파이프라인 리소스 트리거를 설정하여 원본 파이프라인이 실행을 완료할 때 파이프라인 실행을 시작합니다.

resources:
  pipelines:
  - pipeline: sourcePipelineResource # Label for this pipeline resource; used when referring to it elsewhere in the pipeline.
    source: source-pipeline # The name of the pipeline referenced by this pipeline resource.
    project: FabrikamProject # Required only if the source pipeline is in another project
    trigger: true # Run this pipeline when any run of source-pipeline completes

파이프라인에 여러 파이프라인 리소스를 추가할 수 있습니다. 원본 파이프라인의 모든 버전이 완료될 때 실행되도록 트리거를 구성하거나 특정 분기로 제한할 수 있습니다.

자세한 내용 및 예제는 파이프라인 완료 트리거를 참조하세요.

전체 구문 및 트리거 옵션은 resources.pipelines.pipeline 정의를 참조하세요.

YAML 파이프라인의 트리거에 대한 분기 고려 사항

YAML 파이프라인은 서로 다른 분기에 서로 다른 버전의 파이프라인을 가질 수 있으며, 이는 평가되는 파이프라인 트리거의 버전과 실행해야 하는 파이프라인 버전에 영향을 줄 수 있습니다.

트리거 유형 파이프라인 YAML 버전
CI 트리거(trigger) 푸시된 분기의 파이프라인 버전이 사용됩니다.
PR 트리거 (pr) 끌어오기 요청에 대한 원본 분기의 파이프라인 버전이 사용됩니다.
GitHub 풀 리퀘스트 댓글 트리거 끌어오기 요청에 대한 원본 분기의 파이프라인 버전이 사용됩니다.
예약된 실행 조건 예약된 트리거에 대한 분기 고려 사항을 참조하세요.
파이프라인 완료 트리거 파이프라인 완료 트리거에 대한 분기 관련 고려 사항을(를) 참조하세요.

클래식 릴리스 파이프라인

연속 배포 트리거는 클래식 빌드 또는 YAML 파이프라인이 완료된 후 클래식 릴리스를 시작하는 데 도움이 됩니다.

예약된 릴리스 트리거를 사용하면 일정에 따라 릴리스 파이프라인을 실행할 수 있습니다.

끌어오기 요청 릴리스 트리거는 클래식 릴리스를 사용하여 직접 끌어오기 요청을 배포하는 데 사용됩니다.

클래식 릴리스의 스테이지 트리거는 클래식 릴리스 의 각 단계가 트리거되는 방식을 구성하는 데 사용됩니다.