microsoft/openvmm

Public

mirrored fromhttps://github.com/microsoft/openvmmAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
9eca4ff7beec19c721bdaa8ee38113beb9bd6861

Branches

Tags

  • No tags available.
0Branches0Tags
Go to file
Add file
Code

Clone

HTTPS

Download ZIP

ci-flowey/openvmm-pr.yaml

4446lines Β· modecode

1##############################
2# THIS FILE IS AUTOGENERATED #
3# DO NOT MANUALLY EDIT #
4##############################
5trigger: none
6pr:
7 autoCancel: true
8 drafts: false
9 branches:
10 include:
11 - main
12 - release/*
13 - embargo/*
14 paths:
15 exclude:
16 - Guide/**
17 - petri/logview/**
18parameters:
19- name: verbose
20 displayName: Run with verbose output
21 type: boolean
22 default: false
23jobs:
24- job: job0
25 displayName: quick check [fmt, clippy x64-linux]
26 pool:
27 demands:
28 - ImageOverride -equals ubuntu2404-amd64-256gb
29 name: openvmm-ado-intel-centralus
30 dependsOn: []
31 condition: and(succeeded(), not(canceled()))
32 variables:
33 - name: FLOWEY_TEMP_DIR
34 value: $(Build.StagingDirectory)/.flowey-internal
35 steps:
36 - bash: |
37 set -x
38 i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
39 sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
40 curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.94.0 -y
41 . "$HOME/.cargo/env"
42 echo '##vso[task.prependpath]$(HOME)/.cargo/bin'
43 condition: eq(variables['Agent.OS'], 'Linux')
44 displayName: rustup (Linux)
45 - bash: |
46 set -x
47 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
48 ./rustup-init.exe -y --default-toolchain=1.94.0
49 echo '##vso[task.prependpath]$(USERPROFILE)\\.cargo\\bin'
50 condition: eq(variables['Agent.OS'], 'Windows_NT')
51 displayName: rustup (Windows X64)
52 - bash: |
53 set -x
54 rustup show
55 displayName: Verify rustup installation
56 - checkout: self
57 fetchTags: false
58 fetchDepth: 1
59 path: flowey_bootstrap
60 - bash: CARGO_INCREMENTAL=0 RUSTC_BOOTSTRAP=1 RUSTFLAGS="-Z threads=8" cargo build -p flowey_hvlite --target x86_64-unknown-linux-gnu --profile flowey-ci
61 workingDirectory: ../flowey_bootstrap
62 displayName: Build flowey
63 - bash: |
64 mkdir ./flowey_bootstrap_temp
65 mv ./ci-flowey/openvmm-pr.yaml ./flowey_bootstrap_temp/pipeline.yaml
66 mv ./ci-flowey/openvmm-pr.json ./flowey_bootstrap_temp/pipeline.json
67 mv target/x86_64-unknown-linux-gnu/flowey-ci/flowey_hvlite ./flowey_bootstrap_temp/flowey
68 workingDirectory: ../flowey_bootstrap
69 displayName: Stage flowey artifact
70 - task: CopyFiles@2
71 displayName: Copy flowey artifact
72 inputs:
73 SourceFolder: ../flowey_bootstrap/flowey_bootstrap_temp
74 TargetFolder: $(FLOWEY_TEMP_DIR)/bootstrapped-flowey
75 - bash: rm -rf ./flowey_bootstrap_temp
76 workingDirectory: ../flowey_bootstrap
77 displayName: Cleanup staged flowey artifact
78 - bash: |
79 set -e
80 AgentTempDirNormal="$(FLOWEY_TEMP_DIR)"
81 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
82 echo "##vso[task.setvariable variable=AgentTempDirNormal;]$AgentTempDirNormal"
83
84 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey
85 FLOWEY_BIN="$AgentTempDirNormal/bootstrapped-flowey/flowey"
86 echo "##vso[task.setvariable variable=FLOWEY_BIN;]$FLOWEY_BIN"
87 displayName: Set flowey path
88 - bash: |-
89 ESCAPED_AGENT_TEMPDIR=$(
90 cat <<'EOF' | sed 's/\\/\\\\/g'
91 $(FLOWEY_TEMP_DIR)
92 EOF
93 )
94 $(FLOWEY_BIN) pipeline ado --runtime $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out ci-flowey/openvmm-pr.yaml ci checkin-gates --config=pr
95 displayName: πŸŒΌπŸ”Ž Self-check YAML
96 - bash: |
97 set -e
98 echo '"debug"' | $FLOWEY_BIN v 0 'FLOWEY_LOG' update
99 echo "$(FLOWEY_TEMP_DIR)/work" | $FLOWEY_BIN v 0 '_internal_WORKING_DIR' --is-raw-string update
100
101 cat <<'EOF' | tr '[:upper:]' '[:lower:]' | $FLOWEY_BIN v 0 'verbose' update
102 ${{ parameters.verbose }}
103 EOF
104 displayName: πŸŒΌπŸ›« Initialize job
105 - bash: |-
106 set -e
107 $(FLOWEY_BIN) e 0 flowey_lib_common::git_checkout 0
108 $FLOWEY_BIN v 0 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:319:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:320:46 write-to-env ado floweyvar1
109 $FLOWEY_BIN v 0 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:320:46' write-to-env ado FLOWEY_CONDITION
110 displayName: check if openvmm needs to be cloned
111 - checkout: self
112 path: repo0
113 fetchTags: false
114 fetchDepth: 1
115 persistCredentials: $(floweyvar1)
116 submodules: recursive
117 displayName: checkout repo openvmm
118 condition: and(eq(variables['FLOWEY_CONDITION'], true), succeeded(), not(canceled()))
119 - bash: |-
120 set -e
121 $(FLOWEY_BIN) e 0 flowey_lib_common::git_checkout 2
122 $(FLOWEY_BIN) e 0 flowey_lib_hvlite::git_checkout_openvmm_repo 0
123 displayName: report cloned repo directories
124 - bash: $(FLOWEY_BIN) e 0 flowey_lib_common::install_rust 0
125 displayName: install Rust
126 - bash: |-
127 set -e
128 $(FLOWEY_BIN) e 0 flowey_lib_common::install_rust 1
129 $(FLOWEY_BIN) e 0 flowey_lib_common::cfg_cargo_common_flags 0
130 displayName: detect active toolchain
131 - bash: $(FLOWEY_BIN) e 0 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
132 displayName: set '-Dwarnings' in .cargo/config.toml
133 - bash: $(FLOWEY_BIN) e 0 flowey_lib_common::download_gh_release 0
134 displayName: create gh-release-download cache dir
135 - bash: |-
136 set -e
137 $(FLOWEY_BIN) e 0 flowey_lib_common::cache 0
138 $FLOWEY_BIN v 0 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:236:72' --is-raw-string write-to-env ado floweyvar2
139 $FLOWEY_BIN v 0 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:237:72' --is-raw-string write-to-env ado floweyvar3
140 displayName: Pre-processing cache vars
141 - task: Cache@2
142 inputs:
143 key: $(floweyvar3)
144 path: $(floweyvar2)
145 cacheHitVar: FLOWEY_CACHE_HITVAR
146 displayName: 'Restore cache: gh-release-download'
147 - bash: |-
148 set -e
149 $FLOWEY_BIN v 0 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:300:70' --is-raw-string update --env-source FLOWEY_CACHE_HITVAR <<'EOF'
150 $(FLOWEY_CACHE_HITVAR)
151 EOF
152 $(FLOWEY_BIN) e 0 flowey_lib_common::cache 2
153 displayName: map ADO hitvar to flowey
154 - bash: $(FLOWEY_BIN) e 0 flowey_lib_common::download_gh_release 1
155 displayName: download artifacts from github releases
156 - bash: $(FLOWEY_BIN) e 0 flowey_lib_common::install_dist_pkg 0
157 displayName: checking if packages need to be installed
158 - bash: $(FLOWEY_BIN) e 0 flowey_lib_common::install_dist_pkg 1
159 displayName: installing packages
160 - bash: |-
161 set -e
162 $(FLOWEY_BIN) e 0 flowey_lib_common::resolve_protoc 0
163 $(FLOWEY_BIN) e 0 flowey_lib_hvlite::cfg_openvmm_magicpath 0
164 displayName: unpack protoc
165 - bash: |-
166 set -e
167 $(FLOWEY_BIN) e 0 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
168 $(FLOWEY_BIN) e 0 flowey_lib_hvlite::init_cross_build 2
169 displayName: symlink protoc
170 - bash: |-
171 set -e
172 $(FLOWEY_BIN) e 0 flowey_lib_common::run_cargo_build 1
173 $(FLOWEY_BIN) e 0 flowey_lib_hvlite::run_cargo_build 2
174 displayName: cargo build xtask
175 - bash: |-
176 set -e
177 $(FLOWEY_BIN) e 0 flowey_lib_hvlite::run_split_debug_info 0
178 $(FLOWEY_BIN) e 0 flowey_lib_hvlite::run_cargo_build 3
179 $(FLOWEY_BIN) e 0 flowey_lib_hvlite::build_xtask 1
180 displayName: split debug symbols
181 - bash: |-
182 set -e
183 $(FLOWEY_BIN) e 0 flowey_lib_hvlite::_jobs::check_xtask_fmt 0
184 $(FLOWEY_BIN) e 0 flowey_lib_hvlite::init_cross_build 0
185 $(FLOWEY_BIN) e 0 flowey_lib_hvlite::init_cross_build 1
186 displayName: run xtask fmt
187 - bash: |-
188 set -e
189 $(FLOWEY_BIN) e 0 flowey_lib_common::run_cargo_build 0
190 $(FLOWEY_BIN) e 0 flowey_lib_hvlite::run_cargo_build 0
191 displayName: cargo build xtask
192 - bash: |-
193 set -e
194 $(FLOWEY_BIN) e 0 flowey_lib_hvlite::run_split_debug_info 1
195 $(FLOWEY_BIN) e 0 flowey_lib_hvlite::run_cargo_build 1
196 $(FLOWEY_BIN) e 0 flowey_lib_hvlite::build_xtask 0
197 displayName: split debug symbols
198 - bash: $(FLOWEY_BIN) e 0 flowey_lib_hvlite::_jobs::check_clippy 0
199 displayName: determine clippy exclusions
200 - bash: $(FLOWEY_BIN) e 0 flowey_lib_common::run_cargo_clippy 0
201 displayName: cargo clippy
202 - bash: $(FLOWEY_BIN) e 0 flowey_lib_common::cache 3
203 displayName: 'validate cache entry: gh-release-download'
204 - bash: rm $(AgentTempDirNormal)/bootstrapped-flowey/job0.json
205 displayName: 🌼🧼 Redact bootstrap var db
206 - publish: $(FLOWEY_TEMP_DIR)/bootstrapped-flowey
207 displayName: 🌼πŸ₯Ύ Publish bootstrapped flowey
208 artifact: _internal-flowey-bootstrap-x86_64-linux-uid-1
209- job: job16
210 displayName: build openhcl (mi-secure) [x64-linux]
211 pool:
212 demands:
213 - ImageOverride -equals ubuntu2404-amd64-256gb
214 name: openvmm-ado-intel-centralus
215 dependsOn:
216 - job0
217 condition: and(succeeded(), not(canceled()))
218 variables:
219 - name: FLOWEY_TEMP_DIR
220 value: $(Build.StagingDirectory)/.flowey-internal
221 steps:
222 - task: DownloadPipelineArtifact@2
223 displayName: 🌼πŸ₯Ύ Download bootstrapped flowey
224 inputs:
225 artifact: _internal-flowey-bootstrap-x86_64-linux-uid-1
226 path: $(FLOWEY_TEMP_DIR)/bootstrapped-flowey
227 - bash: |
228 set -e
229 AgentTempDirNormal="$(FLOWEY_TEMP_DIR)"
230 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
231 echo "##vso[task.setvariable variable=AgentTempDirNormal;]$AgentTempDirNormal"
232
233 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey
234 FLOWEY_BIN="$AgentTempDirNormal/bootstrapped-flowey/flowey"
235 echo "##vso[task.setvariable variable=FLOWEY_BIN;]$FLOWEY_BIN"
236 displayName: Set flowey path
237 - bash: |
238 set -e
239 echo '"debug"' | $FLOWEY_BIN v 16 'FLOWEY_LOG' update
240 echo "$(FLOWEY_TEMP_DIR)/work" | $FLOWEY_BIN v 16 '_internal_WORKING_DIR' --is-raw-string update
241
242 cat <<'EOF' | tr '[:upper:]' '[:lower:]' | $FLOWEY_BIN v 16 'verbose' update
243 ${{ parameters.verbose }}
244 EOF
245 mkdir -p "$(AgentTempDirNormal)/publish_artifacts/x64-mi-secure-openhcl-igvm"
246 echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/x64-mi-secure-openhcl-igvm" | $FLOWEY_BIN v 16 'artifact_publish_from_x64-mi-secure-openhcl-igvm' --is-raw-string update
247 mkdir -p "$(AgentTempDirNormal)/publish_artifacts/x64-mi-secure-openhcl-igvm-extras"
248 echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/x64-mi-secure-openhcl-igvm-extras" | $FLOWEY_BIN v 16 'artifact_publish_from_x64-mi-secure-openhcl-igvm-extras' --is-raw-string update
249 displayName: πŸŒΌπŸ›« Initialize job
250 - bash: $(FLOWEY_BIN) e 16 flowey_lib_common::install_dist_pkg 0
251 displayName: checking if packages need to be installed
252 - bash: $(FLOWEY_BIN) e 16 flowey_lib_common::install_dist_pkg 1
253 displayName: installing packages
254 - bash: $(FLOWEY_BIN) e 16 flowey_lib_common::download_gh_release 0
255 displayName: create gh-release-download cache dir
256 - bash: |-
257 set -e
258 $(FLOWEY_BIN) e 16 flowey_lib_common::cache 0
259 $FLOWEY_BIN v 16 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:236:72' --is-raw-string write-to-env ado floweyvar1
260 $FLOWEY_BIN v 16 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:237:72' --is-raw-string write-to-env ado floweyvar2
261 displayName: Pre-processing cache vars
262 - task: Cache@2
263 inputs:
264 key: $(floweyvar2)
265 path: $(floweyvar1)
266 cacheHitVar: FLOWEY_CACHE_HITVAR
267 displayName: 'Restore cache: gh-release-download'
268 - bash: |-
269 set -e
270 $FLOWEY_BIN v 16 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:300:70' --is-raw-string update --env-source FLOWEY_CACHE_HITVAR <<'EOF'
271 $(FLOWEY_CACHE_HITVAR)
272 EOF
273 $(FLOWEY_BIN) e 16 flowey_lib_common::cache 2
274 displayName: map ADO hitvar to flowey
275 - bash: $(FLOWEY_BIN) e 16 flowey_lib_common::download_gh_release 1
276 displayName: download artifacts from github releases
277 - bash: $(FLOWEY_BIN) e 16 flowey_lib_hvlite::resolve_openvmm_deps 0
278 displayName: unpack openvmm-deps archive
279 - bash: $(FLOWEY_BIN) e 16 flowey_lib_common::install_rust 0
280 displayName: install Rust
281 - bash: |-
282 set -e
283 $(FLOWEY_BIN) e 16 flowey_lib_common::install_rust 1
284 $(FLOWEY_BIN) e 16 flowey_lib_common::cfg_cargo_common_flags 0
285 displayName: detect active toolchain
286 - bash: |-
287 set -e
288 $(FLOWEY_BIN) e 16 flowey_lib_common::git_checkout 0
289 $FLOWEY_BIN v 16 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:319:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:320:46 write-to-env ado floweyvar3
290 $FLOWEY_BIN v 16 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:320:46' write-to-env ado FLOWEY_CONDITION
291 displayName: check if openvmm needs to be cloned
292 - checkout: self
293 path: repo0
294 fetchTags: false
295 fetchDepth: 1
296 persistCredentials: $(floweyvar3)
297 submodules: recursive
298 displayName: checkout repo openvmm
299 condition: and(eq(variables['FLOWEY_CONDITION'], true), succeeded(), not(canceled()))
300 - bash: |-
301 set -e
302 $(FLOWEY_BIN) e 16 flowey_lib_common::git_checkout 2
303 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::git_checkout_openvmm_repo 0
304 displayName: report cloned repo directories
305 - bash: $(FLOWEY_BIN) e 16 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
306 displayName: set '-Dwarnings' in .cargo/config.toml
307 - bash: |-
308 set -e
309 $(FLOWEY_BIN) e 16 flowey_lib_common::resolve_protoc 0
310 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::cfg_openvmm_magicpath 0
311 displayName: unpack protoc
312 - bash: |-
313 set -e
314 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
315 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::init_cross_build 0
316 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::run_cargo_build 7
317 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::run_cargo_build 8
318 displayName: symlink protoc
319 - bash: |-
320 set -e
321 $(FLOWEY_BIN) e 16 flowey_lib_common::run_cargo_build 3
322 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::run_cargo_build 9
323 displayName: cargo build sidecar
324 - bash: |-
325 set -e
326 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::run_split_debug_info 4
327 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::run_cargo_build 10
328 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::build_sidecar 0
329 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::init_cross_build 1
330 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::run_cargo_build 2
331 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::run_cargo_build 3
332 displayName: split debug symbols
333 - bash: |-
334 set -e
335 $(FLOWEY_BIN) e 16 flowey_lib_common::run_cargo_build 1
336 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::run_cargo_build 4
337 displayName: cargo build openhcl_boot
338 - bash: |-
339 set -e
340 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::run_split_debug_info 3
341 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::run_cargo_build 5
342 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::build_openhcl_boot 0
343 displayName: split debug symbols
344 - bash: |-
345 set -e
346 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::resolve_openhcl_kernel_package 0
347 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 28
348 displayName: extract and resolve kernel package
349 - bash: |-
350 set -e
351 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::init_openvmm_magicpath_openhcl_sysroot 0
352 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::init_cross_build 3
353 displayName: extract X64 sysroot.tar.gz
354 - bash: |-
355 set -e
356 $(FLOWEY_BIN) e 16 flowey_lib_common::run_cargo_build 2
357 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::run_cargo_build 6
358 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::build_openvmm_hcl 0
359 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 24
360 displayName: cargo build openvmm_hcl
361 - bash: |-
362 set -e
363 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::run_split_debug_info 2
364 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 25
365 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 26
366 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 29
367 displayName: split debug symbols
368 - bash: |-
369 set -e
370 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::build_openhcl_initrd 2
371 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 30
372 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::init_cross_build 2
373 displayName: building openhcl initrd
374 - bash: |-
375 set -e
376 $(FLOWEY_BIN) e 16 flowey_lib_common::run_cargo_build 0
377 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::run_cargo_build 0
378 displayName: cargo build igvmfilegen
379 - bash: |-
380 set -e
381 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::run_split_debug_info 5
382 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::run_cargo_build 1
383 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::build_igvmfilegen 0
384 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 31
385 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 32
386 displayName: split debug symbols
387 - bash: |-
388 set -e
389 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::run_igvmfilegen 2
390 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 2
391 displayName: building igvm file
392 - bash: $(FLOWEY_BIN) e 16 flowey_lib_hvlite::download_uefi_mu_msvm 0
393 displayName: unpack mu_msvm package (x64)
394 - bash: |-
395 set -e
396 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::resolve_openhcl_kernel_package 1
397 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 17
398 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 13
399 displayName: extract and resolve kernel package
400 - bash: |-
401 set -e
402 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::run_split_debug_info 1
403 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 14
404 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 15
405 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 18
406 displayName: split debug symbols
407 - bash: |-
408 set -e
409 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::build_openhcl_initrd 1
410 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 19
411 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 20
412 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 21
413 displayName: building openhcl initrd
414 - bash: |-
415 set -e
416 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::run_igvmfilegen 1
417 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 4
418 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 6
419 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 2
420 displayName: building igvm file
421 - bash: |-
422 set -e
423 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::run_split_debug_info 0
424 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 3
425 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 4
426 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 7
427 displayName: split debug symbols
428 - bash: |-
429 set -e
430 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::build_openhcl_initrd 0
431 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 8
432 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 9
433 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 10
434 displayName: building openhcl initrd
435 - bash: |-
436 set -e
437 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::run_igvmfilegen 0
438 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 0
439 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::artifact_openhcl_igvm_from_recipe::publish 0
440 displayName: building igvm file
441 - bash: |-
442 set -e
443 $(FLOWEY_BIN) e 16 flowey_lib_common::copy_to_artifact_dir 1
444 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 22
445 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 27
446 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 23
447 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 3
448 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 16
449 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 12
450 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 11
451 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 5
452 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 5
453 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 1
454 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 0
455 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 1
456 $(FLOWEY_BIN) e 16 flowey_lib_hvlite::artifact_openhcl_igvm_from_recipe_extras::publish 0
457 displayName: copying OpenHCL igvm files to artifact dir
458 - bash: $(FLOWEY_BIN) e 16 flowey_lib_common::copy_to_artifact_dir 0
459 displayName: copying OpenHCL igvm extras to artifact dir
460 - bash: $(FLOWEY_BIN) e 16 flowey_lib_common::cache 3
461 displayName: 'validate cache entry: gh-release-download'
462 - publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/x64-mi-secure-openhcl-igvm
463 displayName: πŸŒΌπŸ“¦ Publish x64-mi-secure-openhcl-igvm
464 artifact: x64-mi-secure-openhcl-igvm
465 - publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/x64-mi-secure-openhcl-igvm-extras
466 displayName: πŸŒΌπŸ“¦ Publish x64-mi-secure-openhcl-igvm-extras
467 artifact: x64-mi-secure-openhcl-igvm-extras
468- job: job12
469 displayName: clippy [x64-linux-musl, misc nostd], unit tests [x64-linux-musl]
470 pool:
471 demands:
472 - ImageOverride -equals ubuntu2404-amd64-256gb
473 name: openvmm-ado-intel-centralus
474 dependsOn:
475 - job0
476 condition: and(succeeded(), not(canceled()))
477 variables:
478 - name: FLOWEY_TEMP_DIR
479 value: $(Build.StagingDirectory)/.flowey-internal
480 steps:
481 - task: DownloadPipelineArtifact@2
482 displayName: 🌼πŸ₯Ύ Download bootstrapped flowey
483 inputs:
484 artifact: _internal-flowey-bootstrap-x86_64-linux-uid-1
485 path: $(FLOWEY_TEMP_DIR)/bootstrapped-flowey
486 - bash: |
487 set -e
488 AgentTempDirNormal="$(FLOWEY_TEMP_DIR)"
489 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
490 echo "##vso[task.setvariable variable=AgentTempDirNormal;]$AgentTempDirNormal"
491
492 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey
493 FLOWEY_BIN="$AgentTempDirNormal/bootstrapped-flowey/flowey"
494 echo "##vso[task.setvariable variable=FLOWEY_BIN;]$FLOWEY_BIN"
495 displayName: Set flowey path
496 - bash: |
497 set -e
498 echo '"debug"' | $FLOWEY_BIN v 12 'FLOWEY_LOG' update
499 echo "$(FLOWEY_TEMP_DIR)/work" | $FLOWEY_BIN v 12 '_internal_WORKING_DIR' --is-raw-string update
500
501 cat <<'EOF' | tr '[:upper:]' '[:lower:]' | $FLOWEY_BIN v 12 'verbose' update
502 ${{ parameters.verbose }}
503 EOF
504 displayName: πŸŒΌπŸ›« Initialize job
505 - bash: $(FLOWEY_BIN) e 12 flowey_lib_common::install_rust 0
506 displayName: install Rust
507 - bash: |-
508 set -e
509 $(FLOWEY_BIN) e 12 flowey_lib_common::install_rust 1
510 $(FLOWEY_BIN) e 12 flowey_lib_common::cfg_cargo_common_flags 0
511 displayName: detect active toolchain
512 - bash: |-
513 set -e
514 $(FLOWEY_BIN) e 12 flowey_lib_common::git_checkout 0
515 $FLOWEY_BIN v 12 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:319:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:320:46 write-to-env ado floweyvar6
516 $FLOWEY_BIN v 12 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:320:46' write-to-env ado FLOWEY_CONDITION
517 displayName: check if openvmm needs to be cloned
518 - checkout: self
519 path: repo0
520 fetchTags: false
521 fetchDepth: 1
522 persistCredentials: $(floweyvar6)
523 submodules: recursive
524 displayName: checkout repo openvmm
525 condition: and(eq(variables['FLOWEY_CONDITION'], true), succeeded(), not(canceled()))
526 - bash: |-
527 set -e
528 $(FLOWEY_BIN) e 12 flowey_lib_common::git_checkout 2
529 $(FLOWEY_BIN) e 12 flowey_lib_hvlite::git_checkout_openvmm_repo 0
530 $(FLOWEY_BIN) e 12 flowey_lib_hvlite::cfg_openvmm_magicpath 0
531 displayName: report cloned repo directories
532 - bash: $(FLOWEY_BIN) e 12 flowey_lib_common::install_dist_pkg 0
533 displayName: checking if packages need to be installed
534 - bash: $(FLOWEY_BIN) e 12 flowey_lib_common::install_dist_pkg 1
535 displayName: installing packages
536 - bash: $(FLOWEY_BIN) e 12 flowey_lib_common::download_gh_release 0
537 displayName: create gh-release-download cache dir
538 - bash: |-
539 set -e
540 $(FLOWEY_BIN) e 12 flowey_lib_common::cache 4
541 $FLOWEY_BIN v 12 'flowey_lib_common::cache:8:flowey_lib_common/src/cache.rs:236:72' --is-raw-string write-to-env ado floweyvar4
542 $FLOWEY_BIN v 12 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:237:72' --is-raw-string write-to-env ado floweyvar5
543 displayName: Pre-processing cache vars
544 - task: Cache@2
545 inputs:
546 key: $(floweyvar5)
547 path: $(floweyvar4)
548 cacheHitVar: FLOWEY_CACHE_HITVAR
549 displayName: 'Restore cache: gh-release-download'
550 - bash: |-
551 set -e
552 $FLOWEY_BIN v 12 'flowey_lib_common::cache:11:flowey_lib_common/src/cache.rs:300:70' --is-raw-string update --env-source FLOWEY_CACHE_HITVAR <<'EOF'
553 $(FLOWEY_CACHE_HITVAR)
554 EOF
555 $(FLOWEY_BIN) e 12 flowey_lib_common::cache 6
556 displayName: map ADO hitvar to flowey
557 - bash: $(FLOWEY_BIN) e 12 flowey_lib_common::download_gh_release 1
558 displayName: download artifacts from github releases
559 - bash: $(FLOWEY_BIN) e 12 flowey_lib_hvlite::resolve_openvmm_deps 0
560 displayName: unpack openvmm-deps archive
561 - bash: $(FLOWEY_BIN) e 12 flowey_lib_hvlite::init_openvmm_magicpath_openhcl_sysroot 0
562 displayName: extract X64 sysroot.tar.gz
563 - bash: $(FLOWEY_BIN) e 12 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
564 displayName: set '-Dwarnings' in .cargo/config.toml
565 - bash: $(FLOWEY_BIN) e 12 flowey_lib_common::resolve_protoc 0
566 displayName: unpack protoc
567 - bash: |-
568 set -e
569 $(FLOWEY_BIN) e 12 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
570 $(FLOWEY_BIN) e 12 flowey_lib_hvlite::init_cross_build 2
571 $(FLOWEY_BIN) e 12 flowey_lib_hvlite::init_cross_build 0
572 displayName: symlink protoc
573 - bash: |-
574 set -e
575 $(FLOWEY_BIN) e 12 flowey_lib_common::run_cargo_build 0
576 $(FLOWEY_BIN) e 12 flowey_lib_hvlite::run_cargo_build 0
577 displayName: cargo build xtask
578 - bash: |-
579 set -e
580 $(FLOWEY_BIN) e 12 flowey_lib_hvlite::run_split_debug_info 1
581 $(FLOWEY_BIN) e 12 flowey_lib_hvlite::run_cargo_build 1
582 $(FLOWEY_BIN) e 12 flowey_lib_hvlite::build_xtask 0
583 displayName: split debug symbols
584 - bash: $(FLOWEY_BIN) e 12 flowey_lib_hvlite::_jobs::check_clippy 0
585 displayName: determine clippy exclusions
586 - bash: $(FLOWEY_BIN) e 12 flowey_lib_common::run_cargo_clippy 0
587 displayName: cargo clippy
588 - bash: $(FLOWEY_BIN) e 12 flowey_lib_common::run_cargo_clippy 2
589 displayName: cargo clippy
590 - bash: $(FLOWEY_BIN) e 12 flowey_lib_common::run_cargo_clippy 1
591 displayName: cargo clippy
592 - bash: |-
593 set -e
594 $(FLOWEY_BIN) e 12 flowey_lib_common::download_cargo_nextest 0
595 $(FLOWEY_BIN) e 12 flowey_lib_common::download_cargo_nextest 1
596 $(FLOWEY_BIN) e 12 flowey_lib_common::download_cargo_nextest 2
597 $(FLOWEY_BIN) e 12 flowey_lib_common::download_cargo_nextest 3
598 displayName: create cargo-nextest cache dir
599 - bash: |-
600 set -e
601 $(FLOWEY_BIN) e 12 flowey_lib_common::cache 0
602 $FLOWEY_BIN v 12 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:236:72' --is-raw-string write-to-env ado floweyvar2
603 $FLOWEY_BIN v 12 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:237:72' --is-raw-string write-to-env ado floweyvar3
604 displayName: Pre-processing cache vars
605 - task: Cache@2
606 inputs:
607 key: $(floweyvar3)
608 path: $(floweyvar2)
609 cacheHitVar: FLOWEY_CACHE_HITVAR
610 displayName: 'Restore cache: cargo-nextest'
611 - bash: |-
612 set -e
613 $FLOWEY_BIN v 12 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:300:70' --is-raw-string update --env-source FLOWEY_CACHE_HITVAR <<'EOF'
614 $(FLOWEY_CACHE_HITVAR)
615 EOF
616 $(FLOWEY_BIN) e 12 flowey_lib_common::cache 2
617 displayName: map ADO hitvar to flowey
618 - bash: $(FLOWEY_BIN) e 12 flowey_lib_common::download_cargo_nextest 4
619 displayName: downloading cargo-nextest
620 - bash: $(FLOWEY_BIN) e 12 flowey_lib_common::install_rust 2
621 displayName: report $CARGO_HOME
622 - bash: |-
623 set -e
624 $(FLOWEY_BIN) e 12 flowey_lib_common::install_cargo_nextest 0
625 $(FLOWEY_BIN) e 12 flowey_lib_hvlite::init_cross_build 1
626 displayName: installing cargo-nextest
627 - bash: |-
628 set -e
629 $(FLOWEY_BIN) e 12 flowey_lib_common::run_cargo_build 1
630 $(FLOWEY_BIN) e 12 flowey_lib_hvlite::run_cargo_build 2
631 displayName: cargo build xtask
632 - bash: |-
633 set -e
634 $(FLOWEY_BIN) e 12 flowey_lib_hvlite::run_split_debug_info 0
635 $(FLOWEY_BIN) e 12 flowey_lib_hvlite::run_cargo_build 3
636 $(FLOWEY_BIN) e 12 flowey_lib_hvlite::build_xtask 1
637 displayName: split debug symbols
638 - bash: |-
639 set -e
640 $(FLOWEY_BIN) e 12 flowey_lib_hvlite::build_nextest_unit_tests 0
641 $(FLOWEY_BIN) e 12 flowey_lib_hvlite::init_cross_build 3
642 $(FLOWEY_BIN) e 12 flowey_lib_hvlite::run_cargo_nextest_run 0
643 displayName: determine unit test exclusions
644 - bash: $(FLOWEY_BIN) e 12 flowey_lib_common::gen_cargo_nextest_run_cmd 0
645 displayName: generate nextest command
646 - bash: |-
647 set -e
648 $(FLOWEY_BIN) e 12 flowey_lib_common::run_cargo_nextest_run 0
649 $(FLOWEY_BIN) e 12 flowey_lib_common::run_cargo_nextest_run 1
650 $(FLOWEY_BIN) e 12 flowey_lib_hvlite::_jobs::build_and_run_nextest_unit_tests 0
651 $(FLOWEY_BIN) e 12 flowey_lib_common::publish_test_results 1
652 $(FLOWEY_BIN) e 12 flowey_lib_common::ado_task_publish_test_results 0
653 $(FLOWEY_BIN) e 12 flowey_lib_common::publish_test_results 0
654 $FLOWEY_BIN v 12 'flowey_lib_common::ado_task_publish_test_results:0:flowey_lib_common/src/ado_task_publish_test_results.rs:57:45' --is-raw-string --condvar flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env ado floweyvar1
655 $FLOWEY_BIN v 12 'flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env ado FLOWEY_CONDITION
656 displayName: run 'unit-tests' nextest tests
657 - task: PublishTestResults@2
658 inputs:
659 testResultsFormat: JUnit
660 testResultsFiles: $(floweyvar1)
661 testRunTitle: x64-linux-musl-unit-tests
662 displayName: 'publish test results: x64-linux-musl-unit-tests (JUnit XML)'
663 condition: and(eq(variables['FLOWEY_CONDITION'], true), succeeded(), not(canceled()))
664 - bash: $(FLOWEY_BIN) e 12 flowey_lib_hvlite::_jobs::build_and_run_nextest_unit_tests 1
665 displayName: report test results to overall pipeline status
666 - bash: $(FLOWEY_BIN) e 12 flowey_lib_hvlite::_jobs::build_and_run_doc_tests 0
667 displayName: run doctests for x86_64-unknown-linux-musl
668 - bash: $(FLOWEY_BIN) e 12 flowey_lib_common::cache 3
669 displayName: 'validate cache entry: cargo-nextest'
670 - bash: $(FLOWEY_BIN) e 12 flowey_lib_common::cache 7
671 displayName: 'validate cache entry: gh-release-download'
672- job: job11
673 displayName: clippy [macos], unit tests [x64-linux]
674 pool:
675 demands:
676 - ImageOverride -equals ubuntu2404-amd64-256gb
677 name: openvmm-ado-intel-centralus
678 dependsOn:
679 - job0
680 condition: and(succeeded(), not(canceled()))
681 variables:
682 - name: FLOWEY_TEMP_DIR
683 value: $(Build.StagingDirectory)/.flowey-internal
684 steps:
685 - task: DownloadPipelineArtifact@2
686 displayName: 🌼πŸ₯Ύ Download bootstrapped flowey
687 inputs:
688 artifact: _internal-flowey-bootstrap-x86_64-linux-uid-1
689 path: $(FLOWEY_TEMP_DIR)/bootstrapped-flowey
690 - bash: |
691 set -e
692 AgentTempDirNormal="$(FLOWEY_TEMP_DIR)"
693 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
694 echo "##vso[task.setvariable variable=AgentTempDirNormal;]$AgentTempDirNormal"
695
696 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey
697 FLOWEY_BIN="$AgentTempDirNormal/bootstrapped-flowey/flowey"
698 echo "##vso[task.setvariable variable=FLOWEY_BIN;]$FLOWEY_BIN"
699 displayName: Set flowey path
700 - bash: |
701 set -e
702 echo '"debug"' | $FLOWEY_BIN v 11 'FLOWEY_LOG' update
703 echo "$(FLOWEY_TEMP_DIR)/work" | $FLOWEY_BIN v 11 '_internal_WORKING_DIR' --is-raw-string update
704
705 cat <<'EOF' | tr '[:upper:]' '[:lower:]' | $FLOWEY_BIN v 11 'verbose' update
706 ${{ parameters.verbose }}
707 EOF
708 displayName: πŸŒΌπŸ›« Initialize job
709 - bash: $(FLOWEY_BIN) e 11 flowey_lib_common::install_rust 0
710 displayName: install Rust
711 - bash: |-
712 set -e
713 $(FLOWEY_BIN) e 11 flowey_lib_common::install_rust 1
714 $(FLOWEY_BIN) e 11 flowey_lib_common::cfg_cargo_common_flags 0
715 displayName: detect active toolchain
716 - bash: $(FLOWEY_BIN) e 11 flowey_lib_common::install_dist_pkg 0
717 displayName: checking if packages need to be installed
718 - bash: $(FLOWEY_BIN) e 11 flowey_lib_common::install_dist_pkg 1
719 displayName: installing packages
720 - bash: |-
721 set -e
722 $(FLOWEY_BIN) e 11 flowey_lib_common::git_checkout 0
723 $FLOWEY_BIN v 11 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:319:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:320:46 write-to-env ado floweyvar6
724 $FLOWEY_BIN v 11 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:320:46' write-to-env ado FLOWEY_CONDITION
725 displayName: check if openvmm needs to be cloned
726 - checkout: self
727 path: repo0
728 fetchTags: false
729 fetchDepth: 1
730 persistCredentials: $(floweyvar6)
731 submodules: recursive
732 displayName: checkout repo openvmm
733 condition: and(eq(variables['FLOWEY_CONDITION'], true), succeeded(), not(canceled()))
734 - bash: |-
735 set -e
736 $(FLOWEY_BIN) e 11 flowey_lib_common::git_checkout 2
737 $(FLOWEY_BIN) e 11 flowey_lib_hvlite::git_checkout_openvmm_repo 0
738 displayName: report cloned repo directories
739 - bash: $(FLOWEY_BIN) e 11 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
740 displayName: set '-Dwarnings' in .cargo/config.toml
741 - bash: $(FLOWEY_BIN) e 11 flowey_lib_common::download_gh_release 0
742 displayName: create gh-release-download cache dir
743 - bash: |-
744 set -e
745 $(FLOWEY_BIN) e 11 flowey_lib_common::cache 4
746 $FLOWEY_BIN v 11 'flowey_lib_common::cache:8:flowey_lib_common/src/cache.rs:236:72' --is-raw-string write-to-env ado floweyvar4
747 $FLOWEY_BIN v 11 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:237:72' --is-raw-string write-to-env ado floweyvar5
748 displayName: Pre-processing cache vars
749 - task: Cache@2
750 inputs:
751 key: $(floweyvar5)
752 path: $(floweyvar4)
753 cacheHitVar: FLOWEY_CACHE_HITVAR
754 displayName: 'Restore cache: gh-release-download'
755 - bash: |-
756 set -e
757 $FLOWEY_BIN v 11 'flowey_lib_common::cache:11:flowey_lib_common/src/cache.rs:300:70' --is-raw-string update --env-source FLOWEY_CACHE_HITVAR <<'EOF'
758 $(FLOWEY_CACHE_HITVAR)
759 EOF
760 $(FLOWEY_BIN) e 11 flowey_lib_common::cache 6
761 displayName: map ADO hitvar to flowey
762 - bash: $(FLOWEY_BIN) e 11 flowey_lib_common::download_gh_release 1
763 displayName: download artifacts from github releases
764 - bash: |-
765 set -e
766 $(FLOWEY_BIN) e 11 flowey_lib_common::resolve_protoc 0
767 $(FLOWEY_BIN) e 11 flowey_lib_hvlite::cfg_openvmm_magicpath 0
768 displayName: unpack protoc
769 - bash: |-
770 set -e
771 $(FLOWEY_BIN) e 11 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
772 $(FLOWEY_BIN) e 11 flowey_lib_hvlite::init_cross_build 1
773 displayName: symlink protoc
774 - bash: |-
775 set -e
776 $(FLOWEY_BIN) e 11 flowey_lib_common::run_cargo_build 0
777 $(FLOWEY_BIN) e 11 flowey_lib_hvlite::run_cargo_build 0
778 displayName: cargo build xtask
779 - bash: |-
780 set -e
781 $(FLOWEY_BIN) e 11 flowey_lib_hvlite::run_split_debug_info 1
782 $(FLOWEY_BIN) e 11 flowey_lib_hvlite::run_cargo_build 1
783 $(FLOWEY_BIN) e 11 flowey_lib_hvlite::build_xtask 0
784 displayName: split debug symbols
785 - bash: $(FLOWEY_BIN) e 11 flowey_lib_hvlite::_jobs::check_clippy 0
786 displayName: determine clippy exclusions
787 - bash: $(FLOWEY_BIN) e 11 flowey_lib_common::run_cargo_clippy 0
788 displayName: cargo clippy
789 - bash: |-
790 set -e
791 $(FLOWEY_BIN) e 11 flowey_lib_common::download_cargo_nextest 0
792 $(FLOWEY_BIN) e 11 flowey_lib_common::download_cargo_nextest 1
793 $(FLOWEY_BIN) e 11 flowey_lib_common::download_cargo_nextest 2
794 $(FLOWEY_BIN) e 11 flowey_lib_common::download_cargo_nextest 3
795 displayName: create cargo-nextest cache dir
796 - bash: |-
797 set -e
798 $(FLOWEY_BIN) e 11 flowey_lib_common::cache 0
799 $FLOWEY_BIN v 11 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:236:72' --is-raw-string write-to-env ado floweyvar2
800 $FLOWEY_BIN v 11 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:237:72' --is-raw-string write-to-env ado floweyvar3
801 displayName: Pre-processing cache vars
802 - task: Cache@2
803 inputs:
804 key: $(floweyvar3)
805 path: $(floweyvar2)
806 cacheHitVar: FLOWEY_CACHE_HITVAR
807 displayName: 'Restore cache: cargo-nextest'
808 - bash: |-
809 set -e
810 $FLOWEY_BIN v 11 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:300:70' --is-raw-string update --env-source FLOWEY_CACHE_HITVAR <<'EOF'
811 $(FLOWEY_CACHE_HITVAR)
812 EOF
813 $(FLOWEY_BIN) e 11 flowey_lib_common::cache 2
814 displayName: map ADO hitvar to flowey
815 - bash: $(FLOWEY_BIN) e 11 flowey_lib_common::download_cargo_nextest 4
816 displayName: downloading cargo-nextest
817 - bash: $(FLOWEY_BIN) e 11 flowey_lib_common::install_rust 2
818 displayName: report $CARGO_HOME
819 - bash: |-
820 set -e
821 $(FLOWEY_BIN) e 11 flowey_lib_common::install_cargo_nextest 0
822 $(FLOWEY_BIN) e 11 flowey_lib_hvlite::init_cross_build 2
823 displayName: installing cargo-nextest
824 - bash: |-
825 set -e
826 $(FLOWEY_BIN) e 11 flowey_lib_common::run_cargo_build 1
827 $(FLOWEY_BIN) e 11 flowey_lib_hvlite::run_cargo_build 2
828 displayName: cargo build xtask
829 - bash: |-
830 set -e
831 $(FLOWEY_BIN) e 11 flowey_lib_hvlite::run_split_debug_info 0
832 $(FLOWEY_BIN) e 11 flowey_lib_hvlite::run_cargo_build 3
833 $(FLOWEY_BIN) e 11 flowey_lib_hvlite::build_xtask 1
834 displayName: split debug symbols
835 - bash: |-
836 set -e
837 $(FLOWEY_BIN) e 11 flowey_lib_hvlite::build_nextest_unit_tests 0
838 $(FLOWEY_BIN) e 11 flowey_lib_hvlite::init_cross_build 0
839 $(FLOWEY_BIN) e 11 flowey_lib_hvlite::run_cargo_nextest_run 0
840 displayName: determine unit test exclusions
841 - bash: $(FLOWEY_BIN) e 11 flowey_lib_common::gen_cargo_nextest_run_cmd 0
842 displayName: generate nextest command
843 - bash: |-
844 set -e
845 $(FLOWEY_BIN) e 11 flowey_lib_common::run_cargo_nextest_run 0
846 $(FLOWEY_BIN) e 11 flowey_lib_common::run_cargo_nextest_run 1
847 $(FLOWEY_BIN) e 11 flowey_lib_hvlite::_jobs::build_and_run_nextest_unit_tests 0
848 $(FLOWEY_BIN) e 11 flowey_lib_common::publish_test_results 1
849 $(FLOWEY_BIN) e 11 flowey_lib_common::ado_task_publish_test_results 0
850 $(FLOWEY_BIN) e 11 flowey_lib_common::publish_test_results 0
851 $FLOWEY_BIN v 11 'flowey_lib_common::ado_task_publish_test_results:0:flowey_lib_common/src/ado_task_publish_test_results.rs:57:45' --is-raw-string --condvar flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env ado floweyvar1
852 $FLOWEY_BIN v 11 'flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env ado FLOWEY_CONDITION
853 displayName: run 'unit-tests' nextest tests
854 - task: PublishTestResults@2
855 inputs:
856 testResultsFormat: JUnit
857 testResultsFiles: $(floweyvar1)
858 testRunTitle: x64-linux-unit-tests
859 displayName: 'publish test results: x64-linux-unit-tests (JUnit XML)'
860 condition: and(eq(variables['FLOWEY_CONDITION'], true), succeeded(), not(canceled()))
861 - bash: $(FLOWEY_BIN) e 11 flowey_lib_hvlite::_jobs::build_and_run_nextest_unit_tests 1
862 displayName: report test results to overall pipeline status
863 - bash: $(FLOWEY_BIN) e 11 flowey_lib_hvlite::_jobs::build_and_run_doc_tests 0
864 displayName: run doctests for x86_64-unknown-linux-gnu
865 - bash: $(FLOWEY_BIN) e 11 flowey_lib_common::cache 3
866 displayName: 'validate cache entry: cargo-nextest'
867 - bash: $(FLOWEY_BIN) e 11 flowey_lib_common::cache 7
868 displayName: 'validate cache entry: gh-release-download'
869- job: job10
870 displayName: clippy [x64-windows], unit tests [x64-windows]
871 pool:
872 demands:
873 - ImageOverride -equals win-amd64
874 name: openvmm-ado-intel-centralus
875 dependsOn:
876 - job0
877 condition: and(succeeded(), not(canceled()))
878 variables:
879 - name: FLOWEY_TEMP_DIR
880 value: $(Build.StagingDirectory)/.flowey-internal
881 steps:
882 - bash: |
883 set -x
884 i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
885 sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
886 curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.94.0 -y
887 . "$HOME/.cargo/env"
888 echo '##vso[task.prependpath]$(HOME)/.cargo/bin'
889 condition: eq(variables['Agent.OS'], 'Linux')
890 displayName: rustup (Linux)
891 - bash: |
892 set -x
893 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
894 ./rustup-init.exe -y --default-toolchain=1.94.0
895 echo '##vso[task.prependpath]$(USERPROFILE)\\.cargo\\bin'
896 condition: eq(variables['Agent.OS'], 'Windows_NT')
897 displayName: rustup (Windows X64)
898 - bash: |
899 set -x
900 rustup show
901 displayName: Verify rustup installation
902 - checkout: self
903 fetchTags: false
904 fetchDepth: 1
905 path: flowey_bootstrap
906 - bash: CARGO_INCREMENTAL=0 RUSTC_BOOTSTRAP=1 RUSTFLAGS="-Z threads=8" cargo build -p flowey_hvlite --target x86_64-pc-windows-msvc --profile flowey-ci
907 workingDirectory: ../flowey_bootstrap
908 displayName: Build flowey
909 - bash: |
910 mkdir ./flowey_bootstrap_temp
911 mv ./ci-flowey/openvmm-pr.yaml ./flowey_bootstrap_temp/pipeline.yaml
912 mv ./ci-flowey/openvmm-pr.json ./flowey_bootstrap_temp/pipeline.json
913 mv target/x86_64-pc-windows-msvc/flowey-ci/flowey_hvlite.exe ./flowey_bootstrap_temp/flowey.exe
914 workingDirectory: ../flowey_bootstrap
915 displayName: Stage flowey artifact
916 - task: CopyFiles@2
917 displayName: Copy flowey artifact
918 inputs:
919 SourceFolder: ../flowey_bootstrap/flowey_bootstrap_temp
920 TargetFolder: $(FLOWEY_TEMP_DIR)/bootstrapped-flowey
921 - bash: rm -rf ./flowey_bootstrap_temp
922 workingDirectory: ../flowey_bootstrap
923 displayName: Cleanup staged flowey artifact
924 - bash: |
925 set -e
926 AgentTempDirNormal="$(FLOWEY_TEMP_DIR)"
927 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
928 echo "##vso[task.setvariable variable=AgentTempDirNormal;]$AgentTempDirNormal"
929
930 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe
931 FLOWEY_BIN="$AgentTempDirNormal/bootstrapped-flowey/flowey.exe"
932 echo "##vso[task.setvariable variable=FLOWEY_BIN;]$FLOWEY_BIN"
933 displayName: Set flowey path
934 - bash: |-
935 ESCAPED_AGENT_TEMPDIR=$(
936 cat <<'EOF' | sed 's/\\/\\\\/g'
937 $(FLOWEY_TEMP_DIR)
938 EOF
939 )
940 $(FLOWEY_BIN) pipeline ado --runtime $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out ci-flowey/openvmm-pr.yaml ci checkin-gates --config=pr
941 displayName: πŸŒΌπŸ”Ž Self-check YAML
942 - bash: |
943 set -e
944 echo '"debug"' | $FLOWEY_BIN v 10 'FLOWEY_LOG' update
945 echo "$(FLOWEY_TEMP_DIR)/work" | $FLOWEY_BIN v 10 '_internal_WORKING_DIR' --is-raw-string update
946
947 cat <<'EOF' | tr '[:upper:]' '[:lower:]' | $FLOWEY_BIN v 10 'verbose' update
948 ${{ parameters.verbose }}
949 EOF
950 displayName: πŸŒΌπŸ›« Initialize job
951 - bash: $(FLOWEY_BIN) e 10 flowey_lib_common::install_rust 0
952 displayName: install Rust
953 - bash: |-
954 set -e
955 $(FLOWEY_BIN) e 10 flowey_lib_common::install_rust 1
956 $(FLOWEY_BIN) e 10 flowey_lib_common::cfg_cargo_common_flags 0
957 displayName: detect active toolchain
958 - bash: |-
959 set -e
960 $(FLOWEY_BIN) e 10 flowey_lib_common::git_checkout 0
961 $FLOWEY_BIN v 10 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:319:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:320:46 write-to-env ado floweyvar6
962 $FLOWEY_BIN v 10 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:320:46' write-to-env ado FLOWEY_CONDITION
963 displayName: check if openvmm needs to be cloned
964 - checkout: self
965 path: repo0
966 fetchTags: false
967 fetchDepth: 1
968 persistCredentials: $(floweyvar6)
969 submodules: recursive
970 displayName: checkout repo openvmm
971 condition: and(eq(variables['FLOWEY_CONDITION'], true), succeeded(), not(canceled()))
972 - bash: |-
973 set -e
974 $(FLOWEY_BIN) e 10 flowey_lib_common::git_checkout 2
975 $(FLOWEY_BIN) e 10 flowey_lib_hvlite::git_checkout_openvmm_repo 0
976 displayName: report cloned repo directories
977 - bash: $(FLOWEY_BIN) e 10 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
978 displayName: set '-Dwarnings' in .cargo/config.toml
979 - bash: $(FLOWEY_BIN) e 10 flowey_lib_common::download_gh_release 0
980 displayName: create gh-release-download cache dir
981 - bash: |-
982 set -e
983 $(FLOWEY_BIN) e 10 flowey_lib_common::cache 4
984 $FLOWEY_BIN v 10 'flowey_lib_common::cache:8:flowey_lib_common/src/cache.rs:236:72' --is-raw-string write-to-env ado floweyvar4
985 $FLOWEY_BIN v 10 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:237:72' --is-raw-string write-to-env ado floweyvar5
986 displayName: Pre-processing cache vars
987 - task: Cache@2
988 inputs:
989 key: $(floweyvar5)
990 path: $(floweyvar4)
991 cacheHitVar: FLOWEY_CACHE_HITVAR
992 displayName: 'Restore cache: gh-release-download'
993 - bash: |-
994 set -e
995 $FLOWEY_BIN v 10 'flowey_lib_common::cache:11:flowey_lib_common/src/cache.rs:300:70' --is-raw-string update --env-source FLOWEY_CACHE_HITVAR <<'EOF'
996 $(FLOWEY_CACHE_HITVAR)
997 EOF
998 $(FLOWEY_BIN) e 10 flowey_lib_common::cache 6
999 displayName: map ADO hitvar to flowey
1000 - bash: $(FLOWEY_BIN) e 10 flowey_lib_common::download_gh_release 1
1001 displayName: download artifacts from github releases
1002 - bash: |-
1003 set -e
1004 $(FLOWEY_BIN) e 10 flowey_lib_common::resolve_protoc 0
1005 $(FLOWEY_BIN) e 10 flowey_lib_hvlite::cfg_openvmm_magicpath 0
1006 displayName: unpack protoc
1007 - bash: |-
1008 set -e
1009 $(FLOWEY_BIN) e 10 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
1010 $(FLOWEY_BIN) e 10 flowey_lib_hvlite::init_cross_build 0
1011 $(FLOWEY_BIN) e 10 flowey_lib_hvlite::init_cross_build 2
1012 displayName: symlink protoc
1013 - bash: |-
1014 set -e
1015 $(FLOWEY_BIN) e 10 flowey_lib_common::run_cargo_build 0
1016 $(FLOWEY_BIN) e 10 flowey_lib_hvlite::run_cargo_build 0
1017 $(FLOWEY_BIN) e 10 flowey_lib_hvlite::build_xtask 0
1018 displayName: cargo build xtask
1019 - bash: $(FLOWEY_BIN) e 10 flowey_lib_hvlite::_jobs::check_clippy 0
1020 displayName: determine clippy exclusions
1021 - bash: $(FLOWEY_BIN) e 10 flowey_lib_common::run_cargo_clippy 0
1022 displayName: cargo clippy
1023 - bash: |-
1024 set -e
1025 $(FLOWEY_BIN) e 10 flowey_lib_common::download_cargo_nextest 0
1026 $(FLOWEY_BIN) e 10 flowey_lib_common::download_cargo_nextest 1
1027 $(FLOWEY_BIN) e 10 flowey_lib_common::download_cargo_nextest 2
1028 $(FLOWEY_BIN) e 10 flowey_lib_common::download_cargo_nextest 3
1029 displayName: create cargo-nextest cache dir
1030 - bash: |-
1031 set -e
1032 $(FLOWEY_BIN) e 10 flowey_lib_common::cache 0
1033 $FLOWEY_BIN v 10 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:236:72' --is-raw-string write-to-env ado floweyvar2
1034 $FLOWEY_BIN v 10 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:237:72' --is-raw-string write-to-env ado floweyvar3
1035 displayName: Pre-processing cache vars
1036 - task: Cache@2
1037 inputs:
1038 key: $(floweyvar3)
1039 path: $(floweyvar2)
1040 cacheHitVar: FLOWEY_CACHE_HITVAR
1041 displayName: 'Restore cache: cargo-nextest'
1042 - bash: |-
1043 set -e
1044 $FLOWEY_BIN v 10 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:300:70' --is-raw-string update --env-source FLOWEY_CACHE_HITVAR <<'EOF'
1045 $(FLOWEY_CACHE_HITVAR)
1046 EOF
1047 $(FLOWEY_BIN) e 10 flowey_lib_common::cache 2
1048 displayName: map ADO hitvar to flowey
1049 - bash: $(FLOWEY_BIN) e 10 flowey_lib_common::download_cargo_nextest 4
1050 displayName: downloading cargo-nextest
1051 - bash: $(FLOWEY_BIN) e 10 flowey_lib_common::install_rust 2
1052 displayName: report $CARGO_HOME
1053 - bash: |-
1054 set -e
1055 $(FLOWEY_BIN) e 10 flowey_lib_common::install_cargo_nextest 0
1056 $(FLOWEY_BIN) e 10 flowey_lib_hvlite::init_cross_build 3
1057 displayName: installing cargo-nextest
1058 - bash: |-
1059 set -e
1060 $(FLOWEY_BIN) e 10 flowey_lib_common::run_cargo_build 1
1061 $(FLOWEY_BIN) e 10 flowey_lib_hvlite::run_cargo_build 1
1062 $(FLOWEY_BIN) e 10 flowey_lib_hvlite::build_xtask 1
1063 displayName: cargo build xtask
1064 - bash: |-
1065 set -e
1066 $(FLOWEY_BIN) e 10 flowey_lib_hvlite::build_nextest_unit_tests 0
1067 $(FLOWEY_BIN) e 10 flowey_lib_hvlite::init_cross_build 1
1068 $(FLOWEY_BIN) e 10 flowey_lib_hvlite::run_cargo_nextest_run 0
1069 displayName: determine unit test exclusions
1070 - bash: $(FLOWEY_BIN) e 10 flowey_lib_common::gen_cargo_nextest_run_cmd 0
1071 displayName: generate nextest command
1072 - bash: |-
1073 set -e
1074 $(FLOWEY_BIN) e 10 flowey_lib_common::run_cargo_nextest_run 0
1075 $(FLOWEY_BIN) e 10 flowey_lib_common::run_cargo_nextest_run 1
1076 $(FLOWEY_BIN) e 10 flowey_lib_hvlite::_jobs::build_and_run_nextest_unit_tests 0
1077 $(FLOWEY_BIN) e 10 flowey_lib_common::publish_test_results 1
1078 $(FLOWEY_BIN) e 10 flowey_lib_common::ado_task_publish_test_results 0
1079 $(FLOWEY_BIN) e 10 flowey_lib_common::publish_test_results 0
1080 $FLOWEY_BIN v 10 'flowey_lib_common::ado_task_publish_test_results:0:flowey_lib_common/src/ado_task_publish_test_results.rs:57:45' --is-raw-string --condvar flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env ado floweyvar1
1081 $FLOWEY_BIN v 10 'flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env ado FLOWEY_CONDITION
1082 displayName: run 'unit-tests' nextest tests
1083 - task: PublishTestResults@2
1084 inputs:
1085 testResultsFormat: JUnit
1086 testResultsFiles: $(floweyvar1)
1087 testRunTitle: x64-windows-unit-tests
1088 displayName: 'publish test results: x64-windows-unit-tests (JUnit XML)'
1089 condition: and(eq(variables['FLOWEY_CONDITION'], true), succeeded(), not(canceled()))
1090 - bash: $(FLOWEY_BIN) e 10 flowey_lib_hvlite::_jobs::build_and_run_nextest_unit_tests 1
1091 displayName: report test results to overall pipeline status
1092 - bash: $(FLOWEY_BIN) e 10 flowey_lib_hvlite::_jobs::build_and_run_doc_tests 0
1093 displayName: run doctests for x86_64-pc-windows-msvc
1094 - bash: $(FLOWEY_BIN) e 10 flowey_lib_common::cache 3
1095 displayName: 'validate cache entry: cargo-nextest'
1096 - bash: $(FLOWEY_BIN) e 10 flowey_lib_common::cache 7
1097 displayName: 'validate cache entry: gh-release-download'
1098- job: job9
1099 displayName: build openhcl [x64-linux]
1100 pool:
1101 demands:
1102 - ImageOverride -equals ubuntu2404-amd64-256gb
1103 name: openvmm-ado-intel-centralus
1104 dependsOn:
1105 - job0
1106 condition: and(succeeded(), not(canceled()))
1107 variables:
1108 - name: FLOWEY_TEMP_DIR
1109 value: $(Build.StagingDirectory)/.flowey-internal
1110 steps:
1111 - task: DownloadPipelineArtifact@2
1112 displayName: 🌼πŸ₯Ύ Download bootstrapped flowey
1113 inputs:
1114 artifact: _internal-flowey-bootstrap-x86_64-linux-uid-1
1115 path: $(FLOWEY_TEMP_DIR)/bootstrapped-flowey
1116 - bash: |
1117 set -e
1118 AgentTempDirNormal="$(FLOWEY_TEMP_DIR)"
1119 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
1120 echo "##vso[task.setvariable variable=AgentTempDirNormal;]$AgentTempDirNormal"
1121
1122 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey
1123 FLOWEY_BIN="$AgentTempDirNormal/bootstrapped-flowey/flowey"
1124 echo "##vso[task.setvariable variable=FLOWEY_BIN;]$FLOWEY_BIN"
1125 displayName: Set flowey path
1126 - bash: |
1127 set -e
1128 echo '"debug"' | $FLOWEY_BIN v 9 'FLOWEY_LOG' update
1129 echo "$(FLOWEY_TEMP_DIR)/work" | $FLOWEY_BIN v 9 '_internal_WORKING_DIR' --is-raw-string update
1130
1131 cat <<'EOF' | tr '[:upper:]' '[:lower:]' | $FLOWEY_BIN v 9 'verbose' update
1132 ${{ parameters.verbose }}
1133 EOF
1134 mkdir -p "$(AgentTempDirNormal)/publish_artifacts/x64-linux-musl-pipette"
1135 echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/x64-linux-musl-pipette" | $FLOWEY_BIN v 9 'artifact_publish_from_x64-linux-musl-pipette' --is-raw-string update
1136 mkdir -p "$(AgentTempDirNormal)/publish_artifacts/x64-linux-musl-tmk_vmm"
1137 echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/x64-linux-musl-tmk_vmm" | $FLOWEY_BIN v 9 'artifact_publish_from_x64-linux-musl-tmk_vmm' --is-raw-string update
1138 mkdir -p "$(AgentTempDirNormal)/publish_artifacts/x64-openhcl-igvm"
1139 echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/x64-openhcl-igvm" | $FLOWEY_BIN v 9 'artifact_publish_from_x64-openhcl-igvm' --is-raw-string update
1140 mkdir -p "$(AgentTempDirNormal)/publish_artifacts/x64-openhcl-igvm-extras"
1141 echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/x64-openhcl-igvm-extras" | $FLOWEY_BIN v 9 'artifact_publish_from_x64-openhcl-igvm-extras' --is-raw-string update
1142 displayName: πŸŒΌπŸ›« Initialize job
1143 - bash: $(FLOWEY_BIN) e 9 flowey_lib_common::install_dist_pkg 0
1144 displayName: checking if packages need to be installed
1145 - bash: $(FLOWEY_BIN) e 9 flowey_lib_common::install_dist_pkg 1
1146 displayName: installing packages
1147 - bash: $(FLOWEY_BIN) e 9 flowey_lib_common::download_gh_release 0
1148 displayName: create gh-release-download cache dir
1149 - bash: |-
1150 set -e
1151 $(FLOWEY_BIN) e 9 flowey_lib_common::cache 0
1152 $FLOWEY_BIN v 9 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:236:72' --is-raw-string write-to-env ado floweyvar1
1153 $FLOWEY_BIN v 9 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:237:72' --is-raw-string write-to-env ado floweyvar2
1154 displayName: Pre-processing cache vars
1155 - task: Cache@2
1156 inputs:
1157 key: $(floweyvar2)
1158 path: $(floweyvar1)
1159 cacheHitVar: FLOWEY_CACHE_HITVAR
1160 displayName: 'Restore cache: gh-release-download'
1161 - bash: |-
1162 set -e
1163 $FLOWEY_BIN v 9 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:300:70' --is-raw-string update --env-source FLOWEY_CACHE_HITVAR <<'EOF'
1164 $(FLOWEY_CACHE_HITVAR)
1165 EOF
1166 $(FLOWEY_BIN) e 9 flowey_lib_common::cache 2
1167 displayName: map ADO hitvar to flowey
1168 - bash: $(FLOWEY_BIN) e 9 flowey_lib_common::download_gh_release 1
1169 displayName: download artifacts from github releases
1170 - bash: $(FLOWEY_BIN) e 9 flowey_lib_hvlite::download_uefi_mu_msvm 0
1171 displayName: unpack mu_msvm package (x64)
1172 - bash: $(FLOWEY_BIN) e 9 flowey_lib_common::install_rust 0
1173 displayName: install Rust
1174 - bash: |-
1175 set -e
1176 $(FLOWEY_BIN) e 9 flowey_lib_common::install_rust 1
1177 $(FLOWEY_BIN) e 9 flowey_lib_common::cfg_cargo_common_flags 0
1178 displayName: detect active toolchain
1179 - bash: |-
1180 set -e
1181 $(FLOWEY_BIN) e 9 flowey_lib_common::git_checkout 0
1182 $FLOWEY_BIN v 9 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:319:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:320:46 write-to-env ado floweyvar3
1183 $FLOWEY_BIN v 9 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:320:46' write-to-env ado FLOWEY_CONDITION
1184 displayName: check if openvmm needs to be cloned
1185 - checkout: self
1186 path: repo0
1187 fetchTags: false
1188 fetchDepth: 1
1189 persistCredentials: $(floweyvar3)
1190 submodules: recursive
1191 displayName: checkout repo openvmm
1192 condition: and(eq(variables['FLOWEY_CONDITION'], true), succeeded(), not(canceled()))
1193 - bash: |-
1194 set -e
1195 $(FLOWEY_BIN) e 9 flowey_lib_common::git_checkout 2
1196 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::git_checkout_openvmm_repo 0
1197 displayName: report cloned repo directories
1198 - bash: $(FLOWEY_BIN) e 9 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
1199 displayName: set '-Dwarnings' in .cargo/config.toml
1200 - bash: |-
1201 set -e
1202 $(FLOWEY_BIN) e 9 flowey_lib_common::resolve_protoc 0
1203 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::cfg_openvmm_magicpath 0
1204 displayName: unpack protoc
1205 - bash: |-
1206 set -e
1207 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
1208 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::init_cross_build 0
1209 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::run_cargo_build 9
1210 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::run_cargo_build 10
1211 displayName: symlink protoc
1212 - bash: |-
1213 set -e
1214 $(FLOWEY_BIN) e 9 flowey_lib_common::run_cargo_build 4
1215 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::run_cargo_build 11
1216 displayName: cargo build sidecar
1217 - bash: |-
1218 set -e
1219 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::run_split_debug_info 7
1220 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::run_cargo_build 12
1221 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_sidecar 0
1222 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::init_cross_build 1
1223 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::run_cargo_build 2
1224 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::run_cargo_build 3
1225 displayName: split debug symbols
1226 - bash: |-
1227 set -e
1228 $(FLOWEY_BIN) e 9 flowey_lib_common::run_cargo_build 1
1229 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::run_cargo_build 4
1230 displayName: cargo build openhcl_boot
1231 - bash: |-
1232 set -e
1233 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::run_split_debug_info 5
1234 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::run_cargo_build 5
1235 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_boot 0
1236 displayName: split debug symbols
1237 - bash: |-
1238 set -e
1239 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::resolve_openhcl_kernel_package 2
1240 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 28
1241 displayName: extract and resolve kernel package
1242 - bash: $(FLOWEY_BIN) e 9 flowey_lib_hvlite::resolve_openvmm_deps 0
1243 displayName: unpack openvmm-deps archive
1244 - bash: |-
1245 set -e
1246 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::init_openvmm_magicpath_openhcl_sysroot 0
1247 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::init_cross_build 3
1248 displayName: extract X64 sysroot.tar.gz
1249 - bash: |-
1250 set -e
1251 $(FLOWEY_BIN) e 9 flowey_lib_common::run_cargo_build 2
1252 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::run_cargo_build 6
1253 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openvmm_hcl 0
1254 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 24
1255 displayName: cargo build openvmm_hcl
1256 - bash: |-
1257 set -e
1258 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::run_split_debug_info 4
1259 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 25
1260 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 26
1261 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 29
1262 displayName: split debug symbols
1263 - bash: |-
1264 set -e
1265 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_initrd 4
1266 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 30
1267 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::init_cross_build 2
1268 displayName: building openhcl initrd
1269 - bash: |-
1270 set -e
1271 $(FLOWEY_BIN) e 9 flowey_lib_common::run_cargo_build 0
1272 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::run_cargo_build 0
1273 displayName: cargo build igvmfilegen
1274 - bash: |-
1275 set -e
1276 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::run_split_debug_info 9
1277 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::run_cargo_build 1
1278 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_igvmfilegen 0
1279 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 31
1280 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 32
1281 displayName: split debug symbols
1282 - bash: |-
1283 set -e
1284 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::run_igvmfilegen 4
1285 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 2
1286 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 39
1287 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 35
1288 displayName: building igvm file
1289 - bash: |-
1290 set -e
1291 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::run_split_debug_info 0
1292 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 36
1293 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 37
1294 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 40
1295 displayName: split debug symbols
1296 - bash: $(FLOWEY_BIN) e 9 flowey_lib_hvlite::resolve_openhcl_kernel_package 0
1297 displayName: extract and resolve kernel package
1298 - bash: |-
1299 set -e
1300 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_initrd 0
1301 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 41
1302 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 42
1303 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 43
1304 displayName: building openhcl initrd
1305 - bash: |-
1306 set -e
1307 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::run_igvmfilegen 0
1308 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 4
1309 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 50
1310 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 46
1311 displayName: building igvm file
1312 - bash: |-
1313 set -e
1314 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::run_split_debug_info 1
1315 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 47
1316 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 48
1317 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 51
1318 displayName: split debug symbols
1319 - bash: |-
1320 set -e
1321 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_initrd 1
1322 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 52
1323 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 53
1324 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 54
1325 displayName: building openhcl initrd
1326 - bash: |-
1327 set -e
1328 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::run_igvmfilegen 1
1329 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 6
1330 displayName: building igvm file
1331 - bash: |-
1332 set -e
1333 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::resolve_openhcl_kernel_package 1
1334 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 17
1335 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 13
1336 displayName: extract and resolve kernel package
1337 - bash: |-
1338 set -e
1339 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::run_split_debug_info 3
1340 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 14
1341 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 15
1342 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 18
1343 displayName: split debug symbols
1344 - bash: |-
1345 set -e
1346 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_initrd 3
1347 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 19
1348 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 20
1349 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 21
1350 displayName: building openhcl initrd
1351 - bash: |-
1352 set -e
1353 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::run_igvmfilegen 3
1354 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 8
1355 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 6
1356 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 2
1357 displayName: building igvm file
1358 - bash: |-
1359 set -e
1360 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::run_split_debug_info 2
1361 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 3
1362 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 4
1363 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 7
1364 displayName: split debug symbols
1365 - bash: |-
1366 set -e
1367 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_initrd 2
1368 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 8
1369 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 9
1370 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 10
1371 displayName: building openhcl initrd
1372 - bash: |-
1373 set -e
1374 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::run_igvmfilegen 2
1375 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 0
1376 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::artifact_openhcl_igvm_from_recipe::publish 0
1377 displayName: building igvm file
1378 - bash: |-
1379 set -e
1380 $(FLOWEY_BIN) e 9 flowey_lib_common::copy_to_artifact_dir 1
1381 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 22
1382 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 27
1383 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 23
1384 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 3
1385 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 38
1386 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 34
1387 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 33
1388 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 5
1389 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 49
1390 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 45
1391 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 44
1392 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 7
1393 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 16
1394 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 12
1395 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 11
1396 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 9
1397 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 5
1398 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 1
1399 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 0
1400 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 1
1401 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::artifact_openhcl_igvm_from_recipe_extras::publish 0
1402 displayName: copying OpenHCL igvm files to artifact dir
1403 - bash: |-
1404 set -e
1405 $(FLOWEY_BIN) e 9 flowey_lib_common::copy_to_artifact_dir 0
1406 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::init_cross_build 4
1407 displayName: copying OpenHCL igvm extras to artifact dir
1408 - bash: |-
1409 set -e
1410 $(FLOWEY_BIN) e 9 flowey_lib_common::run_cargo_build 3
1411 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::run_cargo_build 7
1412 displayName: cargo build pipette
1413 - bash: |-
1414 set -e
1415 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::run_split_debug_info 6
1416 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::run_cargo_build 8
1417 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_pipette 0
1418 $(FLOWEY_BIN) e 9 flowey_core::pipeline::artifact::publish 0
1419 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::init_cross_build 5
1420 displayName: split debug symbols
1421 - bash: |-
1422 set -e
1423 $(FLOWEY_BIN) e 9 flowey_lib_common::run_cargo_build 5
1424 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::run_cargo_build 13
1425 displayName: cargo build tmk_vmm
1426 - bash: |-
1427 set -e
1428 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::run_split_debug_info 8
1429 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::run_cargo_build 14
1430 $(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_tmk_vmm 0
1431 $(FLOWEY_BIN) e 9 flowey_core::pipeline::artifact::publish 1
1432 displayName: split debug symbols
1433 - bash: $(FLOWEY_BIN) e 9 flowey_lib_common::cache 3
1434 displayName: 'validate cache entry: gh-release-download'
1435 - publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/x64-linux-musl-pipette
1436 displayName: πŸŒΌπŸ“¦ Publish x64-linux-musl-pipette
1437 artifact: x64-linux-musl-pipette
1438 - publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/x64-linux-musl-tmk_vmm
1439 displayName: πŸŒΌπŸ“¦ Publish x64-linux-musl-tmk_vmm
1440 artifact: x64-linux-musl-tmk_vmm
1441 - publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/x64-openhcl-igvm
1442 displayName: πŸŒΌπŸ“¦ Publish x64-openhcl-igvm
1443 artifact: x64-openhcl-igvm
1444 - publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/x64-openhcl-igvm-extras
1445 displayName: πŸŒΌπŸ“¦ Publish x64-openhcl-igvm-extras
1446 artifact: x64-openhcl-igvm-extras
1447- job: job8
1448 displayName: build openhcl [aarch64-linux]
1449 pool:
1450 demands:
1451 - ImageOverride -equals ubuntu2404-amd64-256gb
1452 name: openvmm-ado-intel-centralus
1453 dependsOn:
1454 - job0
1455 condition: and(succeeded(), not(canceled()))
1456 variables:
1457 - name: FLOWEY_TEMP_DIR
1458 value: $(Build.StagingDirectory)/.flowey-internal
1459 steps:
1460 - task: DownloadPipelineArtifact@2
1461 displayName: 🌼πŸ₯Ύ Download bootstrapped flowey
1462 inputs:
1463 artifact: _internal-flowey-bootstrap-x86_64-linux-uid-1
1464 path: $(FLOWEY_TEMP_DIR)/bootstrapped-flowey
1465 - bash: |
1466 set -e
1467 AgentTempDirNormal="$(FLOWEY_TEMP_DIR)"
1468 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
1469 echo "##vso[task.setvariable variable=AgentTempDirNormal;]$AgentTempDirNormal"
1470
1471 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey
1472 FLOWEY_BIN="$AgentTempDirNormal/bootstrapped-flowey/flowey"
1473 echo "##vso[task.setvariable variable=FLOWEY_BIN;]$FLOWEY_BIN"
1474 displayName: Set flowey path
1475 - bash: |
1476 set -e
1477 echo '"debug"' | $FLOWEY_BIN v 8 'FLOWEY_LOG' update
1478 echo "$(FLOWEY_TEMP_DIR)/work" | $FLOWEY_BIN v 8 '_internal_WORKING_DIR' --is-raw-string update
1479
1480 cat <<'EOF' | tr '[:upper:]' '[:lower:]' | $FLOWEY_BIN v 8 'verbose' update
1481 ${{ parameters.verbose }}
1482 EOF
1483 mkdir -p "$(AgentTempDirNormal)/publish_artifacts/aarch64-linux-musl-pipette"
1484 echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-linux-musl-pipette" | $FLOWEY_BIN v 8 'artifact_publish_from_aarch64-linux-musl-pipette' --is-raw-string update
1485 mkdir -p "$(AgentTempDirNormal)/publish_artifacts/aarch64-linux-musl-tmk_vmm"
1486 echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-linux-musl-tmk_vmm" | $FLOWEY_BIN v 8 'artifact_publish_from_aarch64-linux-musl-tmk_vmm' --is-raw-string update
1487 mkdir -p "$(AgentTempDirNormal)/publish_artifacts/aarch64-openhcl-igvm"
1488 echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-openhcl-igvm" | $FLOWEY_BIN v 8 'artifact_publish_from_aarch64-openhcl-igvm' --is-raw-string update
1489 mkdir -p "$(AgentTempDirNormal)/publish_artifacts/aarch64-openhcl-igvm-extras"
1490 echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-openhcl-igvm-extras" | $FLOWEY_BIN v 8 'artifact_publish_from_aarch64-openhcl-igvm-extras' --is-raw-string update
1491 displayName: πŸŒΌπŸ›« Initialize job
1492 - bash: $(FLOWEY_BIN) e 8 flowey_lib_common::install_dist_pkg 0
1493 displayName: checking if packages need to be installed
1494 - bash: $(FLOWEY_BIN) e 8 flowey_lib_common::install_dist_pkg 1
1495 displayName: installing packages
1496 - bash: $(FLOWEY_BIN) e 8 flowey_lib_common::download_gh_release 0
1497 displayName: create gh-release-download cache dir
1498 - bash: |-
1499 set -e
1500 $(FLOWEY_BIN) e 8 flowey_lib_common::cache 0
1501 $FLOWEY_BIN v 8 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:236:72' --is-raw-string write-to-env ado floweyvar1
1502 $FLOWEY_BIN v 8 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:237:72' --is-raw-string write-to-env ado floweyvar2
1503 displayName: Pre-processing cache vars
1504 - task: Cache@2
1505 inputs:
1506 key: $(floweyvar2)
1507 path: $(floweyvar1)
1508 cacheHitVar: FLOWEY_CACHE_HITVAR
1509 displayName: 'Restore cache: gh-release-download'
1510 - bash: |-
1511 set -e
1512 $FLOWEY_BIN v 8 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:300:70' --is-raw-string update --env-source FLOWEY_CACHE_HITVAR <<'EOF'
1513 $(FLOWEY_CACHE_HITVAR)
1514 EOF
1515 $(FLOWEY_BIN) e 8 flowey_lib_common::cache 2
1516 displayName: map ADO hitvar to flowey
1517 - bash: $(FLOWEY_BIN) e 8 flowey_lib_common::download_gh_release 1
1518 displayName: download artifacts from github releases
1519 - bash: $(FLOWEY_BIN) e 8 flowey_lib_hvlite::download_uefi_mu_msvm 0
1520 displayName: unpack mu_msvm package (aarch64)
1521 - bash: $(FLOWEY_BIN) e 8 flowey_lib_common::install_rust 0
1522 displayName: install Rust
1523 - bash: |-
1524 set -e
1525 $(FLOWEY_BIN) e 8 flowey_lib_common::install_rust 1
1526 $(FLOWEY_BIN) e 8 flowey_lib_common::cfg_cargo_common_flags 0
1527 displayName: detect active toolchain
1528 - bash: |-
1529 set -e
1530 $(FLOWEY_BIN) e 8 flowey_lib_common::git_checkout 0
1531 $FLOWEY_BIN v 8 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:319:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:320:46 write-to-env ado floweyvar3
1532 $FLOWEY_BIN v 8 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:320:46' write-to-env ado FLOWEY_CONDITION
1533 displayName: check if openvmm needs to be cloned
1534 - checkout: self
1535 path: repo0
1536 fetchTags: false
1537 fetchDepth: 1
1538 persistCredentials: $(floweyvar3)
1539 submodules: recursive
1540 displayName: checkout repo openvmm
1541 condition: and(eq(variables['FLOWEY_CONDITION'], true), succeeded(), not(canceled()))
1542 - bash: |-
1543 set -e
1544 $(FLOWEY_BIN) e 8 flowey_lib_common::git_checkout 2
1545 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::git_checkout_openvmm_repo 0
1546 displayName: report cloned repo directories
1547 - bash: $(FLOWEY_BIN) e 8 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
1548 displayName: set '-Dwarnings' in .cargo/config.toml
1549 - bash: |-
1550 set -e
1551 $(FLOWEY_BIN) e 8 flowey_lib_common::resolve_protoc 0
1552 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::cfg_openvmm_magicpath 0
1553 displayName: unpack protoc
1554 - bash: |-
1555 set -e
1556 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
1557 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::init_cross_build 0
1558 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::run_cargo_build 2
1559 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::run_cargo_build 3
1560 displayName: symlink protoc
1561 - bash: |-
1562 set -e
1563 $(FLOWEY_BIN) e 8 flowey_lib_common::run_cargo_build 1
1564 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::run_cargo_build 4
1565 displayName: cargo build openhcl_boot
1566 - bash: |-
1567 set -e
1568 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::run_split_debug_info 2
1569 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::run_cargo_build 5
1570 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::build_openhcl_boot 0
1571 displayName: split debug symbols
1572 - bash: |-
1573 set -e
1574 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::resolve_openhcl_kernel_package 1
1575 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 17
1576 displayName: extract and resolve kernel package
1577 - bash: $(FLOWEY_BIN) e 8 flowey_lib_hvlite::resolve_openvmm_deps 0
1578 displayName: unpack openvmm-deps archive
1579 - bash: |-
1580 set -e
1581 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::init_openvmm_magicpath_openhcl_sysroot 0
1582 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::init_cross_build 1
1583 displayName: extract Aarch64 sysroot.tar.gz
1584 - bash: |-
1585 set -e
1586 $(FLOWEY_BIN) e 8 flowey_lib_common::run_cargo_build 2
1587 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::run_cargo_build 6
1588 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::build_openvmm_hcl 0
1589 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 13
1590 displayName: cargo build openvmm_hcl
1591 - bash: |-
1592 set -e
1593 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::run_split_debug_info 1
1594 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 14
1595 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 15
1596 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 18
1597 displayName: split debug symbols
1598 - bash: |-
1599 set -e
1600 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::build_openhcl_initrd 1
1601 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 19
1602 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::init_cross_build 4
1603 displayName: building openhcl initrd
1604 - bash: |-
1605 set -e
1606 $(FLOWEY_BIN) e 8 flowey_lib_common::run_cargo_build 0
1607 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::run_cargo_build 0
1608 displayName: cargo build igvmfilegen
1609 - bash: |-
1610 set -e
1611 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::run_split_debug_info 5
1612 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::run_cargo_build 1
1613 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::build_igvmfilegen 0
1614 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 20
1615 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 21
1616 displayName: split debug symbols
1617 - bash: |-
1618 set -e
1619 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::run_igvmfilegen 1
1620 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 2
1621 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 6
1622 displayName: building igvm file
1623 - bash: |-
1624 set -e
1625 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::resolve_openhcl_kernel_package 0
1626 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 2
1627 displayName: extract and resolve kernel package
1628 - bash: |-
1629 set -e
1630 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::run_split_debug_info 0
1631 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 3
1632 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 4
1633 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 7
1634 displayName: split debug symbols
1635 - bash: |-
1636 set -e
1637 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::build_openhcl_initrd 0
1638 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 8
1639 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 9
1640 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 10
1641 displayName: building openhcl initrd
1642 - bash: |-
1643 set -e
1644 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::run_igvmfilegen 0
1645 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 0
1646 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::artifact_openhcl_igvm_from_recipe::publish 0
1647 displayName: building igvm file
1648 - bash: |-
1649 set -e
1650 $(FLOWEY_BIN) e 8 flowey_lib_common::copy_to_artifact_dir 1
1651 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 11
1652 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 16
1653 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 12
1654 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 3
1655 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 5
1656 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 1
1657 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 0
1658 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 1
1659 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::artifact_openhcl_igvm_from_recipe_extras::publish 0
1660 displayName: copying OpenHCL igvm files to artifact dir
1661 - bash: |-
1662 set -e
1663 $(FLOWEY_BIN) e 8 flowey_lib_common::copy_to_artifact_dir 0
1664 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::init_cross_build 2
1665 displayName: copying OpenHCL igvm extras to artifact dir
1666 - bash: |-
1667 set -e
1668 $(FLOWEY_BIN) e 8 flowey_lib_common::run_cargo_build 3
1669 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::run_cargo_build 7
1670 displayName: cargo build pipette
1671 - bash: |-
1672 set -e
1673 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::run_split_debug_info 3
1674 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::run_cargo_build 8
1675 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::build_pipette 0
1676 $(FLOWEY_BIN) e 8 flowey_core::pipeline::artifact::publish 0
1677 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::init_cross_build 3
1678 displayName: split debug symbols
1679 - bash: |-
1680 set -e
1681 $(FLOWEY_BIN) e 8 flowey_lib_common::run_cargo_build 4
1682 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::run_cargo_build 9
1683 displayName: cargo build tmk_vmm
1684 - bash: |-
1685 set -e
1686 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::run_split_debug_info 4
1687 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::run_cargo_build 10
1688 $(FLOWEY_BIN) e 8 flowey_lib_hvlite::build_tmk_vmm 0
1689 $(FLOWEY_BIN) e 8 flowey_core::pipeline::artifact::publish 1
1690 displayName: split debug symbols
1691 - bash: $(FLOWEY_BIN) e 8 flowey_lib_common::cache 3
1692 displayName: 'validate cache entry: gh-release-download'
1693 - publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-linux-musl-pipette
1694 displayName: πŸŒΌπŸ“¦ Publish aarch64-linux-musl-pipette
1695 artifact: aarch64-linux-musl-pipette
1696 - publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-linux-musl-tmk_vmm
1697 displayName: πŸŒΌπŸ“¦ Publish aarch64-linux-musl-tmk_vmm
1698 artifact: aarch64-linux-musl-tmk_vmm
1699 - publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-openhcl-igvm
1700 displayName: πŸŒΌπŸ“¦ Publish aarch64-openhcl-igvm
1701 artifact: aarch64-openhcl-igvm
1702 - publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-openhcl-igvm-extras
1703 displayName: πŸŒΌπŸ“¦ Publish aarch64-openhcl-igvm-extras
1704 artifact: aarch64-openhcl-igvm-extras
1705- job: job7
1706 displayName: build artifacts [x64-linux]
1707 pool:
1708 demands:
1709 - ImageOverride -equals ubuntu2404-amd64-256gb
1710 name: openvmm-ado-intel-centralus
1711 dependsOn:
1712 - job0
1713 condition: and(succeeded(), not(canceled()))
1714 variables:
1715 - name: FLOWEY_TEMP_DIR
1716 value: $(Build.StagingDirectory)/.flowey-internal
1717 steps:
1718 - task: DownloadPipelineArtifact@2
1719 displayName: 🌼πŸ₯Ύ Download bootstrapped flowey
1720 inputs:
1721 artifact: _internal-flowey-bootstrap-x86_64-linux-uid-1
1722 path: $(FLOWEY_TEMP_DIR)/bootstrapped-flowey
1723 - bash: |
1724 set -e
1725 AgentTempDirNormal="$(FLOWEY_TEMP_DIR)"
1726 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
1727 echo "##vso[task.setvariable variable=AgentTempDirNormal;]$AgentTempDirNormal"
1728
1729 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey
1730 FLOWEY_BIN="$AgentTempDirNormal/bootstrapped-flowey/flowey"
1731 echo "##vso[task.setvariable variable=FLOWEY_BIN;]$FLOWEY_BIN"
1732 displayName: Set flowey path
1733 - bash: |
1734 set -e
1735 echo '"debug"' | $FLOWEY_BIN v 7 'FLOWEY_LOG' update
1736 echo "$(FLOWEY_TEMP_DIR)/work" | $FLOWEY_BIN v 7 '_internal_WORKING_DIR' --is-raw-string update
1737
1738 cat <<'EOF' | tr '[:upper:]' '[:lower:]' | $FLOWEY_BIN v 7 'verbose' update
1739 ${{ parameters.verbose }}
1740 EOF
1741 mkdir -p "$(AgentTempDirNormal)/publish_artifacts/x64-guest_test_uefi"
1742 echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/x64-guest_test_uefi" | $FLOWEY_BIN v 7 'artifact_publish_from_x64-guest_test_uefi' --is-raw-string update
1743 mkdir -p "$(AgentTempDirNormal)/publish_artifacts/x64-linux-igvmfilegen"
1744 echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/x64-linux-igvmfilegen" | $FLOWEY_BIN v 7 'artifact_publish_from_x64-linux-igvmfilegen' --is-raw-string update
1745 mkdir -p "$(AgentTempDirNormal)/publish_artifacts/x64-linux-ohcldiag-dev"
1746 echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/x64-linux-ohcldiag-dev" | $FLOWEY_BIN v 7 'artifact_publish_from_x64-linux-ohcldiag-dev' --is-raw-string update
1747 mkdir -p "$(AgentTempDirNormal)/publish_artifacts/x64-linux-openvmm"
1748 echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/x64-linux-openvmm" | $FLOWEY_BIN v 7 'artifact_publish_from_x64-linux-openvmm' --is-raw-string update
1749 mkdir -p "$(AgentTempDirNormal)/publish_artifacts/x64-linux-openvmm_vhost"
1750 echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/x64-linux-openvmm_vhost" | $FLOWEY_BIN v 7 'artifact_publish_from_x64-linux-openvmm_vhost' --is-raw-string update
1751 mkdir -p "$(AgentTempDirNormal)/publish_artifacts/x64-linux-tpm_guest_tests"
1752 echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/x64-linux-tpm_guest_tests" | $FLOWEY_BIN v 7 'artifact_publish_from_x64-linux-tpm_guest_tests' --is-raw-string update
1753 mkdir -p "$(AgentTempDirNormal)/publish_artifacts/x64-linux-vmgs_lib"
1754 echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/x64-linux-vmgs_lib" | $FLOWEY_BIN v 7 'artifact_publish_from_x64-linux-vmgs_lib' --is-raw-string update
1755 mkdir -p "$(AgentTempDirNormal)/publish_artifacts/x64-linux-vmgstool"
1756 echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/x64-linux-vmgstool" | $FLOWEY_BIN v 7 'artifact_publish_from_x64-linux-vmgstool' --is-raw-string update
1757 mkdir -p "$(AgentTempDirNormal)/publish_artifacts/x64-linux-vmm-tests-archive"
1758 echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/x64-linux-vmm-tests-archive" | $FLOWEY_BIN v 7 'artifact_publish_from_x64-linux-vmm-tests-archive' --is-raw-string update
1759 mkdir -p "$(AgentTempDirNormal)/publish_artifacts/x64-tmks"
1760 echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/x64-tmks" | $FLOWEY_BIN v 7 'artifact_publish_from_x64-tmks' --is-raw-string update
1761 displayName: πŸŒΌπŸ›« Initialize job
1762 - bash: $(FLOWEY_BIN) e 7 flowey_lib_common::install_rust 0
1763 displayName: install Rust
1764 - bash: |-
1765 set -e
1766 $(FLOWEY_BIN) e 7 flowey_lib_common::install_rust 1
1767 $(FLOWEY_BIN) e 7 flowey_lib_common::cfg_cargo_common_flags 0
1768 displayName: detect active toolchain
1769 - bash: $(FLOWEY_BIN) e 7 flowey_lib_common::install_dist_pkg 0
1770 displayName: checking if packages need to be installed
1771 - bash: $(FLOWEY_BIN) e 7 flowey_lib_common::install_dist_pkg 1
1772 displayName: installing packages
1773 - bash: |-
1774 set -e
1775 $(FLOWEY_BIN) e 7 flowey_lib_common::git_checkout 0
1776 $FLOWEY_BIN v 7 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:319:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:320:46 write-to-env ado floweyvar1
1777 $FLOWEY_BIN v 7 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:320:46' write-to-env ado FLOWEY_CONDITION
1778 displayName: check if openvmm needs to be cloned
1779 - checkout: self
1780 path: repo0
1781 fetchTags: false
1782 fetchDepth: 1
1783 persistCredentials: $(floweyvar1)
1784 submodules: recursive
1785 displayName: checkout repo openvmm
1786 condition: and(eq(variables['FLOWEY_CONDITION'], true), succeeded(), not(canceled()))
1787 - bash: |-
1788 set -e
1789 $(FLOWEY_BIN) e 7 flowey_lib_common::git_checkout 2
1790 $(FLOWEY_BIN) e 7 flowey_lib_hvlite::git_checkout_openvmm_repo 0
1791 displayName: report cloned repo directories
1792 - bash: $(FLOWEY_BIN) e 7 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
1793 displayName: set '-Dwarnings' in .cargo/config.toml
1794 - bash: $(FLOWEY_BIN) e 7 flowey_lib_common::download_gh_release 0
1795 displayName: create gh-release-download cache dir
1796 - bash: |-
1797 set -e
1798 $(FLOWEY_BIN) e 7 flowey_lib_common::cache 4
1799 $FLOWEY_BIN v 7 'flowey_lib_common::cache:8:flowey_lib_common/src/cache.rs:236:72' --is-raw-string write-to-env ado floweyvar4
1800 $FLOWEY_BIN v 7 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:237:72' --is-raw-string write-to-env ado floweyvar5
1801 displayName: Pre-processing cache vars
1802 - task: Cache@2
1803 inputs:
1804 key: $(floweyvar5)
1805 path: $(floweyvar4)
1806 cacheHitVar: FLOWEY_CACHE_HITVAR
1807 displayName: 'Restore cache: gh-release-download'
1808 - bash: |-
1809 set -e
1810 $FLOWEY_BIN v 7 'flowey_lib_common::cache:11:flowey_lib_common/src/cache.rs:300:70' --is-raw-string update --env-source FLOWEY_CACHE_HITVAR <<'EOF'
1811 $(FLOWEY_CACHE_HITVAR)
1812 EOF
1813 $(FLOWEY_BIN) e 7 flowey_lib_common::cache 6
1814 displayName: map ADO hitvar to flowey
1815 - bash: $(FLOWEY_BIN) e 7 flowey_lib_common::download_gh_release 1
1816 displayName: download artifacts from github releases
1817 - bash: |-
1818 set -e
1819 $(FLOWEY_BIN) e 7 flowey_lib_common::resolve_protoc 0
1820 $(FLOWEY_BIN) e 7 flowey_lib_hvlite::cfg_openvmm_magicpath 0
1821 displayName: unpack protoc
1822 - bash: |-
1823 set -e
1824 $(FLOWEY_BIN) e 7 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
1825 $(FLOWEY_BIN) e 7 flowey_lib_hvlite::init_cross_build 3
1826 displayName: symlink protoc
1827 - bash: |-
1828 set -e
1829 $(FLOWEY_BIN) e 7 flowey_lib_common::run_cargo_build 3
1830 $(FLOWEY_BIN) e 7 flowey_lib_hvlite::run_cargo_build 5
1831 displayName: cargo build openvmm
1832 - bash: |-
1833 set -e
1834 $(FLOWEY_BIN) e 7 flowey_lib_hvlite::run_split_debug_info 1
1835 $(FLOWEY_BIN) e 7 flowey_lib_hvlite::run_cargo_build 6
1836 $(FLOWEY_BIN) e 7 flowey_lib_hvlite::build_openvmm 0
1837 $(FLOWEY_BIN) e 7 flowey_core::pipeline::artifact::publish 0
1838 $(FLOWEY_BIN) e 7 flowey_lib_hvlite::init_cross_build 4
1839 displayName: split debug symbols
1840 - bash: |-
1841 set -e
1842 $(FLOWEY_BIN) e 7 flowey_lib_common::run_cargo_build 4
1843 $(FLOWEY_BIN) e 7 flowey_lib_hvlite::run_cargo_build 7
1844 displayName: cargo build openvmm_vhost
1845 - bash: |-
1846 set -e
1847 $(FLOWEY_BIN) e 7 flowey_lib_hvlite::run_split_debug_info 2
1848 $(FLOWEY_BIN) e 7 flowey_lib_hvlite::run_cargo_build 8
1849 $(FLOWEY_BIN) e 7 flowey_lib_hvlite::build_openvmm_vhost 0
1850 $(FLOWEY_BIN) e 7 flowey_core::pipeline::artifact::publish 1
1851 $(FLOWEY_BIN) e 7 flowey_lib_hvlite::init_cross_build 7
1852 displayName: split debug symbols
1853 - bash: |-
1854 set -e
1855 $(FLOWEY_BIN) e 7 flowey_lib_common::run_cargo_build 8
1856 $(FLOWEY_BIN) e 7 flowey_lib_hvlite::run_cargo_build 16
1857 displayName: cargo build vmgstool
1858 - bash: |-
1859 set -e
1860 $(FLOWEY_BIN) e 7 flowey_lib_hvlite::run_split_debug_info 5
1861 $(FLOWEY_BIN) e 7 flowey_lib_hvlite::run_cargo_build 17
1862 $(FLOWEY_BIN) e 7 flowey_lib_hvlite::build_vmgstool 0
1863 $(FLOWEY_BIN) e 7 flowey_core::pipeline::artifact::publish 2
1864 $(FLOWEY_BIN) e 7 flowey_lib_hvlite::init_cross_build 6
1865 displayName: split debug symbols
1866 - bash: |-
1867 set -e
1868 $(FLOWEY_BIN) e 7 flowey_lib_common::run_cargo_build 7
1869 $(FLOWEY_BIN) e 7 flowey_lib_hvlite::run_cargo_build 15
1870 $(FLOWEY_BIN) e 7 flowey_lib_hvlite::build_and_test_vmgs_lib 0
1871 displayName: cargo build vmgs_lib
1872 - bash: |-
1873 set -e
1874 $(FLOWEY_BIN) e 7 flowey_lib_hvlite::build_and_test_vmgs_lib 1
1875 $(FLOWEY_BIN) e 7 flowey_lib_hvlite::build_and_test_vmgs_lib 2
1876 $(FLOWEY_BIN) e 7 flowey_core::pipeline::artifact::publish 3
1877 $(FLOWEY_BIN) e 7 flowey_lib_hvlite::init_cross_build 8
1878 displayName: test vmgs_lib
1879 - bash: |-
1880 set -e
1881 $(FLOWEY_BIN) e 7 flowey_lib_common::run_cargo_build 1
1882 $(FLOWEY_BIN) e 7 flowey_lib_hvlite::run_cargo_build 1
1883 displayName: cargo build igvmfilegen
1884 - bash: |-
1885 set -e
1886 $(FLOWEY_BIN) e 7 flowey_lib_hvlite::run_split_debug_info 6
1887 $(FLOWEY_BIN) e 7 flowey_lib_hvlite::run_cargo_build 2
1888 $(FLOWEY_BIN) e 7 flowey_lib_hvlite::build_igvmfilegen 0
1889 $(FLOWEY_BIN) e 7 flowey_core::pipeline::artifact::publish 4
1890 $(FLOWEY_BIN) e 7 flowey_lib_hvlite::init_cross_build 2
1891 displayName: split debug symbols
1892 - bash: |-
1893 set -e
1894 $(FLOWEY_BIN) e 7 flowey_lib_common::run_cargo_build 2
1895 $(FLOWEY_BIN) e 7 flowey_lib_hvlite::run_cargo_build 3
1896 displayName: cargo build ohcldiag-dev
1897 - bash: |-
1898 set -e
1899 $(FLOWEY_BIN) e 7 flowey_lib_hvlite::run_split_debug_info 0
1900 $(FLOWEY_BIN) e 7 flowey_lib_hvlite::run_cargo_build 4
1901 $(FLOWEY_BIN) e 7 flowey_lib_hvlite::build_ohcldiag_dev 0
1902 $(FLOWEY_BIN) e 7 flowey_core::pipeline::artifact::publish 5
1903 $(FLOWEY_BIN) e 7 flowey_lib_hvlite::init_cross_build 9
1904 displayName: split debug symbols
1905 - bash: |-
1906 set -e
1907 $(FLOWEY_BIN) e 7 flowey_lib_common::run_cargo_build 0
1908 $(FLOWEY_BIN) e 7 flowey_lib_hvlite::run_cargo_build 0
1909 displayName: cargo build guest_test_uefi
1910 - bash: |-
1911 set -e
1912 $(FLOWEY_BIN) e 7 flowey_lib_hvlite::build_guest_test_uefi 0
1913 $(FLOWEY_BIN) e 7 flowey_core::pipeline::artifact::publish 6
1914 $(FLOWEY_BIN) e 7 flowey_lib_hvlite::init_cross_build 0
1915 $(FLOWEY_BIN) e 7 flowey_lib_hvlite::run_cargo_build 9
1916 $(FLOWEY_BIN) e 7 flowey_lib_hvlite::run_cargo_build 10
1917 displayName: build guest_test_uefi.img
1918 - bash: |-
1919 set -e
1920 $(FLOWEY_BIN) e 7 flowey_lib_common::run_cargo_build 5
1921 $(FLOWEY_BIN) e 7 flowey_lib_hvlite::run_cargo_build 11
1922 displayName: cargo build simple_tmk
1923 - bash: |-
1924 set -e
1925 $(FLOWEY_BIN) e 7 flowey_lib_hvlite::run_split_debug_info 3
1926 $(FLOWEY_BIN) e 7 flowey_lib_hvlite::run_cargo_build 12
1927 $(FLOWEY_BIN) e 7 flowey_lib_hvlite::build_tmks 0
1928 $(FLOWEY_BIN) e 7 flowey_core::pipeline::artifact::publish 7
1929 $(FLOWEY_BIN) e 7 flowey_lib_hvlite::init_cross_build 5
1930 displayName: split debug symbols
1931 - bash: |-
1932 set -e
1933 $(FLOWEY_BIN) e 7 flowey_lib_common::run_cargo_build 6
1934 $(FLOWEY_BIN) e 7 flowey_lib_hvlite::run_cargo_build 13
1935 displayName: cargo build tpm_guest_tests
1936 - bash: |-
1937 set -e
1938 $(FLOWEY_BIN) e 7 flowey_lib_hvlite::run_split_debug_info 4
1939 $(FLOWEY_BIN) e 7 flowey_lib_hvlite::run_cargo_build 14
1940 $(FLOWEY_BIN) e 7 flowey_lib_hvlite::build_tpm_guest_tests 0
1941 $(FLOWEY_BIN) e 7 flowey_core::pipeline::artifact::publish 8
1942 displayName: split debug symbols
1943 - bash: |-
1944 set -e
1945 $(FLOWEY_BIN) e 7 flowey_lib_common::download_cargo_nextest 0
1946 $(FLOWEY_BIN) e 7 flowey_lib_common::download_cargo_nextest 1
1947 $(FLOWEY_BIN) e 7 flowey_lib_common::download_cargo_nextest 2
1948 $(FLOWEY_BIN) e 7 flowey_lib_common::download_cargo_nextest 3
1949 displayName: create cargo-nextest cache dir
1950 - bash: |-
1951 set -e
1952 $(FLOWEY_BIN) e 7 flowey_lib_common::cache 0
1953 $FLOWEY_BIN v 7 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:236:72' --is-raw-string write-to-env ado floweyvar2
1954 $FLOWEY_BIN v 7 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:237:72' --is-raw-string write-to-env ado floweyvar3
1955 displayName: Pre-processing cache vars
1956 - task: Cache@2
1957 inputs:
1958 key: $(floweyvar3)
1959 path: $(floweyvar2)
1960 cacheHitVar: FLOWEY_CACHE_HITVAR
1961 displayName: 'Restore cache: cargo-nextest'
1962 - bash: |-
1963 set -e
1964 $FLOWEY_BIN v 7 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:300:70' --is-raw-string update --env-source FLOWEY_CACHE_HITVAR <<'EOF'
1965 $(FLOWEY_CACHE_HITVAR)
1966 EOF
1967 $(FLOWEY_BIN) e 7 flowey_lib_common::cache 2
1968 displayName: map ADO hitvar to flowey
1969 - bash: $(FLOWEY_BIN) e 7 flowey_lib_common::download_cargo_nextest 4
1970 displayName: downloading cargo-nextest
1971 - bash: $(FLOWEY_BIN) e 7 flowey_lib_common::install_rust 2
1972 displayName: report $CARGO_HOME
1973 - bash: |-
1974 set -e
1975 $(FLOWEY_BIN) e 7 flowey_lib_common::install_cargo_nextest 0
1976 $(FLOWEY_BIN) e 7 flowey_lib_hvlite::init_cross_build 1
1977 displayName: installing cargo-nextest
1978 - bash: |-
1979 set -e
1980 $(FLOWEY_BIN) e 7 flowey_lib_common::run_cargo_nextest_archive 0
1981 $(FLOWEY_BIN) e 7 flowey_lib_hvlite::build_nextest_vmm_tests 0
1982 $(FLOWEY_BIN) e 7 flowey_core::pipeline::artifact::publish 9
1983 displayName: build + archive 'vmm_tests' nextests
1984 - bash: $(FLOWEY_BIN) e 7 flowey_lib_common::cache 3
1985 displayName: 'validate cache entry: cargo-nextest'
1986 - bash: $(FLOWEY_BIN) e 7 flowey_lib_common::cache 7
1987 displayName: 'validate cache entry: gh-release-download'
1988 - publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/x64-guest_test_uefi
1989 displayName: πŸŒΌπŸ“¦ Publish x64-guest_test_uefi
1990 artifact: x64-guest_test_uefi
1991 - publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/x64-linux-igvmfilegen
1992 displayName: πŸŒΌπŸ“¦ Publish x64-linux-igvmfilegen
1993 artifact: x64-linux-igvmfilegen
1994 - publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/x64-linux-ohcldiag-dev
1995 displayName: πŸŒΌπŸ“¦ Publish x64-linux-ohcldiag-dev
1996 artifact: x64-linux-ohcldiag-dev
1997 - publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/x64-linux-openvmm
1998 displayName: πŸŒΌπŸ“¦ Publish x64-linux-openvmm
1999 artifact: x64-linux-openvmm
2000 - publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/x64-linux-openvmm_vhost
2001 displayName: πŸŒΌπŸ“¦ Publish x64-linux-openvmm_vhost
2002 artifact: x64-linux-openvmm_vhost
2003 - publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/x64-linux-tpm_guest_tests
2004 displayName: πŸŒΌπŸ“¦ Publish x64-linux-tpm_guest_tests
2005 artifact: x64-linux-tpm_guest_tests
2006 - publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/x64-linux-vmgs_lib
2007 displayName: πŸŒΌπŸ“¦ Publish x64-linux-vmgs_lib
2008 artifact: x64-linux-vmgs_lib
2009 - publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/x64-linux-vmgstool
2010 displayName: πŸŒΌπŸ“¦ Publish x64-linux-vmgstool
2011 artifact: x64-linux-vmgstool
2012 - publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/x64-linux-vmm-tests-archive
2013 displayName: πŸŒΌπŸ“¦ Publish x64-linux-vmm-tests-archive
2014 artifact: x64-linux-vmm-tests-archive
2015 - publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/x64-tmks
2016 displayName: πŸŒΌπŸ“¦ Publish x64-tmks
2017 artifact: x64-tmks
2018- job: job6
2019 displayName: build artifacts [aarch64-linux]
2020 pool:
2021 demands:
2022 - ImageOverride -equals ubuntu2404-amd64-256gb
2023 name: openvmm-ado-intel-centralus
2024 dependsOn:
2025 - job0
2026 condition: and(succeeded(), not(canceled()))
2027 variables:
2028 - name: FLOWEY_TEMP_DIR
2029 value: $(Build.StagingDirectory)/.flowey-internal
2030 steps:
2031 - task: DownloadPipelineArtifact@2
2032 displayName: 🌼πŸ₯Ύ Download bootstrapped flowey
2033 inputs:
2034 artifact: _internal-flowey-bootstrap-x86_64-linux-uid-1
2035 path: $(FLOWEY_TEMP_DIR)/bootstrapped-flowey
2036 - bash: |
2037 set -e
2038 AgentTempDirNormal="$(FLOWEY_TEMP_DIR)"
2039 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
2040 echo "##vso[task.setvariable variable=AgentTempDirNormal;]$AgentTempDirNormal"
2041
2042 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey
2043 FLOWEY_BIN="$AgentTempDirNormal/bootstrapped-flowey/flowey"
2044 echo "##vso[task.setvariable variable=FLOWEY_BIN;]$FLOWEY_BIN"
2045 displayName: Set flowey path
2046 - bash: |
2047 set -e
2048 echo '"debug"' | $FLOWEY_BIN v 6 'FLOWEY_LOG' update
2049 echo "$(FLOWEY_TEMP_DIR)/work" | $FLOWEY_BIN v 6 '_internal_WORKING_DIR' --is-raw-string update
2050
2051 cat <<'EOF' | tr '[:upper:]' '[:lower:]' | $FLOWEY_BIN v 6 'verbose' update
2052 ${{ parameters.verbose }}
2053 EOF
2054 mkdir -p "$(AgentTempDirNormal)/publish_artifacts/aarch64-guest_test_uefi"
2055 echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-guest_test_uefi" | $FLOWEY_BIN v 6 'artifact_publish_from_aarch64-guest_test_uefi' --is-raw-string update
2056 mkdir -p "$(AgentTempDirNormal)/publish_artifacts/aarch64-linux-igvmfilegen"
2057 echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-linux-igvmfilegen" | $FLOWEY_BIN v 6 'artifact_publish_from_aarch64-linux-igvmfilegen' --is-raw-string update
2058 mkdir -p "$(AgentTempDirNormal)/publish_artifacts/aarch64-linux-ohcldiag-dev"
2059 echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-linux-ohcldiag-dev" | $FLOWEY_BIN v 6 'artifact_publish_from_aarch64-linux-ohcldiag-dev' --is-raw-string update
2060 mkdir -p "$(AgentTempDirNormal)/publish_artifacts/aarch64-linux-openvmm"
2061 echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-linux-openvmm" | $FLOWEY_BIN v 6 'artifact_publish_from_aarch64-linux-openvmm' --is-raw-string update
2062 mkdir -p "$(AgentTempDirNormal)/publish_artifacts/aarch64-linux-openvmm_vhost"
2063 echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-linux-openvmm_vhost" | $FLOWEY_BIN v 6 'artifact_publish_from_aarch64-linux-openvmm_vhost' --is-raw-string update
2064 mkdir -p "$(AgentTempDirNormal)/publish_artifacts/aarch64-linux-tpm_guest_tests"
2065 echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-linux-tpm_guest_tests" | $FLOWEY_BIN v 6 'artifact_publish_from_aarch64-linux-tpm_guest_tests' --is-raw-string update
2066 mkdir -p "$(AgentTempDirNormal)/publish_artifacts/aarch64-linux-vmgs_lib"
2067 echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-linux-vmgs_lib" | $FLOWEY_BIN v 6 'artifact_publish_from_aarch64-linux-vmgs_lib' --is-raw-string update
2068 mkdir -p "$(AgentTempDirNormal)/publish_artifacts/aarch64-linux-vmgstool"
2069 echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-linux-vmgstool" | $FLOWEY_BIN v 6 'artifact_publish_from_aarch64-linux-vmgstool' --is-raw-string update
2070 mkdir -p "$(AgentTempDirNormal)/publish_artifacts/aarch64-tmks"
2071 echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-tmks" | $FLOWEY_BIN v 6 'artifact_publish_from_aarch64-tmks' --is-raw-string update
2072 displayName: πŸŒΌπŸ›« Initialize job
2073 - bash: $(FLOWEY_BIN) e 6 flowey_lib_common::install_rust 0
2074 displayName: install Rust
2075 - bash: |-
2076 set -e
2077 $(FLOWEY_BIN) e 6 flowey_lib_common::install_rust 1
2078 $(FLOWEY_BIN) e 6 flowey_lib_common::cfg_cargo_common_flags 0
2079 displayName: detect active toolchain
2080 - bash: $(FLOWEY_BIN) e 6 flowey_lib_common::install_dist_pkg 0
2081 displayName: checking if packages need to be installed
2082 - bash: $(FLOWEY_BIN) e 6 flowey_lib_common::install_dist_pkg 1
2083 displayName: installing packages
2084 - bash: |-
2085 set -e
2086 $(FLOWEY_BIN) e 6 flowey_lib_common::git_checkout 0
2087 $FLOWEY_BIN v 6 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:319:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:320:46 write-to-env ado floweyvar1
2088 $FLOWEY_BIN v 6 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:320:46' write-to-env ado FLOWEY_CONDITION
2089 displayName: check if openvmm needs to be cloned
2090 - checkout: self
2091 path: repo0
2092 fetchTags: false
2093 fetchDepth: 1
2094 persistCredentials: $(floweyvar1)
2095 submodules: recursive
2096 displayName: checkout repo openvmm
2097 condition: and(eq(variables['FLOWEY_CONDITION'], true), succeeded(), not(canceled()))
2098 - bash: |-
2099 set -e
2100 $(FLOWEY_BIN) e 6 flowey_lib_common::git_checkout 2
2101 $(FLOWEY_BIN) e 6 flowey_lib_hvlite::git_checkout_openvmm_repo 0
2102 displayName: report cloned repo directories
2103 - bash: $(FLOWEY_BIN) e 6 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
2104 displayName: set '-Dwarnings' in .cargo/config.toml
2105 - bash: $(FLOWEY_BIN) e 6 flowey_lib_common::download_gh_release 0
2106 displayName: create gh-release-download cache dir
2107 - bash: |-
2108 set -e
2109 $(FLOWEY_BIN) e 6 flowey_lib_common::cache 0
2110 $FLOWEY_BIN v 6 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:236:72' --is-raw-string write-to-env ado floweyvar2
2111 $FLOWEY_BIN v 6 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:237:72' --is-raw-string write-to-env ado floweyvar3
2112 displayName: Pre-processing cache vars
2113 - task: Cache@2
2114 inputs:
2115 key: $(floweyvar3)
2116 path: $(floweyvar2)
2117 cacheHitVar: FLOWEY_CACHE_HITVAR
2118 displayName: 'Restore cache: gh-release-download'
2119 - bash: |-
2120 set -e
2121 $FLOWEY_BIN v 6 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:300:70' --is-raw-string update --env-source FLOWEY_CACHE_HITVAR <<'EOF'
2122 $(FLOWEY_CACHE_HITVAR)
2123 EOF
2124 $(FLOWEY_BIN) e 6 flowey_lib_common::cache 2
2125 displayName: map ADO hitvar to flowey
2126 - bash: $(FLOWEY_BIN) e 6 flowey_lib_common::download_gh_release 1
2127 displayName: download artifacts from github releases
2128 - bash: |-
2129 set -e
2130 $(FLOWEY_BIN) e 6 flowey_lib_common::resolve_protoc 0
2131 $(FLOWEY_BIN) e 6 flowey_lib_hvlite::cfg_openvmm_magicpath 0
2132 displayName: unpack protoc
2133 - bash: |-
2134 set -e
2135 $(FLOWEY_BIN) e 6 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
2136 $(FLOWEY_BIN) e 6 flowey_lib_hvlite::init_cross_build 2
2137 displayName: symlink protoc
2138 - bash: |-
2139 set -e
2140 $(FLOWEY_BIN) e 6 flowey_lib_common::run_cargo_build 3
2141 $(FLOWEY_BIN) e 6 flowey_lib_hvlite::run_cargo_build 5
2142 displayName: cargo build openvmm
2143 - bash: |-
2144 set -e
2145 $(FLOWEY_BIN) e 6 flowey_lib_hvlite::run_split_debug_info 1
2146 $(FLOWEY_BIN) e 6 flowey_lib_hvlite::run_cargo_build 6
2147 $(FLOWEY_BIN) e 6 flowey_lib_hvlite::build_openvmm 0
2148 $(FLOWEY_BIN) e 6 flowey_core::pipeline::artifact::publish 0
2149 $(FLOWEY_BIN) e 6 flowey_lib_hvlite::init_cross_build 3
2150 displayName: split debug symbols
2151 - bash: |-
2152 set -e
2153 $(FLOWEY_BIN) e 6 flowey_lib_common::run_cargo_build 4
2154 $(FLOWEY_BIN) e 6 flowey_lib_hvlite::run_cargo_build 7
2155 displayName: cargo build openvmm_vhost
2156 - bash: |-
2157 set -e
2158 $(FLOWEY_BIN) e 6 flowey_lib_hvlite::run_split_debug_info 2
2159 $(FLOWEY_BIN) e 6 flowey_lib_hvlite::run_cargo_build 8
2160 $(FLOWEY_BIN) e 6 flowey_lib_hvlite::build_openvmm_vhost 0
2161 $(FLOWEY_BIN) e 6 flowey_core::pipeline::artifact::publish 1
2162 $(FLOWEY_BIN) e 6 flowey_lib_hvlite::init_cross_build 6
2163 displayName: split debug symbols
2164 - bash: |-
2165 set -e
2166 $(FLOWEY_BIN) e 6 flowey_lib_common::run_cargo_build 8
2167 $(FLOWEY_BIN) e 6 flowey_lib_hvlite::run_cargo_build 16
2168 displayName: cargo build vmgstool
2169 - bash: |-
2170 set -e
2171 $(FLOWEY_BIN) e 6 flowey_lib_hvlite::run_split_debug_info 5
2172 $(FLOWEY_BIN) e 6 flowey_lib_hvlite::run_cargo_build 17
2173 $(FLOWEY_BIN) e 6 flowey_lib_hvlite::build_vmgstool 0
2174 $(FLOWEY_BIN) e 6 flowey_core::pipeline::artifact::publish 2
2175 $(FLOWEY_BIN) e 6 flowey_lib_hvlite::init_cross_build 5
2176 displayName: split debug symbols
2177 - bash: |-
2178 set -e
2179 $(FLOWEY_BIN) e 6 flowey_lib_common::run_cargo_build 7
2180 $(FLOWEY_BIN) e 6 flowey_lib_hvlite::run_cargo_build 15
2181 $(FLOWEY_BIN) e 6 flowey_lib_hvlite::build_and_test_vmgs_lib 0
2182 $(FLOWEY_BIN) e 6 flowey_lib_hvlite::build_and_test_vmgs_lib 1
2183 $(FLOWEY_BIN) e 6 flowey_core::pipeline::artifact::publish 3
2184 $(FLOWEY_BIN) e 6 flowey_lib_hvlite::init_cross_build 7
2185 displayName: cargo build vmgs_lib
2186 - bash: |-
2187 set -e
2188 $(FLOWEY_BIN) e 6 flowey_lib_common::run_cargo_build 1
2189 $(FLOWEY_BIN) e 6 flowey_lib_hvlite::run_cargo_build 1
2190 displayName: cargo build igvmfilegen
2191 - bash: |-
2192 set -e
2193 $(FLOWEY_BIN) e 6 flowey_lib_hvlite::run_split_debug_info 6
2194 $(FLOWEY_BIN) e 6 flowey_lib_hvlite::run_cargo_build 2
2195 $(FLOWEY_BIN) e 6 flowey_lib_hvlite::build_igvmfilegen 0
2196 $(FLOWEY_BIN) e 6 flowey_core::pipeline::artifact::publish 4
2197 $(FLOWEY_BIN) e 6 flowey_lib_hvlite::init_cross_build 1
2198 displayName: split debug symbols
2199 - bash: |-
2200 set -e
2201 $(FLOWEY_BIN) e 6 flowey_lib_common::run_cargo_build 2
2202 $(FLOWEY_BIN) e 6 flowey_lib_hvlite::run_cargo_build 3
2203 displayName: cargo build ohcldiag-dev
2204 - bash: |-
2205 set -e
2206 $(FLOWEY_BIN) e 6 flowey_lib_hvlite::run_split_debug_info 0
2207 $(FLOWEY_BIN) e 6 flowey_lib_hvlite::run_cargo_build 4
2208 $(FLOWEY_BIN) e 6 flowey_lib_hvlite::build_ohcldiag_dev 0
2209 $(FLOWEY_BIN) e 6 flowey_core::pipeline::artifact::publish 5
2210 $(FLOWEY_BIN) e 6 flowey_lib_hvlite::init_cross_build 8
2211 displayName: split debug symbols
2212 - bash: |-
2213 set -e
2214 $(FLOWEY_BIN) e 6 flowey_lib_common::run_cargo_build 0
2215 $(FLOWEY_BIN) e 6 flowey_lib_hvlite::run_cargo_build 0
2216 displayName: cargo build guest_test_uefi
2217 - bash: |-
2218 set -e
2219 $(FLOWEY_BIN) e 6 flowey_lib_hvlite::build_guest_test_uefi 0
2220 $(FLOWEY_BIN) e 6 flowey_core::pipeline::artifact::publish 6
2221 $(FLOWEY_BIN) e 6 flowey_lib_hvlite::init_cross_build 0
2222 $(FLOWEY_BIN) e 6 flowey_lib_hvlite::run_cargo_build 9
2223 $(FLOWEY_BIN) e 6 flowey_lib_hvlite::run_cargo_build 10
2224 displayName: build guest_test_uefi.img
2225 - bash: |-
2226 set -e
2227 $(FLOWEY_BIN) e 6 flowey_lib_common::run_cargo_build 5
2228 $(FLOWEY_BIN) e 6 flowey_lib_hvlite::run_cargo_build 11
2229 displayName: cargo build simple_tmk
2230 - bash: |-
2231 set -e
2232 $(FLOWEY_BIN) e 6 flowey_lib_hvlite::run_split_debug_info 3
2233 $(FLOWEY_BIN) e 6 flowey_lib_hvlite::run_cargo_build 12
2234 $(FLOWEY_BIN) e 6 flowey_lib_hvlite::build_tmks 0
2235 $(FLOWEY_BIN) e 6 flowey_core::pipeline::artifact::publish 7
2236 $(FLOWEY_BIN) e 6 flowey_lib_hvlite::init_cross_build 4
2237 displayName: split debug symbols
2238 - bash: |-
2239 set -e
2240 $(FLOWEY_BIN) e 6 flowey_lib_common::run_cargo_build 6
2241 $(FLOWEY_BIN) e 6 flowey_lib_hvlite::run_cargo_build 13
2242 displayName: cargo build tpm_guest_tests
2243 - bash: |-
2244 set -e
2245 $(FLOWEY_BIN) e 6 flowey_lib_hvlite::run_split_debug_info 4
2246 $(FLOWEY_BIN) e 6 flowey_lib_hvlite::run_cargo_build 14
2247 $(FLOWEY_BIN) e 6 flowey_lib_hvlite::build_tpm_guest_tests 0
2248 $(FLOWEY_BIN) e 6 flowey_core::pipeline::artifact::publish 8
2249 displayName: split debug symbols
2250 - bash: $(FLOWEY_BIN) e 6 flowey_lib_common::cache 3
2251 displayName: 'validate cache entry: gh-release-download'
2252 - publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-guest_test_uefi
2253 displayName: πŸŒΌπŸ“¦ Publish aarch64-guest_test_uefi
2254 artifact: aarch64-guest_test_uefi
2255 - publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-linux-igvmfilegen
2256 displayName: πŸŒΌπŸ“¦ Publish aarch64-linux-igvmfilegen
2257 artifact: aarch64-linux-igvmfilegen
2258 - publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-linux-ohcldiag-dev
2259 displayName: πŸŒΌπŸ“¦ Publish aarch64-linux-ohcldiag-dev
2260 artifact: aarch64-linux-ohcldiag-dev
2261 - publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-linux-openvmm
2262 displayName: πŸŒΌπŸ“¦ Publish aarch64-linux-openvmm
2263 artifact: aarch64-linux-openvmm
2264 - publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-linux-openvmm_vhost
2265 displayName: πŸŒΌπŸ“¦ Publish aarch64-linux-openvmm_vhost
2266 artifact: aarch64-linux-openvmm_vhost
2267 - publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-linux-tpm_guest_tests
2268 displayName: πŸŒΌπŸ“¦ Publish aarch64-linux-tpm_guest_tests
2269 artifact: aarch64-linux-tpm_guest_tests
2270 - publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-linux-vmgs_lib
2271 displayName: πŸŒΌπŸ“¦ Publish aarch64-linux-vmgs_lib
2272 artifact: aarch64-linux-vmgs_lib
2273 - publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-linux-vmgstool
2274 displayName: πŸŒΌπŸ“¦ Publish aarch64-linux-vmgstool
2275 artifact: aarch64-linux-vmgstool
2276 - publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-tmks
2277 displayName: πŸŒΌπŸ“¦ Publish aarch64-tmks
2278 artifact: aarch64-tmks
2279- job: job5
2280 displayName: build artifacts (for VMM tests) [x64-windows]
2281 pool:
2282 demands:
2283 - ImageOverride -equals win-amd64
2284 name: openvmm-ado-intel-centralus
2285 dependsOn:
2286 - job0
2287 condition: and(succeeded(), not(canceled()))
2288 variables:
2289 - name: FLOWEY_TEMP_DIR
2290 value: $(Build.StagingDirectory)/.flowey-internal
2291 steps:
2292 - bash: |
2293 set -x
2294 i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
2295 sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
2296 curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.94.0 -y
2297 . "$HOME/.cargo/env"
2298 echo '##vso[task.prependpath]$(HOME)/.cargo/bin'
2299 condition: eq(variables['Agent.OS'], 'Linux')
2300 displayName: rustup (Linux)
2301 - bash: |
2302 set -x
2303 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
2304 ./rustup-init.exe -y --default-toolchain=1.94.0
2305 echo '##vso[task.prependpath]$(USERPROFILE)\\.cargo\\bin'
2306 condition: eq(variables['Agent.OS'], 'Windows_NT')
2307 displayName: rustup (Windows X64)
2308 - bash: |
2309 set -x
2310 rustup show
2311 displayName: Verify rustup installation
2312 - checkout: self
2313 fetchTags: false
2314 fetchDepth: 1
2315 path: flowey_bootstrap
2316 - bash: CARGO_INCREMENTAL=0 RUSTC_BOOTSTRAP=1 RUSTFLAGS="-Z threads=8" cargo build -p flowey_hvlite --target x86_64-pc-windows-msvc --profile flowey-ci
2317 workingDirectory: ../flowey_bootstrap
2318 displayName: Build flowey
2319 - bash: |
2320 mkdir ./flowey_bootstrap_temp
2321 mv ./ci-flowey/openvmm-pr.yaml ./flowey_bootstrap_temp/pipeline.yaml
2322 mv ./ci-flowey/openvmm-pr.json ./flowey_bootstrap_temp/pipeline.json
2323 mv target/x86_64-pc-windows-msvc/flowey-ci/flowey_hvlite.exe ./flowey_bootstrap_temp/flowey.exe
2324 workingDirectory: ../flowey_bootstrap
2325 displayName: Stage flowey artifact
2326 - task: CopyFiles@2
2327 displayName: Copy flowey artifact
2328 inputs:
2329 SourceFolder: ../flowey_bootstrap/flowey_bootstrap_temp
2330 TargetFolder: $(FLOWEY_TEMP_DIR)/bootstrapped-flowey
2331 - bash: rm -rf ./flowey_bootstrap_temp
2332 workingDirectory: ../flowey_bootstrap
2333 displayName: Cleanup staged flowey artifact
2334 - bash: |
2335 set -e
2336 AgentTempDirNormal="$(FLOWEY_TEMP_DIR)"
2337 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
2338 echo "##vso[task.setvariable variable=AgentTempDirNormal;]$AgentTempDirNormal"
2339
2340 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe
2341 FLOWEY_BIN="$AgentTempDirNormal/bootstrapped-flowey/flowey.exe"
2342 echo "##vso[task.setvariable variable=FLOWEY_BIN;]$FLOWEY_BIN"
2343 displayName: Set flowey path
2344 - bash: |-
2345 ESCAPED_AGENT_TEMPDIR=$(
2346 cat <<'EOF' | sed 's/\\/\\\\/g'
2347 $(FLOWEY_TEMP_DIR)
2348 EOF
2349 )
2350 $(FLOWEY_BIN) pipeline ado --runtime $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out ci-flowey/openvmm-pr.yaml ci checkin-gates --config=pr
2351 displayName: πŸŒΌπŸ”Ž Self-check YAML
2352 - bash: |
2353 set -e
2354 echo '"debug"' | $FLOWEY_BIN v 5 'FLOWEY_LOG' update
2355 echo "$(FLOWEY_TEMP_DIR)/work" | $FLOWEY_BIN v 5 '_internal_WORKING_DIR' --is-raw-string update
2356
2357 cat <<'EOF' | tr '[:upper:]' '[:lower:]' | $FLOWEY_BIN v 5 'verbose' update
2358 ${{ parameters.verbose }}
2359 EOF
2360 mkdir -p "$(AgentTempDirNormal)/publish_artifacts/x64-windows-openvmm"
2361 echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/x64-windows-openvmm" | $FLOWEY_BIN v 5 'artifact_publish_from_x64-windows-openvmm' --is-raw-string update
2362 mkdir -p "$(AgentTempDirNormal)/publish_artifacts/x64-windows-pipette"
2363 echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/x64-windows-pipette" | $FLOWEY_BIN v 5 'artifact_publish_from_x64-windows-pipette' --is-raw-string update
2364 mkdir -p "$(AgentTempDirNormal)/publish_artifacts/x64-windows-prep_steps"
2365 echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/x64-windows-prep_steps" | $FLOWEY_BIN v 5 'artifact_publish_from_x64-windows-prep_steps' --is-raw-string update
2366 mkdir -p "$(AgentTempDirNormal)/publish_artifacts/x64-windows-test_igvm_agent_rpc_server"
2367 echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/x64-windows-test_igvm_agent_rpc_server" | $FLOWEY_BIN v 5 'artifact_publish_from_x64-windows-test_igvm_agent_rpc_server' --is-raw-string update
2368 mkdir -p "$(AgentTempDirNormal)/publish_artifacts/x64-windows-tmk_vmm"
2369 echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/x64-windows-tmk_vmm" | $FLOWEY_BIN v 5 'artifact_publish_from_x64-windows-tmk_vmm' --is-raw-string update
2370 mkdir -p "$(AgentTempDirNormal)/publish_artifacts/x64-windows-tpm_guest_tests"
2371 echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/x64-windows-tpm_guest_tests" | $FLOWEY_BIN v 5 'artifact_publish_from_x64-windows-tpm_guest_tests' --is-raw-string update
2372 mkdir -p "$(AgentTempDirNormal)/publish_artifacts/x64-windows-vmgstool"
2373 echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/x64-windows-vmgstool" | $FLOWEY_BIN v 5 'artifact_publish_from_x64-windows-vmgstool' --is-raw-string update
2374 mkdir -p "$(AgentTempDirNormal)/publish_artifacts/x64-windows-vmm-tests-archive"
2375 echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/x64-windows-vmm-tests-archive" | $FLOWEY_BIN v 5 'artifact_publish_from_x64-windows-vmm-tests-archive' --is-raw-string update
2376 displayName: πŸŒΌπŸ›« Initialize job
2377 - bash: $(FLOWEY_BIN) e 5 flowey_lib_common::install_rust 0
2378 displayName: install Rust
2379 - bash: |-
2380 set -e
2381 $(FLOWEY_BIN) e 5 flowey_lib_common::install_rust 1
2382 $(FLOWEY_BIN) e 5 flowey_lib_common::cfg_cargo_common_flags 0
2383 displayName: detect active toolchain
2384 - bash: |-
2385 set -e
2386 $(FLOWEY_BIN) e 5 flowey_lib_common::git_checkout 0
2387 $FLOWEY_BIN v 5 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:319:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:320:46 write-to-env ado floweyvar1
2388 $FLOWEY_BIN v 5 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:320:46' write-to-env ado FLOWEY_CONDITION
2389 displayName: check if openvmm needs to be cloned
2390 - checkout: self
2391 path: repo0
2392 fetchTags: false
2393 fetchDepth: 1
2394 persistCredentials: $(floweyvar1)
2395 submodules: recursive
2396 displayName: checkout repo openvmm
2397 condition: and(eq(variables['FLOWEY_CONDITION'], true), succeeded(), not(canceled()))
2398 - bash: |-
2399 set -e
2400 $(FLOWEY_BIN) e 5 flowey_lib_common::git_checkout 2
2401 $(FLOWEY_BIN) e 5 flowey_lib_hvlite::git_checkout_openvmm_repo 0
2402 displayName: report cloned repo directories
2403 - bash: $(FLOWEY_BIN) e 5 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
2404 displayName: set '-Dwarnings' in .cargo/config.toml
2405 - bash: $(FLOWEY_BIN) e 5 flowey_lib_common::download_gh_release 0
2406 displayName: create gh-release-download cache dir
2407 - bash: |-
2408 set -e
2409 $(FLOWEY_BIN) e 5 flowey_lib_common::cache 4
2410 $FLOWEY_BIN v 5 'flowey_lib_common::cache:8:flowey_lib_common/src/cache.rs:236:72' --is-raw-string write-to-env ado floweyvar4
2411 $FLOWEY_BIN v 5 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:237:72' --is-raw-string write-to-env ado floweyvar5
2412 displayName: Pre-processing cache vars
2413 - task: Cache@2
2414 inputs:
2415 key: $(floweyvar5)
2416 path: $(floweyvar4)
2417 cacheHitVar: FLOWEY_CACHE_HITVAR
2418 displayName: 'Restore cache: gh-release-download'
2419 - bash: |-
2420 set -e
2421 $FLOWEY_BIN v 5 'flowey_lib_common::cache:11:flowey_lib_common/src/cache.rs:300:70' --is-raw-string update --env-source FLOWEY_CACHE_HITVAR <<'EOF'
2422 $(FLOWEY_CACHE_HITVAR)
2423 EOF
2424 $(FLOWEY_BIN) e 5 flowey_lib_common::cache 6
2425 displayName: map ADO hitvar to flowey
2426 - bash: $(FLOWEY_BIN) e 5 flowey_lib_common::download_gh_release 1
2427 displayName: download artifacts from github releases
2428 - bash: |-
2429 set -e
2430 $(FLOWEY_BIN) e 5 flowey_lib_common::resolve_protoc 0
2431 $(FLOWEY_BIN) e 5 flowey_lib_hvlite::cfg_openvmm_magicpath 0
2432 displayName: unpack protoc
2433 - bash: |-
2434 set -e
2435 $(FLOWEY_BIN) e 5 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
2436 $(FLOWEY_BIN) e 5 flowey_lib_hvlite::init_cross_build 5
2437 displayName: symlink protoc
2438 - bash: |-
2439 set -e
2440 $(FLOWEY_BIN) e 5 flowey_lib_common::run_cargo_build 0
2441 $(FLOWEY_BIN) e 5 flowey_lib_hvlite::run_cargo_build 0
2442 $(FLOWEY_BIN) e 5 flowey_lib_hvlite::build_openvmm 0
2443 $(FLOWEY_BIN) e 5 flowey_core::pipeline::artifact::publish 0
2444 $(FLOWEY_BIN) e 5 flowey_lib_hvlite::init_cross_build 6
2445 displayName: cargo build openvmm
2446 - bash: |-
2447 set -e
2448 $(FLOWEY_BIN) e 5 flowey_lib_common::run_cargo_build 1
2449 $(FLOWEY_BIN) e 5 flowey_lib_hvlite::run_cargo_build 1
2450 $(FLOWEY_BIN) e 5 flowey_lib_hvlite::build_pipette 0
2451 $(FLOWEY_BIN) e 5 flowey_core::pipeline::artifact::publish 1
2452 $(FLOWEY_BIN) e 5 flowey_lib_hvlite::init_cross_build 2
2453 displayName: cargo build pipette
2454 - bash: |-
2455 set -e
2456 $(FLOWEY_BIN) e 5 flowey_lib_common::run_cargo_build 4
2457 $(FLOWEY_BIN) e 5 flowey_lib_hvlite::run_cargo_build 6
2458 $(FLOWEY_BIN) e 5 flowey_lib_hvlite::build_tmk_vmm 0
2459 $(FLOWEY_BIN) e 5 flowey_core::pipeline::artifact::publish 2
2460 $(FLOWEY_BIN) e 5 flowey_lib_hvlite::init_cross_build 7
2461 displayName: cargo build tmk_vmm
2462 - bash: |-
2463 set -e
2464 $(FLOWEY_BIN) e 5 flowey_lib_common::run_cargo_build 2
2465 $(FLOWEY_BIN) e 5 flowey_lib_hvlite::run_cargo_build 2
2466 $(FLOWEY_BIN) e 5 flowey_lib_hvlite::build_prep_steps 0
2467 $(FLOWEY_BIN) e 5 flowey_core::pipeline::artifact::publish 3
2468 $(FLOWEY_BIN) e 5 flowey_lib_hvlite::init_cross_build 4
2469 displayName: cargo build prep_steps
2470 - bash: |-
2471 set -e
2472 $(FLOWEY_BIN) e 5 flowey_lib_common::run_cargo_build 6
2473 $(FLOWEY_BIN) e 5 flowey_lib_hvlite::run_cargo_build 10
2474 $(FLOWEY_BIN) e 5 flowey_lib_hvlite::build_vmgstool 0
2475 $(FLOWEY_BIN) e 5 flowey_core::pipeline::artifact::publish 4
2476 $(FLOWEY_BIN) e 5 flowey_lib_hvlite::init_cross_build 3
2477 $(FLOWEY_BIN) e 5 flowey_lib_hvlite::run_cargo_build 7
2478 $(FLOWEY_BIN) e 5 flowey_lib_hvlite::run_cargo_build 8
2479 displayName: cargo build vmgstool
2480 - bash: |-
2481 set -e
2482 $(FLOWEY_BIN) e 5 flowey_lib_common::run_cargo_build 5
2483 $(FLOWEY_BIN) e 5 flowey_lib_hvlite::run_cargo_build 9
2484 $(FLOWEY_BIN) e 5 flowey_lib_hvlite::build_tpm_guest_tests 0
2485 $(FLOWEY_BIN) e 5 flowey_core::pipeline::artifact::publish 5
2486 $(FLOWEY_BIN) e 5 flowey_lib_hvlite::init_cross_build 1
2487 $(FLOWEY_BIN) e 5 flowey_lib_hvlite::run_cargo_build 3
2488 $(FLOWEY_BIN) e 5 flowey_lib_hvlite::run_cargo_build 4
2489 displayName: cargo build tpm_guest_tests
2490 - bash: |-
2491 set -e
2492 $(FLOWEY_BIN) e 5 flowey_lib_common::run_cargo_build 3
2493 $(FLOWEY_BIN) e 5 flowey_lib_hvlite::run_cargo_build 5
2494 $(FLOWEY_BIN) e 5 flowey_lib_hvlite::build_test_igvm_agent_rpc_server 0
2495 $(FLOWEY_BIN) e 5 flowey_core::pipeline::artifact::publish 6
2496 displayName: cargo build test_igvm_agent_rpc_server
2497 - bash: |-
2498 set -e
2499 $(FLOWEY_BIN) e 5 flowey_lib_common::download_cargo_nextest 0
2500 $(FLOWEY_BIN) e 5 flowey_lib_common::download_cargo_nextest 1
2501 $(FLOWEY_BIN) e 5 flowey_lib_common::download_cargo_nextest 2
2502 $(FLOWEY_BIN) e 5 flowey_lib_common::download_cargo_nextest 3
2503 displayName: create cargo-nextest cache dir
2504 - bash: |-
2505 set -e
2506 $(FLOWEY_BIN) e 5 flowey_lib_common::cache 0
2507 $FLOWEY_BIN v 5 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:236:72' --is-raw-string write-to-env ado floweyvar2
2508 $FLOWEY_BIN v 5 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:237:72' --is-raw-string write-to-env ado floweyvar3
2509 displayName: Pre-processing cache vars
2510 - task: Cache@2
2511 inputs:
2512 key: $(floweyvar3)
2513 path: $(floweyvar2)
2514 cacheHitVar: FLOWEY_CACHE_HITVAR
2515 displayName: 'Restore cache: cargo-nextest'
2516 - bash: |-
2517 set -e
2518 $FLOWEY_BIN v 5 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:300:70' --is-raw-string update --env-source FLOWEY_CACHE_HITVAR <<'EOF'
2519 $(FLOWEY_CACHE_HITVAR)
2520 EOF
2521 $(FLOWEY_BIN) e 5 flowey_lib_common::cache 2
2522 displayName: map ADO hitvar to flowey
2523 - bash: $(FLOWEY_BIN) e 5 flowey_lib_common::download_cargo_nextest 4
2524 displayName: downloading cargo-nextest
2525 - bash: $(FLOWEY_BIN) e 5 flowey_lib_common::install_rust 2
2526 displayName: report $CARGO_HOME
2527 - bash: |-
2528 set -e
2529 $(FLOWEY_BIN) e 5 flowey_lib_common::install_cargo_nextest 0
2530 $(FLOWEY_BIN) e 5 flowey_lib_hvlite::init_cross_build 0
2531 displayName: installing cargo-nextest
2532 - bash: |-
2533 set -e
2534 $(FLOWEY_BIN) e 5 flowey_lib_common::run_cargo_nextest_archive 0
2535 $(FLOWEY_BIN) e 5 flowey_lib_hvlite::build_nextest_vmm_tests 0
2536 $(FLOWEY_BIN) e 5 flowey_core::pipeline::artifact::publish 7
2537 displayName: build + archive 'vmm_tests' nextests
2538 - bash: $(FLOWEY_BIN) e 5 flowey_lib_common::cache 3
2539 displayName: 'validate cache entry: cargo-nextest'
2540 - bash: $(FLOWEY_BIN) e 5 flowey_lib_common::cache 7
2541 displayName: 'validate cache entry: gh-release-download'
2542 - publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/x64-windows-openvmm
2543 displayName: πŸŒΌπŸ“¦ Publish x64-windows-openvmm
2544 artifact: x64-windows-openvmm
2545 - publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/x64-windows-pipette
2546 displayName: πŸŒΌπŸ“¦ Publish x64-windows-pipette
2547 artifact: x64-windows-pipette
2548 - publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/x64-windows-prep_steps
2549 displayName: πŸŒΌπŸ“¦ Publish x64-windows-prep_steps
2550 artifact: x64-windows-prep_steps
2551 - publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/x64-windows-test_igvm_agent_rpc_server
2552 displayName: πŸŒΌπŸ“¦ Publish x64-windows-test_igvm_agent_rpc_server
2553 artifact: x64-windows-test_igvm_agent_rpc_server
2554 - publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/x64-windows-tmk_vmm
2555 displayName: πŸŒΌπŸ“¦ Publish x64-windows-tmk_vmm
2556 artifact: x64-windows-tmk_vmm
2557 - publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/x64-windows-tpm_guest_tests
2558 displayName: πŸŒΌπŸ“¦ Publish x64-windows-tpm_guest_tests
2559 artifact: x64-windows-tpm_guest_tests
2560 - publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/x64-windows-vmgstool
2561 displayName: πŸŒΌπŸ“¦ Publish x64-windows-vmgstool
2562 artifact: x64-windows-vmgstool
2563 - publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/x64-windows-vmm-tests-archive
2564 displayName: πŸŒΌπŸ“¦ Publish x64-windows-vmm-tests-archive
2565 artifact: x64-windows-vmm-tests-archive
2566 - bash: rm $(AgentTempDirNormal)/bootstrapped-flowey/job5.json
2567 displayName: 🌼🧼 Redact bootstrap var db
2568 - publish: $(FLOWEY_TEMP_DIR)/bootstrapped-flowey
2569 displayName: 🌼πŸ₯Ύ Publish bootstrapped flowey
2570 artifact: _internal-flowey-bootstrap-x86_64-windows-uid-3
2571- job: job15
2572 displayName: run vmm-tests [x64-linux]
2573 pool:
2574 demands:
2575 - ImageOverride -equals ubuntu2404-amd64-256gb
2576 name: openvmm-ado-intel-centralus
2577 dependsOn:
2578 - job0
2579 - job5
2580 - job7
2581 - job9
2582 condition: and(succeeded(), not(canceled()))
2583 variables:
2584 - name: FLOWEY_TEMP_DIR
2585 value: $(Build.StagingDirectory)/.flowey-internal
2586 steps:
2587 - task: DownloadPipelineArtifact@2
2588 displayName: 🌼πŸ₯Ύ Download bootstrapped flowey
2589 inputs:
2590 artifact: _internal-flowey-bootstrap-x86_64-linux-uid-1
2591 path: $(FLOWEY_TEMP_DIR)/bootstrapped-flowey
2592 - task: DownloadPipelineArtifact@2
2593 displayName: πŸŒΌπŸ“¦ Download x64-guest_test_uefi
2594 inputs:
2595 artifact: x64-guest_test_uefi
2596 path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-guest_test_uefi
2597 - task: DownloadPipelineArtifact@2
2598 displayName: πŸŒΌπŸ“¦ Download x64-linux-musl-pipette
2599 inputs:
2600 artifact: x64-linux-musl-pipette
2601 path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-linux-musl-pipette
2602 - task: DownloadPipelineArtifact@2
2603 displayName: πŸŒΌπŸ“¦ Download x64-linux-musl-tmk_vmm
2604 inputs:
2605 artifact: x64-linux-musl-tmk_vmm
2606 path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-linux-musl-tmk_vmm
2607 - task: DownloadPipelineArtifact@2
2608 displayName: πŸŒΌπŸ“¦ Download x64-linux-openvmm
2609 inputs:
2610 artifact: x64-linux-openvmm
2611 path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-linux-openvmm
2612 - task: DownloadPipelineArtifact@2
2613 displayName: πŸŒΌπŸ“¦ Download x64-linux-openvmm_vhost
2614 inputs:
2615 artifact: x64-linux-openvmm_vhost
2616 path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-linux-openvmm_vhost
2617 - task: DownloadPipelineArtifact@2
2618 displayName: πŸŒΌπŸ“¦ Download x64-linux-vmm-tests-archive
2619 inputs:
2620 artifact: x64-linux-vmm-tests-archive
2621 path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-linux-vmm-tests-archive
2622 - task: DownloadPipelineArtifact@2
2623 displayName: πŸŒΌπŸ“¦ Download x64-tmks
2624 inputs:
2625 artifact: x64-tmks
2626 path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-tmks
2627 - task: DownloadPipelineArtifact@2
2628 displayName: πŸŒΌπŸ“¦ Download x64-windows-pipette
2629 inputs:
2630 artifact: x64-windows-pipette
2631 path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-pipette
2632 - bash: |
2633 set -e
2634 AgentTempDirNormal="$(FLOWEY_TEMP_DIR)"
2635 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
2636 echo "##vso[task.setvariable variable=AgentTempDirNormal;]$AgentTempDirNormal"
2637
2638 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey
2639 FLOWEY_BIN="$AgentTempDirNormal/bootstrapped-flowey/flowey"
2640 echo "##vso[task.setvariable variable=FLOWEY_BIN;]$FLOWEY_BIN"
2641 displayName: Set flowey path
2642 - bash: |
2643 set -e
2644 echo '"debug"' | $FLOWEY_BIN v 15 'FLOWEY_LOG' update
2645 echo "$(FLOWEY_TEMP_DIR)/work" | $FLOWEY_BIN v 15 '_internal_WORKING_DIR' --is-raw-string update
2646
2647 cat <<'EOF' | tr '[:upper:]' '[:lower:]' | $FLOWEY_BIN v 15 'verbose' update
2648 ${{ parameters.verbose }}
2649 EOF
2650 echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-guest_test_uefi" | $FLOWEY_BIN v 15 'artifact_use_from_x64-guest_test_uefi' --is-raw-string update
2651 echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-linux-musl-pipette" | $FLOWEY_BIN v 15 'artifact_use_from_x64-linux-musl-pipette' --is-raw-string update
2652 echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-linux-musl-tmk_vmm" | $FLOWEY_BIN v 15 'artifact_use_from_x64-linux-musl-tmk_vmm' --is-raw-string update
2653 echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-linux-openvmm" | $FLOWEY_BIN v 15 'artifact_use_from_x64-linux-openvmm' --is-raw-string update
2654 echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-linux-openvmm_vhost" | $FLOWEY_BIN v 15 'artifact_use_from_x64-linux-openvmm_vhost' --is-raw-string update
2655 echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-linux-vmm-tests-archive" | $FLOWEY_BIN v 15 'artifact_use_from_x64-linux-vmm-tests-archive' --is-raw-string update
2656 echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-tmks" | $FLOWEY_BIN v 15 'artifact_use_from_x64-tmks' --is-raw-string update
2657 echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-pipette" | $FLOWEY_BIN v 15 'artifact_use_from_x64-windows-pipette' --is-raw-string update
2658 displayName: πŸŒΌπŸ›« Initialize job
2659 - bash: $(FLOWEY_BIN) e 15 flowey_lib_hvlite::test_nextest_vmm_tests_archive 0
2660 displayName: ensure /dev/kvm is accessible
2661 - bash: |-
2662 set -e
2663 $(FLOWEY_BIN) e 15 flowey_lib_common::download_cargo_nextest 0
2664 $(FLOWEY_BIN) e 15 flowey_lib_common::download_cargo_nextest 1
2665 $(FLOWEY_BIN) e 15 flowey_lib_common::download_cargo_nextest 2
2666 $(FLOWEY_BIN) e 15 flowey_lib_common::download_cargo_nextest 3
2667 displayName: create cargo-nextest cache dir
2668 - bash: |-
2669 set -e
2670 $(FLOWEY_BIN) e 15 flowey_lib_common::cache 0
2671 $FLOWEY_BIN v 15 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:236:72' --is-raw-string write-to-env ado floweyvar3
2672 $FLOWEY_BIN v 15 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:237:72' --is-raw-string write-to-env ado floweyvar4
2673 displayName: Pre-processing cache vars
2674 - task: Cache@2
2675 inputs:
2676 key: $(floweyvar4)
2677 path: $(floweyvar3)
2678 cacheHitVar: FLOWEY_CACHE_HITVAR
2679 displayName: 'Restore cache: cargo-nextest'
2680 - bash: |-
2681 set -e
2682 $FLOWEY_BIN v 15 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:300:70' --is-raw-string update --env-source FLOWEY_CACHE_HITVAR <<'EOF'
2683 $(FLOWEY_CACHE_HITVAR)
2684 EOF
2685 $(FLOWEY_BIN) e 15 flowey_lib_common::cache 2
2686 displayName: map ADO hitvar to flowey
2687 - bash: $(FLOWEY_BIN) e 15 flowey_lib_common::download_cargo_nextest 4
2688 displayName: downloading cargo-nextest
2689 - bash: |-
2690 set -e
2691 $(FLOWEY_BIN) e 15 flowey_lib_common::git_checkout 0
2692 $FLOWEY_BIN v 15 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:319:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:320:46 write-to-env ado floweyvar2
2693 $FLOWEY_BIN v 15 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:320:46' write-to-env ado FLOWEY_CONDITION
2694 displayName: check if openvmm needs to be cloned
2695 - checkout: self
2696 path: repo0
2697 fetchTags: false
2698 fetchDepth: 1
2699 persistCredentials: $(floweyvar2)
2700 submodules: recursive
2701 displayName: checkout repo openvmm
2702 condition: and(eq(variables['FLOWEY_CONDITION'], true), succeeded(), not(canceled()))
2703 - bash: |-
2704 set -e
2705 $(FLOWEY_BIN) e 15 flowey_lib_common::git_checkout 2
2706 $(FLOWEY_BIN) e 15 flowey_lib_hvlite::git_checkout_openvmm_repo 0
2707 $(FLOWEY_BIN) e 15 flowey_lib_hvlite::run_cargo_nextest_run 0
2708 $(FLOWEY_BIN) e 15 flowey_core::pipeline::artifact::resolve 3
2709 $(FLOWEY_BIN) e 15 flowey_core::pipeline::artifact::resolve 4
2710 $(FLOWEY_BIN) e 15 flowey_core::pipeline::artifact::resolve 7
2711 $(FLOWEY_BIN) e 15 flowey_core::pipeline::artifact::resolve 1
2712 $(FLOWEY_BIN) e 15 flowey_core::pipeline::artifact::resolve 0
2713 $(FLOWEY_BIN) e 15 flowey_core::pipeline::artifact::resolve 2
2714 $(FLOWEY_BIN) e 15 flowey_core::pipeline::artifact::resolve 6
2715 displayName: report cloned repo directories
2716 - bash: $(FLOWEY_BIN) e 15 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 0
2717 displayName: creating new test content dir
2718 - bash: $(FLOWEY_BIN) e 15 flowey_lib_common::install_dist_pkg 0
2719 displayName: checking if packages need to be installed
2720 - bash: $(FLOWEY_BIN) e 15 flowey_lib_common::install_dist_pkg 1
2721 displayName: installing packages
2722 - bash: $(FLOWEY_BIN) e 15 flowey_lib_common::download_gh_release 0
2723 displayName: create gh-release-download cache dir
2724 - bash: |-
2725 set -e
2726 $(FLOWEY_BIN) e 15 flowey_lib_common::cache 4
2727 $FLOWEY_BIN v 15 'flowey_lib_common::cache:8:flowey_lib_common/src/cache.rs:236:72' --is-raw-string write-to-env ado floweyvar5
2728 $FLOWEY_BIN v 15 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:237:72' --is-raw-string write-to-env ado floweyvar6
2729 displayName: Pre-processing cache vars
2730 - task: Cache@2
2731 inputs:
2732 key: $(floweyvar6)
2733 path: $(floweyvar5)
2734 cacheHitVar: FLOWEY_CACHE_HITVAR
2735 displayName: 'Restore cache: gh-release-download'
2736 - bash: |-
2737 set -e
2738 $FLOWEY_BIN v 15 'flowey_lib_common::cache:11:flowey_lib_common/src/cache.rs:300:70' --is-raw-string update --env-source FLOWEY_CACHE_HITVAR <<'EOF'
2739 $(FLOWEY_CACHE_HITVAR)
2740 EOF
2741 $(FLOWEY_BIN) e 15 flowey_lib_common::cache 6
2742 displayName: map ADO hitvar to flowey
2743 - bash: $(FLOWEY_BIN) e 15 flowey_lib_common::download_gh_release 1
2744 displayName: download artifacts from github releases
2745 - bash: $(FLOWEY_BIN) e 15 flowey_lib_common::download_azcopy 0
2746 displayName: extract azcopy from archive
2747 - bash: $(FLOWEY_BIN) e 15 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 0
2748 displayName: calculating required VMM tests disk images
2749 - bash: |-
2750 set -e
2751 $(FLOWEY_BIN) e 15 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 1
2752 $(FLOWEY_BIN) e 15 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 2
2753 displayName: downloading VMM test disk images
2754 - bash: $(FLOWEY_BIN) e 15 flowey_lib_hvlite::resolve_openvmm_deps 0
2755 displayName: unpack openvmm-deps archive
2756 - bash: $(FLOWEY_BIN) e 15 flowey_lib_hvlite::download_uefi_mu_msvm 0
2757 displayName: unpack mu_msvm package (x64)
2758 - bash: |-
2759 set -e
2760 $(FLOWEY_BIN) e 15 flowey_lib_hvlite::init_vmm_tests_env 0
2761 $(FLOWEY_BIN) e 15 flowey_lib_hvlite::run_cargo_nextest_run 1
2762 $(FLOWEY_BIN) e 15 flowey_core::pipeline::artifact::resolve 5
2763 $(FLOWEY_BIN) e 15 flowey_lib_hvlite::test_nextest_vmm_tests_archive 1
2764 displayName: setting up vmm_tests env
2765 - bash: $(FLOWEY_BIN) e 15 flowey_lib_common::gen_cargo_nextest_run_cmd 0
2766 displayName: generate nextest command
2767 - bash: $(FLOWEY_BIN) e 15 flowey_lib_hvlite::install_vmm_tests_deps 0
2768 displayName: install vmm tests deps (linux)
2769 - bash: |-
2770 set -e
2771 $(FLOWEY_BIN) e 15 flowey_lib_common::run_cargo_nextest_run 0
2772 $(FLOWEY_BIN) e 15 flowey_lib_common::run_cargo_nextest_run 1
2773 $(FLOWEY_BIN) e 15 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 2
2774 $(FLOWEY_BIN) e 15 flowey_lib_common::publish_test_results 1
2775 $(FLOWEY_BIN) e 15 flowey_lib_common::ado_task_publish_test_results 0
2776 $(FLOWEY_BIN) e 15 flowey_lib_common::publish_test_results 0
2777 $FLOWEY_BIN v 15 'flowey_lib_common::ado_task_publish_test_results:0:flowey_lib_common/src/ado_task_publish_test_results.rs:57:45' --is-raw-string --condvar flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env ado floweyvar1
2778 $FLOWEY_BIN v 15 'flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env ado FLOWEY_CONDITION
2779 displayName: run 'vmm_tests' nextest tests
2780 - task: PublishTestResults@2
2781 inputs:
2782 testResultsFormat: JUnit
2783 testResultsFiles: $(floweyvar1)
2784 testRunTitle: x64-linux-vmm-tests
2785 displayName: 'publish test results: x64-linux-vmm-tests (JUnit XML)'
2786 condition: and(eq(variables['FLOWEY_CONDITION'], true), succeeded(), not(canceled()))
2787 - bash: |-
2788 set -e
2789 $(FLOWEY_BIN) e 15 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 1
2790 $(FLOWEY_BIN) e 15 flowey_lib_common::publish_test_results 2
2791 $(FLOWEY_BIN) e 15 flowey_lib_common::publish_test_results 3
2792 $(FLOWEY_BIN) e 15 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 3
2793 displayName: report test results to overall pipeline status
2794 - bash: $(FLOWEY_BIN) e 15 flowey_lib_common::cache 3
2795 displayName: 'validate cache entry: cargo-nextest'
2796 - bash: $(FLOWEY_BIN) e 15 flowey_lib_common::cache 7
2797 displayName: 'validate cache entry: gh-release-download'
2798- job: job17
2799 displayName: run vmm-tests [x64-windows-intel-mi-secure]
2800 pool:
2801 demands:
2802 - ImageOverride -equals win-amd64
2803 name: openvmm-ado-intel-centralus
2804 dependsOn:
2805 - job0
2806 - job16
2807 - job5
2808 - job7
2809 - job9
2810 condition: and(succeeded(), not(canceled()))
2811 variables:
2812 - name: FLOWEY_TEMP_DIR
2813 value: $(Build.StagingDirectory)/.flowey-internal
2814 steps:
2815 - task: DownloadPipelineArtifact@2
2816 displayName: 🌼πŸ₯Ύ Download bootstrapped flowey
2817 inputs:
2818 artifact: _internal-flowey-bootstrap-x86_64-windows-uid-3
2819 path: $(FLOWEY_TEMP_DIR)/bootstrapped-flowey
2820 - task: DownloadPipelineArtifact@2
2821 displayName: πŸŒΌπŸ“¦ Download x64-guest_test_uefi
2822 inputs:
2823 artifact: x64-guest_test_uefi
2824 path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-guest_test_uefi
2825 - task: DownloadPipelineArtifact@2
2826 displayName: πŸŒΌπŸ“¦ Download x64-linux-musl-pipette
2827 inputs:
2828 artifact: x64-linux-musl-pipette
2829 path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-linux-musl-pipette
2830 - task: DownloadPipelineArtifact@2
2831 displayName: πŸŒΌπŸ“¦ Download x64-linux-musl-tmk_vmm
2832 inputs:
2833 artifact: x64-linux-musl-tmk_vmm
2834 path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-linux-musl-tmk_vmm
2835 - task: DownloadPipelineArtifact@2
2836 displayName: πŸŒΌπŸ“¦ Download x64-linux-tpm_guest_tests
2837 inputs:
2838 artifact: x64-linux-tpm_guest_tests
2839 path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-linux-tpm_guest_tests
2840 - task: DownloadPipelineArtifact@2
2841 displayName: πŸŒΌπŸ“¦ Download x64-mi-secure-openhcl-igvm
2842 inputs:
2843 artifact: x64-mi-secure-openhcl-igvm
2844 path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-mi-secure-openhcl-igvm
2845 - task: DownloadPipelineArtifact@2
2846 displayName: πŸŒΌπŸ“¦ Download x64-tmks
2847 inputs:
2848 artifact: x64-tmks
2849 path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-tmks
2850 - task: DownloadPipelineArtifact@2
2851 displayName: πŸŒΌπŸ“¦ Download x64-windows-openvmm
2852 inputs:
2853 artifact: x64-windows-openvmm
2854 path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-openvmm
2855 - task: DownloadPipelineArtifact@2
2856 displayName: πŸŒΌπŸ“¦ Download x64-windows-pipette
2857 inputs:
2858 artifact: x64-windows-pipette
2859 path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-pipette
2860 - task: DownloadPipelineArtifact@2
2861 displayName: πŸŒΌπŸ“¦ Download x64-windows-prep_steps
2862 inputs:
2863 artifact: x64-windows-prep_steps
2864 path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-prep_steps
2865 - task: DownloadPipelineArtifact@2
2866 displayName: πŸŒΌπŸ“¦ Download x64-windows-test_igvm_agent_rpc_server
2867 inputs:
2868 artifact: x64-windows-test_igvm_agent_rpc_server
2869 path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-test_igvm_agent_rpc_server
2870 - task: DownloadPipelineArtifact@2
2871 displayName: πŸŒΌπŸ“¦ Download x64-windows-tmk_vmm
2872 inputs:
2873 artifact: x64-windows-tmk_vmm
2874 path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-tmk_vmm
2875 - task: DownloadPipelineArtifact@2
2876 displayName: πŸŒΌπŸ“¦ Download x64-windows-tpm_guest_tests
2877 inputs:
2878 artifact: x64-windows-tpm_guest_tests
2879 path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-tpm_guest_tests
2880 - task: DownloadPipelineArtifact@2
2881 displayName: πŸŒΌπŸ“¦ Download x64-windows-vmgstool
2882 inputs:
2883 artifact: x64-windows-vmgstool
2884 path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-vmgstool
2885 - task: DownloadPipelineArtifact@2
2886 displayName: πŸŒΌπŸ“¦ Download x64-windows-vmm-tests-archive
2887 inputs:
2888 artifact: x64-windows-vmm-tests-archive
2889 path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-vmm-tests-archive
2890 - bash: |
2891 set -e
2892 AgentTempDirNormal="$(FLOWEY_TEMP_DIR)"
2893 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
2894 echo "##vso[task.setvariable variable=AgentTempDirNormal;]$AgentTempDirNormal"
2895
2896 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe
2897 FLOWEY_BIN="$AgentTempDirNormal/bootstrapped-flowey/flowey.exe"
2898 echo "##vso[task.setvariable variable=FLOWEY_BIN;]$FLOWEY_BIN"
2899 displayName: Set flowey path
2900 - bash: |
2901 set -e
2902 echo '"debug"' | $FLOWEY_BIN v 17 'FLOWEY_LOG' update
2903 echo "$(FLOWEY_TEMP_DIR)/work" | $FLOWEY_BIN v 17 '_internal_WORKING_DIR' --is-raw-string update
2904
2905 cat <<'EOF' | tr '[:upper:]' '[:lower:]' | $FLOWEY_BIN v 17 'verbose' update
2906 ${{ parameters.verbose }}
2907 EOF
2908 echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-guest_test_uefi" | $FLOWEY_BIN v 17 'artifact_use_from_x64-guest_test_uefi' --is-raw-string update
2909 echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-linux-musl-pipette" | $FLOWEY_BIN v 17 'artifact_use_from_x64-linux-musl-pipette' --is-raw-string update
2910 echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-linux-musl-tmk_vmm" | $FLOWEY_BIN v 17 'artifact_use_from_x64-linux-musl-tmk_vmm' --is-raw-string update
2911 echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-linux-tpm_guest_tests" | $FLOWEY_BIN v 17 'artifact_use_from_x64-linux-tpm_guest_tests' --is-raw-string update
2912 echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-mi-secure-openhcl-igvm" | $FLOWEY_BIN v 17 'artifact_use_from_x64-mi-secure-openhcl-igvm' --is-raw-string update
2913 echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-tmks" | $FLOWEY_BIN v 17 'artifact_use_from_x64-tmks' --is-raw-string update
2914 echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-openvmm" | $FLOWEY_BIN v 17 'artifact_use_from_x64-windows-openvmm' --is-raw-string update
2915 echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-pipette" | $FLOWEY_BIN v 17 'artifact_use_from_x64-windows-pipette' --is-raw-string update
2916 echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-prep_steps" | $FLOWEY_BIN v 17 'artifact_use_from_x64-windows-prep_steps' --is-raw-string update
2917 echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-test_igvm_agent_rpc_server" | $FLOWEY_BIN v 17 'artifact_use_from_x64-windows-test_igvm_agent_rpc_server' --is-raw-string update
2918 echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-tmk_vmm" | $FLOWEY_BIN v 17 'artifact_use_from_x64-windows-tmk_vmm' --is-raw-string update
2919 echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-tpm_guest_tests" | $FLOWEY_BIN v 17 'artifact_use_from_x64-windows-tpm_guest_tests' --is-raw-string update
2920 echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-vmgstool" | $FLOWEY_BIN v 17 'artifact_use_from_x64-windows-vmgstool' --is-raw-string update
2921 echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-vmm-tests-archive" | $FLOWEY_BIN v 17 'artifact_use_from_x64-windows-vmm-tests-archive' --is-raw-string update
2922 displayName: πŸŒΌπŸ›« Initialize job
2923 - bash: |-
2924 set -e
2925 $(FLOWEY_BIN) e 17 flowey_lib_common::download_cargo_nextest 0
2926 $(FLOWEY_BIN) e 17 flowey_lib_common::download_cargo_nextest 1
2927 $(FLOWEY_BIN) e 17 flowey_lib_common::download_cargo_nextest 2
2928 $(FLOWEY_BIN) e 17 flowey_lib_common::download_cargo_nextest 3
2929 displayName: create cargo-nextest cache dir
2930 - bash: |-
2931 set -e
2932 $(FLOWEY_BIN) e 17 flowey_lib_common::cache 0
2933 $FLOWEY_BIN v 17 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:236:72' --is-raw-string write-to-env ado floweyvar3
2934 $FLOWEY_BIN v 17 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:237:72' --is-raw-string write-to-env ado floweyvar4
2935 displayName: Pre-processing cache vars
2936 - task: Cache@2
2937 inputs:
2938 key: $(floweyvar4)
2939 path: $(floweyvar3)
2940 cacheHitVar: FLOWEY_CACHE_HITVAR
2941 displayName: 'Restore cache: cargo-nextest'
2942 - bash: |-
2943 set -e
2944 $FLOWEY_BIN v 17 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:300:70' --is-raw-string update --env-source FLOWEY_CACHE_HITVAR <<'EOF'
2945 $(FLOWEY_CACHE_HITVAR)
2946 EOF
2947 $(FLOWEY_BIN) e 17 flowey_lib_common::cache 2
2948 displayName: map ADO hitvar to flowey
2949 - bash: $(FLOWEY_BIN) e 17 flowey_lib_common::download_cargo_nextest 4
2950 displayName: downloading cargo-nextest
2951 - bash: |-
2952 set -e
2953 $(FLOWEY_BIN) e 17 flowey_lib_common::git_checkout 0
2954 $FLOWEY_BIN v 17 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:319:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:320:46 write-to-env ado floweyvar2
2955 $FLOWEY_BIN v 17 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:320:46' write-to-env ado FLOWEY_CONDITION
2956 displayName: check if openvmm needs to be cloned
2957 - checkout: self
2958 path: repo0
2959 fetchTags: false
2960 fetchDepth: 1
2961 persistCredentials: $(floweyvar2)
2962 submodules: recursive
2963 displayName: checkout repo openvmm
2964 condition: and(eq(variables['FLOWEY_CONDITION'], true), succeeded(), not(canceled()))
2965 - bash: |-
2966 set -e
2967 $(FLOWEY_BIN) e 17 flowey_lib_common::git_checkout 2
2968 $(FLOWEY_BIN) e 17 flowey_lib_hvlite::git_checkout_openvmm_repo 0
2969 $(FLOWEY_BIN) e 17 flowey_lib_hvlite::run_cargo_nextest_run 0
2970 $(FLOWEY_BIN) e 17 flowey_core::pipeline::artifact::resolve 5
2971 $(FLOWEY_BIN) e 17 flowey_core::pipeline::artifact::resolve 6
2972 $(FLOWEY_BIN) e 17 flowey_core::pipeline::artifact::resolve 1
2973 $(FLOWEY_BIN) e 17 flowey_core::pipeline::artifact::resolve 0
2974 $(FLOWEY_BIN) e 17 flowey_core::pipeline::artifact::resolve 9
2975 $(FLOWEY_BIN) e 17 flowey_core::pipeline::artifact::resolve 2
2976 $(FLOWEY_BIN) e 17 flowey_core::pipeline::artifact::resolve 4
2977 $(FLOWEY_BIN) e 17 flowey_core::pipeline::artifact::resolve 11
2978 $(FLOWEY_BIN) e 17 flowey_core::pipeline::artifact::resolve 10
2979 $(FLOWEY_BIN) e 17 flowey_core::pipeline::artifact::resolve 3
2980 $(FLOWEY_BIN) e 17 flowey_core::pipeline::artifact::resolve 8
2981 displayName: report cloned repo directories
2982 - bash: $(FLOWEY_BIN) e 17 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 0
2983 displayName: creating new test content dir
2984 - bash: $(FLOWEY_BIN) e 17 flowey_lib_hvlite::artifact_openhcl_igvm_from_recipe::resolve 0
2985 displayName: resolve OpenHCL igvm artifact
2986 - bash: $(FLOWEY_BIN) e 17 flowey_lib_common::download_gh_release 0
2987 displayName: create gh-release-download cache dir
2988 - bash: |-
2989 set -e
2990 $(FLOWEY_BIN) e 17 flowey_lib_common::cache 4
2991 $FLOWEY_BIN v 17 'flowey_lib_common::cache:8:flowey_lib_common/src/cache.rs:236:72' --is-raw-string write-to-env ado floweyvar5
2992 $FLOWEY_BIN v 17 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:237:72' --is-raw-string write-to-env ado floweyvar6
2993 displayName: Pre-processing cache vars
2994 - task: Cache@2
2995 inputs:
2996 key: $(floweyvar6)
2997 path: $(floweyvar5)
2998 cacheHitVar: FLOWEY_CACHE_HITVAR
2999 displayName: 'Restore cache: gh-release-download'
3000 - bash: |-
3001 set -e
3002 $FLOWEY_BIN v 17 'flowey_lib_common::cache:11:flowey_lib_common/src/cache.rs:300:70' --is-raw-string update --env-source FLOWEY_CACHE_HITVAR <<'EOF'
3003 $(FLOWEY_CACHE_HITVAR)
3004 EOF
3005 $(FLOWEY_BIN) e 17 flowey_lib_common::cache 6
3006 displayName: map ADO hitvar to flowey
3007 - bash: $(FLOWEY_BIN) e 17 flowey_lib_common::download_gh_release 1
3008 displayName: download artifacts from github releases
3009 - bash: $(FLOWEY_BIN) e 17 flowey_lib_common::download_azcopy 0
3010 displayName: extract azcopy from archive
3011 - bash: $(FLOWEY_BIN) e 17 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 0
3012 displayName: calculating required VMM tests disk images
3013 - bash: |-
3014 set -e
3015 $(FLOWEY_BIN) e 17 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 1
3016 $(FLOWEY_BIN) e 17 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 2
3017 displayName: downloading VMM test disk images
3018 - bash: $(FLOWEY_BIN) e 17 flowey_lib_hvlite::resolve_openvmm_deps 0
3019 displayName: unpack openvmm-deps archive
3020 - bash: $(FLOWEY_BIN) e 17 flowey_lib_hvlite::download_uefi_mu_msvm 0
3021 displayName: unpack mu_msvm package (x64)
3022 - bash: |-
3023 set -e
3024 $(FLOWEY_BIN) e 17 flowey_lib_hvlite::init_vmm_tests_env 0
3025 $(FLOWEY_BIN) e 17 flowey_lib_hvlite::run_cargo_nextest_run 1
3026 $(FLOWEY_BIN) e 17 flowey_core::pipeline::artifact::resolve 12
3027 $(FLOWEY_BIN) e 17 flowey_lib_hvlite::test_nextest_vmm_tests_archive 0
3028 displayName: setting up vmm_tests env
3029 - bash: $(FLOWEY_BIN) e 17 flowey_lib_common::gen_cargo_nextest_run_cmd 0
3030 displayName: generate nextest command
3031 - bash: $(FLOWEY_BIN) e 17 flowey_lib_hvlite::install_vmm_tests_deps 0
3032 displayName: install vmm tests deps (windows)
3033 - bash: $(FLOWEY_BIN) e 17 flowey_lib_hvlite::run_test_igvm_agent_rpc_server 0
3034 displayName: starting test_igvm_agent_rpc_server
3035 - bash: |-
3036 set -e
3037 $(FLOWEY_BIN) e 17 flowey_lib_common::run_cargo_nextest_run 0
3038 $(FLOWEY_BIN) e 17 flowey_lib_common::run_cargo_nextest_run 1
3039 $(FLOWEY_BIN) e 17 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 1
3040 displayName: run 'vmm_tests' nextest tests
3041 - bash: |-
3042 set -e
3043 $(FLOWEY_BIN) e 17 flowey_lib_hvlite::stop_test_igvm_agent_rpc_server 0
3044 $(FLOWEY_BIN) e 17 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 3
3045 $(FLOWEY_BIN) e 17 flowey_lib_common::publish_test_results 1
3046 $(FLOWEY_BIN) e 17 flowey_lib_common::ado_task_publish_test_results 0
3047 $(FLOWEY_BIN) e 17 flowey_lib_common::publish_test_results 0
3048 $FLOWEY_BIN v 17 'flowey_lib_common::ado_task_publish_test_results:0:flowey_lib_common/src/ado_task_publish_test_results.rs:57:45' --is-raw-string --condvar flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env ado floweyvar1
3049 $FLOWEY_BIN v 17 'flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env ado FLOWEY_CONDITION
3050 displayName: stopping test_igvm_agent_rpc_server
3051 - task: PublishTestResults@2
3052 inputs:
3053 testResultsFormat: JUnit
3054 testResultsFiles: $(floweyvar1)
3055 testRunTitle: x64-windows-intel-mi-secure-vmm-tests
3056 displayName: 'publish test results: x64-windows-intel-mi-secure-vmm-tests (JUnit XML)'
3057 condition: and(eq(variables['FLOWEY_CONDITION'], true), succeeded(), not(canceled()))
3058 - bash: |-
3059 set -e
3060 $(FLOWEY_BIN) e 17 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 2
3061 $(FLOWEY_BIN) e 17 flowey_lib_common::publish_test_results 2
3062 $(FLOWEY_BIN) e 17 flowey_lib_common::publish_test_results 3
3063 $(FLOWEY_BIN) e 17 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 4
3064 displayName: report test results to overall pipeline status
3065 - bash: $(FLOWEY_BIN) e 17 flowey_lib_common::cache 3
3066 displayName: 'validate cache entry: cargo-nextest'
3067 - bash: $(FLOWEY_BIN) e 17 flowey_lib_common::cache 7
3068 displayName: 'validate cache entry: gh-release-download'
3069- job: job14
3070 displayName: run vmm-tests [x64-windows-amd]
3071 pool:
3072 demands:
3073 - ImageOverride -equals win-amd64
3074 name: openvmm-ado-intel-centralus
3075 dependsOn:
3076 - job0
3077 - job5
3078 - job7
3079 - job9
3080 condition: and(succeeded(), not(canceled()))
3081 variables:
3082 - name: FLOWEY_TEMP_DIR
3083 value: $(Build.StagingDirectory)/.flowey-internal
3084 steps:
3085 - task: DownloadPipelineArtifact@2
3086 displayName: 🌼πŸ₯Ύ Download bootstrapped flowey
3087 inputs:
3088 artifact: _internal-flowey-bootstrap-x86_64-windows-uid-3
3089 path: $(FLOWEY_TEMP_DIR)/bootstrapped-flowey
3090 - task: DownloadPipelineArtifact@2
3091 displayName: πŸŒΌπŸ“¦ Download x64-guest_test_uefi
3092 inputs:
3093 artifact: x64-guest_test_uefi
3094 path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-guest_test_uefi
3095 - task: DownloadPipelineArtifact@2
3096 displayName: πŸŒΌπŸ“¦ Download x64-linux-musl-pipette
3097 inputs:
3098 artifact: x64-linux-musl-pipette
3099 path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-linux-musl-pipette
3100 - task: DownloadPipelineArtifact@2
3101 displayName: πŸŒΌπŸ“¦ Download x64-linux-musl-tmk_vmm
3102 inputs:
3103 artifact: x64-linux-musl-tmk_vmm
3104 path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-linux-musl-tmk_vmm
3105 - task: DownloadPipelineArtifact@2
3106 displayName: πŸŒΌπŸ“¦ Download x64-linux-tpm_guest_tests
3107 inputs:
3108 artifact: x64-linux-tpm_guest_tests
3109 path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-linux-tpm_guest_tests
3110 - task: DownloadPipelineArtifact@2
3111 displayName: πŸŒΌπŸ“¦ Download x64-openhcl-igvm
3112 inputs:
3113 artifact: x64-openhcl-igvm
3114 path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-openhcl-igvm
3115 - task: DownloadPipelineArtifact@2
3116 displayName: πŸŒΌπŸ“¦ Download x64-tmks
3117 inputs:
3118 artifact: x64-tmks
3119 path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-tmks
3120 - task: DownloadPipelineArtifact@2
3121 displayName: πŸŒΌπŸ“¦ Download x64-windows-openvmm
3122 inputs:
3123 artifact: x64-windows-openvmm
3124 path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-openvmm
3125 - task: DownloadPipelineArtifact@2
3126 displayName: πŸŒΌπŸ“¦ Download x64-windows-pipette
3127 inputs:
3128 artifact: x64-windows-pipette
3129 path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-pipette
3130 - task: DownloadPipelineArtifact@2
3131 displayName: πŸŒΌπŸ“¦ Download x64-windows-prep_steps
3132 inputs:
3133 artifact: x64-windows-prep_steps
3134 path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-prep_steps
3135 - task: DownloadPipelineArtifact@2
3136 displayName: πŸŒΌπŸ“¦ Download x64-windows-test_igvm_agent_rpc_server
3137 inputs:
3138 artifact: x64-windows-test_igvm_agent_rpc_server
3139 path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-test_igvm_agent_rpc_server
3140 - task: DownloadPipelineArtifact@2
3141 displayName: πŸŒΌπŸ“¦ Download x64-windows-tmk_vmm
3142 inputs:
3143 artifact: x64-windows-tmk_vmm
3144 path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-tmk_vmm
3145 - task: DownloadPipelineArtifact@2
3146 displayName: πŸŒΌπŸ“¦ Download x64-windows-tpm_guest_tests
3147 inputs:
3148 artifact: x64-windows-tpm_guest_tests
3149 path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-tpm_guest_tests
3150 - task: DownloadPipelineArtifact@2
3151 displayName: πŸŒΌπŸ“¦ Download x64-windows-vmgstool
3152 inputs:
3153 artifact: x64-windows-vmgstool
3154 path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-vmgstool
3155 - task: DownloadPipelineArtifact@2
3156 displayName: πŸŒΌπŸ“¦ Download x64-windows-vmm-tests-archive
3157 inputs:
3158 artifact: x64-windows-vmm-tests-archive
3159 path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-vmm-tests-archive
3160 - bash: |
3161 set -e
3162 AgentTempDirNormal="$(FLOWEY_TEMP_DIR)"
3163 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
3164 echo "##vso[task.setvariable variable=AgentTempDirNormal;]$AgentTempDirNormal"
3165
3166 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe
3167 FLOWEY_BIN="$AgentTempDirNormal/bootstrapped-flowey/flowey.exe"
3168 echo "##vso[task.setvariable variable=FLOWEY_BIN;]$FLOWEY_BIN"
3169 displayName: Set flowey path
3170 - bash: |
3171 set -e
3172 echo '"debug"' | $FLOWEY_BIN v 14 'FLOWEY_LOG' update
3173 echo "$(FLOWEY_TEMP_DIR)/work" | $FLOWEY_BIN v 14 '_internal_WORKING_DIR' --is-raw-string update
3174
3175 cat <<'EOF' | tr '[:upper:]' '[:lower:]' | $FLOWEY_BIN v 14 'verbose' update
3176 ${{ parameters.verbose }}
3177 EOF
3178 echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-guest_test_uefi" | $FLOWEY_BIN v 14 'artifact_use_from_x64-guest_test_uefi' --is-raw-string update
3179 echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-linux-musl-pipette" | $FLOWEY_BIN v 14 'artifact_use_from_x64-linux-musl-pipette' --is-raw-string update
3180 echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-linux-musl-tmk_vmm" | $FLOWEY_BIN v 14 'artifact_use_from_x64-linux-musl-tmk_vmm' --is-raw-string update
3181 echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-linux-tpm_guest_tests" | $FLOWEY_BIN v 14 'artifact_use_from_x64-linux-tpm_guest_tests' --is-raw-string update
3182 echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-openhcl-igvm" | $FLOWEY_BIN v 14 'artifact_use_from_x64-openhcl-igvm' --is-raw-string update
3183 echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-tmks" | $FLOWEY_BIN v 14 'artifact_use_from_x64-tmks' --is-raw-string update
3184 echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-openvmm" | $FLOWEY_BIN v 14 'artifact_use_from_x64-windows-openvmm' --is-raw-string update
3185 echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-pipette" | $FLOWEY_BIN v 14 'artifact_use_from_x64-windows-pipette' --is-raw-string update
3186 echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-prep_steps" | $FLOWEY_BIN v 14 'artifact_use_from_x64-windows-prep_steps' --is-raw-string update
3187 echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-test_igvm_agent_rpc_server" | $FLOWEY_BIN v 14 'artifact_use_from_x64-windows-test_igvm_agent_rpc_server' --is-raw-string update
3188 echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-tmk_vmm" | $FLOWEY_BIN v 14 'artifact_use_from_x64-windows-tmk_vmm' --is-raw-string update
3189 echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-tpm_guest_tests" | $FLOWEY_BIN v 14 'artifact_use_from_x64-windows-tpm_guest_tests' --is-raw-string update
3190 echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-vmgstool" | $FLOWEY_BIN v 14 'artifact_use_from_x64-windows-vmgstool' --is-raw-string update
3191 echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-vmm-tests-archive" | $FLOWEY_BIN v 14 'artifact_use_from_x64-windows-vmm-tests-archive' --is-raw-string update
3192 displayName: πŸŒΌπŸ›« Initialize job
3193 - bash: |-
3194 set -e
3195 $(FLOWEY_BIN) e 14 flowey_lib_common::download_cargo_nextest 0
3196 $(FLOWEY_BIN) e 14 flowey_lib_common::download_cargo_nextest 1
3197 $(FLOWEY_BIN) e 14 flowey_lib_common::download_cargo_nextest 2
3198 $(FLOWEY_BIN) e 14 flowey_lib_common::download_cargo_nextest 3
3199 displayName: create cargo-nextest cache dir
3200 - bash: |-
3201 set -e
3202 $(FLOWEY_BIN) e 14 flowey_lib_common::cache 0
3203 $FLOWEY_BIN v 14 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:236:72' --is-raw-string write-to-env ado floweyvar3
3204 $FLOWEY_BIN v 14 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:237:72' --is-raw-string write-to-env ado floweyvar4
3205 displayName: Pre-processing cache vars
3206 - task: Cache@2
3207 inputs:
3208 key: $(floweyvar4)
3209 path: $(floweyvar3)
3210 cacheHitVar: FLOWEY_CACHE_HITVAR
3211 displayName: 'Restore cache: cargo-nextest'
3212 - bash: |-
3213 set -e
3214 $FLOWEY_BIN v 14 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:300:70' --is-raw-string update --env-source FLOWEY_CACHE_HITVAR <<'EOF'
3215 $(FLOWEY_CACHE_HITVAR)
3216 EOF
3217 $(FLOWEY_BIN) e 14 flowey_lib_common::cache 2
3218 displayName: map ADO hitvar to flowey
3219 - bash: $(FLOWEY_BIN) e 14 flowey_lib_common::download_cargo_nextest 4
3220 displayName: downloading cargo-nextest
3221 - bash: |-
3222 set -e
3223 $(FLOWEY_BIN) e 14 flowey_lib_common::git_checkout 0
3224 $FLOWEY_BIN v 14 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:319:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:320:46 write-to-env ado floweyvar2
3225 $FLOWEY_BIN v 14 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:320:46' write-to-env ado FLOWEY_CONDITION
3226 displayName: check if openvmm needs to be cloned
3227 - checkout: self
3228 path: repo0
3229 fetchTags: false
3230 fetchDepth: 1
3231 persistCredentials: $(floweyvar2)
3232 submodules: recursive
3233 displayName: checkout repo openvmm
3234 condition: and(eq(variables['FLOWEY_CONDITION'], true), succeeded(), not(canceled()))
3235 - bash: |-
3236 set -e
3237 $(FLOWEY_BIN) e 14 flowey_lib_common::git_checkout 2
3238 $(FLOWEY_BIN) e 14 flowey_lib_hvlite::git_checkout_openvmm_repo 0
3239 $(FLOWEY_BIN) e 14 flowey_lib_hvlite::run_cargo_nextest_run 0
3240 $(FLOWEY_BIN) e 14 flowey_core::pipeline::artifact::resolve 5
3241 $(FLOWEY_BIN) e 14 flowey_core::pipeline::artifact::resolve 6
3242 $(FLOWEY_BIN) e 14 flowey_core::pipeline::artifact::resolve 1
3243 $(FLOWEY_BIN) e 14 flowey_core::pipeline::artifact::resolve 0
3244 $(FLOWEY_BIN) e 14 flowey_core::pipeline::artifact::resolve 9
3245 $(FLOWEY_BIN) e 14 flowey_core::pipeline::artifact::resolve 2
3246 $(FLOWEY_BIN) e 14 flowey_core::pipeline::artifact::resolve 4
3247 $(FLOWEY_BIN) e 14 flowey_core::pipeline::artifact::resolve 11
3248 $(FLOWEY_BIN) e 14 flowey_core::pipeline::artifact::resolve 10
3249 $(FLOWEY_BIN) e 14 flowey_core::pipeline::artifact::resolve 3
3250 $(FLOWEY_BIN) e 14 flowey_core::pipeline::artifact::resolve 8
3251 displayName: report cloned repo directories
3252 - bash: $(FLOWEY_BIN) e 14 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 0
3253 displayName: creating new test content dir
3254 - bash: $(FLOWEY_BIN) e 14 flowey_lib_hvlite::artifact_openhcl_igvm_from_recipe::resolve 0
3255 displayName: resolve OpenHCL igvm artifact
3256 - bash: $(FLOWEY_BIN) e 14 flowey_lib_common::download_gh_release 0
3257 displayName: create gh-release-download cache dir
3258 - bash: |-
3259 set -e
3260 $(FLOWEY_BIN) e 14 flowey_lib_common::cache 4
3261 $FLOWEY_BIN v 14 'flowey_lib_common::cache:8:flowey_lib_common/src/cache.rs:236:72' --is-raw-string write-to-env ado floweyvar5
3262 $FLOWEY_BIN v 14 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:237:72' --is-raw-string write-to-env ado floweyvar6
3263 displayName: Pre-processing cache vars
3264 - task: Cache@2
3265 inputs:
3266 key: $(floweyvar6)
3267 path: $(floweyvar5)
3268 cacheHitVar: FLOWEY_CACHE_HITVAR
3269 displayName: 'Restore cache: gh-release-download'
3270 - bash: |-
3271 set -e
3272 $FLOWEY_BIN v 14 'flowey_lib_common::cache:11:flowey_lib_common/src/cache.rs:300:70' --is-raw-string update --env-source FLOWEY_CACHE_HITVAR <<'EOF'
3273 $(FLOWEY_CACHE_HITVAR)
3274 EOF
3275 $(FLOWEY_BIN) e 14 flowey_lib_common::cache 6
3276 displayName: map ADO hitvar to flowey
3277 - bash: $(FLOWEY_BIN) e 14 flowey_lib_common::download_gh_release 1
3278 displayName: download artifacts from github releases
3279 - bash: $(FLOWEY_BIN) e 14 flowey_lib_common::download_azcopy 0
3280 displayName: extract azcopy from archive
3281 - bash: $(FLOWEY_BIN) e 14 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 0
3282 displayName: calculating required VMM tests disk images
3283 - bash: |-
3284 set -e
3285 $(FLOWEY_BIN) e 14 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 1
3286 $(FLOWEY_BIN) e 14 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 2
3287 displayName: downloading VMM test disk images
3288 - bash: $(FLOWEY_BIN) e 14 flowey_lib_hvlite::resolve_openvmm_deps 0
3289 displayName: unpack openvmm-deps archive
3290 - bash: $(FLOWEY_BIN) e 14 flowey_lib_hvlite::download_uefi_mu_msvm 0
3291 displayName: unpack mu_msvm package (x64)
3292 - bash: |-
3293 set -e
3294 $(FLOWEY_BIN) e 14 flowey_lib_hvlite::init_vmm_tests_env 0
3295 $(FLOWEY_BIN) e 14 flowey_lib_hvlite::run_cargo_nextest_run 1
3296 $(FLOWEY_BIN) e 14 flowey_core::pipeline::artifact::resolve 12
3297 $(FLOWEY_BIN) e 14 flowey_lib_hvlite::test_nextest_vmm_tests_archive 0
3298 displayName: setting up vmm_tests env
3299 - bash: $(FLOWEY_BIN) e 14 flowey_lib_common::gen_cargo_nextest_run_cmd 0
3300 displayName: generate nextest command
3301 - bash: $(FLOWEY_BIN) e 14 flowey_lib_hvlite::install_vmm_tests_deps 0
3302 displayName: install vmm tests deps (windows)
3303 - bash: $(FLOWEY_BIN) e 14 flowey_lib_hvlite::run_test_igvm_agent_rpc_server 0
3304 displayName: starting test_igvm_agent_rpc_server
3305 - bash: |-
3306 set -e
3307 $(FLOWEY_BIN) e 14 flowey_lib_common::run_cargo_nextest_run 0
3308 $(FLOWEY_BIN) e 14 flowey_lib_common::run_cargo_nextest_run 1
3309 $(FLOWEY_BIN) e 14 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 1
3310 displayName: run 'vmm_tests' nextest tests
3311 - bash: |-
3312 set -e
3313 $(FLOWEY_BIN) e 14 flowey_lib_hvlite::stop_test_igvm_agent_rpc_server 0
3314 $(FLOWEY_BIN) e 14 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 3
3315 $(FLOWEY_BIN) e 14 flowey_lib_common::publish_test_results 1
3316 $(FLOWEY_BIN) e 14 flowey_lib_common::ado_task_publish_test_results 0
3317 $(FLOWEY_BIN) e 14 flowey_lib_common::publish_test_results 0
3318 $FLOWEY_BIN v 14 'flowey_lib_common::ado_task_publish_test_results:0:flowey_lib_common/src/ado_task_publish_test_results.rs:57:45' --is-raw-string --condvar flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env ado floweyvar1
3319 $FLOWEY_BIN v 14 'flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env ado FLOWEY_CONDITION
3320 displayName: stopping test_igvm_agent_rpc_server
3321 - task: PublishTestResults@2
3322 inputs:
3323 testResultsFormat: JUnit
3324 testResultsFiles: $(floweyvar1)
3325 testRunTitle: x64-windows-amd-vmm-tests
3326 displayName: 'publish test results: x64-windows-amd-vmm-tests (JUnit XML)'
3327 condition: and(eq(variables['FLOWEY_CONDITION'], true), succeeded(), not(canceled()))
3328 - bash: |-
3329 set -e
3330 $(FLOWEY_BIN) e 14 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 2
3331 $(FLOWEY_BIN) e 14 flowey_lib_common::publish_test_results 2
3332 $(FLOWEY_BIN) e 14 flowey_lib_common::publish_test_results 3
3333 $(FLOWEY_BIN) e 14 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 4
3334 displayName: report test results to overall pipeline status
3335 - bash: $(FLOWEY_BIN) e 14 flowey_lib_common::cache 3
3336 displayName: 'validate cache entry: cargo-nextest'
3337 - bash: $(FLOWEY_BIN) e 14 flowey_lib_common::cache 7
3338 displayName: 'validate cache entry: gh-release-download'
3339- job: job13
3340 displayName: run vmm-tests [x64-windows-intel]
3341 pool:
3342 demands:
3343 - ImageOverride -equals win-amd64
3344 name: openvmm-ado-intel-centralus
3345 dependsOn:
3346 - job0
3347 - job5
3348 - job7
3349 - job9
3350 condition: and(succeeded(), not(canceled()))
3351 variables:
3352 - name: FLOWEY_TEMP_DIR
3353 value: $(Build.StagingDirectory)/.flowey-internal
3354 steps:
3355 - task: DownloadPipelineArtifact@2
3356 displayName: 🌼πŸ₯Ύ Download bootstrapped flowey
3357 inputs:
3358 artifact: _internal-flowey-bootstrap-x86_64-windows-uid-3
3359 path: $(FLOWEY_TEMP_DIR)/bootstrapped-flowey
3360 - task: DownloadPipelineArtifact@2
3361 displayName: πŸŒΌπŸ“¦ Download x64-guest_test_uefi
3362 inputs:
3363 artifact: x64-guest_test_uefi
3364 path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-guest_test_uefi
3365 - task: DownloadPipelineArtifact@2
3366 displayName: πŸŒΌπŸ“¦ Download x64-linux-musl-pipette
3367 inputs:
3368 artifact: x64-linux-musl-pipette
3369 path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-linux-musl-pipette
3370 - task: DownloadPipelineArtifact@2
3371 displayName: πŸŒΌπŸ“¦ Download x64-linux-musl-tmk_vmm
3372 inputs:
3373 artifact: x64-linux-musl-tmk_vmm
3374 path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-linux-musl-tmk_vmm
3375 - task: DownloadPipelineArtifact@2
3376 displayName: πŸŒΌπŸ“¦ Download x64-linux-tpm_guest_tests
3377 inputs:
3378 artifact: x64-linux-tpm_guest_tests
3379 path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-linux-tpm_guest_tests
3380 - task: DownloadPipelineArtifact@2
3381 displayName: πŸŒΌπŸ“¦ Download x64-openhcl-igvm
3382 inputs:
3383 artifact: x64-openhcl-igvm
3384 path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-openhcl-igvm
3385 - task: DownloadPipelineArtifact@2
3386 displayName: πŸŒΌπŸ“¦ Download x64-tmks
3387 inputs:
3388 artifact: x64-tmks
3389 path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-tmks
3390 - task: DownloadPipelineArtifact@2
3391 displayName: πŸŒΌπŸ“¦ Download x64-windows-openvmm
3392 inputs:
3393 artifact: x64-windows-openvmm
3394 path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-openvmm
3395 - task: DownloadPipelineArtifact@2
3396 displayName: πŸŒΌπŸ“¦ Download x64-windows-pipette
3397 inputs:
3398 artifact: x64-windows-pipette
3399 path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-pipette
3400 - task: DownloadPipelineArtifact@2
3401 displayName: πŸŒΌπŸ“¦ Download x64-windows-prep_steps
3402 inputs:
3403 artifact: x64-windows-prep_steps
3404 path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-prep_steps
3405 - task: DownloadPipelineArtifact@2
3406 displayName: πŸŒΌπŸ“¦ Download x64-windows-test_igvm_agent_rpc_server
3407 inputs:
3408 artifact: x64-windows-test_igvm_agent_rpc_server
3409 path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-test_igvm_agent_rpc_server
3410 - task: DownloadPipelineArtifact@2
3411 displayName: πŸŒΌπŸ“¦ Download x64-windows-tmk_vmm
3412 inputs:
3413 artifact: x64-windows-tmk_vmm
3414 path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-tmk_vmm
3415 - task: DownloadPipelineArtifact@2
3416 displayName: πŸŒΌπŸ“¦ Download x64-windows-tpm_guest_tests
3417 inputs:
3418 artifact: x64-windows-tpm_guest_tests
3419 path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-tpm_guest_tests
3420 - task: DownloadPipelineArtifact@2
3421 displayName: πŸŒΌπŸ“¦ Download x64-windows-vmgstool
3422 inputs:
3423 artifact: x64-windows-vmgstool
3424 path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-vmgstool
3425 - task: DownloadPipelineArtifact@2
3426 displayName: πŸŒΌπŸ“¦ Download x64-windows-vmm-tests-archive
3427 inputs:
3428 artifact: x64-windows-vmm-tests-archive
3429 path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-vmm-tests-archive
3430 - bash: |
3431 set -e
3432 AgentTempDirNormal="$(FLOWEY_TEMP_DIR)"
3433 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
3434 echo "##vso[task.setvariable variable=AgentTempDirNormal;]$AgentTempDirNormal"
3435
3436 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe
3437 FLOWEY_BIN="$AgentTempDirNormal/bootstrapped-flowey/flowey.exe"
3438 echo "##vso[task.setvariable variable=FLOWEY_BIN;]$FLOWEY_BIN"
3439 displayName: Set flowey path
3440 - bash: |
3441 set -e
3442 echo '"debug"' | $FLOWEY_BIN v 13 'FLOWEY_LOG' update
3443 echo "$(FLOWEY_TEMP_DIR)/work" | $FLOWEY_BIN v 13 '_internal_WORKING_DIR' --is-raw-string update
3444
3445 cat <<'EOF' | tr '[:upper:]' '[:lower:]' | $FLOWEY_BIN v 13 'verbose' update
3446 ${{ parameters.verbose }}
3447 EOF
3448 echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-guest_test_uefi" | $FLOWEY_BIN v 13 'artifact_use_from_x64-guest_test_uefi' --is-raw-string update
3449 echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-linux-musl-pipette" | $FLOWEY_BIN v 13 'artifact_use_from_x64-linux-musl-pipette' --is-raw-string update
3450 echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-linux-musl-tmk_vmm" | $FLOWEY_BIN v 13 'artifact_use_from_x64-linux-musl-tmk_vmm' --is-raw-string update
3451 echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-linux-tpm_guest_tests" | $FLOWEY_BIN v 13 'artifact_use_from_x64-linux-tpm_guest_tests' --is-raw-string update
3452 echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-openhcl-igvm" | $FLOWEY_BIN v 13 'artifact_use_from_x64-openhcl-igvm' --is-raw-string update
3453 echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-tmks" | $FLOWEY_BIN v 13 'artifact_use_from_x64-tmks' --is-raw-string update
3454 echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-openvmm" | $FLOWEY_BIN v 13 'artifact_use_from_x64-windows-openvmm' --is-raw-string update
3455 echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-pipette" | $FLOWEY_BIN v 13 'artifact_use_from_x64-windows-pipette' --is-raw-string update
3456 echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-prep_steps" | $FLOWEY_BIN v 13 'artifact_use_from_x64-windows-prep_steps' --is-raw-string update
3457 echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-test_igvm_agent_rpc_server" | $FLOWEY_BIN v 13 'artifact_use_from_x64-windows-test_igvm_agent_rpc_server' --is-raw-string update
3458 echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-tmk_vmm" | $FLOWEY_BIN v 13 'artifact_use_from_x64-windows-tmk_vmm' --is-raw-string update
3459 echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-tpm_guest_tests" | $FLOWEY_BIN v 13 'artifact_use_from_x64-windows-tpm_guest_tests' --is-raw-string update
3460 echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-vmgstool" | $FLOWEY_BIN v 13 'artifact_use_from_x64-windows-vmgstool' --is-raw-string update
3461 echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-vmm-tests-archive" | $FLOWEY_BIN v 13 'artifact_use_from_x64-windows-vmm-tests-archive' --is-raw-string update
3462 displayName: πŸŒΌπŸ›« Initialize job
3463 - bash: |-
3464 set -e
3465 $(FLOWEY_BIN) e 13 flowey_lib_common::download_cargo_nextest 0
3466 $(FLOWEY_BIN) e 13 flowey_lib_common::download_cargo_nextest 1
3467 $(FLOWEY_BIN) e 13 flowey_lib_common::download_cargo_nextest 2
3468 $(FLOWEY_BIN) e 13 flowey_lib_common::download_cargo_nextest 3
3469 displayName: create cargo-nextest cache dir
3470 - bash: |-
3471 set -e
3472 $(FLOWEY_BIN) e 13 flowey_lib_common::cache 0
3473 $FLOWEY_BIN v 13 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:236:72' --is-raw-string write-to-env ado floweyvar3
3474 $FLOWEY_BIN v 13 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:237:72' --is-raw-string write-to-env ado floweyvar4
3475 displayName: Pre-processing cache vars
3476 - task: Cache@2
3477 inputs:
3478 key: $(floweyvar4)
3479 path: $(floweyvar3)
3480 cacheHitVar: FLOWEY_CACHE_HITVAR
3481 displayName: 'Restore cache: cargo-nextest'
3482 - bash: |-
3483 set -e
3484 $FLOWEY_BIN v 13 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:300:70' --is-raw-string update --env-source FLOWEY_CACHE_HITVAR <<'EOF'
3485 $(FLOWEY_CACHE_HITVAR)
3486 EOF
3487 $(FLOWEY_BIN) e 13 flowey_lib_common::cache 2
3488 displayName: map ADO hitvar to flowey
3489 - bash: $(FLOWEY_BIN) e 13 flowey_lib_common::download_cargo_nextest 4
3490 displayName: downloading cargo-nextest
3491 - bash: |-
3492 set -e
3493 $(FLOWEY_BIN) e 13 flowey_lib_common::git_checkout 0
3494 $FLOWEY_BIN v 13 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:319:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:320:46 write-to-env ado floweyvar2
3495 $FLOWEY_BIN v 13 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:320:46' write-to-env ado FLOWEY_CONDITION
3496 displayName: check if openvmm needs to be cloned
3497 - checkout: self
3498 path: repo0
3499 fetchTags: false
3500 fetchDepth: 1
3501 persistCredentials: $(floweyvar2)
3502 submodules: recursive
3503 displayName: checkout repo openvmm
3504 condition: and(eq(variables['FLOWEY_CONDITION'], true), succeeded(), not(canceled()))
3505 - bash: |-
3506 set -e
3507 $(FLOWEY_BIN) e 13 flowey_lib_common::git_checkout 2
3508 $(FLOWEY_BIN) e 13 flowey_lib_hvlite::git_checkout_openvmm_repo 0
3509 $(FLOWEY_BIN) e 13 flowey_lib_hvlite::run_cargo_nextest_run 0
3510 $(FLOWEY_BIN) e 13 flowey_core::pipeline::artifact::resolve 5
3511 $(FLOWEY_BIN) e 13 flowey_core::pipeline::artifact::resolve 6
3512 $(FLOWEY_BIN) e 13 flowey_core::pipeline::artifact::resolve 1
3513 $(FLOWEY_BIN) e 13 flowey_core::pipeline::artifact::resolve 0
3514 $(FLOWEY_BIN) e 13 flowey_core::pipeline::artifact::resolve 9
3515 $(FLOWEY_BIN) e 13 flowey_core::pipeline::artifact::resolve 2
3516 $(FLOWEY_BIN) e 13 flowey_core::pipeline::artifact::resolve 4
3517 $(FLOWEY_BIN) e 13 flowey_core::pipeline::artifact::resolve 11
3518 $(FLOWEY_BIN) e 13 flowey_core::pipeline::artifact::resolve 10
3519 $(FLOWEY_BIN) e 13 flowey_core::pipeline::artifact::resolve 3
3520 $(FLOWEY_BIN) e 13 flowey_core::pipeline::artifact::resolve 8
3521 displayName: report cloned repo directories
3522 - bash: $(FLOWEY_BIN) e 13 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 0
3523 displayName: creating new test content dir
3524 - bash: $(FLOWEY_BIN) e 13 flowey_lib_hvlite::artifact_openhcl_igvm_from_recipe::resolve 0
3525 displayName: resolve OpenHCL igvm artifact
3526 - bash: $(FLOWEY_BIN) e 13 flowey_lib_common::download_gh_release 0
3527 displayName: create gh-release-download cache dir
3528 - bash: |-
3529 set -e
3530 $(FLOWEY_BIN) e 13 flowey_lib_common::cache 4
3531 $FLOWEY_BIN v 13 'flowey_lib_common::cache:8:flowey_lib_common/src/cache.rs:236:72' --is-raw-string write-to-env ado floweyvar5
3532 $FLOWEY_BIN v 13 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:237:72' --is-raw-string write-to-env ado floweyvar6
3533 displayName: Pre-processing cache vars
3534 - task: Cache@2
3535 inputs:
3536 key: $(floweyvar6)
3537 path: $(floweyvar5)
3538 cacheHitVar: FLOWEY_CACHE_HITVAR
3539 displayName: 'Restore cache: gh-release-download'
3540 - bash: |-
3541 set -e
3542 $FLOWEY_BIN v 13 'flowey_lib_common::cache:11:flowey_lib_common/src/cache.rs:300:70' --is-raw-string update --env-source FLOWEY_CACHE_HITVAR <<'EOF'
3543 $(FLOWEY_CACHE_HITVAR)
3544 EOF
3545 $(FLOWEY_BIN) e 13 flowey_lib_common::cache 6
3546 displayName: map ADO hitvar to flowey
3547 - bash: $(FLOWEY_BIN) e 13 flowey_lib_common::download_gh_release 1
3548 displayName: download artifacts from github releases
3549 - bash: $(FLOWEY_BIN) e 13 flowey_lib_common::download_azcopy 0
3550 displayName: extract azcopy from archive
3551 - bash: $(FLOWEY_BIN) e 13 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 0
3552 displayName: calculating required VMM tests disk images
3553 - bash: |-
3554 set -e
3555 $(FLOWEY_BIN) e 13 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 1
3556 $(FLOWEY_BIN) e 13 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 2
3557 displayName: downloading VMM test disk images
3558 - bash: $(FLOWEY_BIN) e 13 flowey_lib_hvlite::resolve_openvmm_deps 0
3559 displayName: unpack openvmm-deps archive
3560 - bash: $(FLOWEY_BIN) e 13 flowey_lib_hvlite::download_uefi_mu_msvm 0
3561 displayName: unpack mu_msvm package (x64)
3562 - bash: |-
3563 set -e
3564 $(FLOWEY_BIN) e 13 flowey_lib_hvlite::init_vmm_tests_env 0
3565 $(FLOWEY_BIN) e 13 flowey_lib_hvlite::run_cargo_nextest_run 1
3566 $(FLOWEY_BIN) e 13 flowey_core::pipeline::artifact::resolve 12
3567 $(FLOWEY_BIN) e 13 flowey_lib_hvlite::test_nextest_vmm_tests_archive 0
3568 displayName: setting up vmm_tests env
3569 - bash: $(FLOWEY_BIN) e 13 flowey_lib_common::gen_cargo_nextest_run_cmd 0
3570 displayName: generate nextest command
3571 - bash: $(FLOWEY_BIN) e 13 flowey_lib_hvlite::install_vmm_tests_deps 0
3572 displayName: install vmm tests deps (windows)
3573 - bash: $(FLOWEY_BIN) e 13 flowey_lib_hvlite::run_test_igvm_agent_rpc_server 0
3574 displayName: starting test_igvm_agent_rpc_server
3575 - bash: |-
3576 set -e
3577 $(FLOWEY_BIN) e 13 flowey_lib_common::run_cargo_nextest_run 0
3578 $(FLOWEY_BIN) e 13 flowey_lib_common::run_cargo_nextest_run 1
3579 $(FLOWEY_BIN) e 13 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 1
3580 displayName: run 'vmm_tests' nextest tests
3581 - bash: |-
3582 set -e
3583 $(FLOWEY_BIN) e 13 flowey_lib_hvlite::stop_test_igvm_agent_rpc_server 0
3584 $(FLOWEY_BIN) e 13 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 3
3585 $(FLOWEY_BIN) e 13 flowey_lib_common::publish_test_results 1
3586 $(FLOWEY_BIN) e 13 flowey_lib_common::ado_task_publish_test_results 0
3587 $(FLOWEY_BIN) e 13 flowey_lib_common::publish_test_results 0
3588 $FLOWEY_BIN v 13 'flowey_lib_common::ado_task_publish_test_results:0:flowey_lib_common/src/ado_task_publish_test_results.rs:57:45' --is-raw-string --condvar flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env ado floweyvar1
3589 $FLOWEY_BIN v 13 'flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env ado FLOWEY_CONDITION
3590 displayName: stopping test_igvm_agent_rpc_server
3591 - task: PublishTestResults@2
3592 inputs:
3593 testResultsFormat: JUnit
3594 testResultsFiles: $(floweyvar1)
3595 testRunTitle: x64-windows-intel-vmm-tests
3596 displayName: 'publish test results: x64-windows-intel-vmm-tests (JUnit XML)'
3597 condition: and(eq(variables['FLOWEY_CONDITION'], true), succeeded(), not(canceled()))
3598 - bash: |-
3599 set -e
3600 $(FLOWEY_BIN) e 13 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 2
3601 $(FLOWEY_BIN) e 13 flowey_lib_common::publish_test_results 2
3602 $(FLOWEY_BIN) e 13 flowey_lib_common::publish_test_results 3
3603 $(FLOWEY_BIN) e 13 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 4
3604 displayName: report test results to overall pipeline status
3605 - bash: $(FLOWEY_BIN) e 13 flowey_lib_common::cache 3
3606 displayName: 'validate cache entry: cargo-nextest'
3607 - bash: $(FLOWEY_BIN) e 13 flowey_lib_common::cache 7
3608 displayName: 'validate cache entry: gh-release-download'
3609- job: job4
3610 displayName: build artifacts (not for VMM tests) [x64-windows]
3611 pool:
3612 demands:
3613 - ImageOverride -equals win-amd64
3614 name: openvmm-ado-intel-centralus
3615 dependsOn:
3616 - job0
3617 condition: and(succeeded(), not(canceled()))
3618 variables:
3619 - name: FLOWEY_TEMP_DIR
3620 value: $(Build.StagingDirectory)/.flowey-internal
3621 steps:
3622 - bash: |
3623 set -x
3624 i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
3625 sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
3626 curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.94.0 -y
3627 . "$HOME/.cargo/env"
3628 echo '##vso[task.prependpath]$(HOME)/.cargo/bin'
3629 condition: eq(variables['Agent.OS'], 'Linux')
3630 displayName: rustup (Linux)
3631 - bash: |
3632 set -x
3633 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
3634 ./rustup-init.exe -y --default-toolchain=1.94.0
3635 echo '##vso[task.prependpath]$(USERPROFILE)\\.cargo\\bin'
3636 condition: eq(variables['Agent.OS'], 'Windows_NT')
3637 displayName: rustup (Windows X64)
3638 - bash: |
3639 set -x
3640 rustup show
3641 displayName: Verify rustup installation
3642 - checkout: self
3643 fetchTags: false
3644 fetchDepth: 1
3645 path: flowey_bootstrap
3646 - bash: CARGO_INCREMENTAL=0 RUSTC_BOOTSTRAP=1 RUSTFLAGS="-Z threads=8" cargo build -p flowey_hvlite --target x86_64-pc-windows-msvc --profile flowey-ci
3647 workingDirectory: ../flowey_bootstrap
3648 displayName: Build flowey
3649 - bash: |
3650 mkdir ./flowey_bootstrap_temp
3651 mv ./ci-flowey/openvmm-pr.yaml ./flowey_bootstrap_temp/pipeline.yaml
3652 mv ./ci-flowey/openvmm-pr.json ./flowey_bootstrap_temp/pipeline.json
3653 mv target/x86_64-pc-windows-msvc/flowey-ci/flowey_hvlite.exe ./flowey_bootstrap_temp/flowey.exe
3654 workingDirectory: ../flowey_bootstrap
3655 displayName: Stage flowey artifact
3656 - task: CopyFiles@2
3657 displayName: Copy flowey artifact
3658 inputs:
3659 SourceFolder: ../flowey_bootstrap/flowey_bootstrap_temp
3660 TargetFolder: $(FLOWEY_TEMP_DIR)/bootstrapped-flowey
3661 - bash: rm -rf ./flowey_bootstrap_temp
3662 workingDirectory: ../flowey_bootstrap
3663 displayName: Cleanup staged flowey artifact
3664 - bash: |
3665 set -e
3666 AgentTempDirNormal="$(FLOWEY_TEMP_DIR)"
3667 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
3668 echo "##vso[task.setvariable variable=AgentTempDirNormal;]$AgentTempDirNormal"
3669
3670 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe
3671 FLOWEY_BIN="$AgentTempDirNormal/bootstrapped-flowey/flowey.exe"
3672 echo "##vso[task.setvariable variable=FLOWEY_BIN;]$FLOWEY_BIN"
3673 displayName: Set flowey path
3674 - bash: |-
3675 ESCAPED_AGENT_TEMPDIR=$(
3676 cat <<'EOF' | sed 's/\\/\\\\/g'
3677 $(FLOWEY_TEMP_DIR)
3678 EOF
3679 )
3680 $(FLOWEY_BIN) pipeline ado --runtime $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out ci-flowey/openvmm-pr.yaml ci checkin-gates --config=pr
3681 displayName: πŸŒΌπŸ”Ž Self-check YAML
3682 - bash: |
3683 set -e
3684 echo '"debug"' | $FLOWEY_BIN v 4 'FLOWEY_LOG' update
3685 echo "$(FLOWEY_TEMP_DIR)/work" | $FLOWEY_BIN v 4 '_internal_WORKING_DIR' --is-raw-string update
3686
3687 cat <<'EOF' | tr '[:upper:]' '[:lower:]' | $FLOWEY_BIN v 4 'verbose' update
3688 ${{ parameters.verbose }}
3689 EOF
3690 mkdir -p "$(AgentTempDirNormal)/publish_artifacts/x64-windows-hypestv"
3691 echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/x64-windows-hypestv" | $FLOWEY_BIN v 4 'artifact_publish_from_x64-windows-hypestv' --is-raw-string update
3692 mkdir -p "$(AgentTempDirNormal)/publish_artifacts/x64-windows-igvmfilegen"
3693 echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/x64-windows-igvmfilegen" | $FLOWEY_BIN v 4 'artifact_publish_from_x64-windows-igvmfilegen' --is-raw-string update
3694 mkdir -p "$(AgentTempDirNormal)/publish_artifacts/x64-windows-ohcldiag-dev"
3695 echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/x64-windows-ohcldiag-dev" | $FLOWEY_BIN v 4 'artifact_publish_from_x64-windows-ohcldiag-dev' --is-raw-string update
3696 mkdir -p "$(AgentTempDirNormal)/publish_artifacts/x64-windows-vmgs_lib"
3697 echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/x64-windows-vmgs_lib" | $FLOWEY_BIN v 4 'artifact_publish_from_x64-windows-vmgs_lib' --is-raw-string update
3698 displayName: πŸŒΌπŸ›« Initialize job
3699 - bash: $(FLOWEY_BIN) e 4 flowey_lib_common::install_rust 0
3700 displayName: install Rust
3701 - bash: |-
3702 set -e
3703 $(FLOWEY_BIN) e 4 flowey_lib_common::install_rust 1
3704 $(FLOWEY_BIN) e 4 flowey_lib_common::cfg_cargo_common_flags 0
3705 displayName: detect active toolchain
3706 - bash: |-
3707 set -e
3708 $(FLOWEY_BIN) e 4 flowey_lib_common::git_checkout 0
3709 $FLOWEY_BIN v 4 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:319:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:320:46 write-to-env ado floweyvar1
3710 $FLOWEY_BIN v 4 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:320:46' write-to-env ado FLOWEY_CONDITION
3711 displayName: check if openvmm needs to be cloned
3712 - checkout: self
3713 path: repo0
3714 fetchTags: false
3715 fetchDepth: 1
3716 persistCredentials: $(floweyvar1)
3717 submodules: recursive
3718 displayName: checkout repo openvmm
3719 condition: and(eq(variables['FLOWEY_CONDITION'], true), succeeded(), not(canceled()))
3720 - bash: |-
3721 set -e
3722 $(FLOWEY_BIN) e 4 flowey_lib_common::git_checkout 2
3723 $(FLOWEY_BIN) e 4 flowey_lib_hvlite::git_checkout_openvmm_repo 0
3724 displayName: report cloned repo directories
3725 - bash: $(FLOWEY_BIN) e 4 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
3726 displayName: set '-Dwarnings' in .cargo/config.toml
3727 - bash: $(FLOWEY_BIN) e 4 flowey_lib_common::download_gh_release 0
3728 displayName: create gh-release-download cache dir
3729 - bash: |-
3730 set -e
3731 $(FLOWEY_BIN) e 4 flowey_lib_common::cache 0
3732 $FLOWEY_BIN v 4 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:236:72' --is-raw-string write-to-env ado floweyvar2
3733 $FLOWEY_BIN v 4 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:237:72' --is-raw-string write-to-env ado floweyvar3
3734 displayName: Pre-processing cache vars
3735 - task: Cache@2
3736 inputs:
3737 key: $(floweyvar3)
3738 path: $(floweyvar2)
3739 cacheHitVar: FLOWEY_CACHE_HITVAR
3740 displayName: 'Restore cache: gh-release-download'
3741 - bash: |-
3742 set -e
3743 $FLOWEY_BIN v 4 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:300:70' --is-raw-string update --env-source FLOWEY_CACHE_HITVAR <<'EOF'
3744 $(FLOWEY_CACHE_HITVAR)
3745 EOF
3746 $(FLOWEY_BIN) e 4 flowey_lib_common::cache 2
3747 displayName: map ADO hitvar to flowey
3748 - bash: $(FLOWEY_BIN) e 4 flowey_lib_common::download_gh_release 1
3749 displayName: download artifacts from github releases
3750 - bash: |-
3751 set -e
3752 $(FLOWEY_BIN) e 4 flowey_lib_common::resolve_protoc 0
3753 $(FLOWEY_BIN) e 4 flowey_lib_hvlite::cfg_openvmm_magicpath 0
3754 displayName: unpack protoc
3755 - bash: |-
3756 set -e
3757 $(FLOWEY_BIN) e 4 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
3758 $(FLOWEY_BIN) e 4 flowey_lib_hvlite::init_cross_build 1
3759 displayName: symlink protoc
3760 - bash: |-
3761 set -e
3762 $(FLOWEY_BIN) e 4 flowey_lib_common::run_cargo_build 0
3763 $(FLOWEY_BIN) e 4 flowey_lib_hvlite::run_cargo_build 0
3764 $(FLOWEY_BIN) e 4 flowey_lib_hvlite::build_hypestv 0
3765 $(FLOWEY_BIN) e 4 flowey_core::pipeline::artifact::publish 0
3766 $(FLOWEY_BIN) e 4 flowey_lib_hvlite::init_cross_build 0
3767 displayName: cargo build hypestv
3768 - bash: |-
3769 set -e
3770 $(FLOWEY_BIN) e 4 flowey_lib_common::run_cargo_build 3
3771 $(FLOWEY_BIN) e 4 flowey_lib_hvlite::run_cargo_build 3
3772 $(FLOWEY_BIN) e 4 flowey_lib_hvlite::build_and_test_vmgs_lib 0
3773 displayName: cargo build vmgs_lib
3774 - bash: |-
3775 set -e
3776 $(FLOWEY_BIN) e 4 flowey_lib_hvlite::build_and_test_vmgs_lib 1
3777 $(FLOWEY_BIN) e 4 flowey_lib_hvlite::build_and_test_vmgs_lib 2
3778 $(FLOWEY_BIN) e 4 flowey_core::pipeline::artifact::publish 1
3779 $(FLOWEY_BIN) e 4 flowey_lib_hvlite::init_cross_build 2
3780 displayName: test vmgs_lib
3781 - bash: |-
3782 set -e
3783 $(FLOWEY_BIN) e 4 flowey_lib_common::run_cargo_build 1
3784 $(FLOWEY_BIN) e 4 flowey_lib_hvlite::run_cargo_build 1
3785 $(FLOWEY_BIN) e 4 flowey_lib_hvlite::build_igvmfilegen 0
3786 $(FLOWEY_BIN) e 4 flowey_core::pipeline::artifact::publish 2
3787 $(FLOWEY_BIN) e 4 flowey_lib_hvlite::init_cross_build 3
3788 displayName: cargo build igvmfilegen
3789 - bash: |-
3790 set -e
3791 $(FLOWEY_BIN) e 4 flowey_lib_common::run_cargo_build 2
3792 $(FLOWEY_BIN) e 4 flowey_lib_hvlite::run_cargo_build 2
3793 $(FLOWEY_BIN) e 4 flowey_lib_hvlite::build_ohcldiag_dev 0
3794 $(FLOWEY_BIN) e 4 flowey_core::pipeline::artifact::publish 3
3795 displayName: cargo build ohcldiag-dev
3796 - bash: $(FLOWEY_BIN) e 4 flowey_lib_common::cache 3
3797 displayName: 'validate cache entry: gh-release-download'
3798 - publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/x64-windows-hypestv
3799 displayName: πŸŒΌπŸ“¦ Publish x64-windows-hypestv
3800 artifact: x64-windows-hypestv
3801 - publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/x64-windows-igvmfilegen
3802 displayName: πŸŒΌπŸ“¦ Publish x64-windows-igvmfilegen
3803 artifact: x64-windows-igvmfilegen
3804 - publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/x64-windows-ohcldiag-dev
3805 displayName: πŸŒΌπŸ“¦ Publish x64-windows-ohcldiag-dev
3806 artifact: x64-windows-ohcldiag-dev
3807 - publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/x64-windows-vmgs_lib
3808 displayName: πŸŒΌπŸ“¦ Publish x64-windows-vmgs_lib
3809 artifact: x64-windows-vmgs_lib
3810- job: job3
3811 displayName: build artifacts (for VMM tests) [aarch64-windows]
3812 pool:
3813 demands:
3814 - ImageOverride -equals win-amd64
3815 name: openvmm-ado-intel-centralus
3816 dependsOn:
3817 - job0
3818 condition: and(succeeded(), not(canceled()))
3819 variables:
3820 - name: FLOWEY_TEMP_DIR
3821 value: $(Build.StagingDirectory)/.flowey-internal
3822 steps:
3823 - bash: |
3824 set -x
3825 i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
3826 sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
3827 curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.94.0 -y
3828 . "$HOME/.cargo/env"
3829 echo '##vso[task.prependpath]$(HOME)/.cargo/bin'
3830 condition: eq(variables['Agent.OS'], 'Linux')
3831 displayName: rustup (Linux)
3832 - bash: |
3833 set -x
3834 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
3835 ./rustup-init.exe -y --default-toolchain=1.94.0
3836 echo '##vso[task.prependpath]$(USERPROFILE)\\.cargo\\bin'
3837 condition: eq(variables['Agent.OS'], 'Windows_NT')
3838 displayName: rustup (Windows X64)
3839 - bash: |
3840 set -x
3841 rustup show
3842 displayName: Verify rustup installation
3843 - checkout: self
3844 fetchTags: false
3845 fetchDepth: 1
3846 path: flowey_bootstrap
3847 - bash: CARGO_INCREMENTAL=0 RUSTC_BOOTSTRAP=1 RUSTFLAGS="-Z threads=8" cargo build -p flowey_hvlite --target x86_64-pc-windows-msvc --profile flowey-ci
3848 workingDirectory: ../flowey_bootstrap
3849 displayName: Build flowey
3850 - bash: |
3851 mkdir ./flowey_bootstrap_temp
3852 mv ./ci-flowey/openvmm-pr.yaml ./flowey_bootstrap_temp/pipeline.yaml
3853 mv ./ci-flowey/openvmm-pr.json ./flowey_bootstrap_temp/pipeline.json
3854 mv target/x86_64-pc-windows-msvc/flowey-ci/flowey_hvlite.exe ./flowey_bootstrap_temp/flowey.exe
3855 workingDirectory: ../flowey_bootstrap
3856 displayName: Stage flowey artifact
3857 - task: CopyFiles@2
3858 displayName: Copy flowey artifact
3859 inputs:
3860 SourceFolder: ../flowey_bootstrap/flowey_bootstrap_temp
3861 TargetFolder: $(FLOWEY_TEMP_DIR)/bootstrapped-flowey
3862 - bash: rm -rf ./flowey_bootstrap_temp
3863 workingDirectory: ../flowey_bootstrap
3864 displayName: Cleanup staged flowey artifact
3865 - bash: |
3866 set -e
3867 AgentTempDirNormal="$(FLOWEY_TEMP_DIR)"
3868 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
3869 echo "##vso[task.setvariable variable=AgentTempDirNormal;]$AgentTempDirNormal"
3870
3871 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe
3872 FLOWEY_BIN="$AgentTempDirNormal/bootstrapped-flowey/flowey.exe"
3873 echo "##vso[task.setvariable variable=FLOWEY_BIN;]$FLOWEY_BIN"
3874 displayName: Set flowey path
3875 - bash: |-
3876 ESCAPED_AGENT_TEMPDIR=$(
3877 cat <<'EOF' | sed 's/\\/\\\\/g'
3878 $(FLOWEY_TEMP_DIR)
3879 EOF
3880 )
3881 $(FLOWEY_BIN) pipeline ado --runtime $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out ci-flowey/openvmm-pr.yaml ci checkin-gates --config=pr
3882 displayName: πŸŒΌπŸ”Ž Self-check YAML
3883 - bash: |
3884 set -e
3885 echo '"debug"' | $FLOWEY_BIN v 3 'FLOWEY_LOG' update
3886 echo "$(FLOWEY_TEMP_DIR)/work" | $FLOWEY_BIN v 3 '_internal_WORKING_DIR' --is-raw-string update
3887
3888 cat <<'EOF' | tr '[:upper:]' '[:lower:]' | $FLOWEY_BIN v 3 'verbose' update
3889 ${{ parameters.verbose }}
3890 EOF
3891 mkdir -p "$(AgentTempDirNormal)/publish_artifacts/aarch64-windows-openvmm"
3892 echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-windows-openvmm" | $FLOWEY_BIN v 3 'artifact_publish_from_aarch64-windows-openvmm' --is-raw-string update
3893 mkdir -p "$(AgentTempDirNormal)/publish_artifacts/aarch64-windows-pipette"
3894 echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-windows-pipette" | $FLOWEY_BIN v 3 'artifact_publish_from_aarch64-windows-pipette' --is-raw-string update
3895 mkdir -p "$(AgentTempDirNormal)/publish_artifacts/aarch64-windows-prep_steps"
3896 echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-windows-prep_steps" | $FLOWEY_BIN v 3 'artifact_publish_from_aarch64-windows-prep_steps' --is-raw-string update
3897 mkdir -p "$(AgentTempDirNormal)/publish_artifacts/aarch64-windows-test_igvm_agent_rpc_server"
3898 echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-windows-test_igvm_agent_rpc_server" | $FLOWEY_BIN v 3 'artifact_publish_from_aarch64-windows-test_igvm_agent_rpc_server' --is-raw-string update
3899 mkdir -p "$(AgentTempDirNormal)/publish_artifacts/aarch64-windows-tmk_vmm"
3900 echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-windows-tmk_vmm" | $FLOWEY_BIN v 3 'artifact_publish_from_aarch64-windows-tmk_vmm' --is-raw-string update
3901 mkdir -p "$(AgentTempDirNormal)/publish_artifacts/aarch64-windows-tpm_guest_tests"
3902 echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-windows-tpm_guest_tests" | $FLOWEY_BIN v 3 'artifact_publish_from_aarch64-windows-tpm_guest_tests' --is-raw-string update
3903 mkdir -p "$(AgentTempDirNormal)/publish_artifacts/aarch64-windows-vmgstool"
3904 echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-windows-vmgstool" | $FLOWEY_BIN v 3 'artifact_publish_from_aarch64-windows-vmgstool' --is-raw-string update
3905 mkdir -p "$(AgentTempDirNormal)/publish_artifacts/aarch64-windows-vmm-tests-archive"
3906 echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-windows-vmm-tests-archive" | $FLOWEY_BIN v 3 'artifact_publish_from_aarch64-windows-vmm-tests-archive' --is-raw-string update
3907 displayName: πŸŒΌπŸ›« Initialize job
3908 - bash: $(FLOWEY_BIN) e 3 flowey_lib_common::install_rust 0
3909 displayName: install Rust
3910 - bash: |-
3911 set -e
3912 $(FLOWEY_BIN) e 3 flowey_lib_common::install_rust 1
3913 $(FLOWEY_BIN) e 3 flowey_lib_common::cfg_cargo_common_flags 0
3914 displayName: detect active toolchain
3915 - bash: |-
3916 set -e
3917 $(FLOWEY_BIN) e 3 flowey_lib_common::git_checkout 0
3918 $FLOWEY_BIN v 3 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:319:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:320:46 write-to-env ado floweyvar1
3919 $FLOWEY_BIN v 3 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:320:46' write-to-env ado FLOWEY_CONDITION
3920 displayName: check if openvmm needs to be cloned
3921 - checkout: self
3922 path: repo0
3923 fetchTags: false
3924 fetchDepth: 1
3925 persistCredentials: $(floweyvar1)
3926 submodules: recursive
3927 displayName: checkout repo openvmm
3928 condition: and(eq(variables['FLOWEY_CONDITION'], true), succeeded(), not(canceled()))
3929 - bash: |-
3930 set -e
3931 $(FLOWEY_BIN) e 3 flowey_lib_common::git_checkout 2
3932 $(FLOWEY_BIN) e 3 flowey_lib_hvlite::git_checkout_openvmm_repo 0
3933 displayName: report cloned repo directories
3934 - bash: $(FLOWEY_BIN) e 3 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
3935 displayName: set '-Dwarnings' in .cargo/config.toml
3936 - bash: $(FLOWEY_BIN) e 3 flowey_lib_common::download_gh_release 0
3937 displayName: create gh-release-download cache dir
3938 - bash: |-
3939 set -e
3940 $(FLOWEY_BIN) e 3 flowey_lib_common::cache 4
3941 $FLOWEY_BIN v 3 'flowey_lib_common::cache:8:flowey_lib_common/src/cache.rs:236:72' --is-raw-string write-to-env ado floweyvar4
3942 $FLOWEY_BIN v 3 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:237:72' --is-raw-string write-to-env ado floweyvar5
3943 displayName: Pre-processing cache vars
3944 - task: Cache@2
3945 inputs:
3946 key: $(floweyvar5)
3947 path: $(floweyvar4)
3948 cacheHitVar: FLOWEY_CACHE_HITVAR
3949 displayName: 'Restore cache: gh-release-download'
3950 - bash: |-
3951 set -e
3952 $FLOWEY_BIN v 3 'flowey_lib_common::cache:11:flowey_lib_common/src/cache.rs:300:70' --is-raw-string update --env-source FLOWEY_CACHE_HITVAR <<'EOF'
3953 $(FLOWEY_CACHE_HITVAR)
3954 EOF
3955 $(FLOWEY_BIN) e 3 flowey_lib_common::cache 6
3956 displayName: map ADO hitvar to flowey
3957 - bash: $(FLOWEY_BIN) e 3 flowey_lib_common::download_gh_release 1
3958 displayName: download artifacts from github releases
3959 - bash: |-
3960 set -e
3961 $(FLOWEY_BIN) e 3 flowey_lib_common::resolve_protoc 0
3962 $(FLOWEY_BIN) e 3 flowey_lib_hvlite::cfg_openvmm_magicpath 0
3963 displayName: unpack protoc
3964 - bash: |-
3965 set -e
3966 $(FLOWEY_BIN) e 3 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
3967 $(FLOWEY_BIN) e 3 flowey_lib_hvlite::init_cross_build 2
3968 displayName: symlink protoc
3969 - bash: |-
3970 set -e
3971 $(FLOWEY_BIN) e 3 flowey_lib_common::run_cargo_build 4
3972 $(FLOWEY_BIN) e 3 flowey_lib_hvlite::run_cargo_build 6
3973 $(FLOWEY_BIN) e 3 flowey_lib_hvlite::build_tmk_vmm 0
3974 $(FLOWEY_BIN) e 3 flowey_core::pipeline::artifact::publish 4
3975 $(FLOWEY_BIN) e 3 flowey_lib_hvlite::init_cross_build 7
3976 displayName: cargo build tmk_vmm
3977 - bash: |-
3978 set -e
3979 $(FLOWEY_BIN) e 3 flowey_lib_common::run_cargo_build 2
3980 $(FLOWEY_BIN) e 3 flowey_lib_hvlite::run_cargo_build 2
3981 $(FLOWEY_BIN) e 3 flowey_lib_hvlite::build_prep_steps 0
3982 $(FLOWEY_BIN) e 3 flowey_core::pipeline::artifact::publish 5
3983 $(FLOWEY_BIN) e 3 flowey_lib_hvlite::init_cross_build 4
3984 displayName: cargo build prep_steps
3985 - bash: |-
3986 set -e
3987 $(FLOWEY_BIN) e 3 flowey_lib_common::run_cargo_build 6
3988 $(FLOWEY_BIN) e 3 flowey_lib_hvlite::run_cargo_build 10
3989 $(FLOWEY_BIN) e 3 flowey_lib_hvlite::build_vmgstool 0
3990 $(FLOWEY_BIN) e 3 flowey_core::pipeline::artifact::publish 6
3991 $(FLOWEY_BIN) e 3 flowey_lib_hvlite::init_cross_build 3
3992 $(FLOWEY_BIN) e 3 flowey_lib_hvlite::run_cargo_build 7
3993 $(FLOWEY_BIN) e 3 flowey_lib_hvlite::run_cargo_build 8
3994 displayName: cargo build vmgstool
3995 - bash: |-
3996 set -e
3997 $(FLOWEY_BIN) e 3 flowey_lib_common::run_cargo_build 5
3998 $(FLOWEY_BIN) e 3 flowey_lib_hvlite::run_cargo_build 9
3999 $(FLOWEY_BIN) e 3 flowey_lib_hvlite::build_tpm_guest_tests 0
4000 $(FLOWEY_BIN) e 3 flowey_core::pipeline::artifact::publish 7
4001 $(FLOWEY_BIN) e 3 flowey_lib_hvlite::init_cross_build 1
4002 $(FLOWEY_BIN) e 3 flowey_lib_hvlite::run_cargo_build 3
4003 $(FLOWEY_BIN) e 3 flowey_lib_hvlite::run_cargo_build 4
4004 displayName: cargo build tpm_guest_tests
4005 - bash: |-
4006 set -e
4007 $(FLOWEY_BIN) e 3 flowey_lib_common::run_cargo_build 3
4008 $(FLOWEY_BIN) e 3 flowey_lib_hvlite::run_cargo_build 5
4009 $(FLOWEY_BIN) e 3 flowey_lib_hvlite::build_test_igvm_agent_rpc_server 0
4010 $(FLOWEY_BIN) e 3 flowey_core::pipeline::artifact::publish 0
4011 displayName: cargo build test_igvm_agent_rpc_server
4012 - bash: |-
4013 set -e
4014 $(FLOWEY_BIN) e 3 flowey_lib_common::download_cargo_nextest 0
4015 $(FLOWEY_BIN) e 3 flowey_lib_common::download_cargo_nextest 1
4016 $(FLOWEY_BIN) e 3 flowey_lib_common::download_cargo_nextest 2
4017 $(FLOWEY_BIN) e 3 flowey_lib_common::download_cargo_nextest 3
4018 displayName: create cargo-nextest cache dir
4019 - bash: |-
4020 set -e
4021 $(FLOWEY_BIN) e 3 flowey_lib_common::cache 0
4022 $FLOWEY_BIN v 3 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:236:72' --is-raw-string write-to-env ado floweyvar2
4023 $FLOWEY_BIN v 3 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:237:72' --is-raw-string write-to-env ado floweyvar3
4024 displayName: Pre-processing cache vars
4025 - task: Cache@2
4026 inputs:
4027 key: $(floweyvar3)
4028 path: $(floweyvar2)
4029 cacheHitVar: FLOWEY_CACHE_HITVAR
4030 displayName: 'Restore cache: cargo-nextest'
4031 - bash: |-
4032 set -e
4033 $FLOWEY_BIN v 3 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:300:70' --is-raw-string update --env-source FLOWEY_CACHE_HITVAR <<'EOF'
4034 $(FLOWEY_CACHE_HITVAR)
4035 EOF
4036 $(FLOWEY_BIN) e 3 flowey_lib_common::cache 2
4037 displayName: map ADO hitvar to flowey
4038 - bash: $(FLOWEY_BIN) e 3 flowey_lib_common::download_cargo_nextest 4
4039 displayName: downloading cargo-nextest
4040 - bash: $(FLOWEY_BIN) e 3 flowey_lib_common::install_rust 2
4041 displayName: report $CARGO_HOME
4042 - bash: |-
4043 set -e
4044 $(FLOWEY_BIN) e 3 flowey_lib_common::install_cargo_nextest 0
4045 $(FLOWEY_BIN) e 3 flowey_lib_hvlite::init_cross_build 0
4046 displayName: installing cargo-nextest
4047 - bash: |-
4048 set -e
4049 $(FLOWEY_BIN) e 3 flowey_lib_common::run_cargo_nextest_archive 0
4050 $(FLOWEY_BIN) e 3 flowey_lib_hvlite::build_nextest_vmm_tests 0
4051 $(FLOWEY_BIN) e 3 flowey_core::pipeline::artifact::publish 1
4052 $(FLOWEY_BIN) e 3 flowey_lib_hvlite::init_cross_build 5
4053 displayName: build + archive 'vmm_tests' nextests
4054 - bash: |-
4055 set -e
4056 $(FLOWEY_BIN) e 3 flowey_lib_common::run_cargo_build 0
4057 $(FLOWEY_BIN) e 3 flowey_lib_hvlite::run_cargo_build 0
4058 $(FLOWEY_BIN) e 3 flowey_lib_hvlite::build_openvmm 0
4059 $(FLOWEY_BIN) e 3 flowey_core::pipeline::artifact::publish 2
4060 $(FLOWEY_BIN) e 3 flowey_lib_hvlite::init_cross_build 6
4061 displayName: cargo build openvmm
4062 - bash: |-
4063 set -e
4064 $(FLOWEY_BIN) e 3 flowey_lib_common::run_cargo_build 1
4065 $(FLOWEY_BIN) e 3 flowey_lib_hvlite::run_cargo_build 1
4066 $(FLOWEY_BIN) e 3 flowey_lib_hvlite::build_pipette 0
4067 $(FLOWEY_BIN) e 3 flowey_core::pipeline::artifact::publish 3
4068 displayName: cargo build pipette
4069 - bash: $(FLOWEY_BIN) e 3 flowey_lib_common::cache 3
4070 displayName: 'validate cache entry: cargo-nextest'
4071 - bash: $(FLOWEY_BIN) e 3 flowey_lib_common::cache 7
4072 displayName: 'validate cache entry: gh-release-download'
4073 - publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-windows-openvmm
4074 displayName: πŸŒΌπŸ“¦ Publish aarch64-windows-openvmm
4075 artifact: aarch64-windows-openvmm
4076 - publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-windows-pipette
4077 displayName: πŸŒΌπŸ“¦ Publish aarch64-windows-pipette
4078 artifact: aarch64-windows-pipette
4079 - publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-windows-prep_steps
4080 displayName: πŸŒΌπŸ“¦ Publish aarch64-windows-prep_steps
4081 artifact: aarch64-windows-prep_steps
4082 - publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-windows-test_igvm_agent_rpc_server
4083 displayName: πŸŒΌπŸ“¦ Publish aarch64-windows-test_igvm_agent_rpc_server
4084 artifact: aarch64-windows-test_igvm_agent_rpc_server
4085 - publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-windows-tmk_vmm
4086 displayName: πŸŒΌπŸ“¦ Publish aarch64-windows-tmk_vmm
4087 artifact: aarch64-windows-tmk_vmm
4088 - publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-windows-tpm_guest_tests
4089 displayName: πŸŒΌπŸ“¦ Publish aarch64-windows-tpm_guest_tests
4090 artifact: aarch64-windows-tpm_guest_tests
4091 - publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-windows-vmgstool
4092 displayName: πŸŒΌπŸ“¦ Publish aarch64-windows-vmgstool
4093 artifact: aarch64-windows-vmgstool
4094 - publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-windows-vmm-tests-archive
4095 displayName: πŸŒΌπŸ“¦ Publish aarch64-windows-vmm-tests-archive
4096 artifact: aarch64-windows-vmm-tests-archive
4097- job: job2
4098 displayName: build artifacts (not for VMM tests) [aarch64-windows]
4099 pool:
4100 demands:
4101 - ImageOverride -equals win-amd64
4102 name: openvmm-ado-intel-centralus
4103 dependsOn:
4104 - job0
4105 condition: and(succeeded(), not(canceled()))
4106 variables:
4107 - name: FLOWEY_TEMP_DIR
4108 value: $(Build.StagingDirectory)/.flowey-internal
4109 steps:
4110 - bash: |
4111 set -x
4112 i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
4113 sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
4114 curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.94.0 -y
4115 . "$HOME/.cargo/env"
4116 echo '##vso[task.prependpath]$(HOME)/.cargo/bin'
4117 condition: eq(variables['Agent.OS'], 'Linux')
4118 displayName: rustup (Linux)
4119 - bash: |
4120 set -x
4121 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
4122 ./rustup-init.exe -y --default-toolchain=1.94.0
4123 echo '##vso[task.prependpath]$(USERPROFILE)\\.cargo\\bin'
4124 condition: eq(variables['Agent.OS'], 'Windows_NT')
4125 displayName: rustup (Windows X64)
4126 - bash: |
4127 set -x
4128 rustup show
4129 displayName: Verify rustup installation
4130 - checkout: self
4131 fetchTags: false
4132 fetchDepth: 1
4133 path: flowey_bootstrap
4134 - bash: CARGO_INCREMENTAL=0 RUSTC_BOOTSTRAP=1 RUSTFLAGS="-Z threads=8" cargo build -p flowey_hvlite --target x86_64-pc-windows-msvc --profile flowey-ci
4135 workingDirectory: ../flowey_bootstrap
4136 displayName: Build flowey
4137 - bash: |
4138 mkdir ./flowey_bootstrap_temp
4139 mv ./ci-flowey/openvmm-pr.yaml ./flowey_bootstrap_temp/pipeline.yaml
4140 mv ./ci-flowey/openvmm-pr.json ./flowey_bootstrap_temp/pipeline.json
4141 mv target/x86_64-pc-windows-msvc/flowey-ci/flowey_hvlite.exe ./flowey_bootstrap_temp/flowey.exe
4142 workingDirectory: ../flowey_bootstrap
4143 displayName: Stage flowey artifact
4144 - task: CopyFiles@2
4145 displayName: Copy flowey artifact
4146 inputs:
4147 SourceFolder: ../flowey_bootstrap/flowey_bootstrap_temp
4148 TargetFolder: $(FLOWEY_TEMP_DIR)/bootstrapped-flowey
4149 - bash: rm -rf ./flowey_bootstrap_temp
4150 workingDirectory: ../flowey_bootstrap
4151 displayName: Cleanup staged flowey artifact
4152 - bash: |
4153 set -e
4154 AgentTempDirNormal="$(FLOWEY_TEMP_DIR)"
4155 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
4156 echo "##vso[task.setvariable variable=AgentTempDirNormal;]$AgentTempDirNormal"
4157
4158 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe
4159 FLOWEY_BIN="$AgentTempDirNormal/bootstrapped-flowey/flowey.exe"
4160 echo "##vso[task.setvariable variable=FLOWEY_BIN;]$FLOWEY_BIN"
4161 displayName: Set flowey path
4162 - bash: |-
4163 ESCAPED_AGENT_TEMPDIR=$(
4164 cat <<'EOF' | sed 's/\\/\\\\/g'
4165 $(FLOWEY_TEMP_DIR)
4166 EOF
4167 )
4168 $(FLOWEY_BIN) pipeline ado --runtime $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out ci-flowey/openvmm-pr.yaml ci checkin-gates --config=pr
4169 displayName: πŸŒΌπŸ”Ž Self-check YAML
4170 - bash: |
4171 set -e
4172 echo '"debug"' | $FLOWEY_BIN v 2 'FLOWEY_LOG' update
4173 echo "$(FLOWEY_TEMP_DIR)/work" | $FLOWEY_BIN v 2 '_internal_WORKING_DIR' --is-raw-string update
4174
4175 cat <<'EOF' | tr '[:upper:]' '[:lower:]' | $FLOWEY_BIN v 2 'verbose' update
4176 ${{ parameters.verbose }}
4177 EOF
4178 mkdir -p "$(AgentTempDirNormal)/publish_artifacts/aarch64-windows-hypestv"
4179 echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-windows-hypestv" | $FLOWEY_BIN v 2 'artifact_publish_from_aarch64-windows-hypestv' --is-raw-string update
4180 mkdir -p "$(AgentTempDirNormal)/publish_artifacts/aarch64-windows-igvmfilegen"
4181 echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-windows-igvmfilegen" | $FLOWEY_BIN v 2 'artifact_publish_from_aarch64-windows-igvmfilegen' --is-raw-string update
4182 mkdir -p "$(AgentTempDirNormal)/publish_artifacts/aarch64-windows-ohcldiag-dev"
4183 echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-windows-ohcldiag-dev" | $FLOWEY_BIN v 2 'artifact_publish_from_aarch64-windows-ohcldiag-dev' --is-raw-string update
4184 mkdir -p "$(AgentTempDirNormal)/publish_artifacts/aarch64-windows-vmgs_lib"
4185 echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-windows-vmgs_lib" | $FLOWEY_BIN v 2 'artifact_publish_from_aarch64-windows-vmgs_lib' --is-raw-string update
4186 displayName: πŸŒΌπŸ›« Initialize job
4187 - bash: $(FLOWEY_BIN) e 2 flowey_lib_common::install_rust 0
4188 displayName: install Rust
4189 - bash: |-
4190 set -e
4191 $(FLOWEY_BIN) e 2 flowey_lib_common::install_rust 1
4192 $(FLOWEY_BIN) e 2 flowey_lib_common::cfg_cargo_common_flags 0
4193 displayName: detect active toolchain
4194 - bash: |-
4195 set -e
4196 $(FLOWEY_BIN) e 2 flowey_lib_common::git_checkout 0
4197 $FLOWEY_BIN v 2 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:319:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:320:46 write-to-env ado floweyvar1
4198 $FLOWEY_BIN v 2 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:320:46' write-to-env ado FLOWEY_CONDITION
4199 displayName: check if openvmm needs to be cloned
4200 - checkout: self
4201 path: repo0
4202 fetchTags: false
4203 fetchDepth: 1
4204 persistCredentials: $(floweyvar1)
4205 submodules: recursive
4206 displayName: checkout repo openvmm
4207 condition: and(eq(variables['FLOWEY_CONDITION'], true), succeeded(), not(canceled()))
4208 - bash: |-
4209 set -e
4210 $(FLOWEY_BIN) e 2 flowey_lib_common::git_checkout 2
4211 $(FLOWEY_BIN) e 2 flowey_lib_hvlite::git_checkout_openvmm_repo 0
4212 displayName: report cloned repo directories
4213 - bash: $(FLOWEY_BIN) e 2 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
4214 displayName: set '-Dwarnings' in .cargo/config.toml
4215 - bash: $(FLOWEY_BIN) e 2 flowey_lib_common::download_gh_release 0
4216 displayName: create gh-release-download cache dir
4217 - bash: |-
4218 set -e
4219 $(FLOWEY_BIN) e 2 flowey_lib_common::cache 0
4220 $FLOWEY_BIN v 2 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:236:72' --is-raw-string write-to-env ado floweyvar2
4221 $FLOWEY_BIN v 2 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:237:72' --is-raw-string write-to-env ado floweyvar3
4222 displayName: Pre-processing cache vars
4223 - task: Cache@2
4224 inputs:
4225 key: $(floweyvar3)
4226 path: $(floweyvar2)
4227 cacheHitVar: FLOWEY_CACHE_HITVAR
4228 displayName: 'Restore cache: gh-release-download'
4229 - bash: |-
4230 set -e
4231 $FLOWEY_BIN v 2 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:300:70' --is-raw-string update --env-source FLOWEY_CACHE_HITVAR <<'EOF'
4232 $(FLOWEY_CACHE_HITVAR)
4233 EOF
4234 $(FLOWEY_BIN) e 2 flowey_lib_common::cache 2
4235 displayName: map ADO hitvar to flowey
4236 - bash: $(FLOWEY_BIN) e 2 flowey_lib_common::download_gh_release 1
4237 displayName: download artifacts from github releases
4238 - bash: |-
4239 set -e
4240 $(FLOWEY_BIN) e 2 flowey_lib_common::resolve_protoc 0
4241 $(FLOWEY_BIN) e 2 flowey_lib_hvlite::cfg_openvmm_magicpath 0
4242 displayName: unpack protoc
4243 - bash: |-
4244 set -e
4245 $(FLOWEY_BIN) e 2 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
4246 $(FLOWEY_BIN) e 2 flowey_lib_hvlite::init_cross_build 1
4247 displayName: symlink protoc
4248 - bash: |-
4249 set -e
4250 $(FLOWEY_BIN) e 2 flowey_lib_common::run_cargo_build 0
4251 $(FLOWEY_BIN) e 2 flowey_lib_hvlite::run_cargo_build 0
4252 $(FLOWEY_BIN) e 2 flowey_lib_hvlite::build_hypestv 0
4253 $(FLOWEY_BIN) e 2 flowey_core::pipeline::artifact::publish 0
4254 $(FLOWEY_BIN) e 2 flowey_lib_hvlite::init_cross_build 0
4255 displayName: cargo build hypestv
4256 - bash: |-
4257 set -e
4258 $(FLOWEY_BIN) e 2 flowey_lib_common::run_cargo_build 3
4259 $(FLOWEY_BIN) e 2 flowey_lib_hvlite::run_cargo_build 3
4260 $(FLOWEY_BIN) e 2 flowey_lib_hvlite::build_and_test_vmgs_lib 0
4261 $(FLOWEY_BIN) e 2 flowey_lib_hvlite::build_and_test_vmgs_lib 1
4262 $(FLOWEY_BIN) e 2 flowey_core::pipeline::artifact::publish 1
4263 $(FLOWEY_BIN) e 2 flowey_lib_hvlite::init_cross_build 2
4264 displayName: cargo build vmgs_lib
4265 - bash: |-
4266 set -e
4267 $(FLOWEY_BIN) e 2 flowey_lib_common::run_cargo_build 1
4268 $(FLOWEY_BIN) e 2 flowey_lib_hvlite::run_cargo_build 1
4269 $(FLOWEY_BIN) e 2 flowey_lib_hvlite::build_igvmfilegen 0
4270 $(FLOWEY_BIN) e 2 flowey_core::pipeline::artifact::publish 2
4271 $(FLOWEY_BIN) e 2 flowey_lib_hvlite::init_cross_build 3
4272 displayName: cargo build igvmfilegen
4273 - bash: |-
4274 set -e
4275 $(FLOWEY_BIN) e 2 flowey_lib_common::run_cargo_build 2
4276 $(FLOWEY_BIN) e 2 flowey_lib_hvlite::run_cargo_build 2
4277 $(FLOWEY_BIN) e 2 flowey_lib_hvlite::build_ohcldiag_dev 0
4278 $(FLOWEY_BIN) e 2 flowey_core::pipeline::artifact::publish 3
4279 displayName: cargo build ohcldiag-dev
4280 - bash: $(FLOWEY_BIN) e 2 flowey_lib_common::cache 3
4281 displayName: 'validate cache entry: gh-release-download'
4282 - publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-windows-hypestv
4283 displayName: πŸŒΌπŸ“¦ Publish aarch64-windows-hypestv
4284 artifact: aarch64-windows-hypestv
4285 - publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-windows-igvmfilegen
4286 displayName: πŸŒΌπŸ“¦ Publish aarch64-windows-igvmfilegen
4287 artifact: aarch64-windows-igvmfilegen
4288 - publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-windows-ohcldiag-dev
4289 displayName: πŸŒΌπŸ“¦ Publish aarch64-windows-ohcldiag-dev
4290 artifact: aarch64-windows-ohcldiag-dev
4291 - publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-windows-vmgs_lib
4292 displayName: πŸŒΌπŸ“¦ Publish aarch64-windows-vmgs_lib
4293 artifact: aarch64-windows-vmgs_lib
4294- job: job1
4295 displayName: xtask fmt (windows)
4296 pool:
4297 demands:
4298 - ImageOverride -equals win-amd64
4299 name: openvmm-ado-intel-centralus
4300 dependsOn:
4301 - job0
4302 condition: and(succeeded(), not(canceled()))
4303 variables:
4304 - name: FLOWEY_TEMP_DIR
4305 value: $(Build.StagingDirectory)/.flowey-internal
4306 steps:
4307 - bash: |
4308 set -x
4309 i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
4310 sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
4311 curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.94.0 -y
4312 . "$HOME/.cargo/env"
4313 echo '##vso[task.prependpath]$(HOME)/.cargo/bin'
4314 condition: eq(variables['Agent.OS'], 'Linux')
4315 displayName: rustup (Linux)
4316 - bash: |
4317 set -x
4318 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
4319 ./rustup-init.exe -y --default-toolchain=1.94.0
4320 echo '##vso[task.prependpath]$(USERPROFILE)\\.cargo\\bin'
4321 condition: eq(variables['Agent.OS'], 'Windows_NT')
4322 displayName: rustup (Windows X64)
4323 - bash: |
4324 set -x
4325 rustup show
4326 displayName: Verify rustup installation
4327 - checkout: self
4328 fetchTags: false
4329 fetchDepth: 1
4330 path: flowey_bootstrap
4331 - bash: CARGO_INCREMENTAL=0 RUSTC_BOOTSTRAP=1 RUSTFLAGS="-Z threads=8" cargo build -p flowey_hvlite --target x86_64-pc-windows-msvc --profile flowey-ci
4332 workingDirectory: ../flowey_bootstrap
4333 displayName: Build flowey
4334 - bash: |
4335 mkdir ./flowey_bootstrap_temp
4336 mv ./ci-flowey/openvmm-pr.yaml ./flowey_bootstrap_temp/pipeline.yaml
4337 mv ./ci-flowey/openvmm-pr.json ./flowey_bootstrap_temp/pipeline.json
4338 mv target/x86_64-pc-windows-msvc/flowey-ci/flowey_hvlite.exe ./flowey_bootstrap_temp/flowey.exe
4339 workingDirectory: ../flowey_bootstrap
4340 displayName: Stage flowey artifact
4341 - task: CopyFiles@2
4342 displayName: Copy flowey artifact
4343 inputs:
4344 SourceFolder: ../flowey_bootstrap/flowey_bootstrap_temp
4345 TargetFolder: $(FLOWEY_TEMP_DIR)/bootstrapped-flowey
4346 - bash: rm -rf ./flowey_bootstrap_temp
4347 workingDirectory: ../flowey_bootstrap
4348 displayName: Cleanup staged flowey artifact
4349 - bash: |
4350 set -e
4351 AgentTempDirNormal="$(FLOWEY_TEMP_DIR)"
4352 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
4353 echo "##vso[task.setvariable variable=AgentTempDirNormal;]$AgentTempDirNormal"
4354
4355 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe
4356 FLOWEY_BIN="$AgentTempDirNormal/bootstrapped-flowey/flowey.exe"
4357 echo "##vso[task.setvariable variable=FLOWEY_BIN;]$FLOWEY_BIN"
4358 displayName: Set flowey path
4359 - bash: |-
4360 ESCAPED_AGENT_TEMPDIR=$(
4361 cat <<'EOF' | sed 's/\\/\\\\/g'
4362 $(FLOWEY_TEMP_DIR)
4363 EOF
4364 )
4365 $(FLOWEY_BIN) pipeline ado --runtime $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out ci-flowey/openvmm-pr.yaml ci checkin-gates --config=pr
4366 displayName: πŸŒΌπŸ”Ž Self-check YAML
4367 - bash: |
4368 set -e
4369 echo '"debug"' | $FLOWEY_BIN v 1 'FLOWEY_LOG' update
4370 echo "$(FLOWEY_TEMP_DIR)/work" | $FLOWEY_BIN v 1 '_internal_WORKING_DIR' --is-raw-string update
4371
4372 cat <<'EOF' | tr '[:upper:]' '[:lower:]' | $FLOWEY_BIN v 1 'verbose' update
4373 ${{ parameters.verbose }}
4374 EOF
4375 displayName: πŸŒΌπŸ›« Initialize job
4376 - bash: |-
4377 set -e
4378 $(FLOWEY_BIN) e 1 flowey_lib_common::git_checkout 0
4379 $FLOWEY_BIN v 1 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:319:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:320:46 write-to-env ado floweyvar1
4380 $FLOWEY_BIN v 1 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:320:46' write-to-env ado FLOWEY_CONDITION
4381 displayName: check if openvmm needs to be cloned
4382 - checkout: self
4383 path: repo0
4384 fetchTags: false
4385 fetchDepth: 1
4386 persistCredentials: $(floweyvar1)
4387 submodules: recursive
4388 displayName: checkout repo openvmm
4389 condition: and(eq(variables['FLOWEY_CONDITION'], true), succeeded(), not(canceled()))
4390 - bash: |-
4391 set -e
4392 $(FLOWEY_BIN) e 1 flowey_lib_common::git_checkout 2
4393 $(FLOWEY_BIN) e 1 flowey_lib_hvlite::git_checkout_openvmm_repo 0
4394 displayName: report cloned repo directories
4395 - bash: $(FLOWEY_BIN) e 1 flowey_lib_common::install_rust 0
4396 displayName: install Rust
4397 - bash: |-
4398 set -e
4399 $(FLOWEY_BIN) e 1 flowey_lib_common::install_rust 1
4400 $(FLOWEY_BIN) e 1 flowey_lib_common::cfg_cargo_common_flags 0
4401 displayName: detect active toolchain
4402 - bash: $(FLOWEY_BIN) e 1 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
4403 displayName: set '-Dwarnings' in .cargo/config.toml
4404 - bash: $(FLOWEY_BIN) e 1 flowey_lib_common::download_gh_release 0
4405 displayName: create gh-release-download cache dir
4406 - bash: |-
4407 set -e
4408 $(FLOWEY_BIN) e 1 flowey_lib_common::cache 0
4409 $FLOWEY_BIN v 1 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:236:72' --is-raw-string write-to-env ado floweyvar2
4410 $FLOWEY_BIN v 1 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:237:72' --is-raw-string write-to-env ado floweyvar3
4411 displayName: Pre-processing cache vars
4412 - task: Cache@2
4413 inputs:
4414 key: $(floweyvar3)
4415 path: $(floweyvar2)
4416 cacheHitVar: FLOWEY_CACHE_HITVAR
4417 displayName: 'Restore cache: gh-release-download'
4418 - bash: |-
4419 set -e
4420 $FLOWEY_BIN v 1 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:300:70' --is-raw-string update --env-source FLOWEY_CACHE_HITVAR <<'EOF'
4421 $(FLOWEY_CACHE_HITVAR)
4422 EOF
4423 $(FLOWEY_BIN) e 1 flowey_lib_common::cache 2
4424 displayName: map ADO hitvar to flowey
4425 - bash: $(FLOWEY_BIN) e 1 flowey_lib_common::download_gh_release 1
4426 displayName: download artifacts from github releases
4427 - bash: |-
4428 set -e
4429 $(FLOWEY_BIN) e 1 flowey_lib_common::resolve_protoc 0
4430 $(FLOWEY_BIN) e 1 flowey_lib_hvlite::cfg_openvmm_magicpath 0
4431 displayName: unpack protoc
4432 - bash: |-
4433 set -e
4434 $(FLOWEY_BIN) e 1 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
4435 $(FLOWEY_BIN) e 1 flowey_lib_hvlite::init_cross_build 0
4436 displayName: symlink protoc
4437 - bash: |-
4438 set -e
4439 $(FLOWEY_BIN) e 1 flowey_lib_common::run_cargo_build 0
4440 $(FLOWEY_BIN) e 1 flowey_lib_hvlite::run_cargo_build 0
4441 $(FLOWEY_BIN) e 1 flowey_lib_hvlite::build_xtask 0
4442 displayName: cargo build xtask
4443 - bash: $(FLOWEY_BIN) e 1 flowey_lib_hvlite::_jobs::check_xtask_fmt 0
4444 displayName: run xtask fmt
4445 - bash: $(FLOWEY_BIN) e 1 flowey_lib_common::cache 3
4446 displayName: 'validate cache entry: gh-release-download'
4447