diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index dc39545572e..78bbd43d8c8 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -83,25 +83,25 @@
-
+
https://github.com/dotnet/arcade
- 9b7027ba718462aa6410cef61a8be5a4283e7528
+ ac8b7514ca8bcac1d071a16b7a92cb52f7058871
-
+
https://github.com/dotnet/arcade
- 9b7027ba718462aa6410cef61a8be5a4283e7528
+ ac8b7514ca8bcac1d071a16b7a92cb52f7058871
-
+
https://github.com/dotnet/arcade
- 9b7027ba718462aa6410cef61a8be5a4283e7528
+ ac8b7514ca8bcac1d071a16b7a92cb52f7058871
-
+
https://github.com/dotnet/arcade
- 9b7027ba718462aa6410cef61a8be5a4283e7528
+ ac8b7514ca8bcac1d071a16b7a92cb52f7058871
-
+
https://github.com/dotnet/arcade
- 9b7027ba718462aa6410cef61a8be5a4283e7528
+ ac8b7514ca8bcac1d071a16b7a92cb52f7058871
diff --git a/eng/Versions.props b/eng/Versions.props
index 0b55cac84ea..d0cd756660f 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -39,9 +39,9 @@
- 6.0.0-beta.21413.4
- 6.0.0-beta.21413.4
- 6.0.0-beta.21413.4
+ 6.0.0-beta.21418.12
+ 6.0.0-beta.21418.12
+ 6.0.0-beta.21418.12
diff --git a/eng/common/build.sh b/eng/common/build.sh
index 55b298f16cc..9d3042a943e 100755
--- a/eng/common/build.sh
+++ b/eng/common/build.sh
@@ -187,6 +187,7 @@ function InitializeCustomToolset {
}
function Build {
+ TryLogClientIpAddress
InitializeToolset
InitializeCustomToolset
diff --git a/eng/common/post-build/sourcelink-validation.ps1 b/eng/common/post-build/sourcelink-validation.ps1
index 85c89861719..3b6fc953337 100644
--- a/eng/common/post-build/sourcelink-validation.ps1
+++ b/eng/common/post-build/sourcelink-validation.ps1
@@ -17,6 +17,7 @@ $global:RepoFiles = @{}
$MaxParallelJobs = 16
$MaxRetries = 5
+$RetryWaitTimeInSeconds = 30
# Wait time between check for system load
$SecondsBetweenLoadChecks = 10
@@ -99,9 +100,9 @@ $ValidatePackage = {
$Status = 200
$Cache = $using:RepoFiles
- $totalRetries = 0
+ $attempts = 0
- while ($totalRetries -lt $using:MaxRetries) {
+ while ($attempts -lt $using:MaxRetries) {
if ( !($Cache.ContainsKey($FilePath)) ) {
try {
$Uri = $Link -as [System.URI]
@@ -113,7 +114,7 @@ $ValidatePackage = {
else {
# If it's not a github link, we want to break out of the loop and not retry.
$Status = 0
- $totalRetries = $using:MaxRetries
+ $attempts = $using:MaxRetries
}
}
catch {
@@ -123,9 +124,15 @@ $ValidatePackage = {
}
if ($Status -ne 200) {
- $totalRetries++
+ $attempts++
- if ($totalRetries -ge $using:MaxRetries) {
+ if ($attempts -lt $using:MaxRetries)
+ {
+ $attemptsLeft = $using:MaxRetries - $attempts
+ Write-Warning "Download failed, $attemptsLeft attempts remaining, will retry in $using:RetryWaitTimeInSeconds seconds"
+ Start-Sleep -Seconds $using:RetryWaitTimeInSeconds
+ }
+ else {
if ($NumFailedLinks -eq 0) {
if ($FailedFiles.Value -eq 0) {
Write-Host
diff --git a/eng/common/sdk-task.ps1 b/eng/common/sdk-task.ps1
index b1bca63ab1d..7ffa3591e9c 100644
--- a/eng/common/sdk-task.ps1
+++ b/eng/common/sdk-task.ps1
@@ -83,6 +83,7 @@ try {
}
if ($restore) {
+ Try-LogClientIpAddress
Build 'Restore'
}
diff --git a/eng/common/templates/job/source-index-stage1.yml b/eng/common/templates/job/source-index-stage1.yml
index b58d42364b9..1cc0c29e4fd 100644
--- a/eng/common/templates/job/source-index-stage1.yml
+++ b/eng/common/templates/job/source-index-stage1.yml
@@ -34,29 +34,24 @@ jobs:
inputs:
packageType: sdk
version: 3.1.x
-
- - task: UseDotNet@2
- displayName: Use .NET Core sdk
- inputs:
- useGlobalJson: true
+ installationPath: $(Agent.TempDirectory)/dotnet
+ workingDirectory: $(Agent.TempDirectory)
- script: |
- dotnet tool install BinLogToSln --version $(SourceIndexPackageVersion) --add-source $(SourceIndexPackageSource) --tool-path .source-index/tools
- dotnet tool install UploadIndexStage1 --version $(SourceIndexPackageVersion) --add-source $(SourceIndexPackageSource) --tool-path .source-index/tools
- echo ##vso[task.prependpath]$(Build.SourcesDirectory)/.source-index/tools
+ $(Agent.TempDirectory)/dotnet/dotnet tool install BinLogToSln --version $(SourceIndexPackageVersion) --add-source $(SourceIndexPackageSource) --tool-path $(Agent.TempDirectory)/.source-index/tools
+ $(Agent.TempDirectory)/dotnet/dotnet tool install UploadIndexStage1 --version $(SourceIndexPackageVersion) --add-source $(SourceIndexPackageSource) --tool-path $(Agent.TempDirectory)/.source-index/tools
displayName: Download Tools
+ # Set working directory to temp directory so 'dotnet' doesn't try to use global.json and use the repo's sdk.
+ workingDirectory: $(Agent.TempDirectory)
- script: ${{ parameters.sourceIndexBuildCommand }}
displayName: Build Repository
- - script: BinLogToSln -i $(BinlogPath) -r $(Build.SourcesDirectory) -n $(Build.Repository.Name) -o .source-index/stage1output
+ - script: $(Agent.TempDirectory)/.source-index/tools/BinLogToSln -i $(BinlogPath) -r $(Build.SourcesDirectory) -n $(Build.Repository.Name) -o .source-index/stage1output
displayName: Process Binlog into indexable sln
- env:
- DOTNET_ROLL_FORWARD_ON_NO_CANDIDATE_FX: 2
- ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
- - script: UploadIndexStage1 -i .source-index/stage1output -n $(Build.Repository.Name)
+ - script: $(Agent.TempDirectory)/.source-index/tools/UploadIndexStage1 -i .source-index/stage1output -n $(Build.Repository.Name)
displayName: Upload stage1 artifacts to source index
env:
BLOB_CONTAINER_URL: $(source-dot-net-stage1-blob-container-url)
- DOTNET_ROLL_FORWARD_ON_NO_CANDIDATE_FX: 2
diff --git a/eng/common/tools.ps1 b/eng/common/tools.ps1
index 5d526c74d51..e607aa43697 100644
--- a/eng/common/tools.ps1
+++ b/eng/common/tools.ps1
@@ -154,6 +154,9 @@ function InitializeDotNetCli([bool]$install, [bool]$createSdkLocationFile) {
return $global:_DotNetInstallDir
}
+ # In case of network error, try to log the current IP for reference
+ Try-LogClientIpAddress
+
# Don't resolve runtime, shared framework, or SDK from other locations to ensure build determinism
$env:DOTNET_MULTILEVEL_LOOKUP=0
@@ -872,3 +875,21 @@ if (!$disableConfigureToolsetImport) {
}
}
}
+
+function Try-LogClientIpAddress()
+{
+ Write-Host "Attempting to log this client's IP for Azure Package feed telemetry purposes"
+ try
+ {
+ $result = Invoke-WebRequest -Uri "http://co1.msedge.net/fdv2/diagnostics.aspx" -UseBasicParsing
+ $lines = $result.Content.Split([Environment]::NewLine)
+ $socketIp = $lines | Select-String -Pattern "^Socket IP:.*"
+ Write-Host $socketIp
+ $clientIp = $lines | Select-String -Pattern "^Client IP:.*"
+ Write-Host $clientIp
+ }
+ catch
+ {
+ Write-Host "Unable to get this machine's effective IP address for logging: $_"
+ }
+}
diff --git a/eng/common/tools.sh b/eng/common/tools.sh
index 828119be411..3c5f3a12c0a 100755
--- a/eng/common/tools.sh
+++ b/eng/common/tools.sh
@@ -399,6 +399,13 @@ function StopProcesses {
return 0
}
+function TryLogClientIpAddress () {
+ echo 'Attempting to log this client''s IP for Azure Package feed telemetry purposes'
+ if command -v curl > /dev/null; then
+ curl -s 'http://co1.msedge.net/fdv2/diagnostics.aspx' | grep ' IP: '
+ fi
+}
+
function MSBuild {
local args=$@
if [[ "$pipelines_log" == true ]]; then
diff --git a/global.json b/global.json
index aa62406866a..923c3c62fb3 100644
--- a/global.json
+++ b/global.json
@@ -12,8 +12,8 @@
}
},
"msbuild-sdks": {
- "Microsoft.DotNet.Arcade.Sdk": "6.0.0-beta.21413.4",
- "Microsoft.DotNet.Helix.Sdk": "6.0.0-beta.21413.4"
+ "Microsoft.DotNet.Arcade.Sdk": "6.0.0-beta.21418.12",
+ "Microsoft.DotNet.Helix.Sdk": "6.0.0-beta.21418.12"
},
"sdk": {
"version": "6.0.100-rc.1.21416.15"