次の方法で共有


stages.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 |文字列リスト。
このステージの前に完了する必要があるステージ。 既定では、ステージはパイプラインで定義された順序で順番に実行されます。 パイプラインの前のステージに依存しないステージの dependsOn: [] を指定します。

condition 文字列。
この条件式を評価して、このステージを実行するかどうかを決定します。

variables 変数
ステージ固有の変数を します。

ジョブjobsします。
ステージを構成するジョブを します。

lockBehavior 文字列。
このステージからの動作ロック要求は、他の排他的ロック要求に関連して示す必要があります。 sequential |runLatest。

trigger 文字列。
ステージ トリガーの手動または自動 (既定)。 manual |自動。

ブールisSkippableします。
false を設定すると、ステージがスキップされなくなります。 既定では常に true です。

templateContext を templateContext します。
テンプレートを拡張するときにパイプラインから渡されるステージ関連情報。 templateContextの詳細については、「拡張 YAML パイプライン テンプレート 、ステージ、ジョブ、デプロイのコンテキスト情報を渡す および テンプレートを使用する - templateContext を使用して、のテンプレートにプロパティを渡す」を参照してください。

注釈

templateContextの詳細については、「拡張 YAML パイプライン テンプレート 、ステージ、ジョブ、デプロイのコンテキスト情報を渡す および テンプレートを使用する - templateContext を使用して、のテンプレートにプロパティを渡す」を参照してください。

承認チェック を使用して、ステージを実行するタイミングを手動で制御します。 これらのチェックは一般に、運用環境へのデプロイを制御するために使用されます。

チェックは、リソース所有者が使用できるメカニズムです。 これは、パイプライン内のステージがリソースをいつ消費するかを制御します。 環境のようなリソースの所有者として、リソースを使用するステージを開始する前に必要なチェックを定義できます。

現在、手動承認チェックは、環境でサポートされています。 詳細については、「承認」を参照してください。

排他ロック

YAML パイプラインでは、チェックを使用して、保護されたリソース ステージの実行を制御します。 使用できる一般的なチェックの 1 つは、排他ロック チェックです。 このチェックにより、パイプラインからの 1 回の実行のみが続行されます。 複数の実行が同時に環境にデプロイしようとすると、チェックによってすべての古い実行が取り消され、最新の実行のデプロイが許可されます。

排他ロック チェックの動作は、次の 2 つの値を持つ 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!

ステージ レベルでの排他ロック

一部のユース ケースでは、パイプラインが特定のリソースに一度に 1 回だけアクセスする必要があります。 このケースをサポートするために、前のセクションで説明した排他ロック チェックがあります。

同様の状況は、ある時点で 1 つのステージにアクセスする必要があるパイプライン実行が 1 つだけの場合に発生します。 たとえば、Azure リソース グループにデプロイするステージがある場合は、複数のパイプライン実行で同じリソース グループが同時に更新されないようにすることができます。 現時点では、これを実現するには、環境などのプロキシ リソースを使用し、その環境に排他ロック チェックを配置する必要があります。 この方法では、時間がかかり、複雑さが増し、メンテナンス作業が増える可能性があります。

一度に 1 つのパイプライン実行のみがステージにアクセスできるようにする必要がある場合は、ステージ レベルで排他ロックを指定できます。 ID を持つステージがあり、その lockBehavior プロパティを指定すると、そのステージに対してロックが自動的に作成されます。 シーケンシャル動作は、リソース レベルとステージ レベルのロックの両方で一貫しています。 ただし、runLatest の動作は異なります。これは、パイプラインのすべてのブランチではなく、同じブランチのビルド runLatest 取り消すだけなので異なります。

例示

次の例では、3 つのステージを 1 つずつ実行します。 中央のステージでは、2 つのジョブが並列で実行されます。

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!

この例では、2 つのステージを並列で実行します。 簡潔にするために、ジョブとステップは省略されます。

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

こちらもご覧ください

ステージ、条件、および変数 について詳しく説明します。