diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json index fe2b64b88968e..7e7b6f526e770 100644 --- a/.config/dotnet-tools.json +++ b/.config/dotnet-tools.json @@ -15,7 +15,7 @@ ] }, "microsoft.dotnet.xharness.cli": { - "version": "1.0.0-prerelease.21263.1", + "version": "1.0.0-prerelease.21264.3", "commands": [ "xharness" ] diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 15450d7defb86..eeb66fc1c7093 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -6,69 +6,69 @@ - + https://github.com/dotnet/arcade - 6b9758661f4483a70654bcaf6f8d7c6a79ee5660 + 42de78a825b575a1ddeb73020a01fb8cd9311d09 - + https://github.com/dotnet/arcade - 6b9758661f4483a70654bcaf6f8d7c6a79ee5660 + 42de78a825b575a1ddeb73020a01fb8cd9311d09 - + https://github.com/dotnet/arcade - 6b9758661f4483a70654bcaf6f8d7c6a79ee5660 + 42de78a825b575a1ddeb73020a01fb8cd9311d09 - + https://github.com/dotnet/arcade - 6b9758661f4483a70654bcaf6f8d7c6a79ee5660 + 42de78a825b575a1ddeb73020a01fb8cd9311d09 - + https://github.com/dotnet/arcade - 6b9758661f4483a70654bcaf6f8d7c6a79ee5660 + 42de78a825b575a1ddeb73020a01fb8cd9311d09 - + https://github.com/dotnet/arcade - 6b9758661f4483a70654bcaf6f8d7c6a79ee5660 + 42de78a825b575a1ddeb73020a01fb8cd9311d09 - + https://github.com/dotnet/arcade - 6b9758661f4483a70654bcaf6f8d7c6a79ee5660 + 42de78a825b575a1ddeb73020a01fb8cd9311d09 - + https://github.com/dotnet/arcade - 6b9758661f4483a70654bcaf6f8d7c6a79ee5660 + 42de78a825b575a1ddeb73020a01fb8cd9311d09 - + https://github.com/dotnet/arcade - 6b9758661f4483a70654bcaf6f8d7c6a79ee5660 + 42de78a825b575a1ddeb73020a01fb8cd9311d09 - + https://github.com/dotnet/arcade - 6b9758661f4483a70654bcaf6f8d7c6a79ee5660 + 42de78a825b575a1ddeb73020a01fb8cd9311d09 - + https://github.com/dotnet/arcade - 6b9758661f4483a70654bcaf6f8d7c6a79ee5660 + 42de78a825b575a1ddeb73020a01fb8cd9311d09 - + https://github.com/dotnet/arcade - 6b9758661f4483a70654bcaf6f8d7c6a79ee5660 + 42de78a825b575a1ddeb73020a01fb8cd9311d09 - + https://github.com/dotnet/arcade - 6b9758661f4483a70654bcaf6f8d7c6a79ee5660 + 42de78a825b575a1ddeb73020a01fb8cd9311d09 - + https://github.com/dotnet/arcade - 6b9758661f4483a70654bcaf6f8d7c6a79ee5660 + 42de78a825b575a1ddeb73020a01fb8cd9311d09 - + https://github.com/dotnet/arcade - 6b9758661f4483a70654bcaf6f8d7c6a79ee5660 + 42de78a825b575a1ddeb73020a01fb8cd9311d09 - + https://github.com/dotnet/arcade - 6b9758661f4483a70654bcaf6f8d7c6a79ee5660 + 42de78a825b575a1ddeb73020a01fb8cd9311d09 https://github.com/microsoft/vstest @@ -146,49 +146,49 @@ https://github.com/dotnet/runtime 38017c3935de95d0335bac04f4901ddfc2718656 - + https://github.com/dotnet/runtime - e39196ffc9e50f3d8927622daaedcd50681d56f2 + f64f12aa83d9f2253eab10551b716d2ba09371d2 - + https://github.com/dotnet/runtime - e39196ffc9e50f3d8927622daaedcd50681d56f2 + f64f12aa83d9f2253eab10551b716d2ba09371d2 - + https://github.com/dotnet/runtime - e39196ffc9e50f3d8927622daaedcd50681d56f2 + f64f12aa83d9f2253eab10551b716d2ba09371d2 - + https://github.com/dotnet/runtime - e39196ffc9e50f3d8927622daaedcd50681d56f2 + f64f12aa83d9f2253eab10551b716d2ba09371d2 - + https://github.com/dotnet/runtime - e39196ffc9e50f3d8927622daaedcd50681d56f2 + f64f12aa83d9f2253eab10551b716d2ba09371d2 - + https://github.com/dotnet/runtime - e39196ffc9e50f3d8927622daaedcd50681d56f2 + f64f12aa83d9f2253eab10551b716d2ba09371d2 - + https://github.com/dotnet/runtime - e39196ffc9e50f3d8927622daaedcd50681d56f2 + f64f12aa83d9f2253eab10551b716d2ba09371d2 https://github.com/mono/linker 7a5c445a69359415b7ff18b91cd24472ef9509ff - + https://github.com/dotnet/xharness - 9596c3fbbb718819bc4bb9a9e3f6271b50fc718a + 2eef520188beb49e31460d0a7dbe040294428ff1 - + https://github.com/dotnet/xharness - 9596c3fbbb718819bc4bb9a9e3f6271b50fc718a + 2eef520188beb49e31460d0a7dbe040294428ff1 - + https://github.com/dotnet/arcade - 6b9758661f4483a70654bcaf6f8d7c6a79ee5660 + 42de78a825b575a1ddeb73020a01fb8cd9311d09 https://dev.azure.com/dnceng/internal/_git/dotnet-optimization @@ -210,9 +210,9 @@ https://github.com/dotnet/emsdk 411d8383281e4f9f2983b832593e85f9e6e7bbc6 - + https://github.com/dotnet/hotreload-utils - db44d47059b070a687776ff53edbd618593bbe54 + 8f9adc23856c391b01fb1904ed2891c1025db1c3 diff --git a/eng/Versions.props b/eng/Versions.props index a307a10d1ff1c..bb3f36c221027 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -51,28 +51,28 @@ 3.10.0-2.final 3.10.0-2.final - 6.0.0-beta.21263.1 - 6.0.0-beta.21263.1 - 6.0.0-beta.21263.1 - 6.0.0-beta.21263.1 - 6.0.0-beta.21263.1 - 6.0.0-beta.21263.1 - 2.5.1-beta.21263.1 - 6.0.0-beta.21263.1 - 6.0.0-beta.21263.1 - 6.0.0-beta.21263.1 - 6.0.0-beta.21263.1 - 6.0.0-beta.21263.1 - 6.0.0-beta.21263.1 + 6.0.0-beta.21264.2 + 6.0.0-beta.21264.2 + 6.0.0-beta.21264.2 + 6.0.0-beta.21264.2 + 6.0.0-beta.21264.2 + 6.0.0-beta.21264.2 + 2.5.1-beta.21264.2 + 6.0.0-beta.21264.2 + 6.0.0-beta.21264.2 + 6.0.0-beta.21264.2 + 6.0.0-beta.21264.2 + 6.0.0-beta.21264.2 + 6.0.0-beta.21264.2 5.9.0-preview.2 6.0.0-alpha.1.20612.4 - 6.0.0-preview.5.21260.1 - 6.0.0-preview.5.21260.1 + 6.0.0-preview.5.21267.1 + 6.0.0-preview.5.21267.1 3.1.0 - 6.0.0-preview.5.21260.1 + 6.0.0-preview.5.21267.1 1.2.0-beta.304 4.3.0 @@ -102,14 +102,14 @@ 4.3.1 4.7.0 4.7.0 - 6.0.0-preview.5.21260.1 - 6.0.0-preview.5.21260.1 + 6.0.0-preview.5.21267.1 + 6.0.0-preview.5.21267.1 4.3.0 4.5.4 4.5.0 1.1.1 4.3.0 - 6.0.0-preview.5.21260.1 + 6.0.0-preview.5.21267.1 6.0.0-beta.21260.1 6.0.0-beta.21260.1 @@ -148,9 +148,9 @@ 1.0.1-prerelease-00006 16.9.0-preview-20201201-01 - 1.0.0-prerelease.21263.1 - 1.0.0-prerelease.21263.1 - 1.0.1-alpha.0.21261.2 + 1.0.0-prerelease.21264.3 + 1.0.0-prerelease.21264.3 + 1.0.1-alpha.0.21264.2 2.4.1 2.4.2 1.3.0 diff --git a/eng/common/post-build/sourcelink-validation.ps1 b/eng/common/post-build/sourcelink-validation.ps1 index 8c554729b612d..85c89861719ad 100644 --- a/eng/common/post-build/sourcelink-validation.ps1 +++ b/eng/common/post-build/sourcelink-validation.ps1 @@ -16,6 +16,8 @@ $global:RepoFiles = @{} # Maximum number of jobs to run in parallel $MaxParallelJobs = 16 +$MaxRetries = 5 + # Wait time between check for system load $SecondsBetweenLoadChecks = 10 @@ -29,7 +31,10 @@ $ValidatePackage = { # Ensure input file exist if (!(Test-Path $PackagePath)) { Write-Host "Input file does not exist: $PackagePath" - return 1 + return [pscustomobject]@{ + result = 1 + packagePath = $PackagePath + } } # Extensions for which we'll look for SourceLink information @@ -59,7 +64,10 @@ $ValidatePackage = { # We ignore resource DLLs if ($FileName.EndsWith('.resources.dll')) { - return + return [pscustomobject]@{ + result = 0 + packagePath = $PackagePath + } } [System.IO.Compression.ZipFileExtensions]::ExtractToFile($_, $TargetFile, $true) @@ -91,36 +99,49 @@ $ValidatePackage = { $Status = 200 $Cache = $using:RepoFiles - if ( !($Cache.ContainsKey($FilePath)) ) { - try { - $Uri = $Link -as [System.URI] - - # Only GitHub links are valid - if ($Uri.AbsoluteURI -ne $null -and ($Uri.Host -match 'github' -or $Uri.Host -match 'githubusercontent')) { - $Status = (Invoke-WebRequest -Uri $Link -UseBasicParsing -Method HEAD -TimeoutSec 5).StatusCode + $totalRetries = 0 + + while ($totalRetries -lt $using:MaxRetries) { + if ( !($Cache.ContainsKey($FilePath)) ) { + try { + $Uri = $Link -as [System.URI] + + # Only GitHub links are valid + if ($Uri.AbsoluteURI -ne $null -and ($Uri.Host -match 'github' -or $Uri.Host -match 'githubusercontent')) { + $Status = (Invoke-WebRequest -Uri $Link -UseBasicParsing -Method HEAD -TimeoutSec 5).StatusCode + } + else { + # If it's not a github link, we want to break out of the loop and not retry. + $Status = 0 + $totalRetries = $using:MaxRetries + } } - else { + catch { + Write-Host $_ $Status = 0 } } - catch { - write-host $_ - $Status = 0 - } - } - if ($Status -ne 200) { - if ($NumFailedLinks -eq 0) { - if ($FailedFiles.Value -eq 0) { - Write-Host + if ($Status -ne 200) { + $totalRetries++ + + if ($totalRetries -ge $using:MaxRetries) { + if ($NumFailedLinks -eq 0) { + if ($FailedFiles.Value -eq 0) { + Write-Host + } + + Write-Host "`tFile $RealPath has broken links:" + } + + Write-Host "`t`tFailed to retrieve $Link" + + $NumFailedLinks++ } - - Write-Host "`tFile $RealPath has broken links:" } - - Write-Host "`t`tFailed to retrieve $Link" - - $NumFailedLinks++ + else { + break + } } } } @@ -136,7 +157,7 @@ $ValidatePackage = { } } catch { - + Write-Host $_ } finally { $zip.Dispose() @@ -220,6 +241,7 @@ function ValidateSourceLinkLinks { # Process each NuGet package in parallel Get-ChildItem "$InputPath\*.symbols.nupkg" | ForEach-Object { + Write-Host "Starting $($_.FullName)" Start-Job -ScriptBlock $ValidatePackage -ArgumentList $_.FullName | Out-Null $NumJobs = @(Get-Job -State 'Running').Count @@ -267,6 +289,10 @@ function InstallSourcelinkCli { try { InstallSourcelinkCli + foreach ($Job in @(Get-Job)) { + Remove-Job -Id $Job.Id + } + ValidateSourceLinkLinks } catch { diff --git a/eng/common/post-build/symbols-validation.ps1 b/eng/common/post-build/symbols-validation.ps1 index f26f6de81f0f5..a5af041ba775c 100644 --- a/eng/common/post-build/symbols-validation.ps1 +++ b/eng/common/post-build/symbols-validation.ps1 @@ -133,27 +133,27 @@ $CountMissingSymbols = { elseif (Test-Path $SymbolPath) { return 'Module' } - elseif ($output.Contains("503 Service Unavailable")) { - # If we got a 503 error, we should retry. + else + { $totalRetries++ } - else { - return $null - } } return $null } + $FileGuid = New-Guid + $ExpandedSymbolsPath = Join-Path -Path $SymbolsPath -ChildPath $FileGuid + $SymbolsOnMSDL = & $FirstMatchingSymbolDescriptionOrDefault ` -FullPath $FileName ` -TargetServerParam '--microsoft-symbol-server' ` - -SymbolsPath $SymbolsPath ` + -SymbolsPath "$ExpandedSymbolsPath-msdl" ` -WindowsPdbVerificationParam $WindowsPdbVerificationParam $SymbolsOnSymWeb = & $FirstMatchingSymbolDescriptionOrDefault ` -FullPath $FileName ` -TargetServerParam '--internal-server' ` - -SymbolsPath $SymbolsPath ` + -SymbolsPath "$ExpandedSymbolsPath-symweb" ` -WindowsPdbVerificationParam $WindowsPdbVerificationParam Write-Host -NoNewLine "`t Checking file " $FileName "... " @@ -217,6 +217,7 @@ function CheckSymbolsAvailable { Remove-Item $ExtractPath -Force -Recurse -ErrorAction SilentlyContinue } + $TotalPackages = 0 $TotalFailures = 0 $DupedSymbols = 0 @@ -239,6 +240,8 @@ function CheckSymbolsAvailable { return } + $TotalPackages++ + Start-Job -ScriptBlock $CountMissingSymbols -ArgumentList @($FullName,$WindowsPdbVerificationParam) | Out-Null $NumJobs = @(Get-Job -State 'Running').Count @@ -264,11 +267,11 @@ function CheckSymbolsAvailable { if ($TotalFailures -gt 0 -or $DupedSymbols -gt 0) { if ($TotalFailures -gt 0) { - Write-PipelineTelemetryError -Category 'CheckSymbols' -Message "Symbols missing for $TotalFailures packages" + Write-PipelineTelemetryError -Category 'CheckSymbols' -Message "Symbols missing for $TotalFailures/$TotalPackages packages" } if ($DupedSymbols -gt 0) { - Write-PipelineTelemetryError -Category 'CheckSymbols' -Message "$DupedSymbols packages had duplicated symbol files" + Write-PipelineTelemetryError -Category 'CheckSymbols' -Message "$DupedSymbols/$TotalPackages packages had duplicated symbol files and could not be extracted" } ExitWithExitCode 1 diff --git a/global.json b/global.json index 8fafd33a798f2..e14e03eaa98a8 100644 --- a/global.json +++ b/global.json @@ -12,12 +12,12 @@ "python3": "3.7.1" }, "msbuild-sdks": { - "Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk": "6.0.0-beta.21263.1", - "Microsoft.DotNet.Arcade.Sdk": "6.0.0-beta.21263.1", - "Microsoft.DotNet.Helix.Sdk": "6.0.0-beta.21263.1", - "Microsoft.DotNet.SharedFramework.Sdk": "6.0.0-beta.21263.1", + "Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk": "6.0.0-beta.21264.2", + "Microsoft.DotNet.Arcade.Sdk": "6.0.0-beta.21264.2", + "Microsoft.DotNet.Helix.Sdk": "6.0.0-beta.21264.2", + "Microsoft.DotNet.SharedFramework.Sdk": "6.0.0-beta.21264.2", "Microsoft.Build.NoTargets": "2.0.17", "Microsoft.Build.Traversal": "2.1.1", - "Microsoft.NET.Sdk.IL": "6.0.0-preview.5.21260.1" + "Microsoft.NET.Sdk.IL": "6.0.0-preview.5.21267.1" } }