]> git.proxmox.com Git - mirror_edk2.git/blame - .azurepipelines/templates/platform-build-run-steps.yml
BaseTools: Bootable NVDIMM namespaces
[mirror_edk2.git] / .azurepipelines / templates / platform-build-run-steps.yml
CommitLineData
4fcfd089
SB
1\r
2## @file\r
3# File steps.yml\r
4#\r
5# template file containing the steps to build\r
6#\r
7# Copyright (c) Microsoft Corporation.\r
8# SPDX-License-Identifier: BSD-2-Clause-Patent\r
9##\r
10\r
11parameters:\r
12- name: tool_chain_tag\r
13 type: string\r
14 default: ''\r
15- name: build_pkg\r
16 type: string\r
17 default: ''\r
18- name: build_target\r
19 type: string\r
20 default: ''\r
21- name: build_arch\r
22 type: string\r
23 default: ''\r
24- name: build_file\r
25 type: string\r
26 default: ''\r
27- name: build_flags\r
28 type: string\r
29 default: ''\r
30- name: run_flags\r
31 type: string\r
32 default: ''\r
33\r
34- name: extra_install_step\r
35 type: stepList\r
36 default: []\r
37\r
38steps:\r
39- checkout: self\r
40 clean: true\r
41 fetchDepth: 1\r
42\r
43- task: UsePythonVersion@0\r
44 inputs:\r
45 versionSpec: "3.8.x"\r
46 architecture: "x64"\r
47\r
48- script: pip install -r pip-requirements.txt --upgrade\r
49 displayName: 'Install/Upgrade pip modules'\r
50\r
51# Set default\r
52- bash: echo "##vso[task.setvariable variable=pkg_count]${{ 1 }}"\r
53\r
54# trim the package list if this is a PR\r
55- task: CmdLine@1\r
56 displayName: Check if ${{ parameters.build_pkg }} need testing\r
57 inputs:\r
58 filename: stuart_pr_eval\r
59 arguments: -c ${{ parameters.build_file }} -t ${{ parameters.build_target}} -a ${{ parameters.build_arch}} --pr-target origin/$(System.PullRequest.targetBranch) --output-count-format-string "##vso[task.setvariable variable=pkg_count;isOutpout=true]{pkgcount}"\r
60 condition: eq(variables['Build.Reason'], 'PullRequest')\r
61\r
62 # Setup repo\r
63- task: CmdLine@1\r
64 displayName: Setup\r
65 inputs:\r
66 filename: stuart_setup\r
67 arguments: -c ${{ parameters.build_file }} TOOL_CHAIN_TAG=${{ parameters.tool_chain_tag}} -t ${{ parameters.build_target}} -a ${{ parameters.build_arch}} ${{ parameters.build_flags}}\r
68 condition: and(gt(variables.pkg_count, 0), succeeded())\r
69\r
70# Stuart Update\r
71- task: CmdLine@1\r
72 displayName: Update\r
73 inputs:\r
74 filename: stuart_update\r
75 arguments: -c ${{ parameters.build_file }} TOOL_CHAIN_TAG=${{ parameters.tool_chain_tag}} -t ${{ parameters.build_target}} -a ${{ parameters.build_arch}} ${{ parameters.build_flags}}\r
76 condition: and(gt(variables.pkg_count, 0), succeeded())\r
77\r
78# build basetools\r
79# do this after setup and update so that code base dependencies\r
80# are all resolved.\r
81- template: basetools-build-steps.yml\r
82 parameters:\r
83 tool_chain_tag: ${{ parameters.tool_chain_tag }}\r
84\r
85# Potential Extra steps\r
86- ${{ parameters.extra_install_step }}\r
87\r
88# Build\r
89- task: CmdLine@1\r
90 displayName: Build\r
91 inputs:\r
92 filename: stuart_build\r
93 arguments: -c ${{ parameters.build_file }} TOOL_CHAIN_TAG=${{ parameters.tool_chain_tag}} TARGET=${{ parameters.build_target}} -a ${{ parameters.build_arch}} ${{ parameters.build_flags}}\r
94 condition: and(gt(variables.pkg_count, 0), succeeded())\r
95\r
96# Run\r
97- task: CmdLine@1\r
98 displayName: Run to shell\r
99 inputs:\r
100 filename: stuart_build\r
101 arguments: -c ${{ parameters.build_file }} TOOL_CHAIN_TAG=${{ parameters.tool_chain_tag}} TARGET=${{ parameters.build_target}} -a ${{ parameters.build_arch}} ${{ parameters.build_flags}} ${{ parameters.run_flags }} --FlashOnly\r
102 condition: and(and(gt(variables.pkg_count, 0), succeeded()), eq(variables['Run'], true))\r
103 timeoutInMinutes: 1\r
104\r
105# Copy the build logs to the artifact staging directory\r
106- task: CopyFiles@2\r
107 displayName: "Copy build logs"\r
108 inputs:\r
109 targetFolder: "$(Build.ArtifactStagingDirectory)"\r
110 SourceFolder: "Build"\r
111 contents: |\r
112 BUILDLOG_*.txt\r
113 BUILDLOG_*.md\r
114 CI_*.txt\r
115 CI_*.md\r
116 CISETUP.txt\r
117 SETUPLOG.txt\r
118 UPDATE_LOG.txt\r
119 PREVALLOG.txt\r
120 TestSuites.xml\r
121 **/BUILD_TOOLS_REPORT.html\r
122 **/OVERRIDELOG.TXT\r
123 BASETOOLS_BUILD*.*\r
124 flattenFolders: true\r
125 condition: succeededOrFailed()\r
126\r
127# Publish build artifacts to Azure Artifacts/TFS or a file share\r
128- task: PublishBuildArtifacts@1\r
129 continueOnError: true\r
130 displayName: "Publish build logs"\r
131 inputs:\r
132 pathtoPublish: "$(Build.ArtifactStagingDirectory)"\r
133 artifactName: "Build Logs $(System.JobName)"\r
134 condition: succeededOrFailed()\r