Skip to content

Commit da2c5f4

Browse files
[main] Update dependencies from dotnet/arcade (#590)
* Update dependencies from https://github.com/dotnet/arcade build 20250521.2 Microsoft.DotNet.Arcade.Sdk From Version 10.0.0-beta.25178.2 -> To Version 10.0.0-beta.25271.2 * Update dependencies from https://github.com/dotnet/arcade build 20250529.3 Microsoft.DotNet.Arcade.Sdk From Version 10.0.0-beta.25178.2 -> To Version 10.0.0-beta.25279.3 --------- Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
1 parent 4c17aef commit da2c5f4

25 files changed

+725
-190
lines changed

eng/Version.Details.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
<ProductDependencies>
44
</ProductDependencies>
55
<ToolsetDependencies>
6-
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="10.0.0-beta.25178.2">
6+
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="10.0.0-beta.25279.3">
77
<Uri>https://github.com/dotnet/arcade</Uri>
8-
<Sha>7d1967403f5b12406763c666f41e3358bb542ced</Sha>
8+
<Sha>69b86684b43321e96f35fa3ea34c5315836ff858</Sha>
99
</Dependency>
1010
</ToolsetDependencies>
1111
</Dependencies>

eng/common/build.ps1

Lines changed: 4 additions & 1 deletion
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."
@@ -127,7 +129,8 @@ function Build {
127129
/p:Deploy=$deploy `
128130
/p:Test=$test `
129131
/p:Pack=$pack `
130-
/p:DotNetBuildRepo=$productBuild `
132+
/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: 13 additions & 7 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
@@ -129,19 +131,22 @@ while [[ $# > 0 ]]; do
129131
-pack)
130132
pack=true
131133
;;
132-
-sourcebuild|-sb)
134+
-sourcebuild|-source-build|-sb)
133135
build=true
134136
source_build=true
135137
product_build=true
136138
restore=true
137139
pack=true
138140
;;
139-
-productBuild|-pb)
141+
-productbuild|-product-build|-pb)
140142
build=true
141143
product_build=true
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=""
@@ -241,8 +246,9 @@ function Build {
241246
/p:RepoRoot="$repo_root" \
242247
/p:Restore=$restore \
243248
/p:Build=$build \
244-
/p:DotNetBuildRepo=$product_build \
249+
/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/job.yml

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -73,9 +73,6 @@ jobs:
7373
- ${{ if ne(parameters.enableTelemetry, 'false') }}:
7474
- name: DOTNET_CLI_TELEMETRY_PROFILE
7575
value: '$(Build.Repository.Uri)'
76-
- ${{ if eq(parameters.enableRichCodeNavigation, 'true') }}:
77-
- name: EnableRichCodeNavigation
78-
value: 'true'
7976
# Retry signature validation up to three times, waiting 2 seconds between attempts.
8077
# See https://learn.microsoft.com/en-us/nuget/reference/errors-and-warnings/nu3028#retry-untrusted-root-failures
8178
- name: NUGET_EXPERIMENTAL_CHAIN_BUILD_RETRY_POLICY
@@ -147,16 +144,6 @@ jobs:
147144
- ${{ each step in parameters.steps }}:
148145
- ${{ step }}
149146

150-
- ${{ if eq(parameters.enableRichCodeNavigation, true) }}:
151-
- task: RichCodeNavIndexer@0
152-
displayName: RichCodeNav Upload
153-
inputs:
154-
languages: ${{ coalesce(parameters.richCodeNavigationLanguage, 'csharp') }}
155-
environment: ${{ coalesce(parameters.richCodeNavigationEnvironment, 'internal') }}
156-
richNavLogOutputDirectory: $(Build.SourcesDirectory)/artifacts/bin
157-
uploadRichNavArtifacts: ${{ coalesce(parameters.richCodeNavigationUploadArtifacts, false) }}
158-
continueOnError: true
159-
160147
- ${{ each step in parameters.componentGovernanceSteps }}:
161148
- ${{ step }}
162149

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

Lines changed: 50 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,15 @@ parameters:
2929

3030
is1ESPipeline: ''
3131

32+
# Optional: 🌤️ or not the build has assets it wants to publish to BAR
33+
isAssetlessBuild: false
34+
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+
3241
jobs:
3342
- job: Asset_Registry_Publish
3443

@@ -72,14 +81,33 @@ jobs:
7281
- checkout: self
7382
fetchDepth: 3
7483
clean: true
75-
76-
- task: DownloadPipelineArtifact@2
77-
displayName: Download Asset Manifests
78-
inputs:
79-
artifactName: AssetManifests
80-
targetPath: '$(Build.StagingDirectory)/AssetManifests'
81-
condition: ${{ parameters.condition }}
82-
continueOnError: ${{ parameters.continueOnError }}
84+
85+
- ${{ if eq(parameters.isAssetlessBuild, 'false') }}:
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 }}
83111

84112
- task: NuGetAuthenticate@1
85113

@@ -92,6 +120,7 @@ jobs:
92120
scriptPath: $(Build.SourcesDirectory)/eng/common/sdk-task.ps1
93121
arguments: -task PublishBuildAssets -restore -msbuildEngine dotnet
94122
/p:ManifestsPath='$(Build.StagingDirectory)/AssetManifests'
123+
/p:IsAssetlessBuild=${{ parameters.isAssetlessBuild }}
95124
/p:MaestroApiEndpoint=https://maestro.dot.net
96125
/p:OfficialBuildId=$(Build.BuildNumber)
97126
condition: ${{ parameters.condition }}
@@ -115,6 +144,17 @@ jobs:
115144
Copy-Item -Path $symbolExclusionfile -Destination "$(Build.StagingDirectory)/ReleaseConfigs"
116145
}
117146
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+
118158
- template: /eng/common/core-templates/steps/publish-build-artifacts.yml
119159
parameters:
120160
is1ESPipeline: ${{ parameters.is1ESPipeline }}
@@ -124,7 +164,7 @@ jobs:
124164
publishLocation: Container
125165
artifactName: ReleaseConfigs
126166

127-
- ${{ if eq(parameters.publishAssetsImmediately, 'true') }}:
167+
- ${{ if or(eq(parameters.publishAssetsImmediately, 'true'), eq(parameters.isAssetlessBuild, 'true')) }}:
128168
- template: /eng/common/core-templates/post-build/setup-maestro-vars.yml
129169
parameters:
130170
BARBuildId: ${{ parameters.BARBuildId }}
@@ -145,6 +185,7 @@ jobs:
145185
-WaitPublishingFinish true
146186
-ArtifactsPublishingAdditionalParameters '${{ parameters.artifactsPublishingAdditionalParameters }}'
147187
-SymbolPublishingAdditionalParameters '${{ parameters.symbolPublishingAdditionalParameters }}'
188+
-SkipAssetsPublishing '${{ parameters.isAssetlessBuild }}'
148189
149190
- ${{ if eq(parameters.enablePublishBuildArtifacts, 'true') }}:
150191
- template: /eng/common/core-templates/steps/publish-logs.yml

eng/common/core-templates/job/source-build.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ parameters:
2727
# Specifies the build script to invoke to perform the build in the repo. The default
2828
# './build.sh' should work for typical Arcade repositories, but this is customizable for
2929
# difficult situations.
30+
# buildArguments: ''
31+
# Specifies additional build arguments to pass to the build script.
3032
# jobProperties: {}
3133
# A list of job properties to inject at the top level, for potential extensibility beyond
3234
# container and pool.

eng/common/core-templates/jobs/jobs.yml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@ parameters:
2727
# Optional: Publish the assets as soon as the publish to BAR stage is complete, rather doing so in a separate stage.
2828
publishAssetsImmediately: false
2929

30+
# Optional: 🌤️ or not the build has assets it wants to publish to BAR
31+
isAssetlessBuild: false
32+
3033
# Optional: If using publishAssetsImmediately and additional parameters are needed, can be used to send along additional parameters (normally sent to post-build.yml)
3134
artifactsPublishingAdditionalParameters: ''
3235
signingValidationAdditionalParameters: ''
@@ -93,7 +96,7 @@ jobs:
9396
${{ parameter.key }}: ${{ parameter.value }}
9497

9598
- ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
96-
- ${{ if or(eq(parameters.enablePublishBuildAssets, true), eq(parameters.artifacts.publish.manifests, 'true'), ne(parameters.artifacts.publish.manifests, '')) }}:
99+
- ${{ if or(eq(parameters.enablePublishBuildAssets, true), eq(parameters.artifacts.publish.manifests, 'true'), ne(parameters.artifacts.publish.manifests, ''), eq(parameters.isAssetlessBuild, true)) }}:
97100
- template: ../job/publish-build-assets.yml
98101
parameters:
99102
is1ESPipeline: ${{ parameters.is1ESPipeline }}
@@ -109,7 +112,8 @@ jobs:
109112
- Source_Build_Complete
110113

111114
runAsPublic: ${{ parameters.runAsPublic }}
112-
publishAssetsImmediately: ${{ parameters.publishAssetsImmediately }}
115+
publishAssetsImmediately: ${{ or(parameters.publishAssetsImmediately, parameters.isAssetlessBuild) }}
116+
isAssetlessBuild: ${{ parameters.isAssetlessBuild }}
113117
enablePublishBuildArtifacts: ${{ parameters.enablePublishBuildArtifacts }}
114118
artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
115119
signingValidationAdditionalParameters: ${{ parameters.signingValidationAdditionalParameters }}

eng/common/core-templates/jobs/source-build.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ parameters:
1414
# This is the default platform provided by Arcade, intended for use by a managed-only repo.
1515
defaultManagedPlatform:
1616
name: 'Managed'
17-
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream9'
17+
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream-10-amd64'
1818

1919
# Defines the platforms on which to run build jobs. One job is created for each platform, and the
2020
# object in this array is sent to the job template as 'platform'. If no platforms are specified,

eng/common/core-templates/post-build/post-build.yml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,11 @@ parameters:
6060
artifactNames: ''
6161
downloadArtifacts: true
6262

63+
- name: isAssetlessBuild
64+
type: boolean
65+
displayName: Is Assetless Build
66+
default: false
67+
6368
# These parameters let the user customize the call to sdk-task.ps1 for publishing
6469
# symbols & general artifacts as well as for signing validation
6570
- name: symbolPublishingAdditionalParameters
@@ -188,9 +193,6 @@ stages:
188193
buildId: $(AzDOBuildId)
189194
artifactName: PackageArtifacts
190195
checkDownloadedFiles: true
191-
itemPattern: |
192-
**
193-
!**/Microsoft.SourceBuild.Intermediate.*.nupkg
194196

195197
# This is necessary whenever we want to publish/restore to an AzDO private feed
196198
# Since sdk-task.ps1 tries to restore packages we need to do this authentication here
@@ -320,3 +322,4 @@ stages:
320322
-RequireDefaultChannels ${{ parameters.requireDefaultChannels }}
321323
-ArtifactsPublishingAdditionalParameters '${{ parameters.artifactsPublishingAdditionalParameters }}'
322324
-SymbolPublishingAdditionalParameters '${{ parameters.symbolPublishingAdditionalParameters }}'
325+
-SkipAssetsPublishing '${{ parameters.isAssetlessBuild }}'

eng/common/core-templates/steps/install-microbuild.yml

Lines changed: 0 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -11,30 +11,6 @@ parameters:
1111
steps:
1212
- ${{ if eq(parameters.enableMicrobuild, 'true') }}:
1313
- ${{ if eq(parameters.enableMicrobuildForMacAndLinux, 'true') }}:
14-
# Install Python 3.12.x on when Python > 3.12.x is installed - https://github.com/dotnet/source-build/issues/4802
15-
- script: |
16-
version=$(python3 --version | awk '{print $2}')
17-
major=$(echo $version | cut -d. -f1)
18-
minor=$(echo $version | cut -d. -f2)
19-
20-
installPython=false
21-
if [ "$major" -gt 3 ] || { [ "$major" -eq 3 ] && [ "$minor" -gt 12 ]; }; then
22-
installPython=true
23-
fi
24-
25-
echo "Python version: $version."
26-
echo "Install Python 3.12.x: $installPython."
27-
echo "##vso[task.setvariable variable=installPython;isOutput=true]$installPython"
28-
name: InstallPython
29-
displayName: 'Determine Python installation'
30-
condition: and(succeeded(), ne(variables['Agent.Os'], 'Windows_NT'))
31-
32-
- task: UsePythonVersion@0
33-
inputs:
34-
versionSpec: '3.12.x'
35-
displayName: 'Use Python 3.12.x'
36-
condition: and(succeeded(), eq(variables['InstallPython.installPython'], 'true'), ne(variables['Agent.Os'], 'Windows_NT'))
37-
3814
# Needed to download the MicroBuild plugin nupkgs on Mac and Linux when nuget.exe is unavailable
3915
- task: UseDotNet@2
4016
displayName: Install .NET 8.0 SDK for MicroBuild Plugin
@@ -72,28 +48,3 @@ steps:
7248
eq(variables['_SignType'], 'real')
7349
)
7450
))
75-
76-
# Workaround for ESRP CLI on Linux - https://github.com/dotnet/source-build/issues/4964
77-
- ${{ if eq(parameters.enableMicrobuildForMacAndLinux, 'true') }}:
78-
- task: UseDotNet@2
79-
displayName: Install .NET 9.0 SDK for ESRP CLI Workaround
80-
inputs:
81-
packageType: sdk
82-
version: 9.0.x
83-
installationPath: ${{ parameters.microBuildOutputFolder }}/.dotnet
84-
workingDirectory: ${{ parameters.microBuildOutputFolder }}
85-
condition: and(succeeded(), eq(variables['Agent.OS'], 'Linux'))
86-
87-
- task: PowerShell@2
88-
displayName: Workaround for ESRP CLI on Linux
89-
inputs:
90-
targetType: 'inline'
91-
script: |
92-
Write-Host "Copying Linux Path"
93-
$MBSIGN_APPFOLDER = '$(MBSIGN_APPFOLDER)'
94-
$MBSIGN_APPFOLDER = $MBSIGN_APPFOLDER -replace '/build', ''
95-
$MBSIGN_APPFOLDER = $MBSIGN_APPFOLDER + '/1.1.1032' + '/build'
96-
$MBSIGN_APPFOLDER | Write-Host
97-
$SignConfigPath = $MBSIGN_APPFOLDER + '/signconfig.xml'
98-
Copy-Item -Path "$(MBSIGN_APPFOLDER)/signconfig.xml" -Destination $SignConfigPath -Force
99-
condition: and(succeeded(), eq(variables['Agent.OS'], 'Linux'))

0 commit comments

Comments
 (0)