Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: microsoft/perfview
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v3.1.8
Choose a base ref
...
head repository: microsoft/perfview
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: main
Choose a head ref
Loading
Showing with 5,633 additions and 8,778 deletions.
  1. +7 −117 .ado.yml
  2. +4 −0 .github/CODEOWNERS
  3. +29 −0 .github/workflows/stale.yml
  4. +3 −0 .gitignore
  5. +132 −0 .pipelines/mirror.yml
  6. +17 −0 .pipelines/perfcollect-job.yml
  7. +48 −0 .pipelines/perfview-job.yml
  8. +15 −0 .vsconfig
  9. +65 −4 PerfView.sln
  10. +37 −43 README.md
  11. +1 −1 documentation/Downloading.md
  12. +0 −84 documentation/MakingSupportFilesNugetPackages.md
  13. +20 −0 documentation/Scenarios.md
  14. +1 −1 documentation/TraceEvent/TraceEventProgrammersGuide.md
  15. +0 −7 src/CSVReader/CsvReader.cs
  16. +0 −53 src/CSVReader/ETLStackBrowse/Trace.cs
  17. +26 −33 src/Directory.Build.props
  18. +2 −0 src/EtwClrProfiler/ETWClrProfilerX64.vcxproj
  19. +2 −0 src/EtwClrProfiler/ETWClrProfilerX86.vcxproj
  20. +5 −0 src/EtwHeapDump/EtwHeapDump.csproj
  21. +0 −892 src/FastSerialization/CompressedStream.cs
  22. +101 −182 src/FastSerialization/FastSerialization.cs
  23. +0 −1 src/FastSerialization/FastSerialization.csproj
  24. +13 −5 src/FastSerialization/MemoryMappedFileStreamReader.cs
  25. +0 −356 src/FastSerialization/MemoryMappedFileStreamWriter.cs
  26. +8 −8 src/FastSerialization/SegmentedMemoryStreamReader.cs
  27. +7 −7 src/FastSerialization/SegmentedMemoryStreamWriter.cs
  28. +35 −25 src/FastSerialization/StreamReaderWriter.cs
  29. +3 −3 src/HeapDump/GCHeapDump.cs
  30. +16 −37 src/HeapDump/GCHeapDumper.cs
  31. +6 −1 src/HeapDump/HeapDump.csproj
  32. +12 −2 src/HeapDump/Program.cs
  33. +5 −0 src/HeapDumpDLL/HeapDumpDLL.csproj
  34. +1 −47 src/MemoryGraph/MemoryGraph.cs
  35. +8 −266 src/MemoryGraph/graph.cs
  36. +12 −0 src/NuGetPackageSigning/NuGetPackageSigning.csproj
  37. +0 −3 src/NugetSupportFiles/.gitignore
  38. +0 −6 src/NugetSupportFiles/Microsoft.Diagnostics.Tracing.TraceEvent.SupportFiles.MakeNuget.bat
  39. +0 −35 src/NugetSupportFiles/Microsoft.Diagnostics.Tracing.TraceEvent.SupportFiles.Populate.bat
  40. +0 −16 ...tics.Tracing.TraceEvent.SupportFiles/Microsoft.Diagnostics.Tracing.TraceEvent.SupportFiles.nuspec
  41. +0 −6 ...Tracing.TraceEvent.SupportFiles/build/Microsoft.Diagnostics.Tracing.TraceEvent.SupportFiles.props
  42. +0 −6 src/NugetSupportFiles/PerfView.SupportFiles.MakeNuget.bat
  43. +0 −25 src/NugetSupportFiles/PerfView.SupportFiles.Populate.bat
  44. +0 −17 src/NugetSupportFiles/PerfView.SupportFiles/PerfView.SupportFiles.nuspec
  45. +0 −6 src/NugetSupportFiles/PerfView.SupportFiles/build/PerfView.SupportFiles.props
  46. +2 −2 src/PerfView.TestUtilities/PerfView.TestUtilities.csproj
  47. +1 −5 src/PerfView.TestUtilities/ThrowingTraceListener.cs
  48. +1 −56 src/PerfView.Tests/AuthenticationTests.cs
  49. +2 −0 src/PerfView.Tests/Utilities/PerfViewTestBase.cs
  50. +27 −0 src/PerfView.Tutorial/PerfView.Tutorial.csproj
  51. 0 src/{PerfView/SupportFiles → PerfView.Tutorial}/Tutorial.cs
  52. +40 −1 src/PerfView/App.cs
  53. +81 −4 src/PerfView/Authentication.cs
  54. +8 −5 src/PerfView/CommandLineArgs.cs
  55. +33 −98 src/PerfView/CommandProcessor.cs
  56. +5 −4 src/PerfView/Dialogs/FileInputAndOutput.xaml
  57. +14 −10 src/PerfView/Dialogs/MemoryDataDialog.xaml
  58. +47 −47 src/PerfView/Dialogs/RunCommandDialog.xaml
  59. +2 −0 src/PerfView/Dialogs/RunCommandDialog.xaml.cs
  60. +3 −3 src/PerfView/Dialogs/SymbolPathDialog.xaml
  61. +6 −5 src/PerfView/Dialogs/UserCommandDialog.xaml
  62. +7 −240 src/PerfView/EtwEventSource.cs
  63. +36 −13 src/PerfView/EventViewer/EventWindow.xaml
  64. +34 −1 src/PerfView/EventViewer/EventWindow.xaml.cs
  65. +5 −83 src/PerfView/Extensibility.cs
  66. +36 −63 src/PerfView/GcStats.cs
  67. +1 −1 src/PerfView/GuiUtilities/StatusBar/StatusBar.xaml
  68. +4 −3 src/PerfView/GuiUtilities/TextEditor/TextEditorControl.xaml
  69. +1 −1 src/PerfView/GuiUtilities/TextEditor/TextEditorWindow.xaml
  70. +2 −1 src/PerfView/GuiUtilities/WebBrowser/WebBrowser.xaml
  71. +45 −30 src/PerfView/GuiUtilities/WebBrowser/WebBrowser.xaml.cs
  72. +5 −2 src/PerfView/HeapView/GcInfoView.cs
  73. +0 −95 src/PerfView/IProcess.cs
  74. +2 −86 src/PerfView/InteropReport.cs
  75. +11 −5 src/PerfView/MainWindow.xaml
  76. +63 −1,050 src/PerfView/MainWindow.xaml.cs
  77. +0 −19 src/PerfView/ObjectViewer/ObjectViewer.xaml.cs
  78. +0 −88 src/PerfView/ObjectViewer/TreeViewGrid.xaml.cs
  79. +74 −18 src/PerfView/PerfView.csproj
  80. +643 −68 src/PerfView/PerfViewData.cs
  81. +14 −18 src/PerfView/StackViewer/CallTreeView.cs
  82. +10 −5 src/PerfView/StackViewer/FlameGraphDrawingCanvas.cs
  83. +2 −1 src/PerfView/StackViewer/PerfDataGrid.xaml
  84. +68 −61 src/PerfView/StackViewer/StackWindow.xaml
  85. +282 −654 src/PerfView/StackViewer/StackWindow.xaml.cs
  86. +0 −18 src/PerfView/StateMachineFramework/ServerRequestComputer.cs
  87. BIN src/PerfView/SupportFiles/Tutorial.exe
  88. BIN src/PerfView/SupportFiles/Tutorial.pdb
  89. +43 −23 src/PerfView/SupportFiles/UsersGuide.htm
  90. +5 −715 src/PerfView/SymbolReaderHttpHandler.cs
  91. +1 −2 src/PerfView/Themes/DarkTheme.xaml
  92. +0 −134 src/PerfView/UserCommands.cs
  93. +15 −0 src/PerfView/Utilities/ProcessTree.cs
  94. +10 −1 src/PerfView/Utilities/SupportFiles.cs
  95. +39 −0 src/PerfView/cgmanifest.json
  96. +0 −62 src/PerfView/memory/ClrProfilerMemoryGraph.cs
  97. +0 −20 src/PerfView/memory/MemoryGraphStackSource.cs
  98. +1 −3 src/PerfViewCollect/PerfViewCollect.csproj
  99. +1 −1 src/PerfViewExtensions/GlobalSrc/Commands.cs
  100. +67 −0 src/SymbolsAuth.Tests/AuthenticationTests.cs
  101. +47 −0 src/SymbolsAuth.Tests/SymbolsAuth.Tests.csproj
  102. +11 −0 src/SymbolsAuth.Tests/app.config
  103. +4 −0 src/SymbolsAuth.Tests/xunit.runner.json
  104. +35 −0 src/SymbolsAuth/Microsoft.Diagnostics.Tracing.TraceEvent.SymbolsAuthentication.nuspec
  105. +69 −0 src/SymbolsAuth/Samples/1_InteractivePopupAuth.cs
  106. +71 −0 src/SymbolsAuth/Samples/2_ManagedIdentityAuth.cs
  107. +55 −0 src/SymbolsAuth/Samples/Program.cs
  108. +12 −0 src/SymbolsAuth/Samples/SymbolsAuth.Samples.csproj
  109. +669 −0 src/SymbolsAuth/SymbolReaderAuthenticationHandler.cs
  110. +82 −0 src/SymbolsAuth/SymbolsAuth.csproj
  111. +162 −0 src/SymbolsAuth/SymwebHandler.cs
  112. +1 −47 src/TraceEvent/Computers/ActivityComputer.cs
  113. +0 −7 src/TraceEvent/Computers/GCReferenceComputer.cs
  114. +22 −1 src/TraceEvent/Computers/StartStopActivityComputer.cs
  115. +292 −0 src/TraceEvent/Computers/StartStopLatencyComputer.cs
  116. +1 −9 src/TraceEvent/Computers/ThreadTimeComputer.cs
  117. +244 −101 src/TraceEvent/Computers/TraceManagedProcess.cs
  118. +8 −120 src/TraceEvent/DynamicTraceEventParser.cs
  119. +10 −3 src/TraceEvent/ETWReloggerTraceEventSource.cs
  120. +0 −46 src/TraceEvent/EventCounterSource.cs
  121. +52 −7 src/TraceEvent/EventPipe/EventPipeEventSource.cs
  122. +1 −1 src/TraceEvent/EventPipe/EventPipeFormat.md
  123. +6 −2 src/TraceEvent/Microsoft.Diagnostics.Tracing.TraceEvent.nuspec
  124. +1 −1 src/TraceEvent/Parsers/ClrTraceEventParser.cs
  125. +42 −250 src/TraceEvent/Parsers/GCDynamicTraceEventParser.cs
  126. +0 −194 src/TraceEvent/Parsers/JScriptTraceEventParser.cs
  127. +95 −843 src/TraceEvent/Parsers/KernelTraceEventParser.cs
  128. +3 −1 src/TraceEvent/Samples/TraceEventSamples.csproj
  129. +1 −1 src/TraceEvent/Stacks/ChromiumStackSourceWriter.cs
  130. +21 −11 src/TraceEvent/Stacks/Linux/LinuxPerfScriptProcessNameBuilder.cs
  131. +20 −13 src/TraceEvent/Stacks/Stacks.cs
  132. +2 −58 src/TraceEvent/Symbols/NativeSymbolModule.cs
  133. +1 −3 src/TraceEvent/Symbols/SymbolPath.cs
  134. +3 −3 src/TraceEvent/Symbols/SymbolReader.cs
  135. +1 −1 src/TraceEvent/TraceEvent.Tests/AutomatedAnalysis/AnalyzerResolverTests.cs
  136. +1 −1 src/TraceEvent/TraceEvent.Tests/Memory/ClrMD_Dependencies.cs
  137. +1 −1 src/TraceEvent/TraceEvent.Tests/Parsing/BPerfTest.cs
  138. +119 −56 src/TraceEvent/TraceEvent.Tests/Parsing/EventPipeParsing.cs
  139. +4 −0 src/TraceEvent/TraceEvent.Tests/Parsing/GeneralParsing.cs
  140. +51 −45 src/TraceEvent/TraceEvent.Tests/Parsing/MultiFileMergeAll.cs
  141. +3 −3 src/TraceEvent/TraceEvent.Tests/SegmentedDictionary/ICollection.Generic.Tests.cs
  142. +1 −1 src/TraceEvent/TraceEvent.Tests/SegmentedDictionary/SegmentedDictionary.Generic.Tests.cs
  143. +49 −6 src/TraceEvent/TraceEvent.Tests/Serialization/FastSerializerTests.cs
  144. +11 −4 src/TraceEvent/TraceEvent.Tests/Speedscope/SpeedScopeExporterTests.cs
  145. +1 −1 src/TraceEvent/TraceEvent.Tests/Strace/StraceStackSourceTests.cs
  146. +8 −3 src/TraceEvent/TraceEvent.Tests/TraceEvent.Tests.csproj
  147. +2 −2 src/TraceEvent/TraceEvent.Tests/inputs/netcore.3.1.x64.twocontainers.baseline.txt
  148. +53 −44 src/TraceEvent/TraceEvent.cs
  149. +12 −13 src/TraceEvent/TraceEvent.csproj
  150. +5 −53 src/TraceEvent/TraceEventNativeMethods.cs
  151. +368 −271 src/TraceEvent/TraceEventSession.cs
  152. +408 −236 src/TraceEvent/TraceLog.cs
  153. +0 −35 src/TraceEvent/Utilities/Cache.cs
  154. +0 −8 src/TraceEvent/Utilities/command.cs
  155. +28 −0 src/TraceEvent/cgmanifest.json
  156. +0 −8 src/TraceParserGen/Library/Util/Command.cs
  157. +24 −144 src/perfcollect/perfcollect
124 changes: 7 additions & 117 deletions .ado.yml
Original file line number Diff line number Diff line change
@@ -1,21 +1,9 @@
# https://aka.ms/yaml

name: "$(date:yyyyMMdd)$(rev:.r)"

trigger:
- main

pr:
- main

schedules:
- cron: "0 0 * * 2" # Trigger on Tuesday at Midnight UTC
displayName: Weekly Build
branches:
include:
- main
always: true

jobs:
- job: PerfView_Debug
pool:
@@ -24,54 +12,11 @@ jobs:
demands:
- msbuild
- vstest
variables:
Codeql.Enabled: true
Codeql.BuildIdentifier: PerfView

steps:
- task: UseDotNet@2
displayName: 'Use .NET Core SDK 3.1'
inputs:
version: 3.1.x

- task: NuGetToolInstaller@1
displayName: 'Install NuGet.exe'
inputs:
versionSpec: 6.3.0

- task: NuGetCommand@2
displayName: 'NuGet Restore PerfView.sln'
inputs:
restoreSolution: PerfView.sln
feedsToUse: config
includeNuGetOrg: false
nugetConfigPath: '.\NuGet.config'

- task: MSBuild@1
displayName: 'Build PerfView.sln'
inputs:
solution: PerfView.sln
configuration: Debug

- task: VSTest@2
displayName: 'Run Tests'
inputs:
testAssemblyVer2: |
**\bin\**\LinuxTracingTests.dll
**\bin\**\CtfTracingTests.dll
**\bin\**\TraceEventTests.dll
**\bin\**\PerfViewTests.dll
testRunTitle: 'PerfView - Debug'
runTestsInIsolation: true
otherConsoleOptions: '--blame'

- task: CopyFiles@2
displayName: 'Copy Files to Artifacts Staging'
inputs:
SourceFolder: '$(system.defaultworkingdirectory)'
Contents: '**\bin\$(BuildConfiguration)\**'
TargetFolder: '$(build.artifactstagingdirectory)'
condition: succeededOrFailed()
- template: /.pipelines/perfview-job.yml
parameters:
flavor: 'Debug'

- task: PublishBuildArtifacts@1
displayName: 'Publish Artifacts'
@@ -89,48 +34,9 @@ jobs:
- vstest

steps:
- task: UseDotNet@2
displayName: 'Use .NET Core SDK 3.1'
inputs:
version: 3.1.x

- task: NuGetToolInstaller@1
displayName: 'Install NuGet.exe'
inputs:
versionSpec: 6.3.0

- task: NuGetCommand@2
displayName: 'NuGet Restore PerfView.sln'
inputs:
restoreSolution: PerfView.sln
feedsToUse: config
includeNuGetOrg: false
nugetConfigPath: '.\NuGet.config'

- task: MSBuild@1
displayName: 'Build PerfView.sln'
inputs:
solution: PerfView.sln
configuration: Release

- task: VSTest@2
displayName: 'Run Tests'
inputs:
testAssemblyVer2: |
**\bin\**\LinuxTracingTests.dll
**\bin\**\CtfTracingTests.dll
**\bin\**\TraceEventTests.dll
**\bin\**\PerfViewTests.dll
testRunTitle: 'PerfView - Release'
runTestsInIsolation: true
otherConsoleOptions: '--blame'

- task: CopyFiles@2
displayName: 'Copy Files to Artifacts Staging'
inputs:
SourceFolder: '$(system.defaultworkingdirectory)'
Contents: '**\bin\$(BuildConfiguration)\**'
TargetFolder: '$(build.artifactstagingdirectory)'
- template: /.pipelines/perfview-job.yml
parameters:
flavor: 'Release'

- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact'
@@ -144,20 +50,4 @@ jobs:
name: Azure Pipelines

steps:
- task: DockerInstaller@0
displayName: 'Install Docker'

- task: Bash@3
displayName: 'Build Containers'
inputs:
targetType: filePath
filePath: './src/perfcollect/tests/build-containers.sh'
workingDirectory: src/perfcollect/tests

- task: Bash@3
displayName: 'Run Tests'
inputs:
targetType: filePath
filePath: './src/perfcollect/tests/run-containers.sh'
workingDirectory: src/perfcollect/tests

- template: /.pipelines/perfcollect-job.yml
4 changes: 4 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Users referenced in this file will automatically be requested as reviewers for PRs that modify the given paths.
# See https://help.github.com/articles/about-code-owners/

* @brianrob @cincuranet
29 changes: 29 additions & 0 deletions .github/workflows/stale.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: 'Stale: Label and Close Issues'
on:
schedule:
- cron: '23 2,14 * * *' # Twice daily at 23 minutes after the hour (random/uncommon time)
workflow_dispatch: # Allows manual triggering

permissions:
actions: write # For managing the operation state cache
issues: write

jobs:
stale:
if: github.repository_owner == 'microsoft' # Do not run on forks

runs-on: ubuntu-latest
steps:
- uses: actions/stale@v9 # https://github.com/actions/stale/blob/v9/README.md
with:
ascending: true # Process the oldest issues first
stale-issue-label: 'stale'
stale-issue-message: "Due to lack of recent activity, this issue has been labeled as 'stale'. It will be closed if no further activity occurs within 30 more days. Any new comment will remove the label."
close-issue-message: "This issue will now be closed since it has been labeled 'stale' without activity for 30 days."
stale-pr-message: "Due to lack of recent activity, this PR has been labeled as 'stale'. It will be closed if no further activity occurs within 7 more days. Any new comment will remove the label."
close-pr-message: "This PR will now be closed since it has been labeled 'stale' without activity for 30 days."
days-before-stale: 2192 # 6 years
days-before-close: 30
days-before-pr-stale: 30
days-before-pr-close: 7
operations-per-run: 4000
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -205,3 +205,6 @@ OSExtensions.cs
password.txt
documentation/internal/
*.userosscache

# Rider
.idea/
132 changes: 132 additions & 0 deletions .pipelines/mirror.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
trigger:
- main

variables:
- group: 'DotNet-VSTS-Infra-Access'

resources:
repositories:
- repository: 1esPipelines
type: git
name: 1ESPipelineTemplates/1ESPipelineTemplates
ref: refs/tags/release

extends:
template: v1/1ES.Official.PipelineTemplate.yml@1esPipelines
parameters:
sdl:
codeql:
compiled:
enabled: false
justificationForDisabling: 'This is a mirror pipeline that does not build any code.'
pool:
name: AzurePipelines-EO
image: 1ESPT-Windows2022
os: windows

stages:
- stage: Mirror
jobs:
- job: Mirror
steps:
- task: PowerShell@1
displayName: 'Set SourceBranch Variable'
inputs:
scriptType: inlineScript
arguments: '$(Build.SourceBranch)'
inlineScript: |
param(
[string]$SourceBranch
)
if ($SourceBranch.StartsWith("refs/heads/"))
{
# strip off the refs/heads/ prefix
$SourceBranch=$SourceBranch.Substring(11)
}
$env:SourceBranch=$SourceBranch
Write-Host ("##vso[task.setvariable variable=SourceBranch;]$env:SourceBranch")
- task: PowerShell@1
displayName: 'Set MirrorBranch Variable'
inputs:
scriptType: inlineScript
inlineScript: |
$env:MirrorBranch='mirror/'+[Guid]::NewGuid().ToString()
Write-Host ("##vso[task.setvariable variable=MirrorBranch;]$env:MirrorBranch")
- task: PipAuthenticate@1
displayName: 'Pip Authenticate'
inputs:
artifactFeeds: 'DevDiv/PerfView-Mirror'

- task: UsePythonVersion@0
displayName: 'Use Python 3.11'
inputs:
versionSpec: '3.11'

- task: CmdLine@2
displayName: 'Update pip to latest'
inputs:
script: 'python -m pip install --upgrade pip'

- task: CmdLine@2
displayName: 'Install Azure CLI'
inputs:
script: 'pip install --pre azure-cli'

- task: CmdLine@2
displayName: 'Install Azure DevOps Extension'
inputs:
script: 'az extension add -n azure-devops'

- task: CmdLine@2
displayName: 'Configure Git user.email'
inputs:
script: 'git config user.email "dn-bot@microsoft.com"'

- task: CmdLine@2
displayName: 'Configure git user.name'
inputs:
script: 'git config user.name "dotnet-bot"'

- task: CmdLine@2
displayName: 'Checkout GitHub main Branch'
inputs:
script: 'git checkout $(SourceBranch)'

- task: CmdLine@2
displayName: 'Create Mirror Branch'
inputs:
script: 'git checkout -b $(MirrorBranch)'

- task: CmdLine@2
displayName: 'Run git reset'
inputs:
script: 'git reset --hard origin/$(SourceBranch)'
enabled: false

- task: CmdLine@2
displayName: 'Pull AzDO SourceBranch'
inputs:
script: 'git pull --strategy=recursive --strategy-option no-renames https://dn-bot:$(dn-bot-devdiv-build-rw-code-rw)@devdiv.visualstudio.com/DevDiv/_git/perfView $(SourceBranch)'

- task: CmdLine@2
displayName: 'Run git push'
inputs:
script: 'git push https://dn-bot:$(dn-bot-devdiv-build-rw-code-rw)@devdiv.visualstudio.com/DevDiv/_git/perfView $(MirrorBranch)'

- task: PowerShell@1
displayName: 'Create Pull Request'
inputs:
scriptType: inlineScript
arguments: '$(dn-bot-devdiv-build-rw-code-rw)'
inlineScript: |
param(
[string]$AccessToken
)
$env:AZURE_DEVOPS_EXT_PAT=$AccessToken
$Organization="https://devdiv.visualstudio.com"
$Project="DevDiv"
$Repository="PerfView"
az devops configure --defaults organization=$Organization project=$Project
az repos pr create --repository $Repository --auto-complete true --delete-source-branch true --title "Mirror Changes from GitHub" --source-branch $(MirrorBranch) --target-branch $(SourceBranch)
17 changes: 17 additions & 0 deletions .pipelines/perfcollect-job.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
steps:
- task: DockerInstaller@0
displayName: 'Install Docker'

- task: Bash@3
displayName: 'Build Containers'
inputs:
targetType: filePath
filePath: './src/perfcollect/tests/build-containers.sh'
workingDirectory: src/perfcollect/tests

- task: Bash@3
displayName: 'Run Tests'
inputs:
targetType: filePath
filePath: './src/perfcollect/tests/run-containers.sh'
workingDirectory: src/perfcollect/tests
48 changes: 48 additions & 0 deletions .pipelines/perfview-job.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
parameters:
flavor: 'Debug'

steps:
- task: UseDotNet@2
displayName: 'Use .NET SDK'
inputs:
version: 8.0.x

- task: NuGetToolInstaller@1
displayName: 'Install NuGet.exe'
inputs:
versionSpec: 6.3.0

- task: NuGetCommand@2
displayName: 'NuGet Restore PerfView.sln'
inputs:
restoreSolution: PerfView.sln
feedsToUse: config
includeNuGetOrg: false
nugetConfigPath: '.\NuGet.config'

- task: MSBuild@1
displayName: 'Build PerfView.sln'
inputs:
solution: PerfView.sln
configuration: ${{ parameters.flavor }}

- task: VSTest@2
displayName: 'Run Tests'
inputs:
testAssemblyVer2: |
**\bin\**\LinuxTracingTests.dll
**\bin\**\CtfTracingTests.dll
**\bin\**\SymbolsAuthTests.dll
**\bin\**\TraceEventTests.dll
**\bin\**\PerfViewTests.dll
testRunTitle: 'PerfView - ${{ parameters.flavor }}'
runTestsInIsolation: true
otherConsoleOptions: '--blame'

- task: CopyFiles@2
displayName: 'Copy Files to Artifacts Staging'
inputs:
SourceFolder: '$(system.defaultworkingdirectory)'
Contents: '**\bin\${{ parameters.flavor }}\**'
TargetFolder: '$(build.artifactstagingdirectory)'
condition: succeededOrFailed()
Loading