123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- ## @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: []
- # 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 }}
- 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 }}
- 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)
|