@@ -32,6 +32,29 @@ steps:
3232 restoreSolution : build/packages.config
3333 restoreDirectory : ' $(Build.SourcesDirectory)\packages'
3434
35+ # The environment variable VCToolsInstallDir isn't defined on lab machines, so we need to retrieve it ourselves.
36+ - script : |
37+ "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -Latest -requires Microsoft.Component.MSBuild -property InstallationPath > %TEMP%\vsinstalldir.txt
38+ set /p _VSINSTALLDIR15=<%TEMP%\vsinstalldir.txt
39+ del %TEMP%\vsinstalldir.txt
40+ call "%_VSINSTALLDIR15%\Common7\Tools\VsDevCmd.bat"
41+ echo VCToolsInstallDir = %VCToolsInstallDir%
42+ echo ##vso[task.setvariable variable=VCToolsInstallDir]%VCToolsInstallDir%
43+ displayName: 'Retrieve VC tools directory'
44+
45+ - task: CmdLine@1
46+ displayName: 'Display build machine environment variables'
47+ inputs:
48+ filename: 'set'
49+
50+ - task: powershell@2
51+ displayName: 'Restore PGO database'
52+ condition: eq(variables['PGOBuildMode'], 'Optimize')
53+ inputs:
54+ targetType: filePath
55+ workingDirectory: $(Build.SourcesDirectory)\tools\PGODatabase
56+ filePath: $(Build.SourcesDirectory)\tools\PGODatabase\restore-pgodb.ps1
57+
3558- task: VSBuild@1
3659 displayName: 'Build solution **\OpenConsole.sln'
3760 inputs:
@@ -51,60 +74,6 @@ steps:
5174 $Package = Get-ChildItem -Recurse -Filter "CascadiaPackage_*.msix"
5275 .\build\scripts\Test-WindowsTerminalPackage.ps1 -Verbose -Path $Package.FullName
5376
54- - task : powershell@2
55- displayName : ' Source Index PDBs'
56- inputs :
57- targetType : filePath
58- filePath : build\scripts\Index-Pdbs.ps1
59- arguments : -SearchDir '$(Build.SourcesDirectory)' -SourceRoot '$(Build.SourcesDirectory)' -recursive -Verbose -CommitId $(Build.SourceVersion)
60- errorActionPreference : silentlyContinue
61-
62- - task : PowerShell@2
63- displayName : ' Rationalize build platform'
64- inputs :
65- targetType : inline
66- script : |
67- $Arch = "$(BuildPlatform)"
68- If ($Arch -Eq "x86") { $Arch = "Win32" }
69- Write-Host "##vso[task.setvariable variable=RationalizedBuildPlatform]${Arch}"
70-
71- - task : PowerShell@2
72- displayName : ' Run Unit Tests'
73- inputs :
74- targetType : filePath
75- filePath : build\scripts\Run-Tests.ps1
76- arguments : -MatchPattern '*unit.test*.dll' -Platform '$(RationalizedBuildPlatform)' -Configuration '$(BuildConfiguration)' -LogPath '${{ parameters.testLogPath }}'
77- condition : and(succeeded(), or(eq(variables['BuildPlatform'], 'x64'), eq(variables['BuildPlatform'], 'x86')))
78-
79- - task : PowerShell@2
80- displayName : ' Run Feature Tests (x64 only)'
81- inputs :
82- targetType : filePath
83- filePath : build\scripts\Run-Tests.ps1
84- arguments : -MatchPattern '*feature.test*.dll' -Platform '$(RationalizedBuildPlatform)' -Configuration '$(BuildConfiguration)' -LogPath '${{ parameters.testLogPath }}'
85- condition : and(succeeded(), eq(variables['BuildPlatform'], 'x64'))
86-
87- - task : PowerShell@2
88- displayName : ' Convert Test Logs from WTL to xUnit format'
89- inputs :
90- targetType : filePath
91- filePath : build\Helix\ConvertWttLogToXUnit.ps1
92- arguments : -WttInputPath '${{ parameters.testLogPath }}' -WttSingleRerunInputPath 'unused.wtl' -WttMultipleRerunInputPath 'unused2.wtl' -XUnitOutputPath 'onBuildMachineResults.xml' -TestNamePrefix '$(BuildConfiguration).$(BuildPlatform)'
93- condition : or(eq(variables['BuildPlatform'], 'x64'), eq(variables['BuildPlatform'], 'x86'))
94-
95- - task : PublishTestResults@2
96- displayName : ' Upload converted test logs'
97- inputs :
98- testResultsFormat : ' xUnit' # Options: JUnit, NUnit, VSTest, xUnit, cTest
99- testResultsFiles : ' **/onBuildMachineResults.xml'
100- # searchFolder: '$(System.DefaultWorkingDirectory)' # Optional
101- # mergeTestResults: false # Optional
102- # failTaskOnFailedTests: false # Optional
103- testRunTitle : ' On Build Machine Tests' # Optional
104- buildPlatform : $(BuildPlatform) # Optional
105- buildConfiguration : $(BuildConfiguration) # Optional
106- # publishRunAttachments: true # Optional
107-
10877- task: CopyFiles@2
10978 displayName: 'Copy result logs to Artifacts'
11079 inputs:
@@ -127,7 +96,7 @@ steps:
12796 TargetFolder: '$(Build.ArtifactStagingDirectory)/appx'
12897 OverWrite: true
12998 flattenFolders: true
130- condition : and( succeeded(), ne(variables['Build.Reason'], 'PullRequest') )
99+ condition: succeeded()
131100
132101- task: CopyFiles@2
133102 displayName: 'Copy outputs needed for test runs to Artifacts'
@@ -141,7 +110,17 @@ steps:
141110 TargetFolder: '$(Build.ArtifactStagingDirectory)/$(BuildConfiguration)/$(BuildPlatform)/test'
142111 OverWrite: true
143112 flattenFolders: true
144- condition : and(and(succeeded(), eq(variables['BuildPlatform'], 'x64')), ne(variables['Build.Reason'], 'PullRequest'))
113+ condition: succeeded()
114+
115+ - task: CopyFiles@2
116+ displayName: 'Copy PGO databases needed for PGO instrumentation run'
117+ inputs:
118+ Contents: |
119+ $(Build.SourcesDirectory)/bin/$(BuildPlatform)/$(BuildConfiguration)/*.pgd
120+ TargetFolder: '$(Build.ArtifactStagingDirectory)/$(BuildConfiguration)/$(BuildPlatform)/PGO'
121+ OverWrite: true
122+ flattenFolders: true
123+ condition: and(succeeded(), eq(variables['PGOBuildMode'], 'Instrument'))
145124
146125- task: PublishBuildArtifacts@1
147126 displayName: 'Publish All Build Artifacts'
0 commit comments