jobs.deployment.strategy.runOnce 定義
runOnce 配置戦略では、各手順を 1 回実行して変更をロールアウトします。
runOnce:
preDeploy: # Pre deploy hook for runOnce deployment strategy.
steps: [ task | script | powershell | pwsh | bash | checkout | download | downloadBuild | getPackage | publish | template | reviewApp ] # A list of steps to run.
pool: string | pool # Pool where pre deploy steps will run.
deploy: # Deploy hook for runOnce deployment strategy.
steps: [ task | script | powershell | pwsh | bash | checkout | download | downloadBuild | getPackage | publish | template | reviewApp ] # A list of steps to run.
pool: string | pool # Pool where deploy steps will run.
routeTraffic: # Route traffic hook for runOnce deployment strategy.
steps: [ task | script | powershell | pwsh | bash | checkout | download | downloadBuild | getPackage | publish | template | reviewApp ] # A list of steps to run.
pool: string | pool # Pool where route traffic steps will run.
postRouteTraffic: # Post route traffic hook for runOnce deployment strategy.
steps: [ task | script | powershell | pwsh | bash | checkout | download | downloadBuild | getPackage | publish | template | reviewApp ] # A list of steps to run.
pool: string | pool # Pool where post route traffic steps will run.
on: # On success or failure hook for runOnce deployment strategy.
failure: # Runs on failure of any step.
steps: [ task | script | powershell | pwsh | bash | checkout | download | downloadBuild | getPackage | publish | template | reviewApp ] # A list of steps to run.
pool: string | pool # Pool where post on failure steps will run.
success: # Runs on success of all of the steps.
steps: [ task | script | powershell | pwsh | bash | checkout | download | downloadBuild | getPackage | publish | template | reviewApp ] # A list of steps to run.
pool: string | pool # Pool where on success steps will run.
この定義を参照する定義: jobs.deployment.strategy
プロパティ
preDeploy
preDeployHook。
runOnce 配置戦略の事前配置フック。
deploy
deployHook。
runOnce 配置戦略の配置フック。
routeTraffic
routeTrafficHook。
runOnce 配置戦略のトラフィック フックをルーティングします。
postRouteTraffic
postRouteTrafficHook。
runOnce 配置戦略のルート トラフィック フックをポストします。
on
onSuccessOrFailureHook。
runOnce 配置戦略の成功または失敗フック。
解説
runOnce
は最も簡単なデプロイ方法であり、すべてのライフ サイクル フック (つまり、preDeploy
deploy
、routeTraffic
、postRouteTraffic
) が 1 回実行されます。 その後、on:
success
または on:
failure
が実行されます。
ライフサイクル フックの説明
preDeploy
: アプリケーションのデプロイが開始される前にリソースを初期化するステップを実行するために使用されます。
deploy
: アプリケーションをデプロイするステップを実行するために使用されます。 ダウンロード成果物タスクは、デプロイ ジョブの deploy
フックにのみ自動挿入されます。 成果物のダウンロードを停止するには、- download: none
を使用するか、パイプライン成果物のダウンロード タスクを指定して、ダウンロードする特定の成果物を選択します。
routeTraffic
: 更新されたバージョンへのトラフィックを処理するステップを実行するために使用されます。
postRouteTraffic
: トラフィックのルーティング後にステップを実行するために使用されます。 通常、これらのタスクは、定義された間隔で、更新されたバージョンの正常性を監視します。
on: failure
または on: success
: ロールバック アクションまたはクリーンアップのステップを実行するために使用されます。
例
次の YAML スニペットの例では、デプロイ戦略を使用してデプロイ ジョブを簡単に使用する方法を runOnce
示します。 この例には、チェックアウト ステップが含まれています。
jobs:
# Track deployments on the environment.
- deployment: DeployWeb
displayName: deploy Web App
pool:
vmImage: ubuntu-latest
# Creates an environment if it doesn't exist.
environment: 'smarthotel-dev'
strategy:
runOnce:
deploy:
steps:
- checkout: self
- script: echo my first deployment
このジョブを実行するたびに、smarthotel-dev
環境に対してデプロイ履歴が記録されます。
注意
- 前述の例に示すように、空のリソースを含む環境を作成し、それを抽象シェルとして使用してデプロイ履歴を記録することもできます。
次の例では、デプロイ ジョブのターゲットとして使用される環境とリソースの両方をパイプラインでどのように参照できるかを示します。
jobs:
- deployment: DeployWeb
displayName: deploy Web App
pool:
vmImage: ubuntu-latest
# Records deployment against bookings resource - Kubernetes namespace.
environment: 'smarthotel-dev.bookings'
strategy:
runOnce:
deploy:
steps:
# No need to explicitly pass the connection details.
- task: KubernetesManifest@0
displayName: Deploy to Kubernetes cluster
inputs:
action: deploy
namespace: $(k8sNamespace)
manifests: |
$(System.ArtifactsDirectory)/manifests/*
imagePullSecrets: |
$(imagePullSecret)
containers: |
$(containerRegistry)/$(imageRepository):$(tag)
この方法には次の利点があります。
- 環境内のすべてのリソースの履歴を記録するのではなく、環境内の特定のリソースのデプロイ履歴を記録します。
- デプロイ ジョブのステップでは、デプロイ ジョブが環境にリンクされているため、リソースの接続の詳細 (この場合は Kubernetes 名前空間、
smarthotel-dev.bookings
) が自動的に継承されます。 これは、ジョブの複数のステップで同じ接続の詳細が設定されている場合に便利です。