Implement automatic deployment through windows task.
Add-PsSnapin Microsoft.SharePoint.PowerShell
$today = Get-Date
$targetDir = $today.ToString("yyyyMMdd")
$executeDir = "folder path"
$executeDir += $targetDir + "\"
$webURL = "http://server"
$subject = "Automatic Deployment Finished."
$tos = "xxx@xx"
$body = "Solutions deploy successfully.<br/>"
$errorMsg = ""
$sendingEmail = $true
if((Test-Path $executeDir) -eq $true){
$ps1s = Get-ChildItem -Path ($executeDir + "*.ps1")
if($ps1s.Count -gt 0){
foreach($ps1 in $ps1s){
Invoke-Expression ($executeDir + $ps1.Name)
}
$deployingWSPs = GET-SPSolution | Where-Object {$_.JobExists -eq $true}
While($deployingWSPs -ne $null -and $deployingWSPs.Count -gt 0){
Start-Sleep -Seconds 600
$deployingWSPs = GET-SPSolution | Where-Object {$_.JobExists -eq $true}
}
$deployingWSPs = GET-SPSolution | Where-Object {$_.Deployed -eq $true -and ($_.LastOperationEndTime - $today).Days -eq 0 -and $_.LastOperationResult.ToString() -like "*Failed*" }
if($deployingWSPs -ne $null -and $deployingWSPs.Count -gt 0){
$errorMsg += "Exception occur during deployment, please check in CA.<br/>"
}
if($error.Count -gt 0){
$errorMsg += "Exception occure during parse command.<br/>"
$errorMsg += $error[$error.Count - 1].Exception.Message
}
if($sendingEmail -eq $true){
$web = Get-SPWeb $webURL
if($errorMsg.Length -gt 0){
$body = $errorMsg
}
[Microsoft.SharePoint.Utilities.SPUtility]::SendEmail($web, $true, $false, $tos, $subject, $body)
$web.Dispose()
}
}
}
exit