스테이지, 종속성, & 조건 추가

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

단계는 Azure DevOps 파이프라인의 논리적 경계입니다. 단계를 사용하여 소프트웨어 개발 프로세스에서 작업을 그룹화할 수 있습니다(예: 앱 빌드, 테스트 실행, 사전 프로덕션에 배포). 각 스테이지에는 하나 이상의 작업이 포함됩니다.

파이프라인에서 여러 스테이지를 정의하는 경우 기본적으로 하나씩 실행됩니다. 스테이지는 서로에 따라 달라질 수도 있습니다. 키워드(keyword) 사용하여 dependsOn 종속성을 정의할 수 있습니다. 스테이지는 조건이 있는 이전 단계의 결과에 따라 실행할 수도 있습니다.

단계가 병렬 작업 및 라이선싱에서 작동하는 방식을 알아보려면 병렬 작업 구성 및 비용을 참조 하세요.

단계가 작업과 같은 파이프라인의 다른 부분과 어떻게 관련되는지 알아보려면 주요 파이프라인 개념을 참조 하세요.

또한 YAML 스키마 단계 문서에서 스테이지가 파이프라인의 일부와 어떻게 관련되는지에 대해 자세히 알아볼 수 있습니다.

파이프라인 작업을 단계로 구성할 수 있습니다. 단계는 파이프라인의 주요 부서입니다. 이 앱을 빌드하고, 이러한 테스트를 실행하고, 사전 프로덕션에 배포하는 것이 단계의 좋은 예입니다. 파이프라인을 일시 중지하고 다양한 검사 수행할 수 있는 파이프라인의 논리적 경계입니다.

명시적으로 정의하지 않더라도 모든 파이프라인에는 하나 이상의 단계가 있습니다. 스테이지가 다른 스테이지 앞에 실행되도록 스테이지를 종속성 그래프 정렬할 수도 있습니다. 한 스테이지에는 256개의 작업 제한이 있습니다.

참고 항목

단계에 대한 지원이 Azure DevOps Server 2019.1에 추가되었습니다.

단계 지정

참고 항목

단계에 대한 지원이 Azure DevOps Server 2019.1에 추가되었습니다.

가장 간단한 경우 파이프라인에 논리적 경계가 필요하지 않습니다. 이 경우 키워드(keyword) 명시적으로 사용할 stage 필요가 없습니다. YAML 파일에서 작업을 직접 지정할 수 있습니다.

# this has one implicit stage and one implicit job
pool:
  vmImage: 'ubuntu-latest'
steps:
- bash: echo "Hello world"
# this pipeline has one implicit stage
jobs:
- job: A
  steps:
  - bash: echo "A"

- job: B
  steps:
  - bash: echo "B"

파이프라인을 여러 단계로 구성하는 경우 키워드(keyword) 사용합니다 stages .

stages:
- stage: A
  jobs:
  - job: A1
  - job: A2

- stage: B
  jobs:
  - job: B1
  - job: B2

단계 수준에서 지정 pool 하도록 선택한 경우 해당 단계에서 정의된 모든 작업은 작업 수준에서 지정하지 않는 한 해당 풀을 사용합니다.

참고 항목

Azure DevOps Server 2019에서 풀은 작업 수준에서만 지정할 수 있습니다.

stages:
- stage: A
  pool: StageAPool
  jobs:
  - job: A1 # will run on "StageAPool" pool based on the pool defined on the stage
  - job: A2 # will run on "JobPool" pool
    pool: JobPool

스테이지를 지정하는 전체 구문은 다음과 같습니다.

stages:
- stage: string  # name of the stage, A-Z, a-z, 0-9, and underscore
  displayName: string  # friendly name to display in the UI
  dependsOn: string | [ string ]
  condition: string
  pool: string | pool
  variables: { string: string } | [ variable | variableReference ] 
  jobs: [ job | templateReference]

종속성 지정

참고 항목

단계에 대한 지원이 Azure DevOps Server 2019.1에 추가되었습니다.

파이프라인에서 여러 단계를 정의하는 경우 기본적으로 YAML 파일에서 정의하는 순서대로 순차적으로 실행됩니다. 종속성을 추가하는 경우는 예외입니다. 종속성을 사용하면 dependsOn 요구 사항의 순서대로 단계가 실행됩니다.

파이프라인에는 종속성이 없는 스테이지가 하나 이상 포함되어야 합니다.

여러 단계 및 해당 종속성을 정의하는 구문은 다음과 같습니다.

stages:
- stage: string
  dependsOn: string
  condition: string

순차적으로 실행되는 예제 단계:

# if you do not use a dependsOn keyword, stages run in the order they are defined
stages:
- stage: QA
  jobs:
  - job:
    ...

- stage: Prod
  jobs:
  - job:
    ...

병렬로 실행되는 예제 단계:

stages:
- stage: FunctionalTest
  jobs:
  - job:
    ...

- stage: AcceptanceTest
  dependsOn: []    # this removes the implicit dependency on previous stage and causes this to run in parallel
  jobs:
  - job:
    ...

팬아웃 및 팬인의 예:

stages:
- stage: Test

- stage: DeployUS1
  dependsOn: Test    # this stage runs after Test

- stage: DeployUS2
  dependsOn: Test    # this stage runs in parallel with DeployUS1, after Test

- stage: DeployEurope
  dependsOn:         # this stage runs after DeployUS1 and DeployUS2
  - DeployUS1
  - DeployUS2

조건 정의

각 단계가 식을 사용하여 실행되는 조건을 지정할 수 있습니다. 기본적으로 스테이지는 다른 스테이지에 의존하지 않거나 스테이지가 의존하는 모든 단계가 완료되고 성공했는지 여부에 따라 실행됩니다. 이전 단계가 실패하더라도 스테이지를 강제로 실행하거나 사용자 지정 조건을 지정하여 이 동작을 사용자 지정할 수 있습니다.

스테이지에 대한 이전 단계의 기본 조건을 사용자 지정하는 경우 완료 및 성공 조건을 제거합니다. 따라서 사용자 지정 조건을 사용하는 경우 이전 단계가 성공적으로 실행되었는지 여부를 검사 데 일반적으로 사용합니다and(succeeded(),custom_condition). 그렇지 않으면 이전 단계의 결과에 관계없이 스테이지가 실행됩니다.

참고 항목

다음 예제와 같이 실패('JOBNAME/STAGENAME') 및 성공('JOBNAME/STAGENAME')에 대한 조건은 YAML 파이프라인에 대해서만 작동합니다.

참고 항목

단계에 대한 지원이 Azure DevOps Server 2019.1에 추가되었습니다.

이전 단계를 실행하는 상태 따라 스테이지를 실행하는 예제:

stages:
- stage: A

# stage B runs if A fails
- stage: B
  condition: failed()

# stage C runs if B succeeds
- stage: C
  dependsOn:
  - A
  - B
  condition: succeeded('B')

사용자 지정 조건 사용 예:

stages:
- stage: A

- stage: B
  condition: and(succeeded(), eq(variables['build.sourceBranch'], 'refs/heads/main'))

큐 정책 지정

YAML 파이프라인은 큐 정책을 지원하지 않습니다. 파이프라인의 각 실행은 독립적이며 다른 실행을 인식하지 못합니다. 즉, 두 개의 연속 커밋은 두 개의 파이프라인을 트리거할 수 있으며, 둘 다 서로를 기다리지 않고 동일한 단계 시퀀스를 실행합니다. YAML 파이프라인에 큐 정책을 제공하기 위해 노력하고 있지만, 중요한 경우 수동으로 순서를 지정하고 실행을 제어하기 위해 수동 승인을 사용하는 것이 좋습니다.

승인 지정

승인 검사 사용하여 스테이지가 실행되는 시기를 수동으로 제어할 수 있습니다. 일반적으로 프로덕션 환경에 대한 배포를 제어하는 데 사용됩니다. 검사는 파이프라인의 단계가 리소스를 사용할 수 있는지와 시기를 제어하기 위해 리소스 소유자가 사용할 수 있는 메커니즘입니다. 환경과 같은 리소스의 소유자로서 해당 리소스를 사용하는 스테이지를 시작하기 전에 충족해야 하는 검사 정의할 수 있습니다.

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

승인 이 버전의 Azure DevOps Server의 YAML 파이프라인에서 아직 지원되지 않습니다.