-
Notifications
You must be signed in to change notification settings - Fork 720
/
.azure-devops-unit-tests.yml
116 lines (95 loc) · 3.49 KB
/
.azure-devops-unit-tests.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
parameters:
vmImage: ''
jobs:
- job: Unit_Tests
displayName: 'Unit Tests'
timeoutInMinutes: 90
cancelTimeoutInMinutes: 1
pool: ${{ parameters.poolName }}
strategy:
matrix:
UWP:
UNO_UWP_BUILD: true
XAML_FLAVOR_BUILD: UWP
ADDITIONAL_FLAGS: ''
WinUI:
UNO_UWP_BUILD: false
XAML_FLAVOR_BUILD: WinUI
ADDITIONAL_FLAGS: ''
# Keep for future previews
# Preview:
# ADDITIONAL_FLAGS: '/p:LangVersion=preview /p:MicrosoftNetCompilerVersionOverride=3.8.0-3.final'
#CSharp9:
# ADDITIONAL_FLAGS: '/p:LangVersion=9.0'
variables:
CombinedConfiguration: Release|Any CPU
CI_Build: true
# Use pre-defined local nuget cache for restore
NUGET_PACKAGES: 'C:\NugetPackages'
steps:
- checkout: self
clean: true
- template: templates/download-winui-converted-tree.yml
- template: templates/nuget-cache.yml
parameters:
nugetPackages: $(NUGET_PACKAGES)
- template: templates/gitversion.yml
- template: templates/dotnet-install.yml
- template: templates/jdk-setup.yml
# We need just the .NET 8 runtime (not the SDK).
# Building with .NET 9 SDK is fine, but running the app when the TFM is net8.0 requires the .NET 8 runtime
- task: UseDotNet@2
inputs:
packageType: 'runtime'
version: '8.x'
- task: DownloadBuildArtifacts@0
displayName: Download build artifact
inputs:
artifactName: 'NugetPackages-Artifacts-reference-$(XAML_FLAVOR_BUILD)'
downloadPath: '$(Agent.WorkFolder)'
# Unfortunate, but this is needed specifically for a single test: TestAndroidViewImplementingDependencyObject
- task: DownloadBuildArtifacts@0
displayName: Download build artifact
inputs:
artifactName: 'NugetPackages-Artifacts-netcoremobile-$(XAML_FLAVOR_BUILD)'
downloadPath: '$(Agent.WorkFolder)'
- task: ExtractFiles@1
displayName: Restore binaries structure
inputs:
archiveFilePatterns: '$(Agent.WorkFolder)/NugetPackages-Artifacts*/*-bin-$(XAML_FLAVOR_BUILD).zip'
destinationFolder: $(build.sourcesdirectory)
cleanDestinationFolder: false
overwriteExistingFiles: true
- task: MSBuild@1
inputs:
solution: src/Uno.UI-UnitTests-only.slnf
msbuildArguments: /r /v:m /p:CheckExclusions=True /p:Configuration=Release /nodeReuse:true /detailedsummary /m $(ADDITIONAL_FLAGS) /bl:$(build.artifactstagingdirectory)\unit-tests-build-$(XAML_FLAVOR_BUILD).binlog
- task: PublishBuildArtifacts@1
condition: always()
retryCountOnTaskFailure: 3
inputs:
PathtoPublish: $(build.artifactstagingdirectory)
ArtifactName: NugetPackages-Artifacts
ArtifactType: Container
- task: VisualStudioTestPlatformInstaller@1
inputs:
versionSelector: specificVersion
testPlatformVersion: 17.6.0
- task: VSTest@2
inputs:
testAssemblyVer2: |
**\*test*.dll
!**\obj\**
!**\*Wasm.Test*.dll
!**\*UITests.dll
!**\*.RuntimeTests.dll
!**\Uno.UI.Tests.ViewLibraryProps.dll
!**\Uno.UI.Tests.ViewLibrary.dll
!**\testhost*.*
!**\Microsoft*.dll
vsTestVersion: toolsInstaller
testRunTitle: $(Agent.JobName)
testSelector: testAssemblies
batchingBasedOnAgentsOption: customBatchSize
rerunFailedTests: 'true'
customBatchSizeValue: 200 # test count / 10 (https://developercommunity.visualstudio.com/content/problem/891803/vstestconsoleadapter-fails-with-outofmemory.html?childToView=896206#comment-896206)