audk/.azurepipelines/templates
Gua Guo 04f8371cdd .azurepipelines: Choose container that have installed lcov
Azure should install code coverage tool (lcov), it didn't
exist on Fedora and Ubuntu by default.

Update docker setting, pick below solution between 47addc9 and 3b3eb8f
3b3eb8f Fixes and improvements to dev containers (#69)
54e5bd1 Enable GTK on Fedora QEMU (#63)
f1c7a20 Fedora: install code coverage tools for GCC (#62)
2ce82af Ubuntu-22: Add initial Ubuntu-22 image (#61)
14d2aba Add Fedora 37 image with gcc12 (#60)
5b8a008 Add dotnet runtime to fedora build (#57)
f5c874a Fix platform build file name for EDK2 change (#58)
48540ad Ubuntu-20: Fix dev image entrypoint (#55)
98e849d Fedora-35: Add Powershell to build image (#52)

Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Sean Brogan <sean.brogan@microsoft.com>
Cc: Michael Kubacki <mikuback@linux.microsoft.com>
Cc: Oliver Steffen <osteffen@redhat.com>
Cc: Chris Fernald <chfernal@microsoft.com>
Signed-off-by: Gua Guo <gua.guo@intel.com>
Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com>
Reviewed-by: Michael Kubacki <mikuback@linux.microsoft.com>
Reviewed-by: Chris Fernald <chfernal@microsoft.com>
2023-04-27 21:55:58 +00:00
..
ReadMe.md .azurepipelines: Add Platform CI template 2020-04-28 18:07:59 +00:00
basetools-build-steps.yml CI: Use Fedora 35 container (Linux only) 2023-01-17 19:06:32 +00:00
defaults.yml .azurepipelines: Choose container that have installed lcov 2023-04-27 21:55:58 +00:00
platform-build-run-steps.yml .azurepipelines/templates: Increase run to shell timeout 2023-03-30 19:24:36 +00:00
pr-gate-build-job.yml .azurepilelines/templates: Split CryptoPkg builds 2023-04-04 15:06:31 +00:00
pr-gate-steps.yml CI: add ~/.local/bin to PATH (Linux only) 2023-01-17 19:06:32 +00:00
spell-check-prereq-steps.yml .azurepipelines: Fix cspell version to v5.20.0 2022-05-19 03:02:14 +00:00

ReadMe.md

CI Templates

This folder contains azure pipeline yml templates for "Core" and "Platform" Continuous Integration and PR validation.

Common CI templates

basetools-build-steps.yml

This template compiles the Edk2 basetools from source. The steps in this template are conditional and will only run if variable pkg_count is greater than 0.

It also has two conditional steps only used when the toolchain contains GCC. These two steps use apt to update the system packages and add those necessary for Edk2 builds.

Core CI templates

pr-gate-build-job.yml

This templates contains the jobs and most importantly the matrix of which packages and targets to run for Core CI.

pr-gate-steps.yml

This template is the main Core CI template. It controls all the steps run and is responsible for most functionality of the Core CI process. This template sets the pkg_count variable using the stuart_pr_eval tool when the build type is "pull request"

spell-check-prereq-steps.yml

This template installs the node based tools used by the spell checker plugin. The steps in this template are conditional and will only run if variable pkg_count is greater than 0.

Platform CI templates

platform-build-run-steps.yml

This template makes heavy use of pytools to build and run a platform in the Edk2 repo

Also uses basetools-build-steps.yml to compile basetools

Special Notes

  • For a build type of pull request it will conditionally build if the patches change files that impact the platform.

    • uses stuart_pr_eval to determine impact
  • For manual builds or CI builds it will always build the platform

  • It compiles basetools from source

  • Will use stuart_build --FlashOnly to attempt to run the built image if the Run parameter is set.

  • See the parameters block for expected configuration options

  • Parameter extra_install_step allows the caller to insert extra steps. This is useful if additional dependencies, tools, or other things need to be installed. Here is an example of installing qemu on Windows.

    steps:
    - template: ../../.azurepipelines/templates/build-run-steps.yml
      parameters:
        extra_install_step:
        - powershell: choco install qemu; 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())