diff --git a/eng/scripts/build.ps1 b/eng/scripts/build.ps1 index e7bf326e2f2d..6b909c593505 100644 --- a/eng/scripts/build.ps1 +++ b/eng/scripts/build.ps1 @@ -1,12 +1,20 @@ #Requires -Version 7.0 -param($filter, [switch]$vet, [switch]$generate, [switch]$skipBuild, $parallel = 5) +param($filter, [switch]$clean, [switch]$vet, [switch]$generate, [switch]$skipBuild) +$startingDirectory = Get-Location +$root = Resolve-Path ($PSScriptRoot + "/../..") +Set-Location $root $sdks = @{}; foreach ($sdk in (./eng/scripts/get_module_dirs.ps1 -serviceDir 'sdk/...')) { $name = $sdk | split-path -leaf $sdks[$name] = @{ - 'path' = $sdk; + 'path' = $sdk; + 'clean' = $clean; + 'vet' = $vet; + 'generate' = $generate; + 'skipBuild' = $skipBuild; + 'root' = $root; } } @@ -16,19 +24,33 @@ if (![string]::IsNullOrWhiteSpace($filter)) { $keys = $keys.Where( { $_ -match $filter }) } -$keys | ForEach-Object { $sdks[$_] } | ForEach-Object -Parallel { +$keys | ForEach-Object { $sdks[$_] } | ForEach-Object { Push-Location $_.path - if (!$skipBuild) { + if ($_.clean) { + Write-Host "##[command]Executing go clean -v ./... in " $_.path + go clean -v ./... + } + + if ($_.generate) { + Write-Host "##[command]Executing autorest.go in " $_.path + $autorestPath = $_.path + "\autorest.md" + $autorestVersion = "@autorest/go@4.0.0-preview.23" + $outputFolder = $_.path + $root = $_.root + autorest --use=$autorestVersion --go --track2 --go-sdk-folder=$root --output-folder=$outputFolder --file-prefix="zz_generated_" --clear-output-folder=false $autorestPath + } + if (!$_.skipBuild) { Write-Host "##[command]Executing go build -v ./... in " $_.path - go build -v ./... + go build -x -v ./... + Write-Host "##[command]Build Complete!" + } - if ($vet) { + if ($_.vet) { Write-Host "##[command]Executing go vet ./... in " $_.path go vet ./... } - if ($generate) { - Write-Host "##[command]Executing autorest.go in " $_.path - # TODO - } -} -ThrottleLimit $parallel + Pop-Location +} + +Set-Location $startingDirectory