Details about a particular pipeline change over time - such as the specific Linux distro or toolchain version. At the same time, the pipeline files are directly referenced in Azure Pipelines to run the pipeline and few users have access to change those details. To make the files less likely to refer to outdated information over time and reduce the need for an Azure Pipeline administrator to get involved, the files are updated to drop specific details apart from the host OS environment used in the pipeline. Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
217 lines
7.5 KiB
YAML
217 lines
7.5 KiB
YAML
## @file
|
|
# Azure Pipeline build file for building a platform.
|
|
#
|
|
# Platform: OVMF
|
|
# OS: Ubuntu
|
|
# Toolchain: GCC
|
|
#
|
|
# Copyright (c) Microsoft Corporation.
|
|
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
##
|
|
trigger:
|
|
- master
|
|
- stable/*
|
|
pr:
|
|
- master
|
|
- stable/*
|
|
|
|
variables:
|
|
- template: ../../../.azurepipelines/templates/defaults.yml
|
|
|
|
jobs:
|
|
- job: Platform_CI
|
|
variables:
|
|
package: 'OvmfPkg'
|
|
vm_image: 'ubuntu-22.04'
|
|
should_run: true
|
|
run_flags: "MAKE_STARTUP_NSH=TRUE QEMU_HEADLESS=TRUE"
|
|
|
|
#Use matrix to speed up the build process
|
|
strategy:
|
|
matrix:
|
|
OVMF_IA32_DEBUG:
|
|
Build.File: "$(package)/PlatformCI/PlatformBuild.py"
|
|
Build.Arch: "IA32"
|
|
Build.Flags: ""
|
|
Build.Target: "DEBUG"
|
|
Run.Flags: $(run_flags)
|
|
Run: $(should_run)
|
|
OVMF_IA32_RELEASE:
|
|
Build.File: "$(package)/PlatformCI/PlatformBuild.py"
|
|
Build.Arch: "IA32"
|
|
Build.Flags: ""
|
|
Build.Target: "RELEASE"
|
|
Run.Flags: $(run_flags)
|
|
Run: $(should_run)
|
|
OVMF_IA32_NOOPT:
|
|
Build.File: "$(package)/PlatformCI/PlatformBuild.py"
|
|
Build.Arch: "IA32"
|
|
Build.Flags: ""
|
|
Build.Target: "NOOPT"
|
|
Run.Flags: $(run_flags)
|
|
Run: $(should_run)
|
|
|
|
OVMF_X64_DEBUG:
|
|
Build.File: "$(package)/PlatformCI/PlatformBuild.py"
|
|
Build.Arch: "X64"
|
|
Build.Flags: ""
|
|
Build.Target: "DEBUG"
|
|
Run.Flags: $(run_flags)
|
|
Run: $(should_run)
|
|
OVMF_X64_RELEASE:
|
|
Build.File: "$(package)/PlatformCI/PlatformBuild.py"
|
|
Build.Arch: "X64"
|
|
Build.Flags: ""
|
|
Build.Target: "RELEASE"
|
|
Run.Flags: $(run_flags)
|
|
Run: $(should_run)
|
|
OVMF_X64_NOOPT:
|
|
Build.File: "$(package)/PlatformCI/PlatformBuild.py"
|
|
Build.Arch: "X64"
|
|
Build.Flags: ""
|
|
Build.Target: "NOOPT"
|
|
Run.Flags: $(run_flags)
|
|
Run: $(should_run)
|
|
|
|
OVMF_IA32X64_DEBUG:
|
|
Build.File: "$(package)/PlatformCI/PlatformBuild.py"
|
|
Build.Arch: "IA32,X64"
|
|
Build.Flags: ""
|
|
Build.Target: "DEBUG"
|
|
Run.Flags: $(run_flags)
|
|
Run: $(should_run)
|
|
OVMF_IA32X64_RELEASE:
|
|
Build.File: "$(package)/PlatformCI/PlatformBuild.py"
|
|
Build.Arch: "IA32,X64"
|
|
Build.Flags: ""
|
|
Build.Target: "RELEASE"
|
|
Run.Flags: $(run_flags)
|
|
Run: $(should_run)
|
|
OVMF_IA32X64_NOOPT:
|
|
Build.File: "$(package)/PlatformCI/PlatformBuild.py"
|
|
Build.Arch: "IA32,X64"
|
|
Build.Flags: ""
|
|
Build.Target: "NOOPT"
|
|
Run.Flags: $(run_flags)
|
|
Run: $(should_run)
|
|
|
|
OVMF_IA32X64_FULL_DEBUG:
|
|
Build.File: "$(package)/PlatformCI/PlatformBuild.py"
|
|
Build.Arch: "IA32,X64"
|
|
Build.Flags: "BLD_*_SECURE_BOOT_ENABLE=1 BLD_*_SMM_REQUIRE=1 BLD_*_TPM2_ENABLE=1 BLD_*_NETWORK_TLS_ENABLE=1 BLD_*_NETWORK_IP6_ENABLE=1 BLD_*_NETWORK_HTTP_BOOT_ENABLE=1"
|
|
Build.Target: "DEBUG"
|
|
Run.Flags: $(run_flags)
|
|
Run: $(should_run)
|
|
OVMF_IA32X64_FULL_RELEASE:
|
|
Build.File: "$(package)/PlatformCI/PlatformBuild.py"
|
|
Build.Arch: "IA32,X64"
|
|
Build.Flags: "BLD_*_SECURE_BOOT_ENABLE=1 BLD_*_SMM_REQUIRE=1 BLD_*_TPM2_ENABLE=1 BLD_*_NETWORK_TLS_ENABLE=1 BLD_*_NETWORK_IP6_ENABLE=1 BLD_*_NETWORK_HTTP_BOOT_ENABLE=1"
|
|
Build.Target: "RELEASE"
|
|
Run.Flags: $(run_flags)
|
|
Run: $(should_run)
|
|
# This currently creates a very large image which is too big for the FDF declared range,
|
|
# skip this build for now.
|
|
#
|
|
# OVMF_IA32X64_FULL_NOOPT:
|
|
# Build.File: "$(package)/PlatformCI/PlatformBuild.py"
|
|
# Build.Arch: "IA32,X64"
|
|
# Build.Flags: "BLD_*_SECURE_BOOT_ENABLE=1 BLD_*_SMM_REQUIRE=1 BLD_*_TPM2_ENABLE=1 BLD_*_NETWORK_TLS_ENABLE=1 BLD_*_NETWORK_IP6_ENABLE=1 BLD_*_NETWORK_HTTP_BOOT_ENABLE=1"
|
|
# Build.Target: "NOOPT"
|
|
# Run.Flags: $(run_flags)
|
|
# Run: $(should_run)
|
|
|
|
AMDSEV_X64_DEBUG:
|
|
Build.File: "$(package)/PlatformCI/AmdSevBuild.py"
|
|
Build.Arch: "X64"
|
|
Build.Flags: ""
|
|
Build.Target: "DEBUG"
|
|
# restricted + stripped down build
|
|
# can't boot to uefi shell -> skip test
|
|
Run.Flags: "QEMU_SKIP=TRUE"
|
|
Run: $(should_run)
|
|
|
|
BHYVE_X64_DEBUG:
|
|
Build.File: "$(package)/PlatformCI/BhyveBuild.py"
|
|
Build.Arch: "X64"
|
|
Build.Flags: ""
|
|
Build.Target: "DEBUG"
|
|
# this build is for freebsd bhyve not qemu-kvm
|
|
Run.Flags: "QEMU_SKIP=TRUE"
|
|
Run: $(should_run)
|
|
|
|
CLOUDHV_X64_DEBUG:
|
|
Build.File: "$(package)/PlatformCI/CloudHvBuild.py"
|
|
Build.Arch: "X64"
|
|
Build.Flags: ""
|
|
Build.Target: "DEBUG"
|
|
# this build is for cloud-hypervisor not qemu-kvm
|
|
Run.Flags: "QEMU_SKIP=TRUE"
|
|
Run: $(should_run)
|
|
|
|
MICROVM_X64_DEBUG:
|
|
Build.File: "$(package)/PlatformCI/MicrovmBuild.py"
|
|
Build.Arch: "X64"
|
|
Build.Flags: ""
|
|
Build.Target: "DEBUG"
|
|
# no storage supported by microvm build
|
|
# can't boot to uefi shell -> skip test
|
|
Run.Flags: "QEMU_SKIP=TRUE"
|
|
Run: $(should_run)
|
|
|
|
OVMF_XEN_X64_DEBUG:
|
|
Build.File: "$(package)/PlatformCI/XenBuild.py"
|
|
Build.Arch: "X64"
|
|
Build.Flags: ""
|
|
Build.Target: "DEBUG"
|
|
# this build is for xen not qemu-kvm
|
|
Run.Flags: "QEMU_SKIP=TRUE"
|
|
Run: $(should_run)
|
|
|
|
INTELTDX_X64_DEBUG:
|
|
Build.File: "$(package)/PlatformCI/IntelTdxBuild.py"
|
|
Build.Arch: "X64"
|
|
Build.Flags: ""
|
|
Build.Target: "DEBUG"
|
|
# no storage supported by microvm build
|
|
# can't boot to uefi shell -> skip test
|
|
Run.Flags: "QEMU_SKIP=TRUE"
|
|
Run: $(should_run)
|
|
|
|
QEMU_RISCV64_DEBUG:
|
|
Build.File: "$(package)/PlatformCI/QemuBuild.py"
|
|
Build.Arch: "RISCV64"
|
|
Build.Flags: ""
|
|
Build.Target: "DEBUG"
|
|
# this build is for RISC-V qemu virt not qemu-kvm
|
|
Run.Flags: "QEMU_SKIP=TRUE"
|
|
Run: $(should_run)
|
|
|
|
QEMU_LOONGARCH64_DEBUG:
|
|
Build.File: "$(package)/PlatformCI/QemuBuild.py"
|
|
Build.Arch: "LOONGARCH64"
|
|
Build.Flags: ""
|
|
Build.Target: "DEBUG"
|
|
# this build is for LOONGARCH qemu virt not qemu-kvm
|
|
Run.Flags: "QEMU_SKIP=TRUE"
|
|
Run: $(should_run)
|
|
|
|
workspace:
|
|
clean: all
|
|
|
|
pool:
|
|
vmImage: $(vm_image)
|
|
|
|
container: ${{ variables.default_linux_image }}
|
|
|
|
steps:
|
|
- template: ../../../.azurepipelines/templates/platform-build-run-steps.yml
|
|
parameters:
|
|
tool_chain_tag: GCC5
|
|
build_pkg: $(package)
|
|
build_target: $(Build.Target)
|
|
build_arch: $(Build.Arch)
|
|
build_file: $(Build.File)
|
|
build_flags: $(Build.Flags)
|
|
run_flags: $(Run.Flags)
|
|
usePythonVersion: '' # use Python from the container image
|