2

ウェブサイトのビルド/デプロイ スクリプトを作成しています。スキーマを更新するには、webconfig セットアップで Web サイトを開始する必要があるため、現在のプロセスは少し複雑です。次に、サイトをオフにし、スキーマを更新しないように webconfig を変更して、もう一度開始します。

タスクの反復性のため、-taskList のいくつかのタスクが 2 回以上あります。

例えば。

Invoke-Psake (Join-Path $env:currentDir "\tasks\iis_app_deploy.ps1") `
-taskList ValidateProperties,StopApplicationPool,<random stuff>,StartApplicationPool,StopApplicationPool,StartApplicationPool,PutBackInLoadBalancer

このタスク リストでは、各タスクが一度だけ実行されます。以前に実行されたかどうかを確認せずにタスクを実行するように psake を指定する方法はありますか?

4

1 に答える 1

1

私は自分自身の質問に対する答えを見つけました。ネスティング

以上が手順でした。

  1. 展開プロセスをより小さなステップ (私の場合は 2 つ) にまとめます
  2. ラッパー タスクを作成する
  3. それらで Invoke-Psake を使用して動作させます。

これはサンプル コードです。

task BackendDeployment -depends     ValidateProperties{
    # Deploy and update schema
    $self = Join-Path ($env:scriptPath) "tasks\iis_app_deploy.ps1"
    Write-Output "Running schema changes"
    Invoke-Psake $self  -TaskList   StopApplicationPool,`
                                    MSDeploy,`
                                    CopyLicenses,`
                                    CopyConfigs,`
                                    UpdateConfigForSchemaChanges,`
                                    StartApplicationPool,`
                                    WarmUpApplications, `
                                    WaitForAction `
                        -properties $properties
    Write-Output "Running final deployment"
    Invoke-Psake $self -TaskList    StopApplicationPool,`
                                    CopyConfigs,`
                                    StartApplicationPool,`
                                    WarmUpApplications `
                        -properties $properties
}
于 2014-07-01T01:17:37.957 に答える