我正在为我们的网站创建构建/部署脚本。我们的流程目前有点复杂,因为它需要使用webconfig设置启动网站以更新我们的架构。然后我们关闭网站,更改webconfig不再更新架构,我们再次启动它。
由于任务的重复性,我们的-taskList多次执行任务。
例如。
Invoke-Psake (Join-Path $env:currentDir "\tasks\iis_app_deploy.ps1") `
-taskList ValidateProperties,StopApplicationPool,<random stuff>,StartApplicationPool,StopApplicationPool,StartApplicationPool,PutBackInLoadBalancer
在此任务列表中,每个任务只会被执行一次和一次。有没有办法指定psake运行任务而不检查它们之前是否运行过?
答案 0 :(得分:1)
我找到了自己问题的答案。的嵌套强>
这些是步骤;
这是一个示例代码;
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
}