파이프라인에 대한 일정 구성

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Azure Pipelines는 파이프라인 시작 방법을 구성하는 여러 유형의 트리거를 제공합니다.

  • 예약된 트리거는 야간 빌드와 같은 일정에 따라 파이프라인을 시작합니다. 이 문서에서는 예약된 트리거를 사용하여 일정에 따라 파이프라인을 실행하는 방법에 대한 지침을 제공합니다.
  • 이벤트 기반 트리거는 끌어오기 요청 만들기 또는 분기로 푸시와 같은 이벤트에 대한 응답으로 파이프라인을 시작합니다. 이벤트 기반 트리거 사용에 대한 자세한 내용은 Azure Pipelines의 트리거를 참조 하세요.

예를 들어 파이프라인에서 예약된 트리거와 이벤트 기반 트리거를 결합하여 푸시가 수행될 때마다(CI 트리거), 끌어오기 요청이 수행될 때(PR 트리거), 야간 빌드(예약된 트리거) 빌드의 유효성을 검사할 수 있습니다. 이벤트 기반 트리거에 대한 응답이 아닌 일정에 따라 파이프라인을 빌드하려는 경우 파이프라인에 다른 트리거를 사용하도록 설정하지 않았는지 확인합니다. 예를 들어 GitHub 리포지토리의 YAML 파이프라인에는 기본적으로 CI 트리거 및 PR 트리거가 사용하도록 설정되어 있습니다. 기본 트리거를 사용하지 않도록 설정하는 방법에 대한 자세한 내용은 Azure Pipelines의 트리거를 참조하고 리포지토리 유형을 다루는 섹션으로 이동합니다.

예약된 트리거

Important

파이프라인 설정 UI를 사용하여 정의된 예약된 트리거가 YAML 예약 트리거보다 우선합니다.

YAML 파이프라인에 YAML 예약 트리거와 UI 정의 예약 트리거가 모두 있는 경우 UI 정의 예약 트리거만 실행됩니다. YAML 파이프라인에서 YAML 정의 예약 트리거를 실행하려면 파이프라인 설정 UI에 정의된 예약 트리거를 제거해야 합니다. 모든 UI 예약 트리거가 제거되면 YAML 예약 트리거가 평가되기 시작하려면 푸시를 수행해야 합니다.

YAML 파이프라인에서 UI 예약 트리거를 삭제하려면 UI 설정이 YAML 예약 트리거를 재정의하는 것을 참조 하세요.

예약된 트리거는 cron 구문을 사용하여 정의된 일정에 따라 실행되도록 파이프라인을 구성합니다.

schedules:
- cron: string # cron syntax defining a schedule
  displayName: string # friendly name given to a specific schedule
  branches:
    include: [ string ] # which branches the schedule applies to
    exclude: [ string ] # which branches to exclude from the schedule
  always: boolean # whether to always run the pipeline or only if there have been source code changes since the last successful scheduled run. The default is false.
schedules:
- cron: string # cron syntax defining a schedule
  displayName: string # friendly name given to a specific schedule
  branches:
    include: [ string ] # which branches the schedule applies to
    exclude: [ string ] # which branches to exclude from the schedule
  always: boolean # whether to always run the pipeline or only if there have been source code changes since the last successful scheduled run. The default is false.
  batch: boolean # Whether to run the pipeline if the previously scheduled run is in-progress; the default is false.
  # batch is available in Azure DevOps Server 2022.1 and higher

YAML의 예약된 파이프라인에는 다음과 같은 제약 조건이 있습니다.

  • cron 일정의 표준 시간대는 UTC입니다.
  • 절 없이 절 includeexcludebranches지정하는 경우 절에서 include 지정하는 * 것과 같습니다.
  • 일정을 지정할 때는 파이프라인 변수를 사용할 수 없습니다.
  • YAML 파일에서 템플릿을 사용하는 경우 일정을 템플릿 파일이 아닌 기본 YAML 파일에 지정해야 합니다.

예약된 트리거에 대한 분기 고려 사항

예약된 트리거는 다음 이벤트가 발생할 때 분기에 대해 평가됩니다.

  • 파이프라인이 만들어집니다.
  • 파이프라인의 YAML 파일은 푸시에서 또는 파이프라인 편집기에서 편집하여 업데이트됩니다.
  • 파이프라인의 YAML 파일 경로가 다른 YAML 파일을 참조하도록 업데이트됩니다. 이 변경은 기본 분기 업데이트하기만 하므로 기본 분기 업데이트된 YAML 파일에서만 일정을 선택합니다. 예를 들어 git pull origin main이후에 다른 분기가 기본 분기 병합하는 경우 새로 참조된 YAML 파일의 예약된 트리거가 해당 분기에 대해 평가됩니다.
  • 새 분기가 만들어집니다.

분기에서 이러한 이벤트 중 하나가 발생한 후 해당 분기의 예약된 실행이 해당 분기의 YAML 파일에 포함된 예약된 트리거에 대한 분기 필터와 일치하는 경우 추가됩니다.

Important

분기의 예약된 실행은 분기가 해당 특정 분기의 YAML 파일 에서 예약된 트리거에 대한 분기 필터와 일치하는 경우에만 추가됩니다.

예를 들어 파이프라인은 다음 일정으로 만들어지고 이 버전의 YAML 파일은 분기에 검사main. 이 일정은 매일 분기를 main 빌드합니다.

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

다음으로, 이름이 인 new-feature새 분기가 main만들어집니다. 새 분기의 YAML 파일에서 예약된 트리거가 읽혀지고 분기와 일치하는 new-feature 항목이 없으므로 예약된 빌드가 변경되지 않으며 new-feature 예약된 트리거를 사용하여 분기가 빌드되지 않습니다.

목록에 추가 branches 되고 이 변경 내용이 분기에 푸시되면 new-featurenew-feature YAML 파일이 읽혀지고 new-feature 분기 목록에 있으므로 분기용으로 예약된 빌드가 new-feature 추가됩니다.

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

이제 명명 release 된 분기를 기반으로 main만든 다음 release 분기의 YAML 파일에서 분기 필터에 main 추가되지만 새로 만든 release 분기에는 추가되지 않는 것이 좋습니다.

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

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

분기의 분기 필터에 추가되었지만 분기의 분기 필터에는 releaserelease 추가되지 않았기 때문에 release 분기는 해당 일정에 따라 빌드되지 main 않습니다. 분기가 릴리스 분기의 release YAML 파일에서 분기 필터에 추가되는 경우에만 예약된 빌드가 스케줄러에 추가됩니다.

예약된 트리거에 대한 일괄 처리 고려 사항

참고 항목

batch 속성은 Azure DevOps Server 2022.1 이상에서 사용할 수 있습니다.

이 속성은 batch 이전에 예약된 실행이 진행 중인 경우 파이프라인을 실행할지 여부를 구성합니다. 기본값은 다음과 같습니다 false. 파이프라인 리포지토리의 버전과 관계가 없습니다.

다음 표에서는 방법 및 batch 상호 작용에 대해 always 설명합니다.

항상 Batch 동작
false false 파이프라인은 마지막으로 성공한 예약된 파이프라인 실행과 관련하여 변경이 있는 경우에만 실행됩니다.
false true 파이프라인은 마지막으로 성공한 예약된 파이프라인 실행과 관련하여 변경이 있고 진행 중인 예약된 파이프라인 실행이 없는 경우에만 실행됩니다.
true false 파이프라인은 cron 일정에 따라 실행됩니다.
true true 파이프라인은 cron 일정에 따라 실행됩니다.

Important

이 경우 always 파이프라인은 truecron 일정에 따라 실행되며true, 경우에 batch 따라 실행됩니다.

Build.CronSchedule.DisplayName 변수

참고 항목

Build.CronSchedule.DisplayName 변수는 Azure DevOps Server 2022.1 이상에서 사용할 수 있습니다.

cron 예약 트리거로 인해 파이프라인이 실행되는 경우 미리 정의된 Build.CronSchedule.DisplayName 변수에는 파이프라인 실행을 트리거한 cron 일정이 포함 displayName 됩니다.

YAML 파이프라인에는 여러 cron 일정이 포함될 수 있으며, 파이프라인이 실행 중인 cron 일정에 따라 다른 단계 또는 작업을 실행하도록 할 수 있습니다. 예를 들어 야간 빌드 및 주간 빌드가 있으며 야간 빌드 중에만 특정 단계를 실행하려고 합니다. 작업 또는 스테이지 조건에서 변수를 사용하여 Build.CronSchedule.DisplayName 해당 작업 또는 스테이지를 실행할지 여부를 결정할 수 있습니다.

- stage: stage1
  # Run this stage only when the pipeline is triggered by the 
  # "Daily midnight build" cron schedule
  condition: eq(variables['Build.CronSchedule.DisplayName'], 'Daily midnight build')

자세한 예제는 schedules.cron 예제를 참조 하세요.

예약된 빌드는 Azure DevOps Server 2019의 YAML 구문에서 지원되지 않습니다. YAML 빌드 파이프라인을 만든 후 파이프라인 설정을 사용하여 예약된 트리거를 지정할 수 있습니다.

예제

다음 예제에서는 두 가지 일정을 정의합니다.

schedules:
- cron: '0 0 * * *'
  displayName: Daily midnight build
  branches:
    include:
    - main
    - releases/*
    exclude:
    - releases/ancient/*
- cron: '0 12 * * 0'
  displayName: Weekly Sunday build
  branches:
    include:
    - releases/*
  always: true

첫 번째 일정인 매일 자정 빌드는 매일 자정에 파이프라인을 실행하지만, 마지막에 성공한 예약 실행 이후 코드가 변경된 경우에만 아래 분기releases/ancient/*를 제외한 모든 releases/* 분기에 대해 main 실행됩니다.

두 번째 일정인 매주 일요일 빌드는 코드가 마지막 실행 이후 변경되었는지 여부에 관계없이 모든 releases/* 분기에 대해 일요일 정오에 파이프라인을 실행합니다.

참고 항목

cron 일정의 표준 시간대는 UTC이므로 이 예제에서는 자정 빌드와 정오 빌드가 UTC의 자정과 정오에 있습니다.

자세한 예제는 클래식 편집기에서 마이그레이션을 참조 하세요.

예약된 빌드는 Azure DevOps Server 2019의 YAML 구문에서 지원되지 않습니다. YAML 빌드 파이프라인을 만든 후 파이프라인 설정을 사용하여 예약된 트리거를 지정할 수 있습니다.

Cron 구문

각 Azure Pipelines 예약 트리거 cron 식은 다음 순서로 5개의 항목이 있는 공백으로 구분된 식입니다. 식은 작은따옴표로 묶입니다 '.

mm HH DD MM DW
 \  \  \  \  \__ Days of week
  \  \  \  \____ Months
   \  \  \______ Days
    \  \________ Hours
     \__________ Minutes
필드 허용되는 값
0~59
시간 0~23
1~31
개월 1 ~12, 전체 영어 이름, 영어 이름의 처음 세 글자
요일 0~6(일요일부터 시작), 전체 영어 이름, 처음 세 글자 영어 이름

값은 다음 형식일 수 있습니다.

형식 예제 설명
와일드카드 * 이 필드의 모든 값과 일치
단일 값 5 이 필드에 대한 단일 값을 지정합니다.
쉼표로 구분 3,5,6 이 필드에 대해 여러 값을 지정합니다. 다음과 같이 여러 형식을 결합할 수 있습니다. 1,3-6
범위 1-3 이 필드에 대한 값의 포괄 범위
간격 */4 또는 1-5/2 네 번째 값마다 또는 단계 간격이 2인 1-5 범위와 같이 이 필드에 대해 일치시킬 간격
예시 Cron 식
매주 월요일, 수요일, 금요일 오후 6:00에 빌드 0 18 * * Mon,Wed,Fri, 0 18 * * 1,3,5 또는 0 18 * * 1-5/2
6시간마다 빌드 0 0,6,12,18 * * *, 0 */6 * * * 또는 0 0-18/6 * * *
오전 9:00부터 6시간마다 빌드 0 9,15,21 * * * 또는 0 9-21/6 * * *

지원되는 형식에 대한 자세한 내용은 Crontab 식을 참조하세요.

예약된 빌드는 Azure DevOps Server 2019의 YAML 구문에서 지원되지 않습니다. YAML 빌드 파이프라인을 만든 후 파이프라인 설정을 사용하여 예약된 트리거를 지정할 수 있습니다.

예약된 실행 보기

파이프라인에 대한 파이프라인 세부 정보 페이지의 상황에 맞는 메뉴에서 예약된 실행을 선택하여 예정된 예정된 빌드의 미리 보기를 볼 수 있습니다.

Important

예약된 실행 보기에는 현재 날짜로부터 7일 이내에 실행되도록 예약된 파이프라인만 표시됩니다. cron 일정에 7일보다 긴 간격이 있고 다음 실행이 현재 날짜로부터 7일 후에 시작되도록 예약된 경우 예약된 실행 보기에 표시되지 않습니다.

예약된 실행 메뉴

예약된 트리거를 만들거나 업데이트한 후 이 보기를 사용하여 확인할 수 있습니다.

예약된 실행

다음은 다음 일정에 대해 예약된 실행을 표시하는 예제입니다.

schedules:
- cron: '0 0 * * *'
  displayName: Daily midnight build
  branches:
    include:
    - main

예약된 실행 창에는 Azure DevOps 포털을 탐색하는 데 사용되는 컴퓨터에서 로컬 표준 시간대로 변환된 시간이 표시됩니다. 다음은 EST 표준 시간대에서 찍은 스크린샷을 표시하는 예제입니다.

예약된 빌드는 Azure DevOps Server 2019의 YAML 구문에서 지원되지 않습니다. YAML 빌드 파이프라인을 만든 후 파이프라인 설정을 사용하여 예약된 트리거를 지정할 수 있습니다.

코드 변경 내용이 없는 경우에도 실행

마지막으로 성공한 예약된 실행 이후 코드 변경이 없는 경우 기본적으로 파이프라인은 예약된 대로 실행되지 않습니다. 예를 들어 파이프라인이 매일 밤 9:00pm에 실행되도록 예약한 것을 고려합니다. 평일 동안 코드에 다양한 변경 내용을 푸시합니다. 파이프라인은 일정에 따라 실행됩니다. 주말 동안에는 코드를 변경하지 않습니다. 금요일에 예약된 실행 이후 코드가 변경되지 않은 경우 파이프라인은 주말 동안 예약된 대로 실행되지 않습니다.

코드 변경이 없는 경우에도 파이프라인을 강제로 실행하려면 키워드(keyword) 사용할 always 수 있습니다.

schedules:
- cron: ...
  ...
  always: true

예약된 빌드는 이 버전의 Azure DevOps Server에서 YAML 구문에서 지원되지 않습니다. YAML 빌드 파이프라인을 만든 후 파이프라인 설정을 사용하여 예약된 트리거를 지정할 수 있습니다.

YAML 파이프라인의 예약된 실행 수 제한

파이프라인 실행을 예약할 수 있는 빈도에는 특정 제한이 있습니다. 이러한 제한은 Azure Pipelines 리소스, 특히 Microsoft 호스트된 에이전트의 오용을 방지하기 위해 적용되었습니다. 제한은 다음과 같습니다.

  • 매주 파이프라인당 약 1000회 실행
  • 15분마다 파이프라인당 10회 실행

클래식 편집기에서 마이그레이션

다음 예제에서는 클래식 편집기에서 YAML로 일정을 마이그레이션하는 방법을 보여 줍니다.

예: 여러 표준 시간대의 Git 리포지토리 야간 빌드

이 예제에서 클래식 편집기 예약 트리거에는 다음 빌드를 생성하는 두 개의 항목이 있습니다.

  • 매주 월요일- 금요일 오전 3:00(UTC + 5:30 표준 시간대) 분기 필터 조건을 충족 features/india/* 하는 분기 빌드

    예약된 트리거 UTC + 5:30 표준 시간대

  • 매주 월요일-금요일 오전 3:00(UTC - 5:00 표준 시간대) 분기 필터 조건을 충족 features/nc/* 하는 분기 빌드

    예약된 트리거 UTC -5:00 표준 시간대

해당하는 YAML 예약 트리거는 다음과 같습니다.

schedules:
- cron: '30 21 * * Sun-Thu'
  displayName: M-F 3:00 AM (UTC + 5:30) India daily build
  branches:
    include:
    - /features/india/*
- cron: '0 8 * * Mon-Fri'
  displayName: M-F 3:00 AM (UTC - 5) NC daily build
  branches:
    include:
    - /features/nc/*

첫 번째 일정, M-F 3:00 AM (UTC + 5:30) 인도 매일 빌드, cron 구문 (mm HH DD MM DW)입니다 30 21 * * Sun-Thu.

  • 분 및 시간 - 30 21 ()에 21:30 UTC9:30 PM UTC매핑됩니다. 클래식 편집기의 지정된 표준 시간대는 UTC + 5:30이므로 원하는 빌드 시간인 오전 3시에서 5시간 30분을 빼야 YAML 트리거에 대해 지정할 수 있는 UTC 시간에 도착합니다.
  • 이 일정은 특정 월 또는 특정 달에만 실행되도록 지정하지 않으므로 일 및 월은 wild카드s로 지정됩니다.
  • 요일 - Sun-Thu 표준 시간대 변환으로 인해 빌드가 UTC + 5:30 인도 표준 시간대에서 오전 3:00에 실행되도록 하려면 전날을 UTC 시간으로 시작하도록 지정해야 합니다. 요일을 지정하거나 0,1,2,3,4요일로 0-4 지정할 수도 있습니다.

두 번째 일정인 M-F 3:00 AM(UTC - 5) NC 매일 빌드에서는 cron 구문이 0 8 * * Mon-Fri사용됩니다.

  • 분 및 시간 - 0 8 에 매핑됩니다 8:00 AM UTC. 클래식 편집기의 지정된 표준 시간대는 UTC - 5:00이므로 원하는 빌드 시간인 오전 3시에서 5시간을 추가하여 YAML 트리거에 대해 지정하려는 UTC 시간에 도착해야 합니다.
  • 이 일정은 특정 월 또는 특정 달에만 실행되도록 지정하지 않으므로 일 및 월은 wild카드s로 지정됩니다.
  • 요일 - Mon-Fri 표준 시간대 변환이 원하는 일정에 대해 요일의 여러 날에 걸쳐 있지 않기 때문에 여기에서 변환을 수행할 필요가 없습니다. 요일을 지정하거나 1,2,3,4,5요일로 1-5 지정할 수도 있습니다.

Important

YAML 예약 트리거의 UTC 표준 시간대는 일광 절약 시간을 고려하지 않습니다.

요일 3자를 사용하고 태양을 통해 여러 날의 범위를 원하는 경우, Sun은 요일의 첫째 날(예: 자정 EST, 목요일~일요일)의 일정에 대해 cron 구문으로 0 5 * * Sun,Thu-Sat간주되어야 합니다.

예: 다양한 빈도를 사용하여 야간 빌드

이 예제에서 클래식 편집기 예약 트리거에는 다음 빌드를 생성하는 두 개의 항목이 있습니다.

  • 매주 월요일- 금요일 오전 3:00 UTC, 분기 필터 조건을 충족 mainreleases/* 하는 분기 빌드

    예약된 트리거 빈도 1.

  • 매주 일요일 오전 3:00(UTC)에 원본 또는 파이프라인이 변경되지 않은 경우에도 분기를 빌드 releases/lastversion 합니다.

    예약된 트리거 빈도 2.

해당하는 YAML 예약 트리거는 다음과 같습니다.

schedules:
- cron: '0 3 * * Mon-Fri'
  displayName: M-F 3:00 AM (UTC) daily build
  branches:
    include:
    - main
    - /releases/*
- cron: '0 3 * * Sun'
  displayName: Sunday 3:00 AM (UTC) weekly latest version build
  branches:
    include:
    - /releases/lastversion
  always: true

첫 번째 일정인 M-F 3:00 AM(UTC) 매일 빌드에서 cron 구문은 다음과 같습니다 0 3 * * Mon-Fri.

  • 분 및 시간 - 0 3 에 매핑됩니다 3:00 AM UTC. 클래식 편집기에서 지정된 표준 시간대가 UTC이므로 표준 시간대 변환을 수행할 필요가 없습니다.
  • 이 일정은 특정 월 또는 특정 달에만 실행되도록 지정하지 않으므로 일 및 월은 wild카드s로 지정됩니다.
  • 요일 - Mon-Fri 표준 시간대 변환이 없기 때문에 요일은 클래식 편집기 일정에서 직접 매핑됩니다. 요일을 .로 1,2,3,4,5지정할 수도 있습니다.

두 번째 일정인 일요일 오전 3:00(UTC) 주간 최신 버전 빌드에서 cron 구문은 다음과 같습니다 0 3 * * Sun.

  • 분 및 시간 - 0 3 에 매핑됩니다 3:00 AM UTC. 클래식 편집기에서 지정된 표준 시간대가 UTC이므로 표준 시간대 변환을 수행할 필요가 없습니다.
  • 이 일정은 특정 월 또는 특정 달에만 실행되도록 지정하지 않으므로 일 및 월은 wild카드s로 지정됩니다.
  • 요일 - Sun 표준 시간대 변환이 원하는 일정에 대해 요일의 여러 날에 걸쳐 있지 않기 때문에 여기에서 변환을 수행할 필요가 없습니다. 요일을 .로 0지정할 수도 있습니다.
  • 또한 이 빌드가 소스 코드가 업데이트되었는지 여부를 실행하도록 예약되었기 때문에 지정 always: true 합니다.

FAQ

누군가가 분기에 변경 사항을 푸시할 때가 아니라 일정에 따라 파이프라인을 실행하려고 합니다.

파이프라인이 일정에 따라만 실행되도록 하고 다른 사용자가 분기로 변경 내용을 푸시하거나 변경 내용을 기본 분기로 병합할 때가 아닌 경우 파이프라인에서 기본 CI 및 PR 트리거를 명시적으로 사용하지 않도록 설정해야 합니다.

기본 CI 및 PR 트리거를 사용하지 않도록 설정하려면 YAML 파이프라인 에 다음 문을 추가하고 UI 트리거를 사용하여 YAML 파이프라인 트리거를 재정의하지 않았는지 확인합니다.

trigger: none
pr: none

자세한 내용은 pr 정의트리거 정의를 참조하세요.

YAML 파일에서 일정을 정의했습니다. 그러나 그것은 실행되지 않았다. 어떻게 된 건가요?

  • Azure Pipelines가 파이프라인에 대해 예약한 다음 몇 가지 실행을 확인합니다. 파이프라인에서 예약된 실행 작업을 선택하여 이러한 실행을 찾을 수 있습니다. 목록은 다음 며칠 동안 예정된 몇 개의 실행만 표시하도록 필터링됩니다. 예상과 맞지 않는 경우 cron 일정을 잘못 입력했거나 올바른 분기에 정의된 일정이 없는 경우일 수 있습니다. 일정을 구성하는 방법을 이해하려면 위의 항목을 읽어 보세요. cron 구문을 다시 평가합니다. cron 일정의 모든 시간은 UTC입니다.

  • YAML 파일을 약간 변경하고 해당 업데이트를 리포지토리에 푸시합니다. 이전에 YAML 파일에서 일정을 읽는 데 문제가 있는 경우 지금 수정해야 합니다.

  • UI에 정의된 일정이 있는 경우 YAML 일정이 적용되지 않습니다. 파이프라인의 편집기로 이동한 다음 트리거를 선택하여 UI 일정이 없는지 확인합니다.

  • 파이프라인에 대해 예약할 수 있는 실행 수에는 제한이 있습니다. 제한에 대해 자세히 알아보세요.

  • 코드에 변경 내용이 없는 경우 Azure Pipelines는 새 실행을 시작하지 않을 수 있습니다. 이 동작을 재정의하는 방법을 알아봅니다.

YAML 일정이 정상적으로 작동했습니다. 그러나, 그들은 지금 일을 중단. 어떻게 할까요? 디버그하시겠습니까?

  • 지정 always:true하지 않은 경우 코드에 대한 업데이트가 없는 한 파이프라인이 예약되지 않습니다. 코드 변경이 있었는지 여부와 일정을 구성한 방법을 확인합니다.

  • 파이프라인을 예약할 수 있는 횟수에는 제한이 있습니다. 이러한 제한을 초과했는지 확인합니다.

  • 다른 사용자가 UI에서 더 많은 일정을 사용하도록 설정했는지 확인합니다. 파이프라인에 대한 편집기를 열고 트리거를 선택합니다. UI에서 일정을 정의한 경우 YAML 일정은 적용되지 않습니다.

  • 파이프라인이 일시 중지 또는 비활성화되었는지 확인합니다. 파이프라인에 대한 설정 선택합니다.

  • Azure Pipelines가 파이프라인에 대해 예약한 다음 몇 가지 실행을 확인합니다. 파이프라인에서 예약된 실행 작업을 선택하여 이러한 실행을 찾을 수 있습니다. 예상한 일정이 표시되지 않으면 YAML 파일을 약간 변경하고 리포지토리에 업데이트를 푸시합니다. 일정을 다시 동기화해야 합니다.

  • 코드를 저장하기 위해 GitHub를 사용하는 경우 새 실행을 시작하려고 할 때 Azure Pipelines가 GitHub에 의해 제한되었을 수 있습니다. 새 실행을 수동으로 시작할 수 있는지 확인합니다.

내 코드는 변경되지 않았지만 예약된 빌드가 트리거됩니다. 이유는 무엇입니까?

  • 코드 변경 내용이 없더라도 항상 예약된 빌드를 실행하는 옵션을 사용하도록 설정했을 수 있습니다. YAML 파일을 사용하는 경우 YAML 파일에서 일정 구문을 확인합니다. 클래식 파이프라인을 사용하는 경우 예약된 트리거에서 이 옵션을 검사 확인합니다.

  • 빌드 파이프라인 또는 파이프라인의 일부 속성을 업데이트했을 수 있습니다. 이렇게 하면 소스 코드를 업데이트하지 않은 경우에도 새 실행이 예약됩니다. 클래식 편집기를 사용하여 파이프라인의 변경 내용 기록을 확인합니다.

  • 리포지토리에 연결하는 데 사용되는 서비스 연결을 업데이트했을 수 있습니다. 이렇게 하면 소스 코드를 업데이트하지 않은 경우에도 새 실행이 예약됩니다.

  • 코드에 대한 업데이트가 있는 경우 Azure Pipelines는 먼저 검사. Azure Pipelines가 리포지토리에 도달하거나 이 정보를 가져올 수 없는 경우 정보 실행을 만듭니다. Azure Pipelines가 리포지토리에 연결할 수 없다는 것을 알려주는 더미 빌드입니다.

  • 파이프라인에 완전히 성공적인 빌드가 없을 수 있습니다. 새 빌드를 예약할지 여부를 결정하기 위해 Azure DevOps는 마지막으로 완전히 성공한 예약된 빌드를 조회합니다. 찾을 수 없는 경우 새 예약된 빌드를 트리거합니다. 부분적으로 성공한 예약된 빌드는 성공한 것으로 간주되지 않으므로 파이프라인에 부분적으로 성공한 빌드만 있는 경우 Azure DevOps는 코드가 변경되지 않은 경우에도 예약된 빌드를 트리거합니다.

예약된 실행 패널에서 계획된 실행이 표시됩니다. 그러나, 그것은 그 시간에 실행 되지 않습니다. 이유는 무엇입니까?

  • 예약된 실행 패널에는 모든 잠재적인 일정이 표시됩니다. 그러나 코드를 실제로 업데이트하지 않으면 실제로 실행되지 않을 수 있습니다. 일정이 항상 실행되도록 하려면 YAML 파이프라인에서 always 속성을 설정했는지 확인하거나 클래식 파이프라인에서 항상 실행하는 옵션을 검사.

YAML 파이프라인에 정의된 일정은 한 분기에 대해 작동하지만 다른 분기는 작동하지 않습니다. 어떻게 고치나요?

일정은 YAML 파일에 정의되며 이러한 파일은 분기와 연결됩니다. 파이프라인이 특정 분기에 대해 예약되도록 하려면 해당 분기 features/X 의 YAML 파일에 cron 일정이 정의되어 있고 일정에 대한 올바른 분기 포함이 있는지 확인합니다. 분기의 features/X YAML 파일에는 다음 예제가 schedule 있어야 합니다.

schedules: 
- cron: '0 12 * * 0'   # replace with your schedule
  branches: 
    include: 
    - features/X  

자세한 내용은 예약된 트리거에 대한 분기 고려 사항을 참조 하세요.