From a173c34ef03aae9b066adeaf527dce5a2bbf0a77 Mon Sep 17 00:00:00 2001 From: Patrick Hallisey Date: Mon, 25 Sep 2023 14:28:11 -0700 Subject: [PATCH 1/3] Add changes to support typespec preview pipeline --- eng/scripts/Language-Settings.ps1 | 36 ++++++++++++++++++++++++++----- 1 file changed, 31 insertions(+), 5 deletions(-) diff --git a/eng/scripts/Language-Settings.ps1 b/eng/scripts/Language-Settings.ps1 index fed325b0b7bb..160cb3a91d04 100644 --- a/eng/scripts/Language-Settings.ps1 +++ b/eng/scripts/Language-Settings.ps1 @@ -419,7 +419,7 @@ function EnsureCustomSource($package) { -AllVersions ` -AllowPrereleaseVersions - if (!$? -or !$existingVersions) { + if (!$? -or !$existingVersions) { Write-Host "Failed to find package $($package.Name) in custom source $customPackageSource" return $package } @@ -495,19 +495,19 @@ function UpdateDocsMsPackages($DocConfigFile, $Mode, $DocsMetadata) { continue } - if ($matchingPublishedPackage.Support -eq 'deprecated') { - if ($Mode -eq 'legacy') { + if ($matchingPublishedPackage.Support -eq 'deprecated') { + if ($Mode -eq 'legacy') { # Select the GA version, if none use the preview version $updatedVersion = $matchingPublishedPackage.VersionGA.Trim() - if (!$updatedVersion) { + if (!$updatedVersion) { $updatedVersion = $matchingPublishedPackage.VersionPreview.Trim() } $package.Versions = @($updatedVersion) Write-Host "Add deprecated package to legacy moniker: $($package.Name)" $outputPackages += $package - } else { + } else { Write-Host "Removing deprecated package: $($package.Name)" } @@ -586,3 +586,29 @@ function Get-dotnet-EmitterName() { function Get-dotnet-EmitterAdditionalOptions([string]$projectDirectory) { return "--option @azure-tools/typespec-csharp.emitter-output-dir=$projectDirectory/src" } + +function Update-dotnet-GeneratedSdks([string]$PackageDirectoriesFile) { + $packageDirectories = Get-Content $PackageDirectoriesFile | ConvertFrom-Json + $showSummary = ($env:SYSTEM_DEBUG -eq 'true') -or ($VerbosePreference -ne 'SilentlyContinue') + + foreach ($directory in $packageDirectories) { + Push-Location $RepoRoot + try { + Write-Host 'Generating projects under folder ' -ForegroundColor Green -NoNewline + Write-Host "$directory" -ForegroundColor Yellow + if ($showSummary) { + Invoke-LoggedCommand "dotnet msbuild /restore /t:GenerateCode /p:Scope=`"$directory`" /v:n /ds eng\service.proj" -GroupOutput + } + else { + Invoke-LoggedCommand "dotnet msbuild /restore /t:GenerateCode /p:Scope=`"$directory`" eng\service.proj" -GroupOutput + } + if ($LastExitCode -ne 0) { + Write-Error "Generation error in $directory" + exit 1 + } + } + finally { + Pop-Location + } + } +} \ No newline at end of file From 134702b9de64b6d03e913f90bd01c7dfae4a656c Mon Sep 17 00:00:00 2001 From: Patrick Hallisey Date: Mon, 25 Sep 2023 16:04:49 -0700 Subject: [PATCH 2/3] Revert whitespace changes --- eng/scripts/Language-Settings.ps1 | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/scripts/Language-Settings.ps1 b/eng/scripts/Language-Settings.ps1 index 160cb3a91d04..e3bb0f437ba3 100644 --- a/eng/scripts/Language-Settings.ps1 +++ b/eng/scripts/Language-Settings.ps1 @@ -419,7 +419,7 @@ function EnsureCustomSource($package) { -AllVersions ` -AllowPrereleaseVersions - if (!$? -or !$existingVersions) { + if (!$? -or !$existingVersions) { Write-Host "Failed to find package $($package.Name) in custom source $customPackageSource" return $package } @@ -495,19 +495,19 @@ function UpdateDocsMsPackages($DocConfigFile, $Mode, $DocsMetadata) { continue } - if ($matchingPublishedPackage.Support -eq 'deprecated') { - if ($Mode -eq 'legacy') { + if ($matchingPublishedPackage.Support -eq 'deprecated') { + if ($Mode -eq 'legacy') { # Select the GA version, if none use the preview version $updatedVersion = $matchingPublishedPackage.VersionGA.Trim() - if (!$updatedVersion) { + if (!$updatedVersion) { $updatedVersion = $matchingPublishedPackage.VersionPreview.Trim() } $package.Versions = @($updatedVersion) Write-Host "Add deprecated package to legacy moniker: $($package.Name)" $outputPackages += $package - } else { + } else { Write-Host "Removing deprecated package: $($package.Name)" } @@ -611,4 +611,4 @@ function Update-dotnet-GeneratedSdks([string]$PackageDirectoriesFile) { Pop-Location } } -} \ No newline at end of file +} From a9c2743ef65271ce17d1d80ef70e5cb08aa6e418 Mon Sep 17 00:00:00 2001 From: Patrick Hallisey Date: Mon, 25 Sep 2023 16:54:14 -0700 Subject: [PATCH 3/3] Improve error logging in Update-dotnet-GeneratedSdks --- eng/scripts/Language-Settings.ps1 | 51 ++++++++++++++++++++----------- 1 file changed, 33 insertions(+), 18 deletions(-) diff --git a/eng/scripts/Language-Settings.ps1 b/eng/scripts/Language-Settings.ps1 index e3bb0f437ba3..1746edb9a869 100644 --- a/eng/scripts/Language-Settings.ps1 +++ b/eng/scripts/Language-Settings.ps1 @@ -419,7 +419,7 @@ function EnsureCustomSource($package) { -AllVersions ` -AllowPrereleaseVersions - if (!$? -or !$existingVersions) { + if (!$? -or !$existingVersions) { Write-Host "Failed to find package $($package.Name) in custom source $customPackageSource" return $package } @@ -495,19 +495,19 @@ function UpdateDocsMsPackages($DocConfigFile, $Mode, $DocsMetadata) { continue } - if ($matchingPublishedPackage.Support -eq 'deprecated') { - if ($Mode -eq 'legacy') { + if ($matchingPublishedPackage.Support -eq 'deprecated') { + if ($Mode -eq 'legacy') { # Select the GA version, if none use the preview version $updatedVersion = $matchingPublishedPackage.VersionGA.Trim() - if (!$updatedVersion) { + if (!$updatedVersion) { $updatedVersion = $matchingPublishedPackage.VersionPreview.Trim() } $package.Versions = @($updatedVersion) Write-Host "Add deprecated package to legacy moniker: $($package.Name)" $outputPackages += $package - } else { + } else { Write-Host "Removing deprecated package: $($package.Name)" } @@ -588,27 +588,42 @@ function Get-dotnet-EmitterAdditionalOptions([string]$projectDirectory) { } function Update-dotnet-GeneratedSdks([string]$PackageDirectoriesFile) { - $packageDirectories = Get-Content $PackageDirectoriesFile | ConvertFrom-Json $showSummary = ($env:SYSTEM_DEBUG -eq 'true') -or ($VerbosePreference -ne 'SilentlyContinue') + $summaryArgs = $showSummary ? "/v:n /ds" : "" + + $packageDirectories = Get-Content $PackageDirectoriesFile | ConvertFrom-Json + + $directoriesWithErrors = @() + + Invoke-LoggedCommand "npm install -g autorest" foreach ($directory in $packageDirectories) { Push-Location $RepoRoot try { - Write-Host 'Generating projects under folder ' -ForegroundColor Green -NoNewline - Write-Host "$directory" -ForegroundColor Yellow - if ($showSummary) { - Invoke-LoggedCommand "dotnet msbuild /restore /t:GenerateCode /p:Scope=`"$directory`" /v:n /ds eng\service.proj" -GroupOutput - } - else { - Invoke-LoggedCommand "dotnet msbuild /restore /t:GenerateCode /p:Scope=`"$directory`" eng\service.proj" -GroupOutput - } - if ($LastExitCode -ne 0) { - Write-Error "Generation error in $directory" - exit 1 - } + Write-Host "`n`n======================================================================" + Write-Host "Generating projects under directory '$directory'" -ForegroundColor Yellow + Write-Host "======================================================================`n" + + Invoke-LoggedCommand "dotnet msbuild /restore /t:GenerateCode /p:Scope=`"$directory`" $summaryArgs eng\service.proj" -GroupOutput + } + catch { + Write-Host "##[error]Error generating project under directory $directory" + Write-Host $_.Exception.Message + $directoriesWithErrors += $directory } finally { Pop-Location } } + + if($directoriesWithErrors.Count -gt 0) { + Write-Host "##[error]Generation errors found in $($directoriesWithErrors.Count) directories:" + + foreach ($directory in $directoriesWithErrors) { + Write-Host " $directory" + } + + exit 1 + } + }