]> git.proxmox.com Git - mirror_edk2.git/blob - .azurepipelines/templates/ReadMe.md
BaseTools: Remove the dependency on the build intermediate file
[mirror_edk2.git] / .azurepipelines / templates / ReadMe.md
1 # CI Templates
2
3 This folder contains azure pipeline yml templates for "Core" and "Platform" Continuous Integration and PR validation.
4
5 ## Common CI templates
6
7 ### basetools-build-steps.yml
8
9 This template compiles the Edk2 basetools from source. The steps in this template are
10 conditional and will only run if variable `pkg_count` is greater than 0.
11
12 It also has two conditional steps only used when the toolchain contains GCC. These two steps
13 use `apt` to update the system packages and add those necessary for Edk2 builds.
14
15 ## Core CI templates
16
17 ### pr-gate-build-job.yml
18
19 This templates contains the jobs and most importantly the matrix of which packages and
20 targets to run for Core CI.
21
22 ### pr-gate-steps.yml
23
24 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
25 the `pkg_count` variable using the `stuart_pr_eval` tool when the
26 build type is "pull request"
27
28 ### spell-check-prereq-steps.yml
29
30 This template installs the node based tools used by the spell checker plugin. The steps
31 in this template are conditional and will only run if variable `pkg_count` is greater than 0.
32
33 ## Platform CI templates
34
35 ### platform-build-run-steps.yml
36
37 This template makes heavy use of pytools to build and run a platform in the Edk2 repo
38
39 Also uses basetools-build-steps.yml to compile basetools
40
41 #### Special Notes
42
43 * For a build type of pull request it will conditionally build if the patches change files that impact the platform.
44 * uses `stuart_pr_eval` to determine impact
45 * For manual builds or CI builds it will always build the platform
46 * It compiles basetools from source
47 * Will use `stuart_build --FlashOnly` to attempt to run the built image if the `Run` parameter is set.
48 * See the parameters block for expected configuration options
49 * 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.
50
51 ``` yaml
52 steps:
53 - template: ../../.azurepipelines/templates/build-run-steps.yml
54 parameters:
55 extra_install_step:
56 - powershell: choco install qemu; Write-Host "##vso[task.prependpath]c:\Program Files\qemu"
57 displayName: Install QEMU and Set QEMU on path # friendly name displayed in the UI
58 condition: and(gt(variables.pkg_count, 0), succeeded())
59 ```