Parallel dotnet build process.

it's working 2m 24s instead of 3m 48s (sequential execution)
theis only one problem... write-host not working inside the workflow
This commit is contained in:
Igor Sychev 2017-09-02 14:14:33 +03:00
parent 0d0b812e99
commit 5b90e1efe4

View File

@ -8,6 +8,9 @@ if ([string]::IsNullOrEmpty($rootPath)) {
} }
Write-Host "Root path used is $rootPath" -ForegroundColor Yellow Write-Host "Root path used is $rootPath" -ForegroundColor Yellow
workflow BuildAndPublish {
param ([string] $rootPath
)
$projectPaths = $projectPaths =
@{Path="$rootPath\src\Web\WebMVC";Prj="WebMVC.csproj"}, @{Path="$rootPath\src\Web\WebMVC";Prj="WebMVC.csproj"},
@{Path="$rootPath\src\Web\WebSPA";Prj="WebSPA.csproj"}, @{Path="$rootPath\src\Web\WebSPA";Prj="WebSPA.csproj"},
@ -21,19 +24,20 @@ $projectPaths =
@{Path="$rootPath\src\Services\Payment\Payment.API";Prj="Payment.API.csproj"}, @{Path="$rootPath\src\Services\Payment\Payment.API";Prj="Payment.API.csproj"},
@{Path="$rootPath\src\Web\WebStatus";Prj="WebStatus.csproj"} @{Path="$rootPath\src\Web\WebStatus";Prj="WebStatus.csproj"}
$projectPaths | foreach { foreach -parallel ($item in $projectPaths) {
$projectPath = $_.Path $projectPath = $item.Path
$projectFile = $_.Prj $projectFile = $item.Prj
$outPath = $_.Path + "\obj\Docker\publish" $outPath = $item.Path + "\obj\Docker\publish"
$projectPathAndFile = "$projectPath\$projectFile" $projectPathAndFile = "$projectPath\$projectFile"
Write-Host "Deleting old publish files in $outPath" -ForegroundColor Yellow #Write-Host "Deleting old publish files in $outPath" -ForegroundColor Yellow
remove-item -path $outPath -Force -Recurse -ErrorAction SilentlyContinue remove-item -path $outPath -Force -Recurse -ErrorAction SilentlyContinue
Write-Host "Publishing $projectPathAndFile to $outPath" -ForegroundColor Yellow #Write-Host "Publishing $projectPathAndFile to $outPath" -ForegroundColor Yellow
dotnet restore $projectPathAndFile
dotnet build $projectPathAndFile dotnet build $projectPathAndFile
dotnet publish $projectPathAndFile -o $outPath dotnet publish $projectPathAndFile -o $outPath
}
} }
BuildAndPublish $rootPath
######################################################################################## ########################################################################################
# Delete old eShop Docker images # Delete old eShop Docker images