diff --git a/config/ModulesMapping.jsonc b/config/ModulesMapping.jsonc index 665ef8ee5c2..f6089f44ec4 100644 --- a/config/ModulesMapping.jsonc +++ b/config/ModulesMapping.jsonc @@ -1,4 +1,5 @@ { + "Admin": "^admin\\.", "Applications": "^applicationTemplates\\.|^applications\\.|^servicePrincipals\\.|^onPremisesPublishingProfiles\\.|^users.appRoleAssignment$|^groups.appRoleAssignment$", "Bookings": "^bookingBusinesses\\.|^bookingCurrencies\\.", "Calendar": "^places\\.|^users.calendar$|^users.calendarGroup$|^users.event$|^groups.calendar$|^groups.event$", diff --git a/tools/GenerateModules.ps1 b/tools/GenerateModules.ps1 index 1ca641ab7cb..aedad68d9f7 100644 --- a/tools/GenerateModules.ps1 +++ b/tools/GenerateModules.ps1 @@ -99,6 +99,13 @@ $ModulesToGenerate | ForEach-Object -ThrottleLimit $ModulesToGenerate.Count -Par $FullyQualifiedModuleName = "$using:ModulePrefix.$ModuleName" Write-Host -ForegroundColor Green "Generating '$FullyQualifiedModuleName' module..." $ModuleProjectDir = Join-Path $Using:ModulesOutputDir "$ModuleName\$ModuleName" + + # Test to see if a module's profile exists. + $ProfileReadmePath = Join-Path -Path $Using:ScriptRoot "..\profiles\$ModuleName\readme.md" + if (!(Test-Path -Path $ProfileReadmePath)) { + Write-Warning "[Generation skipped] : Module '$ModuleName' not found at $ProfileReadmePath." + break + } # Copy AutoRest readme.md config is none exists. if (-not (Test-Path "$ModuleProjectDir\readme.md")) { diff --git a/tools/GenerateRollUpModule.ps1 b/tools/GenerateRollUpModule.ps1 index 24988e2b14a..abdb2950a5a 100644 --- a/tools/GenerateRollUpModule.ps1 +++ b/tools/GenerateRollUpModule.ps1 @@ -70,19 +70,18 @@ elseif ($VersionState.Equals([VersionState]::Valid) -or $VersionState.Equals([Ve New-Item -Path $GraphModuleLocation -Type Directory } $AllowPreRelease = $true - if($ModulePreviewNumber -eq -1) { + if ($ModulePreviewNumber -eq -1) { $AllowPreRelease = $false } # Add auth module as a dependency. Find-Module "Microsoft.Graph.Authentication" -Repository $RepositoryName -AllowPrerelease:$AllowPreRelease $ExistingAuthModule = Find-Module "Microsoft.Graph.Authentication" -Repository $RepositoryName -AllowPrerelease:$AllowPreRelease - Write-Warning "Installing $ExistingAuthModule.Name $ExistingAuthModule.Version" Install-Module $ExistingAuthModule.Name -Repository $RepositoryName -Force -AllowClobber -AllowPrerelease:$AllowPreRelease - if($ExistingAuthModule.Version -like '*preview*' ) { + Write-Host "Adding dependency: $($ExistingAuthModule.Name) $($ExistingAuthModule.Version)" -ForegroundColor Green + if ($ExistingAuthModule.Version -like '*preview*' ) { $version = $ExistingAuthModule.Version.Remove($ExistingAuthModule.Version.IndexOf('-')) - Write-Warning "Required Version: $ModulePrefix.$RequiredModule Version: $version" $RequiredGraphModules += @{ ModuleName = $ExistingAuthModule.Name ; ModuleVersion = $version } } else { @@ -92,17 +91,21 @@ elseif ($VersionState.Equals([VersionState]::Valid) -or $VersionState.Equals([Ve foreach ($RequiredModule in $ModuleMapping.Keys) { # Install module locally in order to specify it as a dependency of the roll-up module down the generation pipeline. # https://stackoverflow.com/questions/46216038/how-do-i-define-requiredmodules-in-a-powershell-module-manifest-psd1. - $ExistingWorkloadModule = Find-Module "$ModulePrefix.$RequiredModule" -Repository $RepositoryName -AllowPrerelease:$AllowPreRelease - Write-Warning "Installing $ModulePrefix.$RequiredModule Version: $ExistingWorkloadModule.Version" - Install-Module $ExistingWorkloadModule.Name -Repository $RepositoryName -Force -AllowClobber -AllowPrerelease:$AllowPreRelease - #Remove "-preview" from Version Name if present - if($ExistingWorkloadModule.Version -like '*preview*' ) { - $version = $ExistingWorkloadModule.Version.Remove($ExistingWorkloadModule.Version.IndexOf('-')) - Write-Warning "Required Version: $ModulePrefix.$RequiredModule Version: $version" - $RequiredGraphModules += @{ ModuleName = $ExistingWorkloadModule.Name ; RequiredVersion = $version } + $ExistingWorkloadModule = Find-Module "$ModulePrefix.$RequiredModule" -Repository $RepositoryName -AllowPrerelease:$AllowPreRelease -ErrorAction SilentlyContinue + if ($null -ne $ExistingWorkloadModule) { + Write-Host "Adding dependency: $($ExistingWorkloadModule.Name) $($ExistingWorkloadModule.Version)" -ForegroundColor Green + Install-Module $ExistingWorkloadModule.Name -Repository $RepositoryName -Force -AllowClobber -AllowPrerelease:$AllowPreRelease + #Remove "-preview" from Version Name if present + if ($ExistingWorkloadModule.Version -like '*preview*' ) { + $version = $ExistingWorkloadModule.Version.Remove($ExistingWorkloadModule.Version.IndexOf('-')) + $RequiredGraphModules += @{ ModuleName = $ExistingWorkloadModule.Name ; RequiredVersion = $version } + } + else { + $RequiredGraphModules += @{ ModuleName = $ExistingWorkloadModule.Name ; RequiredVersion = $ExistingWorkloadModule.Version } + } } else { - $RequiredGraphModules += @{ ModuleName = $ExistingWorkloadModule.Name ; RequiredVersion = $ExistingWorkloadModule.Version } + Write-Warning "Skipped: $ModulePrefix.$RequiredModule" } }