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>
146 lines
5.1 KiB
YAML
146 lines
5.1 KiB
YAML
## @file
|
|
# Azure Pipeline build file for building a platform.
|
|
#
|
|
# Platform: OVMF
|
|
# OS: Windows
|
|
# Toolchain: VS
|
|
#
|
|
# 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: 'windows-2022'
|
|
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
|
|
# Ovmf maintainers suggest to 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)
|
|
|
|
workspace:
|
|
clean: all
|
|
|
|
pool:
|
|
vmImage: $(vm_image)
|
|
|
|
steps:
|
|
- template: ../../../.azurepipelines/templates/platform-build-run-steps.yml
|
|
parameters:
|
|
tool_chain_tag: VS2022
|
|
build_pkg: $(package)
|
|
build_target: $(Build.Target)
|
|
build_arch: $(Build.Arch)
|
|
build_file: $(Build.File)
|
|
build_flags: $(Build.Flags)
|
|
run_flags: $(Run.Flags)
|
|
usePythonVersion: ${{ variables.default_python_version }}
|
|
extra_install_step:
|
|
- powershell: choco install qemu --version=2023.7.25; Write-Host "##vso[task.prependpath]c:\Program Files\qemu"
|
|
displayName: Install QEMU and Set QEMU on path # friendly name displayed in the UI
|
|
condition: and(gt(variables.pkg_count, 0), succeeded())
|
|
|