7373 domain : ${{ github.repository_owner }}
7474
7575 - name : Run tests against Source Generators
76+ id : test-generator
7677 run : dotnet test --logger "trx;LogFileName=sourceGeneratorTestResults.trx" -p:Configuration=Release
7778
7879 - name : Create test reports
@@ -140,6 +141,20 @@ jobs:
140141 # Test job to build a single experiment to ensure our changes work for both our main types of solutions at the moment
141142 new-experiment :
142143 runs-on : windows-latest
144+
145+ strategy :
146+ fail-fast : false # prevent one matrix pipeline from being cancelled if one fails, we want them all to run to completion.
147+ matrix :
148+ winui : [2, 3]
149+ multitarget : ['uwp', 'wasdk', 'wasm', 'wpf', 'linuxgtk', 'macos', 'ios', 'android']
150+ exclude :
151+ # WinUI 2 not supported on wasdk
152+ - winui : 2
153+ multitarget : wasdk
154+ # WinUI 3 not supported on uwp
155+ - winui : 3
156+ multitarget : uwp
157+
143158 env :
144159 HEADS_DIRECTORY : tooling/ProjectHeads
145160 PROJECT_DIRECTORY : tooling/ProjectTemplate
@@ -200,7 +215,7 @@ jobs:
200215
201216 - name : Add project heads to ${{ env.TEST_PROJECT_NAME }}
202217 working-directory : ./${{ env.TEST_PROJECT_DIRECTORY }}
203- run : ${{ github.workspace }}/${{ env.HEADS_DIRECTORY }}/GenerateSingleSampleHeads.ps1 -componentPath ${{ github.workspace }}/${{ env.TEST_PROJECT_DIRECTORY }}${{ env.ENABLE_DIAGNOSTICS == 'true' && ' -UseDiagnostics' || '' }}
218+ run : ${{ github.workspace }}/${{ env.HEADS_DIRECTORY }}/GenerateSingleSampleHeads.ps1 -MultiTargets ${{ matrix.multitarget }} -WinUIMajorVersion ${{ matrix.winui }} - componentPath ${{ github.workspace }}/${{ env.TEST_PROJECT_DIRECTORY }}${{ env.ENABLE_DIAGNOSTICS == 'true' && ' -UseDiagnostics' || '' }}
204219
205220 - name : MSBuild
206221 working-directory : ./${{ env.TEST_PROJECT_DIRECTORY }}
@@ -215,18 +230,15 @@ jobs:
215230 with :
216231 domain : ${{ github.repository_owner }}
217232
218- - name : Run tests in the generated experiment against UWP
219- id : test-uwp
220- run : vstest.console.exe ./components/${{ env.TEST_PROJECT_NAME }}/**/${{ env.TEST_PROJECT_NAME }}.Tests.UWP.build.appxrecipe /Framework:FrameworkUap10 /logger:"trx;LogFileName=${{ env.TEST_PROJECT_NAME }}UWP.trx"
221-
222- - name : Run tests in the generated experiment against WinAppSDK
223- id : test-winappsdk
224- run : vstest.console.exe ./components/${{ env.TEST_PROJECT_NAME }}/**/${{ env.TEST_PROJECT_NAME }}.Tests.Wasdk.build.appxrecipe /Framework:FrameworkUap10 /logger:"trx;LogFileName=${{ env.TEST_PROJECT_NAME }}Wasdk.trx"
233+ - name : Run tests in the generated experiment against ${{ matrix.multitarget }}
234+ if : ${{ matrix.multitarget == 'uwp' || matrix.multitarget == 'wasdk' }}
235+ id : test-platform
236+ run : vstest.console.exe ./components/${{ env.TEST_PROJECT_NAME }}/**/${{ env.TEST_PROJECT_NAME }}.Tests.${{ matrix.multitarget }}.build.appxrecipe /Framework:FrameworkUap10 /logger:"trx;LogFileName=${{ env.TEST_PROJECT_NAME }}${{ matrix.multitarget }}.trx" /Blame
225237
226238 - name : Create test reports
227239 run : |
228240 testspace '[New Experiment]./TestResults/*.trx'
229- if : ${{ always( ) && (steps.test-uwp .conclusion == 'success' || steps.test-winappsdk .conclusion == 'success') }}
241+ if : ${{ (matrix.multitarget == 'uwp' || matrix.multitarget == 'wasdk' ) && (steps.test-generator .conclusion == 'success' || steps.test-platform .conclusion == 'success') }}
230242
231243 - name : Artifact - Diagnostic Logs
232244 uses : actions/upload-artifact@v4
0 commit comments