Skip to content

Commit a0d1c24

Browse files
github-actions[bot]dotnet-maestro[bot]GangWang01huulinhnguyen-devYuliiaKovalova
authored
[automated] Merge branch 'vs17.10' => 'vs17.11' (#12442)
I detected changes in the vs17.10 branch which have not been merged yet to vs17.11. I'm a robot and am configured to help you automatically keep vs17.11 up to date, so I've opened this PR. This PR merges commits made on vs17.10 by the following committers: * @JanProvaznik * @YuliiaKovalova * @github-actions[bot] * @dotnet-maestro[bot] * @GangWang01 ## 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.10 git pull --ff-only git checkout vs17.11 git pull --ff-only git merge --no-ff vs17.10 # 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.10-to-vs17.11 ``` <details> <summary>or if you are using SSH</summary> ``` git push [email protected]:dotnet/msbuild HEAD:merge/vs17.10-to-vs17.11 ``` </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.10-to-vs17.11'. 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.10-to-vs17.11 origin/vs17.11 git pull https://github.com/dotnet/msbuild merge/vs17.10-to-vs17.11 (make changes) git commit -m "Updated PR with my changes" git push https://github.com/dotnet/msbuild HEAD:merge/vs17.10-to-vs17.11 ``` <details> <summary>or if you are using SSH</summary> ``` git fetch git checkout -b merge/vs17.10-to-vs17.11 origin/vs17.11 git pull [email protected]:dotnet/msbuild merge/vs17.10-to-vs17.11 (make changes) git commit -m "Updated PR with my changes" git push [email protected]:dotnet/msbuild HEAD:merge/vs17.10-to-vs17.11 ``` </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. --------- Co-authored-by: dotnet-maestro[bot] <42748379+dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: Gang Wang <[email protected]> Co-authored-by: Nguyen Huu Linh <[email protected]> Co-authored-by: YuliiaKovalova <[email protected]> Co-authored-by: huulinh99 <[email protected]> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: YuliiaKovalova <[email protected]> Co-authored-by: Jan Provazník <[email protected]>
1 parent 784778a commit a0d1c24

File tree

5 files changed

+385
-265
lines changed

5 files changed

+385
-265
lines changed

.vsts-dotnet.yml

Lines changed: 40 additions & 256 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,7 +36,7 @@ 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
@@ -77,268 +79,50 @@ extends:
7779
enabled: false
7880

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

336-
- template: eng\common\templates-official\post-build\post-build.yml@self
119+
- template: /eng/common/templates-official/post-build/post-build.yml@self
337120
parameters:
338121
publishingInfraVersion: 3
339122
enableSymbolValidation: true
340123
enableSourceLinkValidation: false
341124
enableNugetValidation: false
125+
enableSigningValidation: ${{ parameters.enableSigningValidation }}
342126
SDLValidationParameters:
343127
enable: true
344128
continueOnError: false

0 commit comments

Comments
 (0)