diff --git a/.azure-pipelines/PipelineSteps/BatchGeneration/analyse-modules.ps1 b/.azure-pipelines/PipelineSteps/BatchGeneration/analyse-modules.ps1 index 16c4bf3b168f..4c756288be7e 100644 --- a/.azure-pipelines/PipelineSteps/BatchGeneration/analyse-modules.ps1 +++ b/.azure-pipelines/PipelineSteps/BatchGeneration/analyse-modules.ps1 @@ -82,9 +82,10 @@ foreach ($moduleName in $moduleGroup) { $result.Status = "Failed" $result.Error = $_.Exception.Message } finally { - $endTine = Get-Date - $result.DurationSeconds = ($endTine - $startTime).TotalSeconds + $endTime = Get-Date + $result.DurationSeconds = ($endTime - $startTime).TotalSeconds $results += $result + $result | ConvertTo-Json -Depth 5 | Write-Output } } diff --git a/.azure-pipelines/PipelineSteps/BatchGeneration/batch-generate-modules.ps1 b/.azure-pipelines/PipelineSteps/BatchGeneration/batch-generate-modules.ps1 index dbf33bd6bb3d..1c090da46034 100644 --- a/.azure-pipelines/PipelineSteps/BatchGeneration/batch-generate-modules.ps1 +++ b/.azure-pipelines/PipelineSteps/BatchGeneration/batch-generate-modules.ps1 @@ -113,6 +113,7 @@ foreach ($moduleName in $sortedModuleNames) { $moduleEndTime = Get-Date $moduleResult.DurationSeconds = ($moduleEndTime - $moduleStartTime).TotalSeconds $results += $moduleResult + $moduleResult | ConvertTo-Json -Depth 5 | Write-Output } $ArtifactOutputDir = Join-Path $RepoRoot "artifacts" diff --git a/.azure-pipelines/PipelineSteps/BatchGeneration/build-modules.ps1 b/.azure-pipelines/PipelineSteps/BatchGeneration/build-modules.ps1 index ca212b900b2e..927390653015 100644 --- a/.azure-pipelines/PipelineSteps/BatchGeneration/build-modules.ps1 +++ b/.azure-pipelines/PipelineSteps/BatchGeneration/build-modules.ps1 @@ -30,9 +30,10 @@ foreach ($moduleName in $moduleGroup) { $result.Status = "Failed" $result.Error = $_.Exception.Message } finally { - $endTine = Get-Date - $result.DurationSeconds = ($endTine - $startTime).TotalSeconds + $endTime = Get-Date + $result.DurationSeconds = ($endTime - $startTime).TotalSeconds $results += $result + $result | ConvertTo-Json -Depth 5 | Write-Output } } diff --git a/.azure-pipelines/PipelineSteps/BatchGeneration/filter.ps1 b/.azure-pipelines/PipelineSteps/BatchGeneration/filter.ps1 index ec3d85208ecf..e18619e7976e 100644 --- a/.azure-pipelines/PipelineSteps/BatchGeneration/filter.ps1 +++ b/.azure-pipelines/PipelineSteps/BatchGeneration/filter.ps1 @@ -33,11 +33,11 @@ if ($env:RUN_TEST_ON_ALL_MODULES -eq "True") { } else { Write-Host "Run test on generated folder changed modules" - # Only generated filder change should trigger the test + # Only generated folder change should trigger the test for ($i = 0; $i -lt $ChangedFiles.Count; $i++) { - if ($ChangedFiles[$i] -match '^generated/([^/]+)/([^/]+\.autorest)/') { - $moduleName = $Matches[2] - $subModuleName = $Matches[3] + if ($ChangedFiles[$i] -match '^generated/([^/]+)/([^/]+\.Autorest)/') { + $moduleName = $Matches[1] + $subModuleName = $Matches[2] $subModule = "$moduleName/$subModuleName" $changedModulesDict[$moduleName] = $true @@ -63,6 +63,11 @@ foreach ($subModule in $changedSubModules) { Write-Host "##[endgroup]" Write-Host +$changedModulesRecordFile = Join-Path $artifactsDir 'filteredChangedModules.txt' +$changedModules | Set-Content -Path $changedModulesRecordFile -Encoding UTF8 +$changedSubModulesRecordFile = Join-Path $artifactsDir 'filteredChangedSubModules.txt' +$changedSubModules | Set-Content -Path $changedSubModulesRecordFile -Encoding UTF8 + $groupedBuildModules = Group-Modules -Modules $changedModules -MaxParallelJobs $MaxParallelBuildJobs Write-Matrix -GroupedModules $groupedBuildModules -VariableName 'buildTargets' -RepoRoot $RepoRoot diff --git a/.azure-pipelines/PipelineSteps/BatchGeneration/prepare.ps1 b/.azure-pipelines/PipelineSteps/BatchGeneration/prepare.ps1 index a8520e0e9463..716418e62427 100644 --- a/.azure-pipelines/PipelineSteps/BatchGeneration/prepare.ps1 +++ b/.azure-pipelines/PipelineSteps/BatchGeneration/prepare.ps1 @@ -34,14 +34,17 @@ foreach ($moduleGroup in $groupedModules) { $index++ } -$generationTargetsOutputDir = Join-Path $RepoRoot "artifacts" -if (-not (Test-Path -Path $generationTargetsOutputDir)) { - New-Item -ItemType Directory -Path $generationTargetsOutputDir +$artifactsDir = Join-Path $RepoRoot "artifacts" +if (-not (Test-Path -Path $artifactsDir)) { + New-Item -ItemType Directory -Path $artifactsDir } -$generationTargetsOutputFile = Join-Path $generationTargetsOutputDir "generationTargets.json" +$generationTargetsOutputFile = Join-Path $artifactsDir "generationTargets.json" $generationTargets | ConvertTo-Json -Depth 5 | Out-File -FilePath $generationTargetsOutputFile -Encoding utf8 if ($MatrixStr -and $MatrixStr.Length -gt 1) { $MatrixStr = $MatrixStr.Substring(1) } Write-Host "##vso[task.setVariable variable=generationTargets;isOutput=true]{$MatrixStr}" + +$V4ModulesRecordFile = Join-Path $artifactsDir 'preparedV4Modules.txt' +$modules | Set-Content -Path $V4ModulesRecordFile -Encoding UTF8 diff --git a/.azure-pipelines/PipelineSteps/BatchGeneration/test-modules.ps1 b/.azure-pipelines/PipelineSteps/BatchGeneration/test-modules.ps1 index d90f1bc8b9b6..c0f09923ecea 100644 --- a/.azure-pipelines/PipelineSteps/BatchGeneration/test-modules.ps1 +++ b/.azure-pipelines/PipelineSteps/BatchGeneration/test-modules.ps1 @@ -56,6 +56,7 @@ foreach ($subModule in $subModuleGroup) { $endTime = Get-Date $result.DurationSeconds = ($endTime - $startTime).TotalSeconds $results += $result + $result | ConvertTo-Json -Depth 5 | Write-Output } } diff --git a/.azure-pipelines/PipelineSteps/BatchGeneration/util.psm1 b/.azure-pipelines/PipelineSteps/BatchGeneration/util.psm1 index cc39536925ba..f703d10d47f4 100644 --- a/.azure-pipelines/PipelineSteps/BatchGeneration/util.psm1 +++ b/.azure-pipelines/PipelineSteps/BatchGeneration/util.psm1 @@ -66,9 +66,7 @@ function Write-Matrix { [string]$RepoRoot ) - Write-Host "$VariableName module groups: $($GroupedModules.Count)" - $GroupedModules | ForEach-Object { $_ -join ', ' } | ForEach-Object { Write-Host $_ } - + Write-Host "##[group]$VariableName module groups: $($GroupedModules.Count)" $targets = @{} $MatrixStr = "" $index = 0 @@ -76,8 +74,11 @@ function Write-Matrix { $key = ($index + 1).ToString() + "-" + $modules.Count $MatrixStr = "$MatrixStr,'$key':{'MatrixKey':'$key'}" $targets[$key] = $modules + $moduleNamesStr = $modules -join ', ' + Write-Host "$key : $moduleNamesStr" $index++ } + Write-Host "##[endgroup]" if ($MatrixStr -and $MatrixStr.Length -gt 1) { $MatrixStr = $MatrixStr.Substring(1) @@ -91,6 +92,7 @@ function Write-Matrix { } $targetsOutputFile = Join-Path $targetsOutputDir "$VariableName.json" $targets | ConvertTo-Json -Depth 5 | Out-File -FilePath $targetsOutputFile -Encoding utf8 + Write-Host } function Get-Targets {