microsoft/openvmm

Public

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

CodeCommitsIssuesPull requestsActionsInsightsSecurity
ade3e88da56fafed47e001656d9017fb15f23194

Branches

Tags

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

Clone

HTTPS

Download ZIP

ci-flowey/openvmm-pr.yaml

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