Skip to content

Commit b02d0c4

Browse files
authored
[automated] Merge branch 'vs17.12' => 'vs17.14' (#12448)
I detected changes in the vs17.12 branch which have not been merged yet to vs17.14. I'm a robot and am configured to help you automatically keep vs17.14 up to date, so I've opened this PR. This PR merges commits made on vs17.12 by the following committers: * @github-actions[bot] * @dotnet-maestro[bot] ## Instructions for merging from UI This PR will not be auto-merged. When pull request checks pass, complete this PR by creating a merge commit, *not* a squash or rebase commit. <img alt="merge button instructions" src="https://i.imgur.com/GepcNJV.png" width="300" /> If this repo does not allow creating merge commits from the GitHub UI, use command line instructions. ## Instructions for merging via command line Run these commands to merge this pull request from the command line. ``` sh git fetch git checkout vs17.12 git pull --ff-only git checkout vs17.14 git pull --ff-only git merge --no-ff vs17.12 # If there are merge conflicts, resolve them and then run git merge --continue to complete the merge # Pushing the changes to the PR branch will re-trigger PR validation. git push https://github.com/dotnet/msbuild HEAD:merge/vs17.12-to-vs17.14 ``` <details> <summary>or if you are using SSH</summary> ``` git push [email protected]:dotnet/msbuild HEAD:merge/vs17.12-to-vs17.14 ``` </details> After PR checks are complete push the branch ``` git push ``` ## Instructions for resolving conflicts :warning: If there are merge conflicts, you will need to resolve them manually before merging. You can do this [using GitHub][resolve-github] or using the [command line][resolve-cli]. [resolve-github]: https://help.github.com/articles/resolving-a-merge-conflict-on-github/ [resolve-cli]: https://help.github.com/articles/resolving-a-merge-conflict-using-the-command-line/ ## Instructions for updating this pull request Contributors to this repo have permission update this pull request by pushing to the branch 'merge/vs17.12-to-vs17.14'. This can be done to resolve conflicts or make other changes to this pull request before it is merged. The provided examples assume that the remote is named 'origin'. If you have a different remote name, please replace 'origin' with the name of your remote. ``` git fetch git checkout -b merge/vs17.12-to-vs17.14 origin/vs17.14 git pull https://github.com/dotnet/msbuild merge/vs17.12-to-vs17.14 (make changes) git commit -m "Updated PR with my changes" git push https://github.com/dotnet/msbuild HEAD:merge/vs17.12-to-vs17.14 ``` <details> <summary>or if you are using SSH</summary> ``` git fetch git checkout -b merge/vs17.12-to-vs17.14 origin/vs17.14 git pull [email protected]:dotnet/msbuild merge/vs17.12-to-vs17.14 (make changes) git commit -m "Updated PR with my changes" git push [email protected]:dotnet/msbuild HEAD:merge/vs17.12-to-vs17.14 ``` </details> Contact .NET Core Engineering (dotnet/dnceng) if you have questions or issues. Also, if this PR was generated incorrectly, help us fix it. See https://github.com/dotnet/arcade/blob/main/.github/workflows/scripts/inter-branch-merge.ps1.
2 parents b001927 + 04c6886 commit b02d0c4

File tree

11 files changed

+389
-267
lines changed

11 files changed

+389
-267
lines changed

.vsts-dotnet-ci.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,8 @@ jobs:
8989
inputs:
9090
filename: 'eng/cibuild_bootstrapped_msbuild.cmd'
9191
arguments: -onlyDocChanged $(onlyDocChanged)
92+
env:
93+
ForceUseXCopyMSBuild: 1
9294
- task: PublishTestResults@2
9395
displayName: Publish .NET Framework Test Results
9496
inputs:
@@ -428,4 +430,4 @@ jobs:
428430
PathtoPublish: '$(Build.ArtifactStagingDirectory)/Verify'
429431
ArtifactName: 'macOS Verify $(System.JobAttempt)'
430432

431-
- template: /eng/common/templates/jobs/source-build.yml
433+
- template: /eng/common/templates/jobs/source-build.yml

.vsts-dotnet.yml

Lines changed: 41 additions & 249 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
trigger:
22
- main
33
- vs*
4-
- exp/*
5-
- perf/*
64

75
# If defined here, these values are not overrideable
86
# Once they exist, we should define these as "runtime parameters"
@@ -16,10 +14,14 @@ parameters:
1614
displayName: Optional OptProfDrop Override
1715
type: string
1816
default: 'default'
19-
- name: EnableOptProf
17+
- name: enableOptProf
2018
displayName: Enable OptProf data collection for this build
2119
type: boolean
2220
default: true
21+
- name: enableSigningValidation
22+
displayName: Enable Signing Validation
23+
type: boolean
24+
default: true
2325

2426
variables:
2527
# if OptProfDrop is not set, string '$(OptProfDrop)' will be passed to the build script.
@@ -34,11 +36,11 @@ variables:
3436
# if OptProfDropName is set as a parameter, set OptProfDrop to the parameter and unset SourceBranch
3537
- ${{ if ne(parameters.OptProfDropName, 'default') }}:
3638
- name: OptProfDrop
37-
value: ${{parameters.OptProfDropName}}
39+
value: ${{ parameters.OptProfDropName }}
3840
- name: SourceBranch
3941
value: ''
4042
# Override SkipApplyOptimizationData to true when disabling OptProf data collection
41-
- ${{ if eq(parameters.EnableOptProf, false) }}:
43+
- ${{ if eq(parameters.enableOptProf, false) }}:
4244
- name: SkipApplyOptimizationData
4345
value: true
4446
- name: EnableReleaseOneLocBuild
@@ -88,257 +90,47 @@ extends:
8890
suppressionsFile: $(Build.SourcesDirectory)/eng/CredScanSuppressions.json
8991

9092
stages:
93+
- ${{ if or(startsWith(variables['Build.SourceBranch'], 'refs/heads/vs'), eq(variables['Build.SourceBranch'], 'refs/heads/main')) }}:
94+
- stage: localization
95+
displayName: Localization
96+
jobs:
97+
# The localization setup for release/ branches. Note difference in LclPackageId. main branch is handled separately below.
98+
# Used for vs17.2, vs17.4, vs17.6 etc. branches only.
99+
# When the branch is setup for localization (the localization ticket needs to be created - https://aka.ms/ceChangeLocConfig, requesting change from one release branch to another),
100+
# set 'EnableReleaseOneLocBuild' to true.
101+
- ${{ if startsWith(variables['Build.SourceBranch'], 'refs/heads/vs') }}:
102+
- template: /eng/common/templates-official/job/onelocbuild.yml@self
103+
parameters:
104+
MirrorRepo: 'msbuild'
105+
LclSource: lclFilesfromPackage
106+
LclPackageId: 'LCL-JUNO-PROD-MSBUILDREL'
107+
MirrorBranch: ${{ replace(variables['Build.SourceBranch'], 'refs/heads/', '') }}
108+
JobNameSuffix: '_release'
109+
condition: ${{ variables.EnableReleaseOneLocBuild }}
110+
# The localization setup for main branch. Note difference in package ID. Should not be used with release/ branches.
111+
- ${{ if eq(variables['Build.SourceBranch'], 'refs/heads/main') }}:
112+
- template: /eng/common/templates-official/job/onelocbuild.yml@self
113+
parameters:
114+
MirrorRepo: 'msbuild'
115+
LclSource: lclFilesfromPackage
116+
LclPackageId: 'LCL-JUNO-PROD-MSBUILD'
117+
MirrorBranch: 'main'
118+
JobNameSuffix: '_main'
119+
condition: eq(variables['Build.SourceBranch'], 'refs/heads/main')
120+
91121
- stage: build
92122
displayName: Build
93-
94123
jobs:
95-
# The localization setup for release/ branches. Note difference in LclPackageId. main branch is handled separately below.
96-
# Used for vs17.2, vs17.4, vs17.6 etc. branches only.
97-
# When the branch is setup for localization (the localization ticket needs to be created - https://aka.ms/ceChangeLocConfig, requesting change from one release branch to another),
98-
# set 'EnableReleaseOneLocBuild' to true.
99-
- ${{ if startsWith(variables['Build.SourceBranch'], 'refs/heads/vs') }}:
100-
- template: /eng/common/templates-official/job/onelocbuild.yml@self
101-
parameters:
102-
MirrorRepo: 'msbuild'
103-
LclSource: lclFilesfromPackage
104-
LclPackageId: 'LCL-JUNO-PROD-MSBUILDREL'
105-
MirrorBranch: ${{ replace(variables['Build.SourceBranch'], 'refs/heads/', '') }}
106-
JobNameSuffix: '_release'
107-
condition: ${{ variables.EnableReleaseOneLocBuild }}
108-
# The localization setup for main branch. Note difference in package ID. Should not be used with release/ branches.
109-
- ${{ if eq(variables['Build.SourceBranch'], 'refs/heads/main') }}:
110-
- template: /eng/common/templates-official/job/onelocbuild.yml@self
111-
parameters:
112-
MirrorRepo: 'msbuild'
113-
LclSource: lclFilesfromPackage
114-
LclPackageId: 'LCL-JUNO-PROD-MSBUILD'
115-
MirrorBranch: 'main'
116-
JobNameSuffix: '_main'
117-
condition: eq(variables['Build.SourceBranch'], 'refs/heads/main')
118-
119-
- job: Windows_NT
120-
pool:
121-
name: VSEngSS-MicroBuild2022-1ES
122-
demands:
123-
- agent.os -equals Windows_NT
124-
125-
timeoutInMinutes: 180
126-
127-
variables:
128-
- group: Publish-Build-Assets
129-
- name: TeamName
130-
value: MSBuild
131-
- name: VisualStudio.MajorVersion
132-
value: 17
133-
- name: VisualStudio.ChannelName
134-
value: 'int.d17.14' # MSBuild's vs17.14 branch corresponds to this VS channel
135-
- name: VisualStudio.DropName
136-
value: Products/$(System.TeamProject)/$(Build.Repository.Name)/$(Build.SourceBranchName)/$(Build.BuildNumber)
137-
138-
steps:
139-
- task: NuGetToolInstaller@1
140-
displayName: 'Install NuGet.exe'
141-
- pwsh: Get-MpComputerStatus
142-
143-
- pwsh: Set-MpPreference -DisableRealtimeMonitoring $true
144-
145-
- task: PowerShell@2
146-
displayName: Setup Private Feeds Credentials
147-
inputs:
148-
filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.ps1
149-
arguments: -ConfigFile $(Build.SourcesDirectory)/NuGet.config -Password $Env:Token
150-
env:
151-
Token: $(dn-bot-dnceng-artifact-feeds-rw)
152-
153-
- task: NuGetCommand@2
154-
displayName: Restore internal tools
155-
inputs:
156-
command: restore
157-
feedsToUse: config
158-
restoreSolution: 'eng\common\internal\Tools.csproj'
159-
nugetConfigPath: 'eng\common\internal\NuGet.config'
160-
restoreDirectory: '$(Build.SourcesDirectory)\.packages'
161-
162-
- task: ms-vseng.MicroBuildTasks.30666190-6959-11e5-9f96-f56098202fef.MicroBuildSigningPlugin@1
163-
inputs:
164-
signType: $(SignType)
165-
zipSources: false
166-
condition: and(succeeded(), in(variables['SignType'], 'test', 'real'))
167-
168-
- task: MicroBuildOptProfPlugin@6
169-
inputs:
170-
ProfilingInputsDropName: '$(VisualStudio.DropName)'
171-
ShouldSkipOptimize: true
172-
AccessToken: '$(System.AccessToken)'
173-
feedSource: 'https://devdiv.pkgs.visualstudio.com/DefaultCollection/_packaging/MicroBuildToolset/nuget/v3/index.json'
174-
displayName: 'Install OptProf Plugin'
175-
condition: and(succeeded(), ${{ parameters.EnableOptProf }})
176-
177-
# Required by MicroBuildBuildVSBootstrapper
178-
- task: MicroBuildSwixPlugin@4
179-
inputs:
180-
dropName: $(VisualStudio.DropName)
181-
182-
- script: eng/CIBuild.cmd
183-
-configuration $(BuildConfiguration)
184-
-officialBuildId $(Build.BuildNumber)
185-
-officialSkipApplyOptimizationData $(SkipApplyOptimizationData)
186-
/p:RepositoryName=$(Build.Repository.Name)
187-
/p:VisualStudioIbcSourceBranchName=$(SourceBranch)
188-
/p:VisualStudioDropAccessToken=$(System.AccessToken)
189-
/p:VisualStudioDropName=$(VisualStudio.DropName)
190-
/p:DotNetSignType=$(SignType)
191-
/p:TeamName=MSBuild
192-
/p:DotNetPublishUsingPipelines=true
193-
/p:VisualStudioIbcDrop=$(OptProfDrop)
194-
/p:GenerateSbom=true
195-
/p:SuppressFinalPackageVersion=$(IsExperimental)
196-
displayName: Build
197-
condition: succeeded()
198-
199-
# Required by Microsoft policy
200-
- template: eng\common\templates-official\steps\generate-sbom.yml@self
201-
202-
# Publish OptProf configuration files
203-
- task: 1ES.PublishArtifactsDrop@1
204-
inputs:
205-
dropServiceURI: 'https://devdiv.artifacts.visualstudio.com'
206-
buildNumber: 'ProfilingInputs/DevDiv/$(Build.Repository.Name)/$(Build.SourceBranchName)/$(Build.BuildNumber)'
207-
sourcePath: '$(Build.SourcesDirectory)\artifacts\OptProf\$(BuildConfiguration)\Data'
208-
toLowerCase: false
209-
usePat: true
210-
displayName: 'OptProf - Publish to Artifact Services - ProfilingInputs'
211-
condition: and(succeeded(), ${{ parameters.EnableOptProf }})
212-
213-
# Build VS bootstrapper
214-
# Generates $(Build.StagingDirectory)\MicroBuild\Output\BootstrapperInfo.json
215-
- task: MicroBuildBuildVSBootstrapper@3
216-
inputs:
217-
vsMajorVersion: $(VisualStudio.MajorVersion)
218-
channelName: $(VisualStudio.ChannelName)
219-
manifests: $(VisualStudio.SetupManifestList)
220-
outputFolder: '$(Build.SourcesDirectory)\artifacts\VSSetup\$(BuildConfiguration)\Insertion'
221-
displayName: 'OptProf - Build VS bootstrapper'
222-
condition: and(succeeded(), ${{ parameters.EnableOptProf }})
223-
224-
# Publish run settings
225-
- task: PowerShell@2
226-
inputs:
227-
filePath: eng\common\sdk-task.ps1
228-
arguments: -configuration $(BuildConfiguration)
229-
-task VisualStudio.BuildIbcTrainingSettings
230-
/p:VisualStudioDropName=$(VisualStudio.DropName)
231-
/p:BootstrapperInfoPath=$(Build.StagingDirectory)\MicroBuild\Output\BootstrapperInfo.json
232-
/p:VisualStudioIbcTrainingSettingsPath=$(Build.SourcesDirectory)\eng\config\OptProf.runsettings
233-
displayName: 'OptProf - Build IBC training settings'
234-
condition: and(succeeded(), ${{ parameters.EnableOptProf }})
235-
236-
# Publish bootstrapper info
237-
- task: 1ES.PublishBuildArtifacts@1
238-
inputs:
239-
PathtoPublish: $(Build.StagingDirectory)\MicroBuild\Output
240-
ArtifactName: MicroBuildOutputs
241-
ArtifactType: Container
242-
displayName: 'OptProf - Publish Artifact: MicroBuildOutputs'
243-
condition: and(succeeded(), ${{ parameters.EnableOptProf }})
244-
245-
- task: 1ES.PublishBuildArtifacts@1
246-
displayName: 'Publish Artifact: logs'
247-
inputs:
248-
PathtoPublish: 'artifacts\log\$(BuildConfiguration)'
249-
ArtifactName: logs
250-
condition: succeededOrFailed()
251-
252-
# Publishes setup VSIXes to a drop.
253-
# Note: The insertion tool looks for the display name of this task in the logs.
254-
- task: 1ES.MicroBuildVstsDrop@1
255-
displayName: Upload VSTS Drop
256-
inputs:
257-
dropName: $(VisualStudio.DropName)
258-
dropFolder: 'artifacts\VSSetup\$(BuildConfiguration)\Insertion'
259-
dropRetentionDays: '30' # extended by insertion + VS release
260-
accessToken: '$(System.AccessToken)'
261-
dropServiceUri: 'https://devdiv.artifacts.visualstudio.com'
262-
vsDropServiceUri: 'https://vsdrop.corp.microsoft.com/file/v1'
263-
condition: succeeded()
264-
265-
# Publish an artifact that the RoslynInsertionTool is able to find by its name.
266-
- task: 1ES.PublishBuildArtifacts@1
267-
displayName: 'Publish Artifact: VSSetup'
268-
inputs:
269-
PathtoPublish: 'artifacts\VSSetup\$(BuildConfiguration)'
270-
ArtifactName: VSSetup
271-
condition: succeeded()
272-
273-
# Archive NuGet packages to DevOps.
274-
# Publish our NuPkgs as an artifact. The name of this artifact must be PackageArtifacts as the
275-
# arcade templates depend on the name.
276-
- task: 1ES.PublishBuildArtifacts@1
277-
displayName: 'Publish Artifact: packages'
278-
inputs:
279-
PathtoPublish: 'artifacts\packages\$(BuildConfiguration)'
280-
ArtifactName: PackageArtifacts
281-
condition: succeeded()
282-
283-
# Publish "IntelliSense" XSD files to their own artifact
284-
# so it can be consumed by the insertion-to-VS job
285-
- task: 1ES.PublishPipelineArtifact@1
286-
displayName: 'Publish Artifact: xsd'
287-
inputs:
288-
path: 'artifacts\xsd'
289-
artifactName: xsd
290-
condition: succeeded()
291-
292-
# Publish Asset Manifests for Build Asset Registry job
293-
- task: 1ES.PublishBuildArtifacts@1
294-
displayName: Publish Asset Manifests
295-
inputs:
296-
PathtoPublish: '$(Build.SourcesDirectory)/artifacts/log/$(BuildConfiguration)/AssetManifest'
297-
ArtifactName: AssetManifests
298-
condition: succeeded()
299-
300-
# Tag the build at the very end when we know it's been successful.
301-
- task: colinsalmcorner.colinsalmcorner-buildtasks.tag-build-task.tagBuildOrRelease@0
302-
displayName: Tag build as ready for optimization training
303-
inputs:
304-
tags: 'ready-for-training'
305-
condition: and(succeeded(), ${{ parameters.EnableOptProf }})
306-
307-
- task: ms-vseng.MicroBuildTasks.521a94ea-9e68-468a-8167-6dcf361ea776.MicroBuildCleanup@1
308-
displayName: Execute cleanup tasks
309-
condition: succeededOrFailed()
310-
311-
- template: /eng/common/templates-official/steps/component-governance.yml@self
312-
parameters:
313-
${{ if or(startsWith(variables['Build.SourceBranch'], 'refs/heads/vs'), eq(variables['Build.SourceBranch'], 'refs/heads/main')) }}:
314-
disableComponentGovernance: false
315-
${{ else }}:
316-
disableComponentGovernance: true
317-
318-
- template: /eng/common/templates-official/jobs/source-build.yml@self
319-
parameters:
320-
platforms:
321-
- name: Managed
322-
pool:
323-
name: AzurePipelines-EO
324-
image: 1ESPT-Ubuntu22.04
325-
os: linux
326-
327-
- template: /eng/common/templates-official/job/publish-build-assets.yml@self
124+
- template: /azure-pipelines/.vsts-dotnet-build-jobs.yml@self
328125
parameters:
329-
enablePublishBuildArtifacts: true
330-
publishUsingPipelines: true
331-
dependsOn:
332-
- Windows_NT
333-
- Source_Build_Managed
334-
pool:
335-
name: $(DncEngInternalBuildPool)
336-
image: $(WindowsImage)
337-
os: windows
126+
isExperimental: false
127+
enableComponentGovernance: true
128+
enableOptProf: ${{ parameters.enableOptProf }}
338129

339-
- template: eng\common\templates-official\post-build\post-build.yml@self
130+
- template: /eng/common/templates-official/post-build/post-build.yml@self
340131
parameters:
341132
publishingInfraVersion: 3
342133
enableSymbolValidation: true
343134
enableSourceLinkValidation: false
344135
enableNugetValidation: false
136+
enableSigningValidation: ${{ parameters.enableSigningValidation }}

0 commit comments

Comments
 (0)