From be76d4de13c9798bfe03bd81887d2f37b460b960 Mon Sep 17 00:00:00 2001 From: James Truher Date: Wed, 26 Jan 2022 14:54:54 -0800 Subject: [PATCH] Change logic for updating .NET. also include a message when it looks like a new .NET is not going to be used. --- .github/workflows/daily.yml | 2 +- tools/UpdateDotnetRuntime.ps1 | 28 ++++++++++++++++++---------- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/.github/workflows/daily.yml b/.github/workflows/daily.yml index 87ea7725cb9..ee430ac6c7a 100644 --- a/.github/workflows/daily.yml +++ b/.github/workflows/daily.yml @@ -46,7 +46,7 @@ jobs: if: failure() with: webhook_url: ${{ secrets.PS_BUILD_TEAMS_CHANNEL }} - overwrite: "{title: `Failure in updating .NET build. Look at ${workflow_link}`}" + overwrite: "{title: `Failure in .github/daily.yml updating .NET build. Look at ${workflow_link}`}" - name: Create Pull Request uses: peter-evans/create-pull-request@v3 id: cpr diff --git a/tools/UpdateDotnetRuntime.ps1 b/tools/UpdateDotnetRuntime.ps1 index 7fe58363920..6747368a4c6 100644 --- a/tools/UpdateDotnetRuntime.ps1 +++ b/tools/UpdateDotnetRuntime.ps1 @@ -189,36 +189,41 @@ function Get-DotnetUpdate { try { try { - $latestSDKVersionString = Invoke-RestMethod -Uri "http://aka.ms/dotnet/$channel/$quality/productVersion.txt" -ErrorAction Stop | ForEach-Object { $_.Trim() } + $URL = "http://aka.ms/dotnet/$channel/$quality/productVersion.txt" + $latestSDKVersionString = Invoke-RestMethod -Uri $URL -ErrorAction Stop | ForEach-Object { $_.Trim() } $selectedQuality = $quality } catch { if ($_.exception.Response.StatusCode -eq 'NotFound') { - Write-Verbose "Build not found for Channel: $Channel and Quality: $Quality" -Verbose + Write-Verbose -Verbose -Message "No build at '$URL' found!" } else { throw $_ } } + $latestSDKversion = $latestSDKVersionString -as "System.Management.Automation.SemanticVersion" - if (-not $latestSDKVersionString -or -not $latestSDKVersionString.StartsWith($sdkImageVersion)) { + if (-not $latestSDKVersion) { # we did not get a version number so fall back to daily - $latestSDKVersionString = Invoke-RestMethod -Uri "http://aka.ms/dotnet/$channel/$qualityFallback/productVersion.txt" -ErrorAction Stop | ForEach-Object { $_.Trim() } + $URL = "http://aka.ms/dotnet/$channel/$qualityFallback/productVersion.txt" + $latestSDKVersionString = Invoke-RestMethod -Uri $URL -ErrorAction Stop | ForEach-Object { $_.Trim() } $selectedQuality = $qualityFallback - if (-not $latestSDKVersionString.StartsWith($sdkImageVersion)) { - throw "No build found!" + $latestSDKversion = $latestSDKVersionString -as "System.Management.Automation.SemanticVersion" + if (-not $latestSDKVersion) { + throw "No build at '$URL' found!" } } - $latestSDKversion = [System.Management.Automation.SemanticVersion] $latestSDKVersionString - $currentVersion = [System.Management.Automation.SemanticVersion] (( Get-Content -Path "$PSScriptRoot/../global.json" -Raw | ConvertFrom-Json).sdk.version) - if ($latestSDKversion -gt $currentVersion) { + if ($latestSDKversion -gt $currentVersion -and $null -ne $latestSDKversion.PreReleaseLabel) { $shouldUpdate = $true $newVersion = $latestSDKversion } else { $shouldUpdate = $false - $newVersion = $null + $newVersion = $latestSDKVersionString + if ($null -eq $currentVersion.PreReleaseLabel) { + $Message = "$latestSDKversion is not preview, update manually." + } } } catch { Write-Verbose -Verbose "Error occured: $_.message" @@ -356,3 +361,6 @@ if ($dotnetUpdate.ShouldUpdate) { Update-DevContainer } +else { + Write-Verbose -Verbose -Message $dotnetUpdate.Message +}