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