Skip to content

Commit c87a428

Browse files
[main] Update dependencies from dotnet/arcade (#18643)
1 parent 6596de5 commit c87a428

17 files changed

+161
-135
lines changed

azure-pipelines-PR.yml

Lines changed: 22 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -113,14 +113,16 @@ stages:
113113
steps:
114114
- checkout: self
115115
clean: true
116+
# We first download a publicly available .NET SDK. That one has support for `path` in global.json. dotnet.cmd script can then download a version which is not yet shipped, but matches global.json.
116117
- task: UseDotNet@2
117118
displayName: install SDK
118119
inputs:
119120
packageType: sdk
120-
useGlobalJson: true
121+
version: '10.x'
121122
includePreviewVersions: true
122123
workingDirectory: $(Build.SourcesDirectory)
123124
installationPath: $(Build.SourcesDirectory)/.dotnet
125+
- script: .\eng\common\dotnet.cmd
124126
- script: .\eng\test-determinism.cmd -configuration Debug
125127
env:
126128
FSHARP_EXPERIMENTAL_FEATURES: $(_experimental_flag)
@@ -142,23 +144,16 @@ stages:
142144
clean: true
143145
- script: dotnet --list-sdks
144146
displayName: Report dotnet SDK versions
145-
- task: UseDotNet@2
146-
displayName: install SDK
147-
inputs:
148-
packageType: sdk
149-
useGlobalJson: true
150-
includePreviewVersions: true
151-
workingDirectory: $(Build.SourcesDirectory)
152-
installationPath: $(Agent.ToolsDirectory)/dotnet
153-
- script: dotnet tool restore
147+
148+
- script: ./eng/common/dotnet.sh tool restore
154149
env:
155150
DOTNET_ROLL_FORWARD_TO_PRERELEASE: 1
156151
displayName: Install tools
157-
- script: dotnet fsi src/Compiler/FSCompCheck.fsx
152+
- script: ./eng/common/dotnet.sh fsi src/Compiler/FSCompCheck.fsx
158153
env:
159154
DOTNET_ROLL_FORWARD_TO_PRERELEASE: 1
160155
displayName: Check error code sorting in src/Compiler/FSComp.txt
161-
- script: dotnet fantomas . --check
156+
- script: ./eng/common/dotnet.sh fantomas . --check
162157
env:
163158
DOTNET_ROLL_FORWARD_TO_PRERELEASE: 1
164159
displayName: Check code formatting (run 'dotnet fantomas .' to fix)
@@ -181,14 +176,16 @@ stages:
181176
steps:
182177
- checkout: self
183178
clean: true
179+
# We first download a publicly available .NET SDK. That one has support for `path` in global.json. dotnet.cmd script can then download a version which is not yet shipped, but matches global.json.
184180
- task: UseDotNet@2
185181
displayName: install SDK
186182
inputs:
187183
packageType: sdk
188-
useGlobalJson: true
184+
version: '10.x'
189185
includePreviewVersions: true
190186
workingDirectory: $(Build.SourcesDirectory)
191-
installationPath: $(Agent.ToolsDirectory)/dotnet
187+
installationPath: $(Build.SourcesDirectory)/.dotnet
188+
- script: ./eng/common/dotnet.sh
192189
- pwsh: ./check.ps1 -project $(_project)
193190
workingDirectory: $(Build.SourcesDirectory)/buildtools/checkpackages
194191
env:
@@ -769,15 +766,7 @@ stages:
769766
clean: true
770767
- script: dotnet --list-sdks
771768
displayName: Report dotnet SDK versions
772-
- task: UseDotNet@2
773-
displayName: install SDK
774-
inputs:
775-
packageType: sdk
776-
useGlobalJson: true
777-
includePreviewVersions: true
778-
workingDirectory: $(Build.SourcesDirectory)
779-
installationPath: $(Agent.ToolsDirectory)/dotnet
780-
- script: dotnet build .\FSharp.Compiler.Service.sln /bl:\"artifacts/log/$(_BuildConfig)/ServiceRegularBuild.binlog\"
769+
- script: .\eng\common\dotnet.cmd build .\FSharp.Compiler.Service.sln /bl:\"artifacts/log/$(_BuildConfig)/ServiceRegularBuild.binlog\"
781770
workingDirectory: $(Build.SourcesDirectory)
782771
displayName: Regular rebuild of FSharp.Compiler.Service.sln
783772
continueOnError: false
@@ -795,15 +784,7 @@ stages:
795784
clean: true
796785
- script: dotnet --list-sdks
797786
displayName: Report dotnet SDK versions
798-
- task: UseDotNet@2
799-
displayName: install SDK
800-
inputs:
801-
packageType: sdk
802-
useGlobalJson: true
803-
includePreviewVersions: true
804-
workingDirectory: $(Build.SourcesDirectory)
805-
installationPath: $(Agent.ToolsDirectory)/dotnet
806-
- script: dotnet build ./FSharp.Compiler.Service.sln /bl:\"artifacts/log/$(_BuildConfig)/ServiceRegularBuild.binlog\"
787+
- script: ./eng/common/dotnet.sh build ./FSharp.Compiler.Service.sln /bl:\"artifacts/log/$(_BuildConfig)/ServiceRegularBuild.binlog\"
807788
workingDirectory: $(Build.SourcesDirectory)
808789
displayName: Regular rebuild of FSharp.Compiler.Service.sln
809790
continueOnError: false
@@ -821,15 +802,7 @@ stages:
821802
clean: true
822803
- script: dotnet --list-sdks
823804
displayName: Report dotnet SDK versions
824-
- task: UseDotNet@2
825-
displayName: install SDK
826-
inputs:
827-
packageType: sdk
828-
useGlobalJson: true
829-
includePreviewVersions: true
830-
workingDirectory: $(Build.SourcesDirectory)
831-
installationPath: $(Agent.ToolsDirectory)/dotnet
832-
- script: dotnet build ./FSharp.Compiler.Service.sln /bl:\"artifacts/log/$(_BuildConfig)/ServiceRegularBuild.binlog\"
805+
- script: ./eng/common/dotnet.sh build ./FSharp.Compiler.Service.sln /bl:\"artifacts/log/$(_BuildConfig)/ServiceRegularBuild.binlog\"
833806
workingDirectory: $(Build.SourcesDirectory)
834807
displayName: Regular rebuild of FSharp.Compiler.Service.sln
835808
continueOnError: false
@@ -869,16 +842,16 @@ stages:
869842
steps:
870843
- checkout: self
871844
clean: true
845+
# We first download a publicly available .NET SDK. That one has support for `path` in global.json. dotnet.cmd script can then download a version which is not yet shipped, but matches global.json.
872846
- task: UseDotNet@2
873847
displayName: install SDK
874848
inputs:
875849
packageType: sdk
876-
useGlobalJson: true
850+
version: '10.x'
877851
includePreviewVersions: true
878852
workingDirectory: $(Build.SourcesDirectory)
879-
installationPath: $(Agent.ToolsDirectory)/dotnet
880-
- script: dotnet --list-sdks
881-
displayName: Report dotnet SDK versions
853+
installationPath: $(Build.SourcesDirectory)/.dotnet
854+
- script: .\eng\common\dotnet.cmd
882855
- script: .\Build.cmd $(_kind) -pack -c $(_BuildConfig)
883856
env:
884857
NativeToolsOnMachine: true
@@ -900,14 +873,16 @@ stages:
900873
steps:
901874
- checkout: self
902875
clean: true
876+
# We first download a publicly available .NET SDK. That one has support for `path` in global.json. dotnet.cmd script can then download a version which is not yet shipped, but matches global.json.
903877
- task: UseDotNet@2
904878
displayName: install SDK
905879
inputs:
906880
packageType: sdk
907-
useGlobalJson: true
881+
version: '10.x'
908882
includePreviewVersions: true
909883
workingDirectory: $(Build.SourcesDirectory)
910-
installationPath: $(Agent.ToolsDirectory)/dotnet
884+
installationPath: $(Build.SourcesDirectory)/.dotnet
885+
- script: .\eng\common\dotnet.cmd
911886
- script: dotnet tool restore
912887
displayName: Restore dotnet tools
913888
- pwsh: .\tests\ILVerify\ilverify.ps1

eng/Version.Details.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,9 @@
3535
</Dependency>
3636
</ProductDependencies>
3737
<ToolsetDependencies>
38-
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="10.0.0-beta.25271.2">
38+
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="10.0.0-beta.25316.2">
3939
<Uri>https://github.com/dotnet/arcade</Uri>
40-
<Sha>12d3a9f5d6138e22270694574e73e4c58a815795</Sha>
40+
<Sha>d9d02d858b71562509f72ea84409853e4deffc8f</Sha>
4141
</Dependency>
4242
<Dependency Name="optimization.windows_nt-x64.MIBC.Runtime" Version="1.0.0-prerelease.25317.1">
4343
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-optimization</Uri>

eng/common/build.ps1

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ Param(
2121
[switch] $publish,
2222
[switch] $clean,
2323
[switch][Alias('pb')]$productBuild,
24+
[switch]$fromVMR,
2425
[switch][Alias('bl')]$binaryLog,
2526
[switch][Alias('nobl')]$excludeCIBinarylog,
2627
[switch] $ci,
@@ -74,6 +75,7 @@ function Print-Usage() {
7475
Write-Host " -nativeToolsOnMachine Sets the native tools on machine environment variable (indicating that the script should use native tools on machine)"
7576
Write-Host " -nodeReuse <value> Sets nodereuse msbuild parameter ('true' or 'false')"
7677
Write-Host " -buildCheck Sets /check msbuild parameter"
78+
Write-Host " -fromVMR Set when building from within the VMR"
7779
Write-Host ""
7880

7981
Write-Host "Command line arguments not listed above are passed thru to msbuild."
@@ -128,6 +130,7 @@ function Build {
128130
/p:Test=$test `
129131
/p:Pack=$pack `
130132
/p:DotNetBuild=$productBuild `
133+
/p:DotNetBuildFromVMR=$fromVMR `
131134
/p:IntegrationTest=$integrationTest `
132135
/p:PerformanceTest=$performanceTest `
133136
/p:Sign=$sign `

eng/common/build.sh

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ usage()
4343
echo " --nodeReuse <value> Sets nodereuse msbuild parameter ('true' or 'false')"
4444
echo " --warnAsError <value> Sets warnaserror msbuild parameter ('true' or 'false')"
4545
echo " --buildCheck <value> Sets /check msbuild parameter"
46+
echo " --fromVMR Set when building from within the VMR"
4647
echo ""
4748
echo "Command line arguments not listed above are passed thru to msbuild."
4849
echo "Arguments can also be passed in with a single hyphen."
@@ -64,6 +65,7 @@ restore=false
6465
build=false
6566
source_build=false
6667
product_build=false
68+
from_vmr=false
6769
rebuild=false
6870
test=false
6971
integration_test=false
@@ -89,7 +91,7 @@ verbosity='minimal'
8991
runtime_source_feed=''
9092
runtime_source_feed_key=''
9193

92-
properties=''
94+
properties=()
9395
while [[ $# > 0 ]]; do
9496
opt="$(echo "${1/#--/-}" | tr "[:upper:]" "[:lower:]")"
9597
case "$opt" in
@@ -142,6 +144,9 @@ while [[ $# > 0 ]]; do
142144
restore=true
143145
pack=true
144146
;;
147+
-fromvmr|-from-vmr)
148+
from_vmr=true
149+
;;
145150
-test|-t)
146151
test=true
147152
;;
@@ -187,7 +192,7 @@ while [[ $# > 0 ]]; do
187192
shift
188193
;;
189194
*)
190-
properties="$properties $1"
195+
properties+=("$1")
191196
;;
192197
esac
193198

@@ -221,7 +226,7 @@ function Build {
221226
InitializeCustomToolset
222227

223228
if [[ ! -z "$projects" ]]; then
224-
properties="$properties /p:Projects=$projects"
229+
properties+=("/p:Projects=$projects")
225230
fi
226231

227232
local bl=""
@@ -243,6 +248,7 @@ function Build {
243248
/p:Build=$build \
244249
/p:DotNetBuild=$product_build \
245250
/p:DotNetBuildSourceOnly=$source_build \
251+
/p:DotNetBuildFromVMR=$from_vmr \
246252
/p:Rebuild=$rebuild \
247253
/p:Test=$test \
248254
/p:Pack=$pack \
@@ -251,7 +257,7 @@ function Build {
251257
/p:Sign=$sign \
252258
/p:Publish=$publish \
253259
/p:RestoreStaticGraphEnableBinaryLogger=$binary_log \
254-
$properties
260+
${properties[@]+"${properties[@]}"}
255261

256262
ExitWithExitCode 0
257263
}

eng/common/core-templates/job/onelocbuild.yml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,7 @@ jobs:
8686
isAutoCompletePrSelected: ${{ parameters.AutoCompletePr }}
8787
${{ if eq(parameters.CreatePr, true) }}:
8888
isUseLfLineEndingsSelected: ${{ parameters.UseLfLineEndings }}
89-
${{ if eq(parameters.RepoType, 'gitHub') }}:
90-
isShouldReusePrSelected: ${{ parameters.ReusePr }}
89+
isShouldReusePrSelected: ${{ parameters.ReusePr }}
9190
packageSourceAuth: patAuth
9291
patVariable: ${{ parameters.CeapexPat }}
9392
${{ if eq(parameters.RepoType, 'gitHub') }}:
@@ -118,4 +117,4 @@ jobs:
118117
pathToPublish: '$(Build.SourcesDirectory)/eng/Localize/'
119118
publishLocation: Container
120119
artifactName: Loc
121-
condition: ${{ parameters.condition }}
120+
condition: ${{ parameters.condition }}

eng/common/core-templates/job/publish-build-assets.yml

Lines changed: 42 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,12 @@ parameters:
3232
# Optional: 🌤️ or not the build has assets it wants to publish to BAR
3333
isAssetlessBuild: false
3434

35+
# Optional, publishing version
36+
publishingVersion: 3
37+
38+
# Optional: A minimatch pattern for the asset manifests to publish to BAR
39+
assetManifestsPattern: '*/manifests/**/*.xml'
40+
3541
jobs:
3642
- job: Asset_Registry_Publish
3743

@@ -77,13 +83,31 @@ jobs:
7783
clean: true
7884

7985
- ${{ if eq(parameters.isAssetlessBuild, 'false') }}:
80-
- task: DownloadPipelineArtifact@2
81-
displayName: Download Asset Manifests
82-
inputs:
83-
artifactName: AssetManifests
84-
targetPath: '$(Build.StagingDirectory)/AssetManifests'
85-
condition: ${{ parameters.condition }}
86-
continueOnError: ${{ parameters.continueOnError }}
86+
- ${{ if eq(parameters.publishingVersion, 3) }}:
87+
- task: DownloadPipelineArtifact@2
88+
displayName: Download Asset Manifests
89+
inputs:
90+
artifactName: AssetManifests
91+
targetPath: '$(Build.StagingDirectory)/AssetManifests'
92+
condition: ${{ parameters.condition }}
93+
continueOnError: ${{ parameters.continueOnError }}
94+
- ${{ if eq(parameters.publishingVersion, 4) }}:
95+
- task: DownloadPipelineArtifact@2
96+
displayName: Download V4 asset manifests
97+
inputs:
98+
itemPattern: '*/manifests/**/*.xml'
99+
targetPath: '$(Build.StagingDirectory)/AllAssetManifests'
100+
condition: ${{ parameters.condition }}
101+
continueOnError: ${{ parameters.continueOnError }}
102+
- task: CopyFiles@2
103+
displayName: Copy V4 asset manifests to AssetManifests
104+
inputs:
105+
SourceFolder: '$(Build.StagingDirectory)/AllAssetManifests'
106+
Contents: ${{ parameters.assetManifestsPattern }}
107+
TargetFolder: '$(Build.StagingDirectory)/AssetManifests'
108+
flattenFolders: true
109+
condition: ${{ parameters.condition }}
110+
continueOnError: ${{ parameters.continueOnError }}
87111

88112
- task: NuGetAuthenticate@1
89113

@@ -120,6 +144,17 @@ jobs:
120144
Copy-Item -Path $symbolExclusionfile -Destination "$(Build.StagingDirectory)/ReleaseConfigs"
121145
}
122146
147+
- ${{ if eq(parameters.publishingVersion, 4) }}:
148+
- template: /eng/common/core-templates/steps/publish-pipeline-artifacts.yml
149+
parameters:
150+
is1ESPipeline: ${{ parameters.is1ESPipeline }}
151+
args:
152+
targetPath: '$(Build.ArtifactStagingDirectory)/MergedManifest.xml'
153+
artifactName: AssetManifests
154+
displayName: 'Publish Merged Manifest'
155+
retryCountOnTaskFailure: 10 # for any logs being locked
156+
sbomEnabled: false # we don't need SBOM for logs
157+
123158
- template: /eng/common/core-templates/steps/publish-build-artifacts.yml
124159
parameters:
125160
is1ESPipeline: ${{ parameters.is1ESPipeline }}

eng/common/core-templates/steps/source-index-stage1-publish.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
parameters:
22
sourceIndexUploadPackageVersion: 2.0.0-20250425.2
3-
sourceIndexProcessBinlogPackageVersion: 1.0.1-20250425.2
3+
sourceIndexProcessBinlogPackageVersion: 1.0.1-20250515.1
44
sourceIndexPackageSource: https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json
55
binlogPath: artifacts/log/Debug/Build.binlog
66

77
steps:
88
- task: UseDotNet@2
9-
displayName: "Source Index: Use .NET 8 SDK"
9+
displayName: "Source Index: Use .NET 9 SDK"
1010
inputs:
1111
packageType: sdk
12-
version: 8.0.x
12+
version: 9.0.x
1313
installationPath: $(Agent.TempDirectory)/dotnet
1414
workingDirectory: $(Agent.TempDirectory)
1515

eng/common/cross/build-rootfs.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -295,8 +295,8 @@ while :; do
295295
;;
296296
noble) # Ubuntu 24.04
297297
__CodeName=noble
298-
if [[ -n "$__LLDB_Package" ]]; then
299-
__LLDB_Package="liblldb-18-dev"
298+
if [[ -z "$__LLDB_Package" ]]; then
299+
__LLDB_Package="liblldb-19-dev"
300300
fi
301301
;;
302302
stretch) # Debian 9

eng/common/dotnet.cmd

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
@echo off
2+
3+
:: This script is used to install the .NET SDK.
4+
:: It will also invoke the SDK with any provided arguments.
5+
6+
powershell -ExecutionPolicy ByPass -NoProfile -command "& """%~dp0dotnet.ps1""" %*"
7+
exit /b %ErrorLevel%

eng/common/dotnet.ps1

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# This script is used to install the .NET SDK.
2+
# It will also invoke the SDK with any provided arguments.
3+
4+
. $PSScriptRoot\tools.ps1
5+
$dotnetRoot = InitializeDotNetCli -install:$true
6+
7+
# Invoke acquired SDK with args if they are provided
8+
if ($args.count -gt 0) {
9+
$env:DOTNET_NOLOGO=1
10+
& "$dotnetRoot\dotnet.exe" $args
11+
}

0 commit comments

Comments
 (0)