@@ -71,6 +71,57 @@ parameters:
71
71
BuildPlatform : x86
72
72
UseFabric : true
73
73
74
+ - name : universalBuildMatrix
75
+ type : object
76
+ default :
77
+ - Name : X64Release:
78
+ BuildConfiguration : Release
79
+ BuildPlatform : x64
80
+ UseFabric : false
81
+ - Name : X86Release:
82
+ BuildConfiguration : Release
83
+ BuildPlatform : x86
84
+ UseFabric : false
85
+ - Name : Arm64Release:
86
+ BuildConfiguration : Release
87
+ BuildPlatform : ARM64
88
+ UseFabric : false
89
+ - Name : X64Debug:
90
+ BuildConfiguration : Debug
91
+ BuildPlatform : x64
92
+ UseFabric : false
93
+ - Name : X86Debug:
94
+ BuildConfiguration : Debug
95
+ BuildPlatform : x86
96
+ UseFabric : false
97
+ - Name : Arm64Debug:
98
+ BuildConfiguration : Debug
99
+ BuildPlatform : ARM64
100
+ UseFabric : false
101
+ - Name : X64ReleaseFabric:
102
+ BuildConfiguration : Release
103
+ BuildPlatform : x64
104
+ UseFabric : true
105
+ - Name : X86ReleaseFabric:
106
+ BuildConfiguration : Release
107
+ BuildPlatform : x86
108
+ UseFabric : true
109
+ - Name : Arm64ReleaseFabric:
110
+ BuildConfiguration : Release
111
+ BuildPlatform : ARM64
112
+ UseFabric : true
113
+ - Name : X64DebugFabric:
114
+ BuildConfiguration : Debug
115
+ BuildPlatform : x64
116
+ UseFabric : true
117
+ - Name : X86DebugFabric:
118
+ BuildConfiguration : Debug
119
+ BuildPlatform : x86
120
+ UseFabric : true
121
+ - Name : Arm64DebugFabric:
122
+ BuildConfiguration : Debug
123
+ BuildPlatform : ARM64
124
+ UseFabric : true
74
125
75
126
variables :
76
127
- template : variables/windows.yml
@@ -267,144 +318,97 @@ extends:
267
318
artifactName : Desktop.${{matrix.buildPlatform}}.${{matrix.buildConfiguration}}
268
319
targetPath : $(Build.StagingDirectory)/NuGet/Desktop/${{matrix.buildPlatform}}/${{matrix.buildConfiguration}}
269
320
270
- - job : RnwNativeBuildUniversal
271
- displayName : Build Universal
272
- dependsOn : RnwNpmPublish
273
- strategy :
274
- matrix :
275
- X64Release :
276
- BuildConfiguration : Release
277
- BuildPlatform : x64
278
- UseFabric : false
279
- X86Release :
280
- BuildConfiguration : Release
281
- BuildPlatform : x86
282
- UseFabric : false
283
- Arm64Release :
284
- BuildConfiguration : Release
285
- BuildPlatform : ARM64
286
- UseFabric : false
287
- X64Debug :
288
- BuildConfiguration : Debug
289
- BuildPlatform : x64
290
- UseFabric : false
291
- X86Debug :
292
- BuildConfiguration : Debug
293
- BuildPlatform : x86
294
- UseFabric : false
295
- Arm64Debug :
296
- BuildConfiguration : Debug
297
- BuildPlatform : ARM64
298
- UseFabric : false
299
- X64ReleaseFabric :
300
- BuildConfiguration : Release
301
- BuildPlatform : x64
302
- UseFabric : true
303
- X86ReleaseFabric :
304
- BuildConfiguration : Release
305
- BuildPlatform : x86
306
- UseFabric : true
307
- Arm64ReleaseFabric :
308
- BuildConfiguration : Release
309
- BuildPlatform : ARM64
310
- UseFabric : true
311
- X64DebugFabric :
312
- BuildConfiguration : Debug
313
- BuildPlatform : x64
314
- UseFabric : true
315
- X86DebugFabric :
316
- BuildConfiguration : Debug
317
- BuildPlatform : x86
318
- UseFabric : true
319
- Arm64DebugFabric :
320
- BuildConfiguration : Debug
321
- BuildPlatform : ARM64
322
- UseFabric : true
323
- pool : ${{ parameters.AgentPool.Large }}
324
- timeoutInMinutes : 360 # CodeQL requires 3x usual build timeout
321
+ - ${{ each matrix in parameters.universalBuildMatrix }} :
322
+ - job : RnwNativeBuildUniversal${{ matrix.Name }}
323
+ displayName : Build Universal ${{ matrix.Name }}
324
+ pool : ${{ parameters.AgentPool.Large }}
325
+ timeoutInMinutes : 360 # CodeQL requires 3x usual build timeout
326
+ steps :
327
+ - template : .ado/templates/prepare-js-env.yml@self
325
328
326
- steps :
327
- - template : .ado/templates/prepare-js-env.yml@self
329
+ - template : .ado/templates/prepare-build-env.yml@self
330
+ parameters :
331
+ platform : ${{ matrix.BuildPlatform }}
332
+ configuration : ${{ matrix.BuildConfiguration }}
333
+ buildEnvironment : Publish
328
334
329
- - template : .ado/templates/prepare-build-env.yml@self
330
- parameters :
331
- platform : $(BuildPlatform)
332
- configuration : $(BuildConfiguration)
333
- buildEnvironment : Publish
335
+ - template : .ado/templates/apply-published-version-vars.yml@self
334
336
335
- - template : .ado/templates/apply-published-version-vars.yml@self
337
+ - ${{ if eq(matrix.UseFabric, true) }} :
338
+ - template : .ado/templates/enable-fabric-experimental-feature.yml@self
336
339
337
- - ${{ if eq(variables['UseFabric'], 'true') }} :
338
- - template : .ado/templates/enable-fabric-experimental-feature.yml@self
340
+ - template : .ado/templates/msbuild-sln.yml@self
341
+ parameters :
342
+ solutionDir : vnext
343
+ ${{ if eq(matrix.UseFabric, true) }} :
344
+ solutionName : Microsoft.ReactNative.CppOnly.slnf
345
+ ${{ else }} :
346
+ solutionName : Microsoft.ReactNative.sln
347
+ buildPlatform : ${{ matrix.BuildPlatform }}
348
+ buildConfiguration : ${{ matrix.BuildConfiguration }}
349
+ oneESMode : true # # Files are only copied to staging, not published
339
350
340
- - template : .ado/templates/msbuild-sln.yml@self
341
- parameters :
342
- solutionDir : vnext
343
- solutionName : Microsoft.ReactNative.sln
344
- buildPlatform : $(BuildPlatform)
345
- buildConfiguration : $(BuildConfiguration)
346
- oneESMode : true # # Files are only copied to staging, not published
347
-
348
- - task : PowerShell@2
349
- displayName : Make AnyCPU Reference Assemblies
350
- inputs :
351
- filePath : vnext/Scripts/Tfs/Make-AnyCPU-RefAssemblies.ps1
352
- arguments : -TargetRoot $(Build.SourcesDirectory)\vnext\target -BuildRoot $(Build.SourcesDirectory)\vnext\target
351
+ - task : PowerShell@2
352
+ displayName : Make AnyCPU Reference Assemblies
353
+ inputs :
354
+ filePath : vnext/Scripts/Tfs/Make-AnyCPU-RefAssemblies.ps1
355
+ arguments : -TargetRoot $(Build.SourcesDirectory)\vnext\target -BuildRoot $(Build.SourcesDirectory)\vnext\target
353
356
354
- - template : .ado/templates/publish-build-artifacts.yml@self
355
- parameters :
356
- oneESMode : true # # Files are only copied to staging, not published
357
- ${{ if eq(variables[' UseFabric'], ' true' ) }} :
358
- artifactName : ReactWindowsFabric
359
- ${{ else }} :
360
- artifactName : ReactWindows
361
- buildPlatform : $( BuildPlatform)
362
- buildConfiguration : $( BuildConfiguration)
363
- contents : |
364
- Microsoft.ReactNative\**
365
- Microsoft.ReactNative.Managed\**
366
- Microsoft.ReactNative.Managed.CodeGen\**
367
-
368
- - template : .ado/templates/component-governance.yml@self
369
-
370
- # Make symbols available through http://symweb.
371
- - task : PublishSymbols@2
372
- displayName : Publish symbols
373
- inputs :
374
- SearchPattern : vnext/target/**/*.pdb
375
- SymbolServerType : TeamServices
376
-
377
- templateContext :
357
+ - template : .ado/templates/publish-build-artifacts.yml@self
358
+ parameters :
359
+ oneESMode : true # # Files are only copied to staging, not published
360
+ ${{ if eq(matrix. UseFabric, true) }} :
361
+ artifactName : ReactWindowsFabric
362
+ ${{ else }} :
363
+ artifactName : ReactWindows
364
+ buildPlatform : ${{ matrix. BuildPlatform }}
365
+ buildConfiguration : ${{ matrix. BuildConfiguration }}
366
+ contents : |
367
+ Microsoft.ReactNative\**
368
+ Microsoft.ReactNative.Managed\**
369
+ Microsoft.ReactNative.Managed.CodeGen\**
370
+
371
+ - template : .ado/templates/component-governance.yml@self
372
+
373
+ # Make symbols available through http://symweb.
374
+ - task : PublishSymbols@2
375
+ displayName : Publish symbols
376
+ inputs :
377
+ SearchPattern : vnext/target/**/*.pdb
378
+ SymbolServerType : TeamServices
379
+
380
+ templateContext :
378
381
sdl :
379
382
binskim :
380
- analyzeTargetGlob : ' $(Build.SourcesDirectory)\vnext\target\$( BuildPlatform)\$( BuildConfiguration) \Microsoft.ReactNative\Microsoft.ReactNative.dll'
381
- outputs :
382
- - output : pipelineArtifact
383
- displayName : ' Upload build logs'
384
- condition : succeededOrFailed()
385
- targetPath : $(BuildLogDirectory)
386
- artifactName : Build logs - $(Agent.JobName)-$(System.JobAttempt)
387
- - output : pipelineArtifact
388
- displayName : ' Upload crash dumps'
389
- condition : and(succeededOrFailed(), eq(variables.HasCrashDumps, 'True'))
390
- targetPath : ' $(CrashDumpRootPath)'
391
- artifactName : Crash dumps - $(Agent.JobName)-$(System.JobAttempt)
392
- - output : pipelineArtifact
393
- ${{ if eq(variables[' UseFabric'], ' true' ) }} :
394
- displayName : ' Publish Artifact: ReactWindowsFabric.$( BuildPlatform).$( BuildConfiguration) '
395
- artifactName : ReactWindowsFabric.$( BuildPlatform).$( BuildConfiguration)
396
- targetPath : $(Build.StagingDirectory)/NuGet/ReactWindowsFabric/$( BuildPlatform)/$( BuildConfiguration)
397
- ${{ else }} :
398
- displayName : ' Publish Artifact: ReactWindows.$( BuildPlatform).$( BuildConfiguration) '
399
- artifactName : ReactWindows.$( BuildPlatform).$( BuildConfiguration)
400
- targetPath : $(Build.StagingDirectory)/NuGet/ReactWindows/$( BuildPlatform)/$( BuildConfiguration)
383
+ analyzeTargetGlob : ' $(Build.SourcesDirectory)\vnext\target\${{ matrix. BuildPlatform }}\${{ matrix. BuildConfiguration }} \Microsoft.ReactNative\Microsoft.ReactNative.dll'
384
+ outputs :
385
+ - output : pipelineArtifact
386
+ displayName : ' Upload build logs'
387
+ condition : succeededOrFailed()
388
+ targetPath : $(BuildLogDirectory)
389
+ artifactName : Build logs - $(Agent.JobName)-$(System.JobAttempt)
390
+ - output : pipelineArtifact
391
+ displayName : ' Upload crash dumps'
392
+ condition : and(succeededOrFailed(), eq(variables.HasCrashDumps, 'True'))
393
+ targetPath : ' $(CrashDumpRootPath)'
394
+ artifactName : Crash dumps - $(Agent.JobName)-$(System.JobAttempt)
395
+ - output : pipelineArtifact
396
+ ${{ if eq(matrix. UseFabric, true) }} :
397
+ displayName : ' Publish Artifact: ReactWindowsFabric.${{ matrix. BuildPlatform }}.${{ matrix. BuildConfiguration }} '
398
+ artifactName : ReactWindowsFabric.${{ matrix. BuildPlatform }}.${{ matrix. BuildConfiguration }}
399
+ targetPath : $(Build.StagingDirectory)/NuGet/ReactWindowsFabric/${{ matrix. BuildPlatform }}/${{ matrix. BuildConfiguration }}
400
+ ${{ else }} :
401
+ displayName : ' Publish Artifact: ReactWindows.${{ matrix. BuildPlatform }}.${{ matrix. BuildConfiguration }} '
402
+ artifactName : ReactWindows.${{ matrix. BuildPlatform }}.${{ matrix. BuildConfiguration }}
403
+ targetPath : $(Build.StagingDirectory)/NuGet/ReactWindows/${{ matrix. BuildPlatform }}/${{ matrix. BuildConfiguration }}
401
404
402
405
- job : RNWNuget
403
406
dependsOn :
404
407
- RnwNpmPublish
405
408
- ${{ each matrix in parameters.desktopBuildMatrix }} :
406
409
- RnwNativeBuildDesktop${{ matrix.Name }}
407
- - RnwNativeBuildUniversal
410
+ - ${{ each matrix in parameters.universalBuildMatrix }} :
411
+ - RnwNativeBuildUniversal${{ matrix.Name }}
408
412
displayName : Sign Binaries and Publish NuGet
409
413
pool : ${{ parameters.AgentPool.Medium }}
410
414
timeoutInMinutes : 120 # Protect against the long CodeSign task
0 commit comments