Update dependencies from https://github.com/dotnet/arcade build 20210108.3 (#9358)

[master] Update dependencies from dotnet/arcade
- Coherency Updates:
  - Microsoft.SourceLink.GitHub: from 1.1.0-beta-20628-02 to 1.1.0-beta-21055-03 (parent: Microsoft.DotNet.Arcade.Sdk)
  - XliffTasks: from 1.0.0-beta.20629.1 to 1.0.0-beta.20631.1 (parent: Microsoft.DotNet.Arcade.Sdk)
This commit is contained in:
dotnet-maestro[bot] 2021-01-09 13:53:15 +00:00 committed by GitHub
parent fced490fcc
commit 7b255431d7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
20 changed files with 205 additions and 63 deletions

View file

@ -144,25 +144,25 @@
</Dependency> </Dependency>
</ProductDependencies> </ProductDependencies>
<ToolsetDependencies> <ToolsetDependencies>
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="6.0.0-beta.20630.2"> <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="6.0.0-beta.21058.3">
<Uri>https://github.com/dotnet/arcade</Uri> <Uri>https://github.com/dotnet/arcade</Uri>
<Sha>4c8515c18ebe0071c32fed467ee3890fbd488898</Sha> <Sha>1571d6b095014ad63fdb48b10f5dea912f96872e</Sha>
</Dependency> </Dependency>
<Dependency Name="Microsoft.DotNet.Build.Tasks.Installers" Version="6.0.0-beta.20630.2"> <Dependency Name="Microsoft.DotNet.Build.Tasks.Installers" Version="6.0.0-beta.21058.3">
<Uri>https://github.com/dotnet/arcade</Uri> <Uri>https://github.com/dotnet/arcade</Uri>
<Sha>4c8515c18ebe0071c32fed467ee3890fbd488898</Sha> <Sha>1571d6b095014ad63fdb48b10f5dea912f96872e</Sha>
</Dependency> </Dependency>
<Dependency Name="Private.SourceBuild.ReferencePackages" Version="1.0.0-beta.20217.1"> <Dependency Name="Private.SourceBuild.ReferencePackages" Version="1.0.0-beta.20217.1">
<Uri>https://github.com/dotnet/source-build-reference-packages</Uri> <Uri>https://github.com/dotnet/source-build-reference-packages</Uri>
<Sha>639aeb4d76c8b1a6226bf7c4edb34fbdae30e6e1</Sha> <Sha>639aeb4d76c8b1a6226bf7c4edb34fbdae30e6e1</Sha>
</Dependency> </Dependency>
<Dependency Name="Microsoft.SourceLink.GitHub" Version="1.1.0-beta-20628-02" CoherentParentDependency="Microsoft.DotNet.Arcade.Sdk"> <Dependency Name="Microsoft.SourceLink.GitHub" Version="1.1.0-beta-21055-03" CoherentParentDependency="Microsoft.DotNet.Arcade.Sdk">
<Uri>https://github.com/dotnet/sourcelink</Uri> <Uri>https://github.com/dotnet/sourcelink</Uri>
<Sha>a681f62457a6b30eacc4b48a62267a8481fd4d58</Sha> <Sha>5935ccd670197b059b98d299e5537ad1f10adecb</Sha>
</Dependency> </Dependency>
<Dependency Name="XliffTasks" Version="1.0.0-beta.20629.1" CoherentParentDependency="Microsoft.DotNet.Arcade.Sdk"> <Dependency Name="XliffTasks" Version="1.0.0-beta.20631.1" CoherentParentDependency="Microsoft.DotNet.Arcade.Sdk">
<Uri>https://github.com/dotnet/xliff-tasks</Uri> <Uri>https://github.com/dotnet/xliff-tasks</Uri>
<Sha>bf9be5e267ddbf9f51c2014f7646a4c30354b748</Sha> <Sha>c71b2197c16684cea8b0372b0eff7f22b320786b</Sha>
</Dependency> </Dependency>
</ToolsetDependencies> </ToolsetDependencies>
</Dependencies> </Dependencies>

View file

@ -20,7 +20,7 @@
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>
<!-- Dependency from https://github.com/dotnet/arcade --> <!-- Dependency from https://github.com/dotnet/arcade -->
<MicrosoftDotNetBuildTasksInstallersPackageVersion>6.0.0-beta.20630.2</MicrosoftDotNetBuildTasksInstallersPackageVersion> <MicrosoftDotNetBuildTasksInstallersPackageVersion>6.0.0-beta.21058.3</MicrosoftDotNetBuildTasksInstallersPackageVersion>
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>
<!-- Dependency from https://github.com/dotnet/winforms --> <!-- Dependency from https://github.com/dotnet/winforms -->

View file

@ -81,7 +81,7 @@ runtime_source_feed_key=''
properties='' properties=''
while [[ $# > 0 ]]; do while [[ $# > 0 ]]; do
opt="$(echo "${1/#--/-}" | awk '{print tolower($0)}')" opt="$(echo "${1/#--/-}" | tr "[:upper:]" "[:lower:]")"
case "$opt" in case "$opt" in
-help|-h) -help|-h)
usage usage

View file

@ -27,7 +27,7 @@ __AndroidToolchain=aarch64-linux-android
for i in "$@" for i in "$@"
do do
lowerI="$(echo $i | awk '{print tolower($0)}')" lowerI="$(echo $i | tr "[:upper:]" "[:lower:]")"
case $lowerI in case $lowerI in
-?|-h|--help) -?|-h|--help)
usage usage

View file

@ -82,7 +82,7 @@ while :; do
break break
fi fi
lowerI="$(echo $1 | awk '{print tolower($0)}')" lowerI="$(echo $1 | tr "[:upper:]" "[:lower:]")"
case $lowerI in case $lowerI in
-?|-h|--help) -?|-h|--help)
usage usage

View file

@ -6,7 +6,7 @@ versionEndpoint='https://maestro-prod.westus2.cloudapp.azure.com/api/assets/darc
verbosity='minimal' verbosity='minimal'
while [[ $# > 0 ]]; do while [[ $# > 0 ]]; do
opt="$(echo "$1" | awk '{print tolower($0)}')" opt="$(echo "$1" | tr "[:upper:]" "[:lower:]")"
case "$opt" in case "$opt" in
--darcversion) --darcversion)
darcVersion=$2 darcVersion=$2

View file

@ -19,7 +19,7 @@ runtime='dotnet'
runtimeSourceFeed='' runtimeSourceFeed=''
runtimeSourceFeedKey='' runtimeSourceFeedKey=''
while [[ $# > 0 ]]; do while [[ $# > 0 ]]; do
opt="$(echo "$1" | awk '{print tolower($0)}')" opt="$(echo "$1" | tr "[:upper:]" "[:lower:]")"
case "$opt" in case "$opt" in
-version|-v) -version|-v)
shift shift

View file

@ -16,7 +16,7 @@ declare -A native_assets
. $scriptroot/native/common-library.sh . $scriptroot/native/common-library.sh
while (($# > 0)); do while (($# > 0)); do
lowerI="$(echo $1 | awk '{print tolower($0)}')" lowerI="$(echo $1 | tr "[:upper:]" "[:lower:]")"
case $lowerI in case $lowerI in
--baseuri) --baseuri)
base_uri=$2 base_uri=$2
@ -76,24 +76,89 @@ while (($# > 0)); do
done done
function ReadGlobalJsonNativeTools { function ReadGlobalJsonNativeTools {
# Get the native-tools section from the global.json. # happy path: we have a proper JSON parsing tool `jq(1)` in PATH!
local native_tools_section=$(cat $global_json_file | awk '/"native-tools"/,/}/') if command -v jq &> /dev/null; then
# Only extract the contents of the object.
local native_tools_list=$(echo $native_tools_section | awk -F"[{}]" '{print $2}')
native_tools_list=${native_tools_list//[\" ]/}
native_tools_list=$( echo "$native_tools_list" | sed 's/\s//g' | sed 's/,/\n/g' )
local old_IFS=$IFS # jq: read each key/value pair under "native-tools" entry and emit:
while read -r line; do # KEY="<entry-key>" VALUE="<entry-value>"
# Lines are of the form: 'tool:version' # followed by a null byte.
IFS=: #
while read -r key value; do # bash: read line with null byte delimeter and push to array (for later `eval`uation).
native_assets[$key]=$value
done <<< "$line"
done <<< "$native_tools_list"
IFS=$old_IFS
return 0; while IFS= read -rd '' line; do
native_assets+=("$line")
done < <(jq -r '. |
select(has("native-tools")) |
."native-tools" |
keys[] as $k |
@sh "KEY=\($k) VALUE=\(.[$k])\u0000"' "$global_json_file")
return
fi
# Warning: falling back to manually parsing JSON, which is not recommended.
# Following routine matches the output and escaping logic of jq(1)'s @sh formatter used above.
# It has been tested with several weird strings with escaped characters in entries (key and value)
# and results were compared with the output of jq(1) in binary representation using xxd(1);
# just before the assignment to 'native_assets' array (above and below).
# try to capture the section under "native-tools".
if [[ ! "$(cat "$global_json_file")" =~ \"native-tools\"[[:space:]\:\{]*([^\}]+) ]]; then
return
fi
section="${BASH_REMATCH[1]}"
parseStarted=0
possibleEnd=0
escaping=0
escaped=0
isKey=1
for (( i=0; i<${#section}; i++ )); do
char="${section:$i:1}"
if ! ((parseStarted)) && [[ "$char" =~ [[:space:],:] ]]; then continue; fi
if ! ((escaping)) && [[ "$char" == "\\" ]]; then
escaping=1
elif ((escaping)) && ! ((escaped)); then
escaped=1
fi
if ! ((parseStarted)) && [[ "$char" == "\"" ]]; then
parseStarted=1
possibleEnd=0
elif [[ "$char" == "'" ]]; then
token="$token'\\\''"
possibleEnd=0
elif ((escaping)) || [[ "$char" != "\"" ]]; then
token="$token$char"
possibleEnd=1
fi
if ((possibleEnd)) && ! ((escaping)) && [[ "$char" == "\"" ]]; then
# Use printf to unescape token to match jq(1)'s @sh formatting rules.
# do not use 'token="$(printf "$token")"' syntax, as $() eats the trailing linefeed.
printf -v token "'$token'"
if ((isKey)); then
KEY="$token"
isKey=0
else
line="KEY=$KEY VALUE=$token"
native_assets+=("$line")
isKey=1
fi
# reset for next token
parseStarted=0
token=
elif ((escaping)) && ((escaped)); then
escaping=0
escaped=0
fi
done
} }
native_base_dir=$install_directory native_base_dir=$install_directory
@ -111,14 +176,14 @@ if [[ ${#native_assets[@]} -eq 0 ]]; then
exit 0; exit 0;
else else
native_installer_dir="$scriptroot/native" native_installer_dir="$scriptroot/native"
for tool in "${!native_assets[@]}" for index in "${!native_assets[@]}"; do
do eval "${native_assets["$index"]}"
tool_version=${native_assets[$tool]}
installer_path="$native_installer_dir/install-$tool.sh" installer_path="$native_installer_dir/install-$KEY.sh"
installer_command="$installer_path" installer_command="$installer_path"
installer_command+=" --baseuri $base_uri" installer_command+=" --baseuri $base_uri"
installer_command+=" --installpath $install_bin" installer_command+=" --installpath $install_bin"
installer_command+=" --version $tool_version" installer_command+=" --version $VALUE"
echo $installer_command echo $installer_command
if [[ $force = true ]]; then if [[ $force = true ]]; then

View file

@ -103,7 +103,7 @@ authToken=''
repoName='' repoName=''
while [[ $# > 0 ]]; do while [[ $# > 0 ]]; do
opt="$(echo "$1" | awk '{print tolower($0)}')" opt="$(echo "$1" | tr "[:upper:]" "[:lower:]")"
case "$opt" in case "$opt" in
--operation) --operation)
operation=$2 operation=$2

View file

@ -19,7 +19,7 @@ prepare_machine=false
extra_args='' extra_args=''
while (($# > 0)); do while (($# > 0)); do
lowerI="$(echo $1 | awk '{print tolower($0)}')" lowerI="$(echo $1 | tr "[:upper:]" "[:lower:]")"
case $lowerI in case $lowerI in
--verbosity) --verbosity)
verbosity=$2 verbosity=$2

View file

@ -14,7 +14,7 @@ download_retries=5
retry_wait_time_seconds=30 retry_wait_time_seconds=30
while (($# > 0)); do while (($# > 0)); do
lowerI="$(echo $1 | awk '{print tolower($0)}')" lowerI="$(echo $1 | tr "[:upper:]" "[:lower:]")"
case $lowerI in case $lowerI in
--baseuri) --baseuri)
base_uri=$2 base_uri=$2
@ -63,7 +63,7 @@ done
tool_name="cmake-test" tool_name="cmake-test"
tool_os=$(GetCurrentOS) tool_os=$(GetCurrentOS)
tool_folder=$(echo $tool_os | awk '{print tolower($0)}') tool_folder="$(echo $tool_os | tr "[:upper:]" "[:lower:]")"
tool_arch="x86_64" tool_arch="x86_64"
tool_name_moniker="$tool_name-$version-$tool_os-$tool_arch" tool_name_moniker="$tool_name-$version-$tool_os-$tool_arch"
tool_install_directory="$install_path/$tool_name/$version" tool_install_directory="$install_path/$tool_name/$version"

View file

@ -14,7 +14,7 @@ download_retries=5
retry_wait_time_seconds=30 retry_wait_time_seconds=30
while (($# > 0)); do while (($# > 0)); do
lowerI="$(echo $1 | awk '{print tolower($0)}')" lowerI="$(echo $1 | tr "[:upper:]" "[:lower:]")"
case $lowerI in case $lowerI in
--baseuri) --baseuri)
base_uri=$2 base_uri=$2
@ -63,7 +63,7 @@ done
tool_name="cmake" tool_name="cmake"
tool_os=$(GetCurrentOS) tool_os=$(GetCurrentOS)
tool_folder=$(echo $tool_os | awk '{print tolower($0)}') tool_folder="$(echo $tool_os | tr "[:upper:]" "[:lower:]")"
tool_arch="x86_64" tool_arch="x86_64"
tool_name_moniker="$tool_name-$version-$tool_os-$tool_arch" tool_name_moniker="$tool_name-$version-$tool_os-$tool_arch"
tool_install_directory="$install_path/$tool_name/$version" tool_install_directory="$install_path/$tool_name/$version"

View file

@ -29,7 +29,7 @@ using_wasm=false
use_latest_dotnet=false use_latest_dotnet=false
while (($# > 0)); do while (($# > 0)); do
lowerI="$(echo $1 | awk '{print tolower($0)}')" lowerI="$(echo $1 | tr "[:upper:]" "[:lower:]")"
case $lowerI in case $lowerI in
--sourcedirectory) --sourcedirectory)
source_directory=$2 source_directory=$2

View file

@ -6,7 +6,7 @@ function Write-PipelineTelemetryError {
local function_args=() local function_args=()
local message='' local message=''
while [[ $# -gt 0 ]]; do while [[ $# -gt 0 ]]; do
opt="$(echo "${1/#--/-}" | awk '{print tolower($0)}')" opt="$(echo "${1/#--/-}" | tr "[:upper:]" "[:lower:]")"
case "$opt" in case "$opt" in
-category|-c) -category|-c)
telemetry_category=$2 telemetry_category=$2
@ -48,7 +48,7 @@ function Write-PipelineTaskError {
local force=false local force=false
while [[ $# -gt 0 ]]; do while [[ $# -gt 0 ]]; do
opt="$(echo "${1/#--/-}" | awk '{print tolower($0)}')" opt="$(echo "${1/#--/-}" | tr "[:upper:]" "[:lower:]")"
case "$opt" in case "$opt" in
-type|-t) -type|-t)
message_type=$2 message_type=$2
@ -122,7 +122,7 @@ function Write-PipelineSetVariable {
local is_multi_job_variable=true local is_multi_job_variable=true
while [[ $# -gt 0 ]]; do while [[ $# -gt 0 ]]; do
opt="$(echo "${1/#--/-}" | awk '{print tolower($0)}')" opt="$(echo "${1/#--/-}" | tr "[:upper:]" "[:lower:]")"
case "$opt" in case "$opt" in
-name|-n) -name|-n)
name=$2 name=$2
@ -164,7 +164,7 @@ function Write-PipelinePrependPath {
local prepend_path='' local prepend_path=''
while [[ $# -gt 0 ]]; do while [[ $# -gt 0 ]]; do
opt="$(echo "${1/#--/-}" | awk '{print tolower($0)}')" opt="$(echo "${1/#--/-}" | tr "[:upper:]" "[:lower:]")"
case "$opt" in case "$opt" in
-path|-p) -path|-p)
prepend_path=$2 prepend_path=$2
@ -186,7 +186,7 @@ function Write-PipelineSetResult {
local message='' local message=''
while [[ $# -gt 0 ]]; do while [[ $# -gt 0 ]]; do
opt="$(echo "${1/#--/-}" | awk '{print tolower($0)}')" opt="$(echo "${1/#--/-}" | tr "[:upper:]" "[:lower:]")"
case "$opt" in case "$opt" in
-result|-r) -result|-r)
result=$2 result=$2

View file

@ -37,6 +37,7 @@ jobs:
- name: _BuildConfig - name: _BuildConfig
value: ${{ parameters.configuration }} value: ${{ parameters.configuration }}
- group: Publish-Build-Assets - group: Publish-Build-Assets
- group: AzureDevOps-Artifact-Feeds-Pats
# Skip component governance and codesign validation for SDL. These jobs # Skip component governance and codesign validation for SDL. These jobs
# create no content. # create no content.
- name: skipComponentGovernanceDetection - name: skipComponentGovernanceDetection
@ -57,6 +58,12 @@ jobs:
- ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
- task: NuGetAuthenticate@0 - task: NuGetAuthenticate@0
- task: PowerShell@2
displayName: Enable cross-org NuGet feed authentication
inputs:
filePath: $(Build.SourcesDirectory)/eng/common/enable-cross-org-publishing.ps1
arguments: -token $(dn-bot-all-orgs-artifact-feeds-rw)
- task: PowerShell@2 - task: PowerShell@2
displayName: Publish Build Assets displayName: Publish Build Assets
inputs: inputs:

View file

@ -0,0 +1,46 @@
parameters:
runAsPublic: false
sourceIndexPackageVersion: 1.0.0-beta5
sourceIndexPackageSource: https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json
sourceIndexBuildCommand: powershell -NoLogo -NoProfile -ExecutionPolicy Bypass -Command "eng/common/build.ps1 -restore -build -binarylog -ci"
binlogPath: artifacts/log/Debug/Build.binlog
pool:
vmImage: vs2017-win2016
jobs:
- job: SourceIndexStage1
variables:
- name: SourceIndexPackageVersion
value: ${{ parameters.sourceIndexPackageVersion }}
- name: SourceIndexPackageSource
value: ${{ parameters.sourceIndexPackageSource }}
- name: BinlogPath
value: ${{ parameters.binlogPath }}
- ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
- group: source-dot-net stage1 variables
pool: ${{ parameters.pool }}
steps:
- task: UseDotNet@2
displayName: Use .NET Core sdk 3.1
inputs:
packageType: sdk
version: 3.1.x
- 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
displayName: Download Tools
- script: ${{ parameters.sourceIndexBuildCommand }}
displayName: Build Repository
- script: BinLogToSln -i $(BinlogPath) -r $(Build.SourcesDirectory) -n $(Build.Repository.Name) -o .source-index/stage1output
displayName: Process Binlog into indexable sln
- ${{ 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)
displayName: Upload stage1 artifacts to source index
env:
BLOB_CONTAINER_URL: $(source-dot-net-stage1-blob-container-url)

View file

@ -31,6 +31,9 @@ parameters:
# See /eng/common/templates/jobs/source-build.yml for options # See /eng/common/templates/jobs/source-build.yml for options
sourceBuildParameters: [] sourceBuildParameters: []
enableSourceIndex: false
sourceIndexParams: {}
# Internal resources (telemetry, microbuild) can only be accessed from non-public projects, # Internal resources (telemetry, microbuild) can only be accessed from non-public projects,
# and some (Microbuild) should only be applied to non-PR cases for internal builds. # and some (Microbuild) should only be applied to non-PR cases for internal builds.
@ -57,7 +60,15 @@ jobs:
${{ each parameter in parameters.sourceBuildParameters }}: ${{ each parameter in parameters.sourceBuildParameters }}:
${{ parameter.key }}: ${{ parameter.value }} ${{ parameter.key }}: ${{ parameter.value }}
- ${{ if eq(parameters.enableSourceIndex, 'true') }}:
- template: ../job/source-index-stage1.yml
parameters:
runAsPublic: ${{ parameters.runAsPublic }}
${{ each parameter in parameters.sourceIndexParams }}:
${{ parameter.key }}: ${{ parameter.value }}
- ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
- ${{ if or(eq(parameters.enablePublishBuildAssets, true), eq(parameters.artifacts.publish.manifests, 'true'), ne(parameters.artifacts.publish.manifests, '')) }}: - ${{ if or(eq(parameters.enablePublishBuildAssets, true), eq(parameters.artifacts.publish.manifests, 'true'), ne(parameters.artifacts.publish.manifests, '')) }}:
- template: ../job/publish-build-assets.yml - template: ../job/publish-build-assets.yml
parameters: parameters:

View file

@ -645,7 +645,11 @@ function MSBuild() {
$toolsetBuildProject = InitializeToolset $toolsetBuildProject = InitializeToolset
$path = Split-Path -parent $toolsetBuildProject $path = Split-Path -parent $toolsetBuildProject
$path = Join-Path $path (Join-Path $buildTool.Framework 'Microsoft.DotNet.Arcade.Sdk.dll') $path = Join-Path $path (Join-Path $buildTool.Framework 'Microsoft.DotNet.ArcadeLogging.dll')
if (-not (Test-Path $path)) {
$path = Split-Path -parent $toolsetBuildProject
$path = Join-Path $path (Join-Path $buildTool.Framework 'Microsoft.DotNet.Arcade.Sdk.dll')
}
$args += "/logger:$path" $args += "/logger:$path"
} }

View file

@ -89,16 +89,16 @@ function ResolvePath {
function ReadGlobalVersion { function ReadGlobalVersion {
local key=$1 local key=$1
local line=$(awk "/$key/ {print; exit}" "$global_json_file") if command -v jq &> /dev/null; then
local pattern="\"$key\" *: *\"(.*)\"" _ReadGlobalVersion="$(jq -r ".[] | select(has(\"$key\")) | .\"$key\"" "$global_json_file")"
elif [[ "$(cat "$global_json_file")" =~ \"$key\"[[:space:]\:]*\"([^\"]+) ]]; then
_ReadGlobalVersion=${BASH_REMATCH[1]}
fi
if [[ ! $line =~ $pattern ]]; then if [[ -z "$_ReadGlobalVersion" ]]; then
Write-PipelineTelemetryError -category 'Build' "Error: Cannot find \"$key\" in $global_json_file" Write-PipelineTelemetryError -category 'Build' "Error: Cannot find \"$key\" in $global_json_file"
ExitWithExitCode 1 ExitWithExitCode 1
fi fi
# return value
_ReadGlobalVersion=${BASH_REMATCH[1]}
} }
function InitializeDotNetCli { function InitializeDotNetCli {
@ -273,8 +273,11 @@ function GetDotNetInstallScript {
if command -v curl > /dev/null; then if command -v curl > /dev/null; then
# first, try directly, if this fails we will retry with verbose logging # first, try directly, if this fails we will retry with verbose logging
curl "$install_script_url" -sSL --retry 10 --create-dirs -o "$install_script" || { curl "$install_script_url" -sSL --retry 10 --create-dirs -o "$install_script" || {
echo "Curl failed; dumping some information about dotnet.microsoft.com for later investigation" if command -v openssl &> /dev/null
echo | openssl s_client -showcerts -servername dotnet.microsoft.com -connect dotnet.microsoft.com:443 then
echo "Curl failed; dumping some information about dotnet.microsoft.com for later investigation"
echo | openssl s_client -showcerts -servername dotnet.microsoft.com -connect dotnet.microsoft.com:443
fi
echo "Will now retry the same URL with verbose logging." echo "Will now retry the same URL with verbose logging."
with_retries curl "$install_script_url" -sSL --verbose --retry 10 --create-dirs -o "$install_script" || { with_retries curl "$install_script_url" -sSL --verbose --retry 10 --create-dirs -o "$install_script" || {
local exit_code=$? local exit_code=$?
@ -411,7 +414,10 @@ function MSBuild {
fi fi
local toolset_dir="${_InitializeToolset%/*}" local toolset_dir="${_InitializeToolset%/*}"
local logger_path="$toolset_dir/$_InitializeBuildToolFramework/Microsoft.DotNet.Arcade.Sdk.dll" local logger_path="$toolset_dir/$_InitializeBuildToolFramework/Microsoft.DotNet.ArcadeLogging.dll"
if [[ ! -f $logger_path ]]; then
logger_path="$toolset_dir/$_InitializeBuildToolFramework/Microsoft.DotNet.Arcade.Sdk.dll"
fi
args=( "${args[@]}" "-logger:$logger_path" ) args=( "${args[@]}" "-logger:$logger_path" )
fi fi
@ -476,8 +482,11 @@ temp_dir="$artifacts_dir/tmp/$configuration"
global_json_file="$repo_root/global.json" global_json_file="$repo_root/global.json"
# determine if global.json contains a "runtimes" entry # determine if global.json contains a "runtimes" entry
global_json_has_runtimes=false global_json_has_runtimes=false
dotnetlocal_key=$(awk "/runtimes/ {print; exit}" "$global_json_file") || true if command -v jq &> /dev/null; then
if [[ -n "$dotnetlocal_key" ]]; then if jq -er '. | select(has("runtimes"))' "$global_json_file" &> /dev/null; then
global_json_has_runtimes=true
fi
elif [[ "$(cat "$global_json_file")" =~ \"runtimes\"[[:space:]\:]*\{ ]]; then
global_json_has_runtimes=true global_json_has_runtimes=true
fi fi

View file

@ -8,6 +8,6 @@
} }
}, },
"msbuild-sdks": { "msbuild-sdks": {
"Microsoft.DotNet.Arcade.Sdk": "6.0.0-beta.20630.2" "Microsoft.DotNet.Arcade.Sdk": "6.0.0-beta.21058.3"
} }
} }