]> git.proxmox.com Git - mirror_edk2.git/blame - .azurepipelines/templates/pr-gate-steps.yml
OvmfPkg: CI: use Python version from defaults template
[mirror_edk2.git] / .azurepipelines / templates / pr-gate-steps.yml
CommitLineData
106c7a99
SB
1## @file\r
2# File templates/pr-gate-steps.yml\r
3#\r
4# template file containing the steps to build\r
5#\r
6# Copyright (c) Microsoft Corporation.\r
7# SPDX-License-Identifier: BSD-2-Clause-Patent\r
8##\r
9\r
10parameters:\r
11 tool_chain_tag: ''\r
12 build_pkgs: ''\r
13 build_targets: ''\r
14 build_archs: ''\r
35795517 15 usePythonVersion: ''\r
89c5d900 16 extra_install_step: []\r
106c7a99
SB
17\r
18steps:\r
19- checkout: self\r
20 clean: true\r
21 fetchDepth: 1\r
22\r
23- task: UsePythonVersion@0\r
24 inputs:\r
35795517
OS
25 versionSpec: ${{ parameters.usePythonVersion }}\r
26 architecture: "x64"\r
27 condition: ne('${{ parameters.usePythonVersion }}', '')\r
106c7a99
SB
28\r
29- script: pip install -r pip-requirements.txt --upgrade\r
30 displayName: 'Install/Upgrade pip modules'\r
31\r
32# Set default\r
33- bash: |\r
34 echo "##vso[task.setvariable variable=pkgs_to_build]${{ parameters.build_pkgs }}"\r
35 echo "##vso[task.setvariable variable=pkg_count]${{ 1 }}"\r
39161090
SB
36\r
37# Fetch the target branch so that pr_eval can diff them.\r
38# Seems like azure pipelines/github changed checkout process in nov 2020.\r
39- script: git fetch origin $(System.PullRequest.targetBranch)\r
40 displayName: fetch target branch\r
41 condition: eq(variables['Build.Reason'], 'PullRequest')\r
106c7a99 42\r
89c5d900
GG
43- ${{ parameters.extra_install_step }}\r
44\r
106c7a99
SB
45# trim the package list if this is a PR\r
46- task: CmdLine@1\r
47 displayName: Check if ${{ parameters.build_pkgs }} need testing\r
48 inputs:\r
49 filename: stuart_pr_eval\r
50 arguments: -c .pytool/CISettings.py -p ${{ parameters.build_pkgs }} --pr-target origin/$(System.PullRequest.targetBranch) --output-csv-format-string "##vso[task.setvariable variable=pkgs_to_build;isOutpout=true]{pkgcsv}" --output-count-format-string "##vso[task.setvariable variable=pkg_count;isOutpout=true]{pkgcount}"\r
51 condition: eq(variables['Build.Reason'], 'PullRequest')\r
52\r
106c7a99
SB
53# install spell check prereqs\r
54- template: spell-check-prereq-steps.yml\r
55\r
56# Build repo\r
57- task: CmdLine@1\r
58 displayName: Setup ${{ parameters.build_pkgs }} ${{ parameters.build_archs}}\r
59 inputs:\r
60 filename: stuart_setup\r
61 arguments: -c .pytool/CISettings.py -p $(pkgs_to_build) -t ${{ parameters.build_targets}} -a ${{ parameters.build_archs}} TOOL_CHAIN_TAG=${{ parameters.tool_chain_tag}}\r
62 condition: and(gt(variables.pkg_count, 0), succeeded())\r
63\r
64- task: CmdLine@1\r
65 displayName: Update ${{ parameters.build_pkgs }} ${{ parameters.build_archs}}\r
66 inputs:\r
67 filename: stuart_update\r
68 arguments: -c .pytool/CISettings.py -p $(pkgs_to_build) -t ${{ parameters.build_targets}} -a ${{ parameters.build_archs}} TOOL_CHAIN_TAG=${{ parameters.tool_chain_tag}}\r
69 condition: and(gt(variables.pkg_count, 0), succeeded())\r
70\r
e1fbff3d
SB
71# build basetools\r
72# do this after setup and update so that code base dependencies\r
73# are all resolved.\r
74- template: basetools-build-steps.yml\r
75 parameters:\r
76 tool_chain_tag: ${{ parameters.tool_chain_tag }}\r
77\r
106c7a99
SB
78- task: CmdLine@1\r
79 displayName: Build and Test ${{ parameters.build_pkgs }} ${{ parameters.build_archs}}\r
80 inputs:\r
81 filename: stuart_ci_build\r
82 arguments: -c .pytool/CISettings.py -p $(pkgs_to_build) -t ${{ parameters.build_targets}} -a ${{ parameters.build_archs}} TOOL_CHAIN_TAG=${{ parameters.tool_chain_tag}}\r
83 condition: and(gt(variables.pkg_count, 0), succeeded())\r
84\r
85# Publish Test Results to Azure Pipelines/TFS\r
86- task: PublishTestResults@2\r
87 displayName: 'Publish junit test results'\r
88 continueOnError: true\r
89 condition: and( succeededOrFailed(),gt(variables.pkg_count, 0))\r
90 inputs:\r
91 testResultsFormat: 'JUnit' # Options: JUnit, NUnit, VSTest, xUnit\r
92 testResultsFiles: 'Build/TestSuites.xml'\r
93 #searchFolder: '$(System.DefaultWorkingDirectory)' # Optional\r
94 mergeTestResults: true # Optional\r
95 testRunTitle: $(System.JobName) # Optional\r
96 #buildPlatform: # Optional\r
97 #buildConfiguration: # Optional\r
98 publishRunAttachments: true # Optional\r
99\r
100# Publish Test Results to Azure Pipelines/TFS\r
101- task: PublishTestResults@2\r
102 displayName: 'Publish host based test results for $(System.JobName)'\r
103 continueOnError: true\r
104 condition: and( succeededOrFailed(), gt(variables.pkg_count, 0))\r
105 inputs:\r
106 testResultsFormat: 'JUnit' # Options: JUnit, NUnit, VSTest, xUnit\r
107 testResultsFiles: 'Build/**/*.result.xml'\r
108 #searchFolder: '$(System.DefaultWorkingDirectory)' # Optional\r
109 mergeTestResults: false # Optional\r
110 testRunTitle: ${{ parameters.build_pkgs }} # Optional\r
111 #buildPlatform: # Optional\r
112 #buildConfiguration: # Optional\r
113 publishRunAttachments: true # Optional\r
114\r
115# Copy the build logs to the artifact staging directory\r
116- task: CopyFiles@2\r
117 displayName: "Copy build logs"\r
118 inputs:\r
119 targetFolder: '$(Build.ArtifactStagingDirectory)'\r
120 SourceFolder: 'Build'\r
121 contents: |\r
122 BUILDLOG_*.txt\r
123 BUILDLOG_*.md\r
124 CI_*.txt\r
125 CI_*.md\r
126 CISETUP.txt\r
127 SETUPLOG.txt\r
128 UPDATE_LOG.txt\r
129 PREVALLOG.txt\r
130 TestSuites.xml\r
131 **/BUILD_TOOLS_REPORT.html\r
132 **/OVERRIDELOG.TXT\r
89c5d900 133 coverage.xml\r
106c7a99
SB
134 flattenFolders: true\r
135 condition: succeededOrFailed()\r
136\r
137# Publish build artifacts to Azure Artifacts/TFS or a file share\r
138- task: PublishBuildArtifacts@1\r
139 continueOnError: true\r
140 displayName: "Publish build logs"\r
141 inputs:\r
142 pathtoPublish: '$(Build.ArtifactStagingDirectory)'\r
143 artifactName: 'Build Logs $(System.JobName)'\r
144 condition: succeededOrFailed()\r