]>
Commit | Line | Data |
---|---|---|
106c7a99 SB |
1 | ## @file\r |
2 | # File templates/pr-gate-build-job.yml\r | |
3 | #\r | |
4 | # template file used to build supported packages.\r | |
5 | #\r | |
6 | # Copyright (c) Microsoft Corporation.\r | |
d4a3490a | 7 | # Copyright (c) 2020 - 2021, ARM Limited. All rights reserved.<BR>\r |
106c7a99 SB |
8 | # SPDX-License-Identifier: BSD-2-Clause-Patent\r |
9 | ##\r | |
10 | \r | |
11 | parameters:\r | |
12 | tool_chain_tag: ''\r | |
13 | vm_image: ''\r | |
14 | arch_list: ''\r | |
89c5d900 | 15 | extra_install_step: []\r |
35795517 | 16 | usePythonVersion: ''\r |
36d7626a | 17 | container: ''\r |
106c7a99 SB |
18 | \r |
19 | # Build step\r | |
20 | jobs:\r | |
21 | \r | |
22 | - job: Build_${{ parameters.tool_chain_tag }}\r | |
76a1ce4d | 23 | timeoutInMinutes: 120\r |
106c7a99 SB |
24 | #Use matrix to speed up the build process\r |
25 | strategy:\r | |
26 | matrix:\r | |
12973359 MK |
27 | ${{ if eq(parameters.tool_chain_tag, 'GCC5') }}:\r |
28 | TARGET_GCC_ONLY:\r | |
29 | Build.Pkgs: 'EmbeddedPkg'\r | |
30 | Build.Targets: 'DEBUG,RELEASE,NO-TARGET,NOOPT'\r | |
01c0ab90 PG |
31 | TARGET_ARM_ARMPLATFORM:\r |
32 | Build.Pkgs: 'ArmPkg,ArmPlatformPkg'\r | |
7c4f05dc | 33 | Build.Targets: 'DEBUG,RELEASE,NO-TARGET,NOOPT'\r |
106c7a99 SB |
34 | TARGET_MDE_CPU:\r |
35 | Build.Pkgs: 'MdePkg,UefiCpuPkg'\r | |
e5b911d4 | 36 | Build.Targets: 'DEBUG,RELEASE,NO-TARGET,NOOPT'\r |
106c7a99 SB |
37 | TARGET_MDEMODULE_DEBUG:\r |
38 | Build.Pkgs: 'MdeModulePkg'\r | |
e5b911d4 | 39 | Build.Targets: 'DEBUG,NOOPT'\r |
106c7a99 SB |
40 | TARGET_MDEMODULE_RELEASE:\r |
41 | Build.Pkgs: 'MdeModulePkg'\r | |
42 | Build.Targets: 'RELEASE,NO-TARGET'\r | |
43 | TARGET_NETWORK:\r | |
19c87b7d | 44 | Build.Pkgs: 'NetworkPkg,RedfishPkg'\r |
ee582858 | 45 | Build.Targets: 'DEBUG,RELEASE,NO-TARGET,NOOPT'\r |
106c7a99 | 46 | TARGET_OTHER:\r |
710f83b7 | 47 | Build.Pkgs: 'PcAtChipsetPkg,PrmPkg,ShellPkg,SourceLevelDebugPkg,StandaloneMmPkg,SignedCapsulePkg'\r |
ee582858 | 48 | Build.Targets: 'DEBUG,RELEASE,NO-TARGET,NOOPT'\r |
e5b911d4 | 49 | TARGET_FMP_FAT_TEST:\r |
5a6d764e | 50 | Build.Pkgs: 'FmpDevicePkg,FatPkg,UnitTestFrameworkPkg,DynamicTablesPkg'\r |
e5b911d4 | 51 | Build.Targets: 'DEBUG,RELEASE,NO-TARGET,NOOPT'\r |
106c7a99 SB |
52 | TARGET_CRYPTO:\r |
53 | Build.Pkgs: 'CryptoPkg'\r | |
73e3cb6c | 54 | Build.Targets: 'DEBUG,RELEASE,NO-TARGET,NOOPT'\r |
769879e2 MK |
55 | TARGET_FSP:\r |
56 | Build.Pkgs: 'IntelFsp2Pkg,IntelFsp2WrapperPkg'\r | |
57 | Build.Targets: 'DEBUG,RELEASE,NO-TARGET,NOOPT'\r | |
106c7a99 SB |
58 | TARGET_SECURITY:\r |
59 | Build.Pkgs: 'SecurityPkg'\r | |
ee582858 | 60 | Build.Targets: 'DEBUG,RELEASE,NO-TARGET,NOOPT'\r |
e3ee8c8d | 61 | TARGET_UEFIPAYLOAD:\r |
62 | Build.Pkgs: 'UefiPayloadPkg'\r | |
ee582858 | 63 | Build.Targets: 'DEBUG,RELEASE,NO-TARGET,NOOPT'\r |
099dfbb2 SB |
64 | TARGET_PLATFORMS:\r |
65 | # For Platforms only check code. Leave it to Platform CI\r | |
66 | # to build them.\r | |
67 | Build.Pkgs: 'ArmVirtPkg,EmulatorPkg,OvmfPkg'\r | |
ee582858 | 68 | Build.Targets: 'NO-TARGET,NOOPT'\r |
106c7a99 SB |
69 | \r |
70 | workspace:\r | |
71 | clean: all\r | |
72 | \r | |
73 | pool:\r | |
74 | vmImage: ${{ parameters.vm_image }}\r | |
75 | \r | |
36d7626a OS |
76 | ${{ if not(eq(parameters.container, '')) }}:\r |
77 | container: ${{ parameters.container }}\r | |
78 | \r | |
106c7a99 SB |
79 | steps:\r |
80 | - template: pr-gate-steps.yml\r | |
81 | parameters:\r | |
82 | tool_chain_tag: ${{ parameters.tool_chain_tag }}\r | |
83 | build_pkgs: $(Build.Pkgs)\r | |
84 | build_targets: $(Build.Targets)\r | |
85 | build_archs: ${{ parameters.arch_list }}\r | |
35795517 | 86 | usePythonVersion: ${{ parameters.usePythonVersion }}\r |
89c5d900 GG |
87 | extra_install_step: ${{ parameters.extra_install_step }}\r |
88 | \r | |
89 | - job: Build_${{ parameters.tool_chain_tag }}_TARGET_CODE_COVERAGE\r | |
90 | dependsOn: Build_${{ parameters.tool_chain_tag }}\r | |
91 | workspace:\r | |
92 | clean: all\r | |
93 | \r | |
94 | pool:\r | |
95 | vmImage: 'windows-2019'\r | |
96 | \r | |
97 | steps:\r | |
98 | - checkout: self\r | |
99 | clean: true\r | |
100 | fetchDepth: 1\r | |
101 | submodules: true\r | |
102 | \r | |
103 | - task: DownloadPipelineArtifact@2\r | |
104 | displayName: 'Download Build Artifacts'\r | |
105 | inputs:\r | |
106 | buildType: 'current'\r | |
107 | targetPath: '$(Build.ArtifactStagingDirectory)'\r | |
108 | \r | |
8c235780 GG |
109 | - powershell: Write-Host "##vso[task.setvariable variable=is_code_coverage]0"\r |
110 | displayName: Give default value for whether CodeCoverage or not\r | |
111 | \r | |
112 | - powershell: if (Test-Path -Path $(Build.ArtifactStagingDirectory)/**/coverage.xml) {Write-Host "##vso[task.setvariable variable=is_code_coverage]1"}\r | |
113 | displayName: Check coverage.xml exist or not\r | |
114 | \r | |
89c5d900 GG |
115 | - task: CmdLine@2\r |
116 | displayName: Create code coverage report\r | |
117 | inputs:\r | |
118 | script: |\r | |
119 | dotnet tool install -g dotnet-reportgenerator-globaltool\r | |
120 | reportgenerator -reports:$(Build.ArtifactStagingDirectory)/**/coverage.xml -targetdir:$(Build.ArtifactStagingDirectory)/Coverage -reporttypes:Cobertura -filefilters:-*Build*;-*UnitTest*;-*Mock*;-*usr*\r | |
8c235780 | 121 | condition: eq(variables.is_code_coverage, 1)\r |
89c5d900 GG |
122 | \r |
123 | - task: PublishCodeCoverageResults@1\r | |
124 | displayName: 'Publish code coverage'\r | |
125 | inputs:\r | |
126 | codeCoverageTool: Cobertura\r | |
127 | summaryFileLocation: '$(Build.ArtifactStagingDirectory)/Coverage/Cobertura.xml'\r | |
8c235780 | 128 | condition: eq(variables.is_code_coverage, 1)\r |
89c5d900 | 129 | \r |