microsoft/openvmm

Public

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

CodeCommitsIssuesPull requestsActionsInsightsSecurity
d72b222d661d464d3fc1707cfd7e7d0cfcdaef40

Branches

Tags

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

Clone

HTTPS

Download ZIP

ci-flowey/openvmm-pr.yaml

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