다음을 통해 공유


stage.stage 정의

단계는 관련 작업의 컬렉션입니다. 기본적으로 단계는 순차적으로 실행됩니다. dependsOn 속성을 통해 달리 지정하지 않는 한 각 스테이지는 이전 단계가 완료된 후에만 시작됩니다.

stages:
- stage: string # Required as first property. ID of the stage.
  displayName: string # Human-readable name for the stage.
  pool: string | pool # Pool where jobs in this stage will run unless otherwise specified.
  dependsOn: string | [ string ] # Any stages which must complete before this one.
  condition: string # Evaluate this condition expression to determine whether to run this stage.
  variables: variables | [ variable ] # Stage-specific variables.
  jobs: [ job | deployment | template ] # Jobs which make up the stage.
  lockBehavior: sequential | runLatest # Behavior lock requests from this stage should exhibit in relation to other exclusive lock requests.
  trigger: manual | automatic # Stage trigger manual or automatic (default).
  isSkippable: boolean # Setting false prevents the stage from being skipped. By default it's always true.
  templateContext: # Stage related information passed from a pipeline when extending a template.
stages:
- stage: string # Required as first property. ID of the stage.
  displayName: string # Human-readable name for the stage.
  pool: string | pool # Pool where jobs in this stage will run unless otherwise specified.
  dependsOn: string | [ string ] # Any stages which must complete before this one.
  condition: string # Evaluate this condition expression to determine whether to run this stage.
  variables: variables | [ variable ] # Stage-specific variables.
  jobs: [ job | deployment | template ] # Jobs which make up the stage.
  lockBehavior: sequential | runLatest # Behavior lock requests from this stage should exhibit in relation to other exclusive lock requests.
  templateContext: # Stage related information passed from a pipeline when extending a template.
stages:
- stage: string # Required as first property. ID of the stage.
  displayName: string # Human-readable name for the stage.
  pool: string | pool # Pool where jobs in this stage will run unless otherwise specified.
  dependsOn: string | [ string ] # Any stages which must complete before this one.
  condition: string # Evaluate this condition expression to determine whether to run this stage.
  variables: variables | [ variable ] # Stage-specific variables.
  jobs: [ job | deployment | template ] # Jobs which make up the stage.

이 정의를 참조하는 정의: 스테이지

속성

stage 문자열입니다. 첫 번째 속성으로 필요합니다.
스테이지의 ID입니다.

displayName 문자열입니다.
스테이지의 사람이 읽을 수 있는 이름입니다.

pool .
달리 지정하지 않는 한 이 단계의 작업이 실행되는 풀입니다.

dependsOn string | 문자열 목록입니다.
이 단계 이전에 완료해야 하는 모든 단계입니다. 기본적으로 단계는 파이프라인에 정의된 순서대로 순차적으로 실행됩니다. 파이프라인의 이전 단계에 의존하지 않아야 하는 경우 스테이지를 지정 dependsOn: [] 합니다.

condition 문자열입니다.
이 조건 식을 평가하여 이 단계를 실행할지 여부를 결정합니다.

변수variables.
단계별 변수입니다.

jobs 작업.
무대를 구성하는 작업.

lockBehavior 문자열입니다.
이 단계의 동작 잠금 요청은 다른 배타적 잠금 요청과 관련하여 표시되어야 합니다. 순차 | runLatest.

trigger 문자열입니다.
단계 트리거 수동 또는 자동(기본값). manual | 자동 번역.

부울.
false를 설정하면 스테이지를 건너뛸 수 없게 됩니다. 기본적으로 항상 true입니다.

templateContext templateContext.
템플릿을 확장할 때 파이프라인에서 전달된 관련 정보를 단계화합니다. 자세한 templateContext내용은 확장 YAML 파이프라인 템플릿을 단계, 작업 및 배포 및 템플릿에 대한 컨텍스트 정보를 전달할 수 있습니다 . templateContext를 사용하여 템플릿에 속성을 전달합니다.

비고

자세한 templateContext내용은 확장 YAML 파이프라인 템플릿을 단계, 작업 및 배포 및 템플릿에 대한 컨텍스트 정보를 전달할 수 있습니다 . templateContext를 사용하여 템플릿에 속성을 전달합니다.

승인 검사 사용하여 스테이지 실행 시기를 수동으로 제어합니다. 이러한 검사는 일반적으로 프로덕션 환경에 대한 배포를 제어하는 데 사용됩니다.

검사는 리소스 소유자사용할 수 있는 메커니즘입니다. 파이프라인의 단계에서 리소스를 사용하는 시기를 제어합니다. 환경과 같은 리소스의 소유자로서 리소스를 사용하는 단계를 시작하기 전에 필요한 검사를 정의할 수 있습니다.

현재 수동 승인 검사는 환경에서 지원됩니다. 자세한 내용은 승인을 참조 하세요.

배타적 잠금

YAML 파이프라인에서 검사는 보호된 리소스의 단계 실행을 제어하는 데 사용됩니다. 사용할 수 있는 일반적인 검사 중 하나는 배타적 잠금 검사입니다. 이 검사를 통해 파이프라인에서 한 번만 실행할 수 있습니다. 여러 실행이 동시에 환경에 배포하려고 하면 검사는 모든 이전 실행을 취소하고 최신 실행을 배포할 수 있도록 허용합니다.

다음 두 값이 있는 속성을 사용하여 lockBehavior 배타적 잠금 검사의 동작을 구성할 수 있습니다.

  • runLatest - 최신 실행만 리소스에 대한 잠금을 획득합니다. 이 값은 지정되지 않은 lockBehavior 경우 기본값입니다.
  • sequential - 모든 실행은 보호된 리소스에 대한 잠금을 순차적으로 획득합니다.

이전 실행 취소는 릴리스가 누적되고 이전 실행의 모든 코드 변경 내용을 포함하는 경우 좋은 방법입니다. 그러나 코드 변경 내용이 누적되지 않는 일부 파이프라인이 있습니다. 속성을 구성 lockBehavior 하여 모든 실행이 환경에 순차적으로 진행 및 배포되도록 허용하거나 이전 실행을 취소하고 최신 실행만 허용하는 이전 동작을 유지하도록 선택할 수 있습니다. 값 sequential 은 모든 실행이 보호된 리소스에 대한 잠금을 순차적으로 획득한다는 것을 의미합니다. 값 runLatest 은 최신 실행만 리소스에 대한 잠금을 획득한다는 것을 의미합니다.

배포에서 sequential 배타적 잠금 검사를 사용하거나 runLatest다음 단계를 수행합니다.

  1. 환경(또는 다른 보호된 리소스)에서 배타적 잠금 검사를 사용하도록 설정합니다.
  2. 파이프라인에 대한 YAML 파일에서 라는 lockBehavior새 속성을 지정합니다. 전체 파이프라인 또는 지정된 단계에 대해 지정할 수 있습니다.

스테이지에서 설정:

stages:
- stage: A
  lockBehavior: sequential
  jobs:
  - job: Job
    steps:
    - script: Hey!

파이프라인에서 설정:

lockBehavior: runLatest
stages:
- stage: A
  jobs:
  - job: Job
    steps:
    - script: Hey!

스테이지 수준에서 배타적 잠금

일부 사용 사례에서는 파이프라인이 지정된 시간에 한 번만 특정 리소스에 액세스해야 합니다. 이 경우를 지원하기 위해 이전 섹션에서 설명한 배타적 잠금 검사가 있습니다.

파이프라인 실행이 언제든지 스테이지에 액세스해야 하는 경우에도 비슷한 상황이 발생합니다. 예를 들어 Azure 리소스 그룹에 배포하는 단계가 있는 경우 여러 파이프라인 실행이 동일한 리소스 그룹을 동시에 업데이트하지 못하도록 방지할 수 있습니다. 현재 이를 달성하려면 환경과 같은 프록시 리소스를 사용하고 해당 환경에 대한 배타적 잠금 검사를 수행해야 합니다. 이 방법은 시간이 많이 걸리고, 복잡성을 더하고, 유지 관리 작업을 늘릴 수 있습니다.

한 번에 하나의 파이프라인 실행만 스테이지에 액세스할 수 있도록 해야 하는 경우 스테이지 수준에서 배타적 잠금을 지정할 수 있습니다. ID가 있는 스테이지가 있고 해당 lockBehavior 속성을 지정하면 해당 스테이지에 대해 잠금이 자동으로 만들어집니다. 순차적 동작은 리소스 수준 및 단계 수준 잠금 모두에 대해 일관성을 유지합니다. 그러나 파이프라인의 runLatest 모든 분기가 아닌 동일한 분기에 대한 빌드만 취소 runLatest 하므로 동작은 다릅니다.

예시

이 예제에서는 세 단계를 차례로 실행합니다. 중간 단계에서는 두 개의 작업을 병렬로 실행합니다.

stages:
- stage: Build
  jobs:
  - job: BuildJob
    steps:
    - script: echo Building!
- stage: Test
  jobs:
  - job: TestOnWindows
    steps:
    - script: echo Testing on Windows!
  - job: TestOnLinux
    steps:
    - script: echo Testing on Linux!
- stage: Deploy
  jobs:
  - job: Deploy
    steps:
    - script: echo Deploying the code!

이 예제에서는 두 단계를 병렬로 실행합니다. 간단히 하기 위해 작업 및 단계는 생략됩니다.

stages:
- stage: BuildWin
  displayName: Build for Windows
- stage: BuildMac
  displayName: Build for Mac
  dependsOn: [] # by specifying an empty array, this stage doesn't depend on the stage before it

참고하십시오

단계, 조건변수대해 자세히 알아봅니다.