@@ -4,43 +4,13 @@ param (
4
4
[int ]$MaxParallelJobs = 3
5
5
)
6
6
7
- $srcPath = Join-Path $RepoRoot ' src'
8
- function Get-SubModuleWithAutorestV4 {
9
- param (
10
- [string ]$srcPath
11
- )
12
-
13
- $result = @ {}
14
-
15
- Get-ChildItem - Path $srcPath - Directory | ForEach-Object {
16
- $module = $_
17
-
18
- Get-ChildItem - Path $module.FullName - Directory | Where-Object {
19
- $_.Name -like ' *.autorest'
20
- } | ForEach-Object {
21
- $subModule = $_
22
-
23
- $readmePath = Join-Path $subModule.FullName ' README.md'
7
+ $utilFilePath = Join-Path $RepoRoot ' .azure-pipelines' ' PipelineSteps' ' BatchGeneration' ' util.psm1'
8
+ Import-Module $utilFilePath - Force
24
9
25
- if (Test-Path $readmePath ) {
26
- $readmeContent = Get-Content - Path $readmePath - Raw
27
-
28
- if ($readmeContent -notmatch ' use-extension:\s+"@autorest/powershell":\s+"3.x"' ) {
29
- if ($result.ContainsKey ($module.Name )) {
30
- $result [$module.Name ] += $subModule.Name
31
- } else {
32
- $result [$module.Name ] = @ ($subModule.Name )
33
- }
34
- }
35
- }
36
- }
37
- }
38
-
39
- return $result
40
- }
10
+ $srcPath = Join-Path $RepoRoot ' src'
41
11
# TODO(Bernard): Use real function after test
42
- # $modules = Get-SubModuleWithAutorestV4 -srcPath $srcPath
43
- $modules = @ {
12
+ # $moduleMap = Get-AutorestV4ModuleMap -srcPath $srcPath
13
+ $moduleMap = @ {
44
14
" DeviceRegistry" = @ (" DeviceRegistry.Autorest" )
45
15
" ArcGateway" = @ (" ArcGateway.Autorest" )
46
16
" Chaos" = @ (" Chaos.Autorest" )
@@ -49,68 +19,40 @@ $modules = @{
49
19
" Astro" = @ (" Astro.Autorest" )
50
20
" ImageBuilder" = @ (" ImageBuilder.Autorest" )
51
21
}
52
- $modules = $modules.GetEnumerator () | ForEach-Object {
53
- [PSCustomObject ]@ {
54
- ModuleName = $_.Key
55
- SubModules = ($_.Value | Sort-Object )
56
- }
57
- } | Sort-Object - Property ModuleName
58
22
59
- Write-Host " Total matched modules: $ ( $modules.Count ) "
60
-
61
- function Group-Modules {
62
- param (
63
- [array ]$modules ,
64
- [int ]$maxParallelJobs
65
- )
66
-
67
- $count = $modules.Count
68
- $n = [Math ]::Min($count , $maxParallelJobs )
69
- if ($n -eq 0 ) {
70
- return @ ()
71
- }
72
-
73
- $result = @ ()
74
- $sizePerGroup = [Math ]::Ceiling($count / $n )
75
-
76
- for ($i = 0 ; $i -lt $count ; $i += $sizePerGroup ) {
77
- $group = $modules [$i .. ([Math ]::Min($i + $sizePerGroup - 1 , $count - 1 ))]
78
- $result += , $group
79
- }
80
-
81
- return $result
82
- }
23
+ Write-Host " Total matched modules: $ ( $moduleMap.Count ) "
83
24
25
+ $modules = @ ($moduleMap.Keys | Sort-Object )
84
26
$groupedModules = Group-Modules - modules $modules - maxParallelJobs $MaxParallelJobs
85
27
Write-Host " Total module groups: $ ( $groupedModules.Count ) "
86
28
87
29
$index = 0
88
- $generateTargets = @ {}
30
+ $generationTargets = @ {}
89
31
foreach ($moduleGroup in $groupedModules ) {
90
- Write-Host " ##[group]Prepareing module group $ ( $index + 1 ) "
32
+ Write-Host " ##[group]Prepareing module group $ ( $index + 1 ) with $ ( $moduleGroup .Count ) modules "
91
33
$mergedModules = @ {}
92
- foreach ($moduleObj in $moduleGroup ) {
93
- Write-Host " Module $ ( $moduleObj .ModuleName ) : $ ( $moduleObj .SubModules -join ' ,' ) "
94
- $mergedModules [$moduleObj .ModuleName ] = @ ($moduleObj .SubModules )
34
+ foreach ($moduleName in $moduleGroup ) {
35
+ Write-Host " Module $ ( $moduleName ) : $ ( $moduleMap [ $moduleName ] -join ' ,' ) "
36
+ $mergedModules [$moduleName ] = @ ($moduleMap [ $moduleName ] )
95
37
$subIndex ++
96
38
}
97
39
98
40
$key = ($index + 1 ).ToString() + " -" + $moduleGroup.Count
99
- $generateTargets [$key ] = $mergedModules
41
+ $generationTargets [$key ] = $mergedModules
100
42
$MatrixStr = " $MatrixStr ,'$key ':{'MatrixKey':'$key '}"
101
43
Write-Host " ##[endgroup]"
102
44
Write-Host
103
45
$index ++
104
46
}
105
47
106
- $generateTargetsOutputDir = Join-Path $RepoRoot " artifacts"
107
- if (-not (Test-Path - Path $generateTargetsOutputDir )) {
108
- New-Item - ItemType Directory - Path $generateTargetsOutputDir
48
+ $generationTargetsOutputDir = Join-Path $RepoRoot " artifacts"
49
+ if (-not (Test-Path - Path $generationTargetsOutputDir )) {
50
+ New-Item - ItemType Directory - Path $generationTargetsOutputDir
109
51
}
110
- $generateTargetsOutputFile = Join-Path $generateTargetsOutputDir " generateTargets .json"
111
- $generateTargets | ConvertTo-Json - Depth 5 | Out-File - FilePath $generateTargetsOutputFile - Encoding utf8
52
+ $generationTargetsOutputFile = Join-Path $generationTargetsOutputDir " generationTargets .json"
53
+ $generationTargets | ConvertTo-Json - Depth 5 | Out-File - FilePath $generationTargetsOutputFile - Encoding utf8
112
54
113
55
if ($MatrixStr -and $MatrixStr.Length -gt 1 ) {
114
56
$MatrixStr = $MatrixStr.Substring (1 )
115
57
}
116
- Write-Host " ##vso[task.setVariable variable=generateTargets ;isOutput=true]{$MatrixStr }"
58
+ Write-Host " ##vso[task.setVariable variable=generationTargets ;isOutput=true]{$MatrixStr }"
0 commit comments