.azurepipelines/templates: Split out unit test jobs

Add unit tests jobs for stuart_ci_build NOOPT X64 with options
to only build and run unit tests. This disables all other
plugins including CompilerPlugin that performs package build
tests.

  --disable-all HostUnitTestCompilerPlugin=run HostBasedUnitTestRunner=run

Update all package build tests to remove the NOOPT option.
This is required because NOOPT can now be used to perform
both package build tests and unit test builds. In order to
preserve the same number of CI checks, NOOPT package build
coverage must be disabled and NOOPT is only used for unit
test builds in independent jobs.

Daily/Weekly/Release coverage build can potentially use NOOPT
for package build tests to verify no regressions for NOOPT
package builds.

Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
This commit is contained in:
Michael D Kinney
2026-01-23 17:25:10 -08:00
committed by mergify[bot]
parent ea011c812f
commit ccbee92b65
2 changed files with 27 additions and 14 deletions
+25 -13
View File
@@ -24,22 +24,33 @@ jobs:
#Use matrix to speed up the build process
strategy:
matrix:
${{ if eq(parameters.tool_chain_tag, 'GCC') }}:
TARGET_GCC_ONLY_UNIT_TEST:
Build.Pkgs: 'EmbeddedPkg'
Build.Targets: 'NOOPT'
Build.Archlist: 'X64'
Build.ExtraStuartArgs: '--disable-all HostUnitTestCompilerPlugin=run HostBasedUnitTestRunner=run'
TARGET_UNIT_TEST:
Build.Pkgs: 'ArmPkg,ArmPlatformPkg,MdePkg,UefiCpuPkg,MdeModulePkg,NetworkPkg,RedfishPkg,PcAtChipsetPkg,PrmPkg,ShellPkg,SourceLevelDebugPkg,StandaloneMmPkg,SignedCapsulePkg,FmpDevicePkg,FatPkg,UnitTestFrameworkPkg,DynamicTablesPkg,CryptoPkg,IntelFsp2Pkg,IntelFsp2WrapperPkg,SecurityPkg,ArmVirtPkg,EmulatorPkg,OvmfPkg,UefiPayloadPkg'
Build.Targets: 'NOOPT'
Build.Archlist: 'X64'
Build.ExtraStuartArgs: '--disable-all HostUnitTestCompilerPlugin=run HostBasedUnitTestRunner=run'
${{ if eq(parameters.tool_chain_tag, 'GCC') }}:
TARGET_GCC_ONLY:
Build.Pkgs: 'EmbeddedPkg'
Build.Targets: 'DEBUG,RELEASE,NO-TARGET,NOOPT'
Build.Targets: 'DEBUG,RELEASE,NO-TARGET'
Build.Archlist: ${{ parameters.arch_list }}
TARGET_ARM_ARMPLATFORM:
Build.Pkgs: 'ArmPkg,ArmPlatformPkg'
Build.Targets: 'DEBUG,RELEASE,NO-TARGET,NOOPT'
Build.Targets: 'DEBUG,RELEASE,NO-TARGET'
Build.Archlist: ${{ parameters.arch_list }}
TARGET_MDE_CPU:
Build.Pkgs: 'MdePkg,UefiCpuPkg'
Build.Targets: 'DEBUG,RELEASE,NO-TARGET,NOOPT'
Build.Targets: 'DEBUG,RELEASE,NO-TARGET'
Build.Archlist: ${{ parameters.arch_list }}
TARGET_MDEMODULE_DEBUG:
Build.Pkgs: 'MdeModulePkg'
Build.Targets: 'DEBUG,NOOPT'
Build.Targets: 'DEBUG'
Build.Archlist: ${{ parameters.arch_list }}
TARGET_MDEMODULE_RELEASE:
Build.Pkgs: 'MdeModulePkg'
@@ -47,19 +58,19 @@ jobs:
Build.Archlist: ${{ parameters.arch_list }}
TARGET_NETWORK:
Build.Pkgs: 'NetworkPkg,RedfishPkg'
Build.Targets: 'DEBUG,RELEASE,NO-TARGET,NOOPT'
Build.Targets: 'DEBUG,RELEASE,NO-TARGET'
Build.Archlist: ${{ parameters.arch_list }}
TARGET_OTHER:
Build.Pkgs: 'PcAtChipsetPkg,PrmPkg,ShellPkg,SourceLevelDebugPkg,StandaloneMmPkg,SignedCapsulePkg'
Build.Targets: 'DEBUG,RELEASE,NO-TARGET,NOOPT'
Build.Targets: 'DEBUG,RELEASE,NO-TARGET'
Build.Archlist: ${{ parameters.arch_list }}
TARGET_FMP_FAT_TEST:
Build.Pkgs: 'FmpDevicePkg,FatPkg,UnitTestFrameworkPkg,DynamicTablesPkg'
Build.Targets: 'DEBUG,RELEASE,NO-TARGET,NOOPT'
Build.Targets: 'DEBUG,RELEASE,NO-TARGET'
Build.Archlist: ${{ parameters.arch_list }}
TARGET_CRYPTO_DEBUG:
Build.Pkgs: 'CryptoPkg'
Build.Targets: 'DEBUG,NOOPT'
Build.Targets: 'DEBUG'
Build.Archlist: ${{ parameters.arch_list }}
TARGET_CRYPTO_RELEASE:
Build.Pkgs: 'CryptoPkg'
@@ -67,26 +78,26 @@ jobs:
Build.Archlist: ${{ parameters.arch_list }}
TARGET_FSP:
Build.Pkgs: 'IntelFsp2Pkg,IntelFsp2WrapperPkg'
Build.Targets: 'DEBUG,RELEASE,NO-TARGET,NOOPT'
Build.Targets: 'DEBUG,RELEASE,NO-TARGET'
Build.Archlist: ${{ parameters.arch_list }}
TARGET_SECURITY:
Build.Pkgs: 'SecurityPkg'
Build.Targets: 'DEBUG,RELEASE,NO-TARGET,NOOPT'
Build.Targets: 'DEBUG,RELEASE,NO-TARGET'
Build.Archlist: ${{ parameters.arch_list }}
TARGET_UEFIPAYLOAD_IA32_X64:
Build.Pkgs: 'UefiPayloadPkg'
Build.Targets: 'DEBUG,RELEASE,NO-TARGET,NOOPT'
Build.Targets: 'DEBUG,RELEASE,NO-TARGET'
Build.Archlist: 'IA32,X64'
${{ if eq(parameters.tool_chain_tag, 'GCC') }}:
TARGET_UEFIPAYLOAD_AARCH64_GCC_ONLY:
Build.Pkgs: 'UefiPayloadPkg'
Build.Targets: 'DEBUG,RELEASE,NO-TARGET,NOOPT'
Build.Targets: 'DEBUG,RELEASE,NO-TARGET'
Build.Archlist: 'AARCH64'
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'
Build.Targets: 'NO-TARGET'
Build.Archlist: ${{ parameters.arch_list }}
workspace:
@@ -105,6 +116,7 @@ jobs:
build_pkgs: $(Build.Pkgs)
build_targets: $(Build.Targets)
build_archs: $(Build.Archlist)
build_extra_stuart_args: $(Build.ExtraStuartArgs)
usePythonVersion: ${{ parameters.usePythonVersion }}
extra_install_step: ${{ parameters.extra_install_step }}
+2 -1
View File
@@ -12,6 +12,7 @@ parameters:
build_pkgs: ''
build_targets: ''
build_archs: ''
build_extra_stuart_args: ''
usePythonVersion: ''
extra_install_step: []
@@ -90,7 +91,7 @@ steps:
displayName: Build and Test ${{ parameters.build_pkgs }} ${{ parameters.build_archs}}
inputs:
script: |
stuart_ci_build -c .pytool/CISettings.py -p $(pkgs_to_build) -t ${{ parameters.build_targets}} -a ${{ parameters.build_archs}} TOOL_CHAIN_TAG=${{ parameters.tool_chain_tag}}
stuart_ci_build -c .pytool/CISettings.py -p $(pkgs_to_build) -t ${{ parameters.build_targets}} -a ${{ parameters.build_archs}} TOOL_CHAIN_TAG=${{ parameters.tool_chain_tag}} ${{ parameters.build_extra_stuart_args }}
condition: and(gt(variables.pkg_count, 0), succeeded())
# Publish Test Results to Azure Pipelines/TFS