mirror of https://github.com/acidanthera/audk.git
130 lines
4.4 KiB
YAML
130 lines
4.4 KiB
YAML
## @file
|
|
# File templates/pr-gate-build-job.yml
|
|
#
|
|
# template file used to build supported packages.
|
|
#
|
|
# Copyright (c) Microsoft Corporation.
|
|
# Copyright (c) 2020 - 2021, ARM Limited. All rights reserved.<BR>
|
|
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
##
|
|
|
|
parameters:
|
|
tool_chain_tag: ''
|
|
vm_image: ''
|
|
arch_list: ''
|
|
extra_install_step: []
|
|
usePythonVersion: ''
|
|
container: ''
|
|
|
|
# Build step
|
|
jobs:
|
|
|
|
- job: Build_${{ parameters.tool_chain_tag }}
|
|
timeoutInMinutes: 120
|
|
#Use matrix to speed up the build process
|
|
strategy:
|
|
matrix:
|
|
${{ if eq(parameters.tool_chain_tag, 'GCC5') }}:
|
|
TARGET_GCC_ONLY:
|
|
Build.Pkgs: 'EmbeddedPkg'
|
|
Build.Targets: 'DEBUG,RELEASE,NO-TARGET,NOOPT'
|
|
TARGET_ARM_ARMPLATFORM:
|
|
Build.Pkgs: 'ArmPkg,ArmPlatformPkg'
|
|
Build.Targets: 'DEBUG,RELEASE,NO-TARGET,NOOPT'
|
|
TARGET_MDE_CPU:
|
|
Build.Pkgs: 'MdePkg,UefiCpuPkg'
|
|
Build.Targets: 'DEBUG,RELEASE,NO-TARGET,NOOPT'
|
|
TARGET_MDEMODULE_DEBUG:
|
|
Build.Pkgs: 'MdeModulePkg'
|
|
Build.Targets: 'DEBUG,NOOPT'
|
|
TARGET_MDEMODULE_RELEASE:
|
|
Build.Pkgs: 'MdeModulePkg'
|
|
Build.Targets: 'RELEASE,NO-TARGET'
|
|
TARGET_NETWORK:
|
|
Build.Pkgs: 'NetworkPkg,RedfishPkg'
|
|
Build.Targets: 'DEBUG,RELEASE,NO-TARGET,NOOPT'
|
|
TARGET_OTHER:
|
|
Build.Pkgs: 'PcAtChipsetPkg,PrmPkg,ShellPkg,SourceLevelDebugPkg,StandaloneMmPkg,SignedCapsulePkg'
|
|
Build.Targets: 'DEBUG,RELEASE,NO-TARGET,NOOPT'
|
|
TARGET_FMP_FAT_TEST:
|
|
Build.Pkgs: 'FmpDevicePkg,FatPkg,UnitTestFrameworkPkg,DynamicTablesPkg'
|
|
Build.Targets: 'DEBUG,RELEASE,NO-TARGET,NOOPT'
|
|
TARGET_CRYPTO:
|
|
Build.Pkgs: 'CryptoPkg'
|
|
Build.Targets: 'DEBUG,RELEASE,NO-TARGET,NOOPT'
|
|
TARGET_FSP:
|
|
Build.Pkgs: 'IntelFsp2Pkg,IntelFsp2WrapperPkg'
|
|
Build.Targets: 'DEBUG,RELEASE,NO-TARGET,NOOPT'
|
|
TARGET_SECURITY:
|
|
Build.Pkgs: 'SecurityPkg'
|
|
Build.Targets: 'DEBUG,RELEASE,NO-TARGET,NOOPT'
|
|
TARGET_UEFIPAYLOAD:
|
|
Build.Pkgs: 'UefiPayloadPkg'
|
|
Build.Targets: 'DEBUG,RELEASE,NO-TARGET,NOOPT'
|
|
TARGET_PLATFORMS:
|
|
# For Platforms only check code. Leave it to Platform CI
|
|
# to build them.
|
|
Build.Pkgs: 'ArmVirtPkg,EmulatorPkg,OvmfPkg'
|
|
Build.Targets: 'NO-TARGET,NOOPT'
|
|
|
|
workspace:
|
|
clean: all
|
|
|
|
pool:
|
|
vmImage: ${{ parameters.vm_image }}
|
|
|
|
${{ if not(eq(parameters.container, '')) }}:
|
|
container: ${{ parameters.container }}
|
|
|
|
steps:
|
|
- template: pr-gate-steps.yml
|
|
parameters:
|
|
tool_chain_tag: ${{ parameters.tool_chain_tag }}
|
|
build_pkgs: $(Build.Pkgs)
|
|
build_targets: $(Build.Targets)
|
|
build_archs: ${{ parameters.arch_list }}
|
|
usePythonVersion: ${{ parameters.usePythonVersion }}
|
|
extra_install_step: ${{ parameters.extra_install_step }}
|
|
|
|
- job: Build_${{ parameters.tool_chain_tag }}_TARGET_CODE_COVERAGE
|
|
dependsOn: Build_${{ parameters.tool_chain_tag }}
|
|
workspace:
|
|
clean: all
|
|
|
|
pool:
|
|
vmImage: 'windows-2019'
|
|
|
|
steps:
|
|
- checkout: self
|
|
clean: true
|
|
fetchDepth: 1
|
|
submodules: true
|
|
|
|
- task: DownloadPipelineArtifact@2
|
|
displayName: 'Download Build Artifacts'
|
|
inputs:
|
|
buildType: 'current'
|
|
targetPath: '$(Build.ArtifactStagingDirectory)'
|
|
|
|
- powershell: Write-Host "##vso[task.setvariable variable=is_code_coverage]0"
|
|
displayName: Give default value for whether CodeCoverage or not
|
|
|
|
- powershell: if (Test-Path -Path $(Build.ArtifactStagingDirectory)/**/coverage.xml) {Write-Host "##vso[task.setvariable variable=is_code_coverage]1"}
|
|
displayName: Check coverage.xml exist or not
|
|
|
|
- task: CmdLine@2
|
|
displayName: Create code coverage report
|
|
inputs:
|
|
script: |
|
|
dotnet tool install -g dotnet-reportgenerator-globaltool
|
|
reportgenerator -reports:$(Build.ArtifactStagingDirectory)/**/coverage.xml -targetdir:$(Build.ArtifactStagingDirectory)/Coverage -reporttypes:Cobertura -filefilters:-*Build*;-*UnitTest*;-*Mock*;-*usr*
|
|
condition: eq(variables.is_code_coverage, 1)
|
|
|
|
- task: PublishCodeCoverageResults@1
|
|
displayName: 'Publish code coverage'
|
|
inputs:
|
|
codeCoverageTool: Cobertura
|
|
summaryFileLocation: '$(Build.ArtifactStagingDirectory)/Coverage/Cobertura.xml'
|
|
condition: eq(variables.is_code_coverage, 1)
|
|
|