@@ -39,7 +39,7 @@ stages:
3939 matrix :
4040 linux :
4141 imageName : ' ubuntu-20.04'
42- testModifier : -f netcoreapp3.1
42+ testModifier : -f net5.0
4343 windows :
4444 imageName : ' windows-2019'
4545 testModifier :
@@ -58,10 +58,17 @@ stages:
5858 displayName: Configure git commit author for testing
5959
6060 - task : UseDotNet@2
61- displayName : Install .NET Core SDK 3.1 .100
61+ displayName : Install .NET Core SDK 5.0 .100
6262 inputs :
6363 packageType : sdk
64- version : 3.1.100
64+ version : 5.0.100
65+
66+ - task : UseDotNet@2
67+ displayName : Install .NET Core 3.1
68+ inputs :
69+ packageType : runtime
70+ version : 3.1.x
71+
6572 - script : dotnet --info
6673 displayName : Show dotnet SDK info
6774
@@ -107,8 +114,8 @@ stages:
107114 --filter "TestCategory!=FailsOnAzurePipelines"
108115 --logger "trx;LogFileName=$(Build.ArtifactStagingDirectory)/TestLogs/TestResults.trx"
109116 --results-directory $(Build.ArtifactStagingDirectory)/CodeCoverage/
110- --collect:"XPlat Code Coverage"
111- --
117+ --collect:"XPlat Code Coverage"
118+ --
112119 RunConfiguration.DisableAppDomain=true
113120 displayName: Run tests
114121 workingDirectory: src
@@ -197,6 +204,7 @@ stages:
197204 condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT'), eq(variables['System.TeamFoundationCollectionUri'], 'https://dev.azure.com/andrewarnott/'), ne(variables['Build.Reason'], 'PullRequest'))
198205
199206 - stage : Test
207+ displayName : Functional testing
200208 jobs :
201209 - job : linux
202210 strategy :
@@ -229,3 +237,79 @@ stages:
229237 vmImage : macOS-10.15
230238 steps :
231239 - template : azure-pipelines/xplattest-pipeline.yml
240+
241+ - stage : PerfAnalysis
242+ displayName : Perf analysis
243+ dependsOn : []
244+ jobs :
245+ - job : PerfTest
246+ strategy :
247+ matrix :
248+ ubuntu :
249+ imageName : ubuntu-18.04
250+ repoDir : ' ~/git'
251+ windows :
252+ imageName : windows-2019
253+ repoDir : ' ${USERPROFILE}/source/repos'
254+ macOS :
255+ imageName : macOS-10.15
256+ repoDir : ' ~/git'
257+ pool :
258+ vmImage : $(imageName)
259+ steps :
260+ - task : UseDotNet@2
261+ displayName : Install .NET Core SDK 2.1.811
262+ inputs :
263+ packageType : sdk
264+ version : 2.1.811
265+ - task : UseDotNet@2
266+ displayName : Install .NET Core SDK 3.1.100
267+ inputs :
268+ packageType : sdk
269+ version : 3.1.100
270+ - task : UseDotNet@2
271+ displayName : Install .NET Core SDK 5.0.100
272+ inputs :
273+ packageType : sdk
274+ version : 5.0.100
275+ - script : dotnet --info
276+ displayName : Show dotnet SDK info
277+ - bash : |
278+ mkdir -p $(repoDir)
279+ git clone https://github.com/xunit/xunit $(repoDir)/xunit
280+ git clone https://github.com/gimlichael/Cuemon $(repoDir)/Cuemon
281+ git clone https://github.com/kerryjiang/SuperSocket $(repoDir)/SuperSocket
282+ git clone https://github.com/dotnet/NerdBank.GitVersioning $(repoDir)/NerdBank.GitVersioning
283+ displayName: Clone test repositories
284+ - script : |
285+ dotnet build -c Release
286+ workingDirectory: src/
287+ displayName: Build in Release mode
288+ - script : |
289+ dotnet run -c Release -f netcoreapp3.1 -- --filter GetVersionBenchmarks --artifacts $(Build.ArtifactStagingDirectory)/benchmarks/packed/$(imageName)
290+ workingDirectory: src/NerdBank.GitVersioning.Benchmarks
291+ displayName: Run benchmarks (packed)
292+ - bash : |
293+ cd $(repoDir)/xunit
294+ git unpack-objects < .git/objects/pack/*.pack
295+
296+ cd $(repoDir)/Cuemon
297+ git unpack-objects < .git/objects/pack/*.pack
298+
299+ cd $(repoDir)/SuperSocket
300+ git unpack-objects < .git/objects/pack/*.pack
301+
302+ cd $(repoDir)/NerdBank.GitVersioning
303+ git unpack-objects < .git/objects/pack/*.pack
304+ displayName: Unpack Git repositories
305+ - script : |
306+ dotnet run -c Release -f netcoreapp3.1 -- --filter GetVersionBenchmarks --artifacts $(Build.ArtifactStagingDirectory)/benchmarks/unpacked/$(imageName)
307+ workingDirectory: src/NerdBank.GitVersioning.Benchmarks
308+ displayName: Run benchmarks (unpacked)
309+ - task : PublishBuildArtifacts@1
310+ inputs :
311+ PathtoPublish : $(Build.ArtifactStagingDirectory)/benchmarks
312+ ArtifactName : benchmarks
313+ ArtifactType : Container
314+ displayName : Publish benchmarks artifacts
315+ condition : succeededOrFailed()
0 commit comments