ステージは、関連するジョブのコレクションです。 既定では、ステージは順番に実行されます。 各ステージは、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
で排他ロック チェックを使用するには、次の手順に従います。
- 環境 (または別の保護されたリソース) で排他ロック チェックを有効にします。
- パイプラインの 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
こちらもご覧ください
ステージ、条件、および変数 について詳しく説明します。