Skip to content

Commit 8ca7fba

Browse files
authored
Update publish.yml to universal build matrix
1 parent 043de80 commit 8ca7fba

File tree

1 file changed

+128
-124
lines changed

1 file changed

+128
-124
lines changed

.ado/publish.yml

Lines changed: 128 additions & 124 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,57 @@ parameters:
7171
BuildPlatform: x86
7272
UseFabric: true
7373

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
74125

75126
variables:
76127
- template: variables/windows.yml
@@ -267,144 +318,97 @@ extends:
267318
artifactName: Desktop.${{matrix.buildPlatform}}.${{matrix.buildConfiguration}}
268319
targetPath: $(Build.StagingDirectory)/NuGet/Desktop/${{matrix.buildPlatform}}/${{matrix.buildConfiguration}}
269320

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
325328

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
328334

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
334336

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
336339

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
339350

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
353356

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:
378381
sdl:
379382
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 }}
401404

402405
- job: RNWNuget
403406
dependsOn:
404407
- RnwNpmPublish
405408
- ${{ each matrix in parameters.desktopBuildMatrix }}:
406409
- RnwNativeBuildDesktop${{ matrix.Name }}
407-
- RnwNativeBuildUniversal
410+
- ${{ each matrix in parameters.universalBuildMatrix }}:
411+
- RnwNativeBuildUniversal${{ matrix.Name }}
408412
displayName: Sign Binaries and Publish NuGet
409413
pool: ${{ parameters.AgentPool.Medium }}
410414
timeoutInMinutes: 120 # Protect against the long CodeSign task

0 commit comments

Comments
 (0)