microsoft/openvmm

Public

mirrored from https://github.com/microsoft/openvmmAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
release/2411

Branches

Tags

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

Clone

HTTPS

Download ZIP

.github/workflows/openvmm-ci.yaml

6236lines · modecode

1##############################
2# THIS FILE IS AUTOGENERATED #
3# DO NOT MANUALLY EDIT #
4##############################
5name: '[flowey] OpenVMM CI'
6on:
7 workflow_dispatch:
8 inputs:
9 verbose:
10 description: Run with verbose output
11 default: false
12 required: false
13 type: boolean
14 push:
15 branches:
16 - main
17 - release/*
18jobs:
19 job0:
20 name: xtask fmt (windows)
21 runs-on: windows-latest
22 permissions:
23 contents: read
24 id-token: write
25 needs:
26 - job1
27 steps:
28 - run: echo "injected!"
29 name: 🌼🥾 Bootstrap flowey
30 shell: bash
31 - run: |
32 set -x
33 i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
34 sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
35 curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.82.0 -y
36 . "$HOME/.cargo/env"
37 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
38 rustup show
39 if: runner.os == 'Linux'
40 name: rustup (Linux)
41 shell: bash
42 - run: |
43 set -x
44 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
45 ./rustup-init.exe -y --default-toolchain=1.82.0
46 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
47 if: runner.os == 'Windows' && runner.arch == 'X64'
48 name: rustup (Windows X64)
49 shell: bash
50 - run: |
51 set -x
52 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
53 ./rustup-init.exe -y --default-toolchain=1.82.0
54 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
55 if: runner.os == 'Windows' && runner.arch == 'ARM64'
56 name: rustup (Windows ARM64)
57 shell: bash
58 - uses: actions/checkout@v4
59 with:
60 path: flowey_bootstrap
61 - name: Build flowey
62 run: CARGO_INCREMENTAL=0 RUSTC_BOOTSTRAP=1 RUSTFLAGS="-Z threads=8" cargo build -p flowey_hvlite --target x86_64-pc-windows-msvc --profile flowey-ci
63 working-directory: flowey_bootstrap
64 shell: bash
65 - name: Stage flowey artifact
66 run: |
67 mkdir ./flowey_bootstrap_temp
68 mv ./.github/workflows/openvmm-ci.yaml ./flowey_bootstrap_temp/pipeline.yaml
69 mv target/x86_64-pc-windows-msvc/flowey-ci/flowey_hvlite.exe ./flowey_bootstrap_temp/flowey.exe
70 working-directory: flowey_bootstrap
71 shell: bash
72 - name: Copy flowey artifact
73 run: |
74 OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
75 mkdir -p $OutDirNormal
76 cp -r ./flowey_bootstrap_temp/* $OutDirNormal
77 working-directory: flowey_bootstrap
78 shell: bash
79 - name: Cleanup staged flowey artifact
80 run: rm -rf ./flowey_bootstrap_temp
81 working-directory: flowey_bootstrap
82 shell: bash
83 - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH
84 shell: bash
85 name: 🌼📦 Add flowey to PATH
86 - name: 🌼🔎 Self-check YAML
87 run: |-
88 ESCAPED_AGENT_TEMPDIR=$(
89 cat <<'EOF' | sed 's/\\/\\\\/g'
90 ${{ runner.temp }}
91 EOF
92 )
93 flowey.exe pipeline github --runtime $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci
94 shell: bash
95 - name: 🌼🛫 Initialize job
96 run: |
97 AgentTempDirNormal="${{ runner.temp }}"
98 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
99 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
100
101 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe
102
103 echo '"debug"' | flowey.exe v 0 'FLOWEY_LOG' --update-from-stdin
104 echo "${{ runner.temp }}/work" | flowey.exe v 0 '_internal_WORKING_DIR' --update-from-stdin --is-raw-string
105
106 cat <<'EOF' | flowey.exe v 0 'verbose' --update-from-stdin
107 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
108 EOF
109 shell: bash
110 - name: check if hvlite needs to be cloned
111 run: flowey.exe e 0 flowey_lib_common::git_checkout 0
112 shell: bash
113 - run: |
114 flowey.exe v 0 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:470:46' --write-to-gh-env FLOWEY_CONDITION
115 shell: bash
116 name: 🌼❓ Write to 'FLOWEY_CONDITION'
117 - run: |
118 flowey.exe v 0 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:469:80' --write-to-gh-env floweyvar1 --is-raw-string
119 shell: bash
120 name: 🌼 Write to 'floweyvar1'
121 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
122 - id: flowey_lib_common__git_checkout__1
123 uses: actions/checkout@v4
124 with:
125 fetch-depth: '1'
126 path: repo0
127 persist-credentials: ${{ env.floweyvar1 }}
128 name: checkout repo hvlite
129 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
130 - run: ${{ github.workspace }}
131 shell: flowey.exe v 0 'flowey_lib_common::git_checkout:4:flowey_lib_common/src/git_checkout.rs:524:31' --update-from-file {0} --is-raw-string
132 name: 🌼 Read from 'github.workspace'
133 - name: report cloned repo directories
134 run: flowey.exe e 0 flowey_lib_common::git_checkout 3
135 shell: bash
136 - name: resolve OpenVMM repo requests
137 run: flowey.exe e 0 flowey_lib_hvlite::git_checkout_openvmm_repo 0
138 shell: bash
139 - name: install Rust
140 run: flowey.exe e 0 flowey_lib_common::install_rust 0
141 shell: bash
142 - name: detect active toolchain
143 run: flowey.exe e 0 flowey_lib_common::install_rust 1
144 shell: bash
145 - name: report common cargo flags
146 run: flowey.exe e 0 flowey_lib_common::cfg_cargo_common_flags 0
147 shell: bash
148 - name: set '-Dwarnings' in .cargo/config.toml
149 run: flowey.exe e 0 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
150 shell: bash
151 - name: create gh-release-download cache dir
152 run: flowey.exe e 0 flowey_lib_common::download_gh_release 0
153 shell: bash
154 - name: Pre-processing cache vars
155 run: flowey.exe e 0 flowey_lib_common::cache 0
156 shell: bash
157 - run: |
158 flowey.exe v 0 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:458:72' --write-to-gh-env floweyvar2 --is-raw-string
159 shell: bash
160 name: 🌼 Write to 'floweyvar2'
161 - run: |
162 flowey.exe v 0 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar3 --is-raw-string
163 shell: bash
164 name: 🌼 Write to 'floweyvar3'
165 - id: flowey_lib_common__cache__1
166 uses: actions/cache@v4
167 with:
168 key: ${{ env.floweyvar2 }}
169 path: ${{ env.floweyvar3 }}
170 name: 'Restore cache: gh-release-download'
171 - run: ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
172 shell: flowey.exe v 0 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:510:46' --update-from-file {0} --is-raw-string
173 name: 🌼 Read from 'steps.flowey_lib_common__cache__1.outputs.cache-hit'
174 - name: map Github cache-hit to flowey
175 run: flowey.exe e 0 flowey_lib_common::cache 2
176 shell: bash
177 - name: download artifacts from github releases
178 run: flowey.exe e 0 flowey_lib_common::download_gh_release 1
179 shell: bash
180 - name: unpack protoc
181 run: flowey.exe e 0 flowey_lib_common::download_protoc 0
182 shell: bash
183 - name: report openvmm magicpath dir
184 run: flowey.exe e 0 flowey_lib_hvlite::cfg_openvmm_magicpath 0
185 shell: bash
186 - name: symlink protoc
187 run: flowey.exe e 0 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
188 shell: bash
189 - name: inject cross env
190 run: flowey.exe e 0 flowey_lib_hvlite::init_cross_build 0
191 shell: bash
192 - name: cargo build xtask
193 run: flowey.exe e 0 flowey_lib_common::run_cargo_build 0
194 shell: bash
195 - name: 🌼 write_into Var
196 run: flowey.exe e 0 flowey_lib_hvlite::run_cargo_build 0
197 shell: bash
198 - name: report built xtask
199 run: flowey.exe e 0 flowey_lib_hvlite::build_xtask 0
200 shell: bash
201 - name: run xtask fmt
202 run: flowey.exe e 0 flowey_lib_hvlite::_jobs::check_xtask_fmt 0
203 shell: bash
204 - name: 'validate cache entry: gh-release-download'
205 run: flowey.exe e 0 flowey_lib_common::cache 3
206 shell: bash
207 job1:
208 name: xtask fmt (linux)
209 runs-on:
210 - self-hosted
211 - 1ES.Pool=OpenVMM-GitHub-Linux-Pool-WestUS3
212 - 1ES.ImageOverride=MMSUbuntu22.04-256GB
213 permissions:
214 contents: read
215 id-token: write
216 steps:
217 - run: echo "injected!"
218 name: 🌼🥾 Bootstrap flowey
219 shell: bash
220 - run: |
221 set -x
222 i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
223 sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
224 curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.82.0 -y
225 . "$HOME/.cargo/env"
226 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
227 rustup show
228 if: runner.os == 'Linux'
229 name: rustup (Linux)
230 shell: bash
231 - run: |
232 set -x
233 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
234 ./rustup-init.exe -y --default-toolchain=1.82.0
235 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
236 if: runner.os == 'Windows' && runner.arch == 'X64'
237 name: rustup (Windows X64)
238 shell: bash
239 - run: |
240 set -x
241 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
242 ./rustup-init.exe -y --default-toolchain=1.82.0
243 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
244 if: runner.os == 'Windows' && runner.arch == 'ARM64'
245 name: rustup (Windows ARM64)
246 shell: bash
247 - uses: actions/checkout@v4
248 with:
249 path: flowey_bootstrap
250 - name: Build flowey
251 run: CARGO_INCREMENTAL=0 RUSTC_BOOTSTRAP=1 RUSTFLAGS="-Z threads=8" cargo build -p flowey_hvlite --target x86_64-unknown-linux-gnu --profile flowey-ci
252 working-directory: flowey_bootstrap
253 shell: bash
254 - name: Stage flowey artifact
255 run: |
256 mkdir ./flowey_bootstrap_temp
257 mv ./.github/workflows/openvmm-ci.yaml ./flowey_bootstrap_temp/pipeline.yaml
258 mv target/x86_64-unknown-linux-gnu/flowey-ci/flowey_hvlite ./flowey_bootstrap_temp/flowey
259 working-directory: flowey_bootstrap
260 shell: bash
261 - name: Copy flowey artifact
262 run: |
263 OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
264 mkdir -p $OutDirNormal
265 cp -r ./flowey_bootstrap_temp/* $OutDirNormal
266 working-directory: flowey_bootstrap
267 shell: bash
268 - name: Cleanup staged flowey artifact
269 run: rm -rf ./flowey_bootstrap_temp
270 working-directory: flowey_bootstrap
271 shell: bash
272 - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH
273 shell: bash
274 name: 🌼📦 Add flowey to PATH
275 - name: 🌼🔎 Self-check YAML
276 run: |-
277 ESCAPED_AGENT_TEMPDIR=$(
278 cat <<'EOF' | sed 's/\\/\\\\/g'
279 ${{ runner.temp }}
280 EOF
281 )
282 flowey pipeline github --runtime $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci
283 shell: bash
284 - name: 🌼🛫 Initialize job
285 run: |
286 AgentTempDirNormal="${{ runner.temp }}"
287 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
288 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
289
290 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey
291
292 echo '"debug"' | flowey v 1 'FLOWEY_LOG' --update-from-stdin
293 echo "${{ runner.temp }}/work" | flowey v 1 '_internal_WORKING_DIR' --update-from-stdin --is-raw-string
294
295 cat <<'EOF' | flowey v 1 'verbose' --update-from-stdin
296 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
297 EOF
298 shell: bash
299 - name: check if hvlite needs to be cloned
300 run: flowey e 1 flowey_lib_common::git_checkout 0
301 shell: bash
302 - run: |
303 flowey v 1 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:470:46' --write-to-gh-env FLOWEY_CONDITION
304 shell: bash
305 name: 🌼❓ Write to 'FLOWEY_CONDITION'
306 - run: |
307 flowey v 1 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:469:80' --write-to-gh-env floweyvar1 --is-raw-string
308 shell: bash
309 name: 🌼 Write to 'floweyvar1'
310 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
311 - id: flowey_lib_common__git_checkout__1
312 uses: actions/checkout@v4
313 with:
314 fetch-depth: '1'
315 path: repo0
316 persist-credentials: ${{ env.floweyvar1 }}
317 name: checkout repo hvlite
318 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
319 - run: ${{ github.workspace }}
320 shell: flowey v 1 'flowey_lib_common::git_checkout:4:flowey_lib_common/src/git_checkout.rs:524:31' --update-from-file {0} --is-raw-string
321 name: 🌼 Read from 'github.workspace'
322 - name: report cloned repo directories
323 run: flowey e 1 flowey_lib_common::git_checkout 3
324 shell: bash
325 - name: resolve OpenVMM repo requests
326 run: flowey e 1 flowey_lib_hvlite::git_checkout_openvmm_repo 0
327 shell: bash
328 - name: install Rust
329 run: flowey e 1 flowey_lib_common::install_rust 0
330 shell: bash
331 - name: detect active toolchain
332 run: flowey e 1 flowey_lib_common::install_rust 1
333 shell: bash
334 - name: report common cargo flags
335 run: flowey e 1 flowey_lib_common::cfg_cargo_common_flags 0
336 shell: bash
337 - name: set '-Dwarnings' in .cargo/config.toml
338 run: flowey e 1 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
339 shell: bash
340 - name: create gh-release-download cache dir
341 run: flowey e 1 flowey_lib_common::download_gh_release 0
342 shell: bash
343 - name: Pre-processing cache vars
344 run: flowey e 1 flowey_lib_common::cache 0
345 shell: bash
346 - run: |
347 flowey v 1 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:458:72' --write-to-gh-env floweyvar2 --is-raw-string
348 shell: bash
349 name: 🌼 Write to 'floweyvar2'
350 - run: |
351 flowey v 1 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar3 --is-raw-string
352 shell: bash
353 name: 🌼 Write to 'floweyvar3'
354 - id: flowey_lib_common__cache__1
355 uses: actions/cache@v4
356 with:
357 key: ${{ env.floweyvar2 }}
358 path: ${{ env.floweyvar3 }}
359 name: 'Restore cache: gh-release-download'
360 - run: ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
361 shell: flowey v 1 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:510:46' --update-from-file {0} --is-raw-string
362 name: 🌼 Read from 'steps.flowey_lib_common__cache__1.outputs.cache-hit'
363 - name: map Github cache-hit to flowey
364 run: flowey e 1 flowey_lib_common::cache 2
365 shell: bash
366 - name: download artifacts from github releases
367 run: flowey e 1 flowey_lib_common::download_gh_release 1
368 shell: bash
369 - name: checking if packages need to be installed
370 run: flowey e 1 flowey_lib_common::install_dist_pkg 0
371 shell: bash
372 - name: installing packages
373 run: flowey e 1 flowey_lib_common::install_dist_pkg 1
374 shell: bash
375 - name: unpack protoc
376 run: flowey e 1 flowey_lib_common::download_protoc 0
377 shell: bash
378 - name: report openvmm magicpath dir
379 run: flowey e 1 flowey_lib_hvlite::cfg_openvmm_magicpath 0
380 shell: bash
381 - name: symlink protoc
382 run: flowey e 1 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
383 shell: bash
384 - name: inject cross env
385 run: flowey e 1 flowey_lib_hvlite::init_cross_build 0
386 shell: bash
387 - name: cargo build xtask
388 run: flowey e 1 flowey_lib_common::run_cargo_build 0
389 shell: bash
390 - name: 🌼 write_into Var
391 run: flowey e 1 flowey_lib_hvlite::run_cargo_build 0
392 shell: bash
393 - name: split debug symbols
394 run: flowey e 1 flowey_lib_hvlite::run_split_debug_info 0
395 shell: bash
396 - name: reporting split debug info
397 run: flowey e 1 flowey_lib_hvlite::run_cargo_build 1
398 shell: bash
399 - name: report built xtask
400 run: flowey e 1 flowey_lib_hvlite::build_xtask 0
401 shell: bash
402 - name: run xtask fmt
403 run: flowey e 1 flowey_lib_hvlite::_jobs::check_xtask_fmt 0
404 shell: bash
405 - name: 'validate cache entry: gh-release-download'
406 run: flowey e 1 flowey_lib_common::cache 3
407 shell: bash
408 job10:
409 name: clippy [windows], unit tests [x64-windows]
410 runs-on:
411 - self-hosted
412 - 1ES.Pool=OpenVMM-GitHub-Win-Pool-WestUS3
413 permissions:
414 contents: read
415 id-token: write
416 steps:
417 - run: echo "injected!"
418 name: 🌼🥾 Bootstrap flowey
419 shell: bash
420 - run: |
421 set -x
422 i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
423 sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
424 curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.82.0 -y
425 . "$HOME/.cargo/env"
426 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
427 rustup show
428 if: runner.os == 'Linux'
429 name: rustup (Linux)
430 shell: bash
431 - run: |
432 set -x
433 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
434 ./rustup-init.exe -y --default-toolchain=1.82.0
435 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
436 if: runner.os == 'Windows' && runner.arch == 'X64'
437 name: rustup (Windows X64)
438 shell: bash
439 - run: |
440 set -x
441 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
442 ./rustup-init.exe -y --default-toolchain=1.82.0
443 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
444 if: runner.os == 'Windows' && runner.arch == 'ARM64'
445 name: rustup (Windows ARM64)
446 shell: bash
447 - uses: actions/checkout@v4
448 with:
449 path: flowey_bootstrap
450 - name: Build flowey
451 run: CARGO_INCREMENTAL=0 RUSTC_BOOTSTRAP=1 RUSTFLAGS="-Z threads=8" cargo build -p flowey_hvlite --target x86_64-pc-windows-msvc --profile flowey-ci
452 working-directory: flowey_bootstrap
453 shell: bash
454 - name: Stage flowey artifact
455 run: |
456 mkdir ./flowey_bootstrap_temp
457 mv ./.github/workflows/openvmm-ci.yaml ./flowey_bootstrap_temp/pipeline.yaml
458 mv target/x86_64-pc-windows-msvc/flowey-ci/flowey_hvlite.exe ./flowey_bootstrap_temp/flowey.exe
459 working-directory: flowey_bootstrap
460 shell: bash
461 - name: Copy flowey artifact
462 run: |
463 OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
464 mkdir -p $OutDirNormal
465 cp -r ./flowey_bootstrap_temp/* $OutDirNormal
466 working-directory: flowey_bootstrap
467 shell: bash
468 - name: Cleanup staged flowey artifact
469 run: rm -rf ./flowey_bootstrap_temp
470 working-directory: flowey_bootstrap
471 shell: bash
472 - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH
473 shell: bash
474 name: 🌼📦 Add flowey to PATH
475 - name: 🌼🔎 Self-check YAML
476 run: |-
477 ESCAPED_AGENT_TEMPDIR=$(
478 cat <<'EOF' | sed 's/\\/\\\\/g'
479 ${{ runner.temp }}
480 EOF
481 )
482 flowey.exe pipeline github --runtime $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci
483 shell: bash
484 - name: 🌼🛫 Initialize job
485 run: |
486 AgentTempDirNormal="${{ runner.temp }}"
487 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
488 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
489
490 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe
491
492 echo '"debug"' | flowey.exe v 10 'FLOWEY_LOG' --update-from-stdin
493 echo "${{ runner.temp }}/work" | flowey.exe v 10 '_internal_WORKING_DIR' --update-from-stdin --is-raw-string
494
495 cat <<'EOF' | flowey.exe v 10 'verbose' --update-from-stdin
496 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
497 EOF
498 shell: bash
499 - name: install Rust
500 run: flowey.exe e 10 flowey_lib_common::install_rust 0
501 shell: bash
502 - name: detect active toolchain
503 run: flowey.exe e 10 flowey_lib_common::install_rust 1
504 shell: bash
505 - name: report common cargo flags
506 run: flowey.exe e 10 flowey_lib_common::cfg_cargo_common_flags 0
507 shell: bash
508 - name: check if hvlite needs to be cloned
509 run: flowey.exe e 10 flowey_lib_common::git_checkout 0
510 shell: bash
511 - run: |
512 flowey.exe v 10 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:470:46' --write-to-gh-env FLOWEY_CONDITION
513 shell: bash
514 name: 🌼❓ Write to 'FLOWEY_CONDITION'
515 - run: |
516 flowey.exe v 10 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:469:80' --write-to-gh-env floweyvar6 --is-raw-string
517 shell: bash
518 name: 🌼 Write to 'floweyvar6'
519 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
520 - id: flowey_lib_common__git_checkout__1
521 uses: actions/checkout@v4
522 with:
523 fetch-depth: '1'
524 path: repo0
525 persist-credentials: ${{ env.floweyvar6 }}
526 name: checkout repo hvlite
527 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
528 - run: ${{ github.workspace }}
529 shell: flowey.exe v 10 'flowey_lib_common::git_checkout:4:flowey_lib_common/src/git_checkout.rs:524:31' --update-from-file {0} --is-raw-string
530 name: 🌼 Read from 'github.workspace'
531 - name: report cloned repo directories
532 run: flowey.exe e 10 flowey_lib_common::git_checkout 3
533 shell: bash
534 - name: resolve OpenVMM repo requests
535 run: flowey.exe e 10 flowey_lib_hvlite::git_checkout_openvmm_repo 0
536 shell: bash
537 - name: set '-Dwarnings' in .cargo/config.toml
538 run: flowey.exe e 10 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
539 shell: bash
540 - name: create gh-release-download cache dir
541 run: flowey.exe e 10 flowey_lib_common::download_gh_release 0
542 shell: bash
543 - name: Pre-processing cache vars
544 run: flowey.exe e 10 flowey_lib_common::cache 4
545 shell: bash
546 - run: |
547 flowey.exe v 10 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:458:72' --write-to-gh-env floweyvar4 --is-raw-string
548 shell: bash
549 name: 🌼 Write to 'floweyvar4'
550 - run: |
551 flowey.exe v 10 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar5 --is-raw-string
552 shell: bash
553 name: 🌼 Write to 'floweyvar5'
554 - id: flowey_lib_common__cache__5
555 uses: actions/cache@v4
556 with:
557 key: ${{ env.floweyvar4 }}
558 path: ${{ env.floweyvar5 }}
559 name: 'Restore cache: gh-release-download'
560 - run: ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
561 shell: flowey.exe v 10 'flowey_lib_common::cache:12:flowey_lib_common/src/cache.rs:510:46' --update-from-file {0} --is-raw-string
562 name: 🌼 Read from 'steps.flowey_lib_common__cache__5.outputs.cache-hit'
563 - name: map Github cache-hit to flowey
564 run: flowey.exe e 10 flowey_lib_common::cache 6
565 shell: bash
566 - name: download artifacts from github releases
567 run: flowey.exe e 10 flowey_lib_common::download_gh_release 1
568 shell: bash
569 - name: unpack protoc
570 run: flowey.exe e 10 flowey_lib_common::download_protoc 0
571 shell: bash
572 - name: report openvmm magicpath dir
573 run: flowey.exe e 10 flowey_lib_hvlite::cfg_openvmm_magicpath 0
574 shell: bash
575 - name: symlink protoc
576 run: flowey.exe e 10 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
577 shell: bash
578 - name: inject cross env
579 run: flowey.exe e 10 flowey_lib_hvlite::init_cross_build 1
580 shell: bash
581 - name: inject cross env
582 run: flowey.exe e 10 flowey_lib_hvlite::init_cross_build 3
583 shell: bash
584 - name: cargo build xtask
585 run: flowey.exe e 10 flowey_lib_common::run_cargo_build 0
586 shell: bash
587 - name: 🌼 write_into Var
588 run: flowey.exe e 10 flowey_lib_hvlite::run_cargo_build 0
589 shell: bash
590 - name: report built xtask
591 run: flowey.exe e 10 flowey_lib_hvlite::build_xtask 0
592 shell: bash
593 - name: determine clippy exclusions
594 run: flowey.exe e 10 flowey_lib_hvlite::_jobs::check_clippy 1
595 shell: bash
596 - name: unpack Microsoft.WSL.LxUtil.x64.zip
597 run: flowey.exe e 10 flowey_lib_hvlite::download_lxutil 0
598 shell: bash
599 - name: unpack Microsoft.WSL.LxUtil.AARCH64.zip
600 run: flowey.exe e 10 flowey_lib_hvlite::download_lxutil 1
601 shell: bash
602 - name: move lxutil.dll into its magic folder
603 run: flowey.exe e 10 flowey_lib_hvlite::init_openvmm_magicpath_lxutil 0
604 shell: bash
605 - name: cargo clippy
606 run: flowey.exe e 10 flowey_lib_common::run_cargo_clippy 0
607 shell: bash
608 - name: inject cross env
609 run: flowey.exe e 10 flowey_lib_hvlite::init_cross_build 0
610 shell: bash
611 - name: inject cross env
612 run: flowey.exe e 10 flowey_lib_hvlite::init_cross_build 4
613 shell: bash
614 - name: cargo build xtask
615 run: flowey.exe e 10 flowey_lib_common::run_cargo_build 1
616 shell: bash
617 - name: 🌼 write_into Var
618 run: flowey.exe e 10 flowey_lib_hvlite::run_cargo_build 1
619 shell: bash
620 - name: report built xtask
621 run: flowey.exe e 10 flowey_lib_hvlite::build_xtask 1
622 shell: bash
623 - name: determine clippy exclusions
624 run: flowey.exe e 10 flowey_lib_hvlite::_jobs::check_clippy 0
625 shell: bash
626 - name: cargo clippy
627 run: flowey.exe e 10 flowey_lib_common::run_cargo_clippy 1
628 shell: bash
629 - name: create cargo-nextest cache dir
630 run: flowey.exe e 10 flowey_lib_common::download_cargo_nextest 0
631 shell: bash
632 - name: Pre-processing cache vars
633 run: flowey.exe e 10 flowey_lib_common::cache 0
634 shell: bash
635 - run: |
636 flowey.exe v 10 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:458:72' --write-to-gh-env floweyvar2 --is-raw-string
637 shell: bash
638 name: 🌼 Write to 'floweyvar2'
639 - run: |
640 flowey.exe v 10 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar3 --is-raw-string
641 shell: bash
642 name: 🌼 Write to 'floweyvar3'
643 - id: flowey_lib_common__cache__1
644 uses: actions/cache@v4
645 with:
646 key: ${{ env.floweyvar2 }}
647 path: ${{ env.floweyvar3 }}
648 name: 'Restore cache: cargo-nextest'
649 - run: ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
650 shell: flowey.exe v 10 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:510:46' --update-from-file {0} --is-raw-string
651 name: 🌼 Read from 'steps.flowey_lib_common__cache__1.outputs.cache-hit'
652 - name: map Github cache-hit to flowey
653 run: flowey.exe e 10 flowey_lib_common::cache 2
654 shell: bash
655 - name: report cargo install persistent dir
656 run: flowey.exe e 10 flowey_lib_common::cfg_persistent_dir_cargo_install 0
657 shell: bash
658 - name: report $CARGO_HOME
659 run: flowey.exe e 10 flowey_lib_common::install_rust 2
660 shell: bash
661 - name: installing cargo-nextest
662 run: flowey.exe e 10 flowey_lib_common::download_cargo_nextest 1
663 shell: bash
664 - name: inject cross env
665 run: flowey.exe e 10 flowey_lib_hvlite::init_cross_build 5
666 shell: bash
667 - name: cargo build xtask
668 run: flowey.exe e 10 flowey_lib_common::run_cargo_build 2
669 shell: bash
670 - name: 🌼 write_into Var
671 run: flowey.exe e 10 flowey_lib_hvlite::run_cargo_build 2
672 shell: bash
673 - name: report built xtask
674 run: flowey.exe e 10 flowey_lib_hvlite::build_xtask 2
675 shell: bash
676 - name: determine unit test exclusions
677 run: flowey.exe e 10 flowey_lib_hvlite::build_nextest_unit_tests 0
678 shell: bash
679 - name: inject cross env
680 run: flowey.exe e 10 flowey_lib_hvlite::init_cross_build 2
681 shell: bash
682 - name: 🌼 write_into Var
683 run: flowey.exe e 10 flowey_lib_hvlite::run_cargo_nextest_run 0
684 shell: bash
685 - name: run 'unit-tests' nextest tests
686 run: flowey.exe e 10 flowey_lib_common::run_cargo_nextest_run 0
687 shell: bash
688 - name: write results
689 run: flowey.exe e 10 flowey_lib_common::run_cargo_nextest_run 1
690 shell: bash
691 - name: 🌼 write_into Var
692 run: flowey.exe e 10 flowey_lib_hvlite::_jobs::build_and_run_nextest_unit_tests 0
693 shell: bash
694 - name: 🌼 write_into Var
695 run: flowey.exe e 10 flowey_lib_common::publish_test_results 0
696 shell: bash
697 - name: 🌼 write_into Var
698 run: flowey.exe e 10 flowey_lib_common::publish_test_results 1
699 shell: bash
700 - name: 🌼 write_into Var
701 run: flowey.exe e 10 flowey_lib_common::publish_test_results 2
702 shell: bash
703 - run: |
704 flowey.exe v 10 'flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43' --write-to-gh-env FLOWEY_CONDITION
705 shell: bash
706 name: 🌼❓ Write to 'FLOWEY_CONDITION'
707 - run: |
708 flowey.exe v 10 'flowey_lib_common::publish_test_results:4:flowey_lib_common/src/publish_test_results.rs:95:47' --write-to-gh-env floweyvar1 --is-raw-string
709 shell: bash
710 name: 🌼 Write to 'floweyvar1'
711 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
712 - id: flowey_lib_common__publish_test_results__3
713 uses: actions/upload-artifact@v4
714 with:
715 name: x64-windows-unit-tests-junit-xml
716 path: ${{ env.floweyvar1 }}
717 name: 'publish test results: x64-windows-unit-tests (JUnit XML)'
718 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
719 - name: report test results to overall pipeline status
720 run: flowey.exe e 10 flowey_lib_hvlite::_jobs::build_and_run_nextest_unit_tests 1
721 shell: bash
722 - name: run doctests for x86_64-pc-windows-msvc
723 run: flowey.exe e 10 flowey_lib_hvlite::_jobs::build_and_run_doc_tests 0
724 shell: bash
725 - name: 'validate cache entry: cargo-nextest'
726 run: flowey.exe e 10 flowey_lib_common::cache 3
727 shell: bash
728 - name: 'validate cache entry: gh-release-download'
729 run: flowey.exe e 10 flowey_lib_common::cache 7
730 shell: bash
731 job11:
732 name: clippy [linux, macos], unit tests [x64-linux]
733 runs-on:
734 - self-hosted
735 - 1ES.Pool=OpenVMM-GitHub-Linux-Pool-WestUS3
736 - 1ES.ImageOverride=MMSUbuntu22.04-256GB
737 permissions:
738 contents: read
739 id-token: write
740 steps:
741 - run: echo "injected!"
742 name: 🌼🥾 Bootstrap flowey
743 shell: bash
744 - run: |
745 set -x
746 i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
747 sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
748 curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.82.0 -y
749 . "$HOME/.cargo/env"
750 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
751 rustup show
752 if: runner.os == 'Linux'
753 name: rustup (Linux)
754 shell: bash
755 - run: |
756 set -x
757 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
758 ./rustup-init.exe -y --default-toolchain=1.82.0
759 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
760 if: runner.os == 'Windows' && runner.arch == 'X64'
761 name: rustup (Windows X64)
762 shell: bash
763 - run: |
764 set -x
765 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
766 ./rustup-init.exe -y --default-toolchain=1.82.0
767 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
768 if: runner.os == 'Windows' && runner.arch == 'ARM64'
769 name: rustup (Windows ARM64)
770 shell: bash
771 - uses: actions/checkout@v4
772 with:
773 path: flowey_bootstrap
774 - name: Build flowey
775 run: CARGO_INCREMENTAL=0 RUSTC_BOOTSTRAP=1 RUSTFLAGS="-Z threads=8" cargo build -p flowey_hvlite --target x86_64-unknown-linux-gnu --profile flowey-ci
776 working-directory: flowey_bootstrap
777 shell: bash
778 - name: Stage flowey artifact
779 run: |
780 mkdir ./flowey_bootstrap_temp
781 mv ./.github/workflows/openvmm-ci.yaml ./flowey_bootstrap_temp/pipeline.yaml
782 mv target/x86_64-unknown-linux-gnu/flowey-ci/flowey_hvlite ./flowey_bootstrap_temp/flowey
783 working-directory: flowey_bootstrap
784 shell: bash
785 - name: Copy flowey artifact
786 run: |
787 OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
788 mkdir -p $OutDirNormal
789 cp -r ./flowey_bootstrap_temp/* $OutDirNormal
790 working-directory: flowey_bootstrap
791 shell: bash
792 - name: Cleanup staged flowey artifact
793 run: rm -rf ./flowey_bootstrap_temp
794 working-directory: flowey_bootstrap
795 shell: bash
796 - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH
797 shell: bash
798 name: 🌼📦 Add flowey to PATH
799 - name: 🌼🔎 Self-check YAML
800 run: |-
801 ESCAPED_AGENT_TEMPDIR=$(
802 cat <<'EOF' | sed 's/\\/\\\\/g'
803 ${{ runner.temp }}
804 EOF
805 )
806 flowey pipeline github --runtime $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci
807 shell: bash
808 - name: 🌼🛫 Initialize job
809 run: |
810 AgentTempDirNormal="${{ runner.temp }}"
811 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
812 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
813
814 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey
815
816 echo '"debug"' | flowey v 11 'FLOWEY_LOG' --update-from-stdin
817 echo "${{ runner.temp }}/work" | flowey v 11 '_internal_WORKING_DIR' --update-from-stdin --is-raw-string
818
819 cat <<'EOF' | flowey v 11 'verbose' --update-from-stdin
820 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
821 EOF
822 shell: bash
823 - name: install Rust
824 run: flowey e 11 flowey_lib_common::install_rust 0
825 shell: bash
826 - name: detect active toolchain
827 run: flowey e 11 flowey_lib_common::install_rust 1
828 shell: bash
829 - name: report common cargo flags
830 run: flowey e 11 flowey_lib_common::cfg_cargo_common_flags 0
831 shell: bash
832 - name: checking if packages need to be installed
833 run: flowey e 11 flowey_lib_common::install_dist_pkg 0
834 shell: bash
835 - name: installing packages
836 run: flowey e 11 flowey_lib_common::install_dist_pkg 1
837 shell: bash
838 - name: create gh-release-download cache dir
839 run: flowey e 11 flowey_lib_common::download_gh_release 0
840 shell: bash
841 - name: Pre-processing cache vars
842 run: flowey e 11 flowey_lib_common::cache 4
843 shell: bash
844 - run: |
845 flowey v 11 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:458:72' --write-to-gh-env floweyvar4 --is-raw-string
846 shell: bash
847 name: 🌼 Write to 'floweyvar4'
848 - run: |
849 flowey v 11 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar5 --is-raw-string
850 shell: bash
851 name: 🌼 Write to 'floweyvar5'
852 - id: flowey_lib_common__cache__5
853 uses: actions/cache@v4
854 with:
855 key: ${{ env.floweyvar4 }}
856 path: ${{ env.floweyvar5 }}
857 name: 'Restore cache: gh-release-download'
858 - run: ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
859 shell: flowey v 11 'flowey_lib_common::cache:12:flowey_lib_common/src/cache.rs:510:46' --update-from-file {0} --is-raw-string
860 name: 🌼 Read from 'steps.flowey_lib_common__cache__5.outputs.cache-hit'
861 - name: map Github cache-hit to flowey
862 run: flowey e 11 flowey_lib_common::cache 6
863 shell: bash
864 - name: download artifacts from github releases
865 run: flowey e 11 flowey_lib_common::download_gh_release 1
866 shell: bash
867 - name: unpack Microsoft.WSL.LxUtil.x64.zip
868 run: flowey e 11 flowey_lib_hvlite::download_lxutil 0
869 shell: bash
870 - name: unpack Microsoft.WSL.LxUtil.AARCH64.zip
871 run: flowey e 11 flowey_lib_hvlite::download_lxutil 1
872 shell: bash
873 - name: check if hvlite needs to be cloned
874 run: flowey e 11 flowey_lib_common::git_checkout 0
875 shell: bash
876 - run: |
877 flowey v 11 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:470:46' --write-to-gh-env FLOWEY_CONDITION
878 shell: bash
879 name: 🌼❓ Write to 'FLOWEY_CONDITION'
880 - run: |
881 flowey v 11 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:469:80' --write-to-gh-env floweyvar6 --is-raw-string
882 shell: bash
883 name: 🌼 Write to 'floweyvar6'
884 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
885 - id: flowey_lib_common__git_checkout__1
886 uses: actions/checkout@v4
887 with:
888 fetch-depth: '1'
889 path: repo0
890 persist-credentials: ${{ env.floweyvar6 }}
891 name: checkout repo hvlite
892 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
893 - run: ${{ github.workspace }}
894 shell: flowey v 11 'flowey_lib_common::git_checkout:4:flowey_lib_common/src/git_checkout.rs:524:31' --update-from-file {0} --is-raw-string
895 name: 🌼 Read from 'github.workspace'
896 - name: report cloned repo directories
897 run: flowey e 11 flowey_lib_common::git_checkout 3
898 shell: bash
899 - name: resolve OpenVMM repo requests
900 run: flowey e 11 flowey_lib_hvlite::git_checkout_openvmm_repo 0
901 shell: bash
902 - name: report openvmm magicpath dir
903 run: flowey e 11 flowey_lib_hvlite::cfg_openvmm_magicpath 0
904 shell: bash
905 - name: move lxutil.dll into its magic folder
906 run: flowey e 11 flowey_lib_hvlite::init_openvmm_magicpath_lxutil 0
907 shell: bash
908 - name: set '-Dwarnings' in .cargo/config.toml
909 run: flowey e 11 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
910 shell: bash
911 - name: unpack protoc
912 run: flowey e 11 flowey_lib_common::download_protoc 0
913 shell: bash
914 - name: symlink protoc
915 run: flowey e 11 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
916 shell: bash
917 - name: inject cross env
918 run: flowey e 11 flowey_lib_hvlite::init_cross_build 1
919 shell: bash
920 - name: inject cross env
921 run: flowey e 11 flowey_lib_hvlite::init_cross_build 6
922 shell: bash
923 - name: cargo build xtask
924 run: flowey e 11 flowey_lib_common::run_cargo_build 3
925 shell: bash
926 - name: 🌼 write_into Var
927 run: flowey e 11 flowey_lib_hvlite::run_cargo_build 2
928 shell: bash
929 - name: split debug symbols
930 run: flowey e 11 flowey_lib_hvlite::run_split_debug_info 0
931 shell: bash
932 - name: reporting split debug info
933 run: flowey e 11 flowey_lib_hvlite::run_cargo_build 3
934 shell: bash
935 - name: report built xtask
936 run: flowey e 11 flowey_lib_hvlite::build_xtask 1
937 shell: bash
938 - name: determine clippy exclusions
939 run: flowey e 11 flowey_lib_hvlite::_jobs::check_clippy 2
940 shell: bash
941 - name: cargo clippy
942 run: flowey e 11 flowey_lib_common::run_cargo_clippy 1
943 shell: bash
944 - name: inject cross env
945 run: flowey e 11 flowey_lib_hvlite::init_cross_build 0
946 shell: bash
947 - name: inject cross env
948 run: flowey e 11 flowey_lib_hvlite::init_cross_build 5
949 shell: bash
950 - name: cargo build xtask
951 run: flowey e 11 flowey_lib_common::run_cargo_build 2
952 shell: bash
953 - name: 🌼 write_into Var
954 run: flowey e 11 flowey_lib_hvlite::run_cargo_build 0
955 shell: bash
956 - name: split debug symbols
957 run: flowey e 11 flowey_lib_hvlite::run_split_debug_info 3
958 shell: bash
959 - name: reporting split debug info
960 run: flowey e 11 flowey_lib_hvlite::run_cargo_build 1
961 shell: bash
962 - name: report built xtask
963 run: flowey e 11 flowey_lib_hvlite::build_xtask 0
964 shell: bash
965 - name: determine clippy exclusions
966 run: flowey e 11 flowey_lib_hvlite::_jobs::check_clippy 1
967 shell: bash
968 - name: cargo clippy
969 run: flowey e 11 flowey_lib_common::run_cargo_clippy 0
970 shell: bash
971 - name: inject cross env
972 run: flowey e 11 flowey_lib_hvlite::init_cross_build 3
973 shell: bash
974 - name: cargo build xtask
975 run: flowey e 11 flowey_lib_common::run_cargo_build 0
976 shell: bash
977 - name: 🌼 write_into Var
978 run: flowey e 11 flowey_lib_hvlite::run_cargo_build 4
979 shell: bash
980 - name: split debug symbols
981 run: flowey e 11 flowey_lib_hvlite::run_split_debug_info 1
982 shell: bash
983 - name: reporting split debug info
984 run: flowey e 11 flowey_lib_hvlite::run_cargo_build 5
985 shell: bash
986 - name: report built xtask
987 run: flowey e 11 flowey_lib_hvlite::build_xtask 2
988 shell: bash
989 - name: determine clippy exclusions
990 run: flowey e 11 flowey_lib_hvlite::_jobs::check_clippy 0
991 shell: bash
992 - name: cargo clippy
993 run: flowey e 11 flowey_lib_common::run_cargo_clippy 2
994 shell: bash
995 - name: create cargo-nextest cache dir
996 run: flowey e 11 flowey_lib_common::download_cargo_nextest 0
997 shell: bash
998 - name: Pre-processing cache vars
999 run: flowey e 11 flowey_lib_common::cache 0
1000 shell: bash
1001 - run: |
1002 flowey v 11 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:458:72' --write-to-gh-env floweyvar2 --is-raw-string
1003 shell: bash
1004 name: 🌼 Write to 'floweyvar2'
1005 - run: |
1006 flowey v 11 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar3 --is-raw-string
1007 shell: bash
1008 name: 🌼 Write to 'floweyvar3'
1009 - id: flowey_lib_common__cache__1
1010 uses: actions/cache@v4
1011 with:
1012 key: ${{ env.floweyvar2 }}
1013 path: ${{ env.floweyvar3 }}
1014 name: 'Restore cache: cargo-nextest'
1015 - run: ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
1016 shell: flowey v 11 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:510:46' --update-from-file {0} --is-raw-string
1017 name: 🌼 Read from 'steps.flowey_lib_common__cache__1.outputs.cache-hit'
1018 - name: map Github cache-hit to flowey
1019 run: flowey e 11 flowey_lib_common::cache 2
1020 shell: bash
1021 - name: report cargo install persistent dir
1022 run: flowey e 11 flowey_lib_common::cfg_persistent_dir_cargo_install 0
1023 shell: bash
1024 - name: report $CARGO_HOME
1025 run: flowey e 11 flowey_lib_common::install_rust 2
1026 shell: bash
1027 - name: installing cargo-nextest
1028 run: flowey e 11 flowey_lib_common::download_cargo_nextest 1
1029 shell: bash
1030 - name: inject cross env
1031 run: flowey e 11 flowey_lib_hvlite::init_cross_build 4
1032 shell: bash
1033 - name: cargo build xtask
1034 run: flowey e 11 flowey_lib_common::run_cargo_build 1
1035 shell: bash
1036 - name: 🌼 write_into Var
1037 run: flowey e 11 flowey_lib_hvlite::run_cargo_build 6
1038 shell: bash
1039 - name: split debug symbols
1040 run: flowey e 11 flowey_lib_hvlite::run_split_debug_info 2
1041 shell: bash
1042 - name: reporting split debug info
1043 run: flowey e 11 flowey_lib_hvlite::run_cargo_build 7
1044 shell: bash
1045 - name: report built xtask
1046 run: flowey e 11 flowey_lib_hvlite::build_xtask 3
1047 shell: bash
1048 - name: determine unit test exclusions
1049 run: flowey e 11 flowey_lib_hvlite::build_nextest_unit_tests 0
1050 shell: bash
1051 - name: inject cross env
1052 run: flowey e 11 flowey_lib_hvlite::init_cross_build 2
1053 shell: bash
1054 - name: 🌼 write_into Var
1055 run: flowey e 11 flowey_lib_hvlite::run_cargo_nextest_run 0
1056 shell: bash
1057 - name: run 'unit-tests' nextest tests
1058 run: flowey e 11 flowey_lib_common::run_cargo_nextest_run 0
1059 shell: bash
1060 - name: write results
1061 run: flowey e 11 flowey_lib_common::run_cargo_nextest_run 1
1062 shell: bash
1063 - name: 🌼 write_into Var
1064 run: flowey e 11 flowey_lib_hvlite::_jobs::build_and_run_nextest_unit_tests 0
1065 shell: bash
1066 - name: 🌼 write_into Var
1067 run: flowey e 11 flowey_lib_common::publish_test_results 0
1068 shell: bash
1069 - name: 🌼 write_into Var
1070 run: flowey e 11 flowey_lib_common::publish_test_results 1
1071 shell: bash
1072 - name: 🌼 write_into Var
1073 run: flowey e 11 flowey_lib_common::publish_test_results 2
1074 shell: bash
1075 - run: |
1076 flowey v 11 'flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43' --write-to-gh-env FLOWEY_CONDITION
1077 shell: bash
1078 name: 🌼❓ Write to 'FLOWEY_CONDITION'
1079 - run: |
1080 flowey v 11 'flowey_lib_common::publish_test_results:4:flowey_lib_common/src/publish_test_results.rs:95:47' --write-to-gh-env floweyvar1 --is-raw-string
1081 shell: bash
1082 name: 🌼 Write to 'floweyvar1'
1083 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
1084 - id: flowey_lib_common__publish_test_results__3
1085 uses: actions/upload-artifact@v4
1086 with:
1087 name: x64-linux-unit-tests-junit-xml
1088 path: ${{ env.floweyvar1 }}
1089 name: 'publish test results: x64-linux-unit-tests (JUnit XML)'
1090 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
1091 - name: report test results to overall pipeline status
1092 run: flowey e 11 flowey_lib_hvlite::_jobs::build_and_run_nextest_unit_tests 1
1093 shell: bash
1094 - name: run doctests for x86_64-unknown-linux-gnu
1095 run: flowey e 11 flowey_lib_hvlite::_jobs::build_and_run_doc_tests 0
1096 shell: bash
1097 - name: 'validate cache entry: cargo-nextest'
1098 run: flowey e 11 flowey_lib_common::cache 3
1099 shell: bash
1100 - name: 'validate cache entry: gh-release-download'
1101 run: flowey e 11 flowey_lib_common::cache 7
1102 shell: bash
1103 job12:
1104 name: clippy [linux-musl, misc nostd], unit tests [x64-linux-musl]
1105 runs-on:
1106 - self-hosted
1107 - 1ES.Pool=OpenVMM-GitHub-Linux-Pool-WestUS3
1108 - 1ES.ImageOverride=MMSUbuntu22.04-256GB
1109 permissions:
1110 contents: read
1111 id-token: write
1112 steps:
1113 - run: echo "injected!"
1114 name: 🌼🥾 Bootstrap flowey
1115 shell: bash
1116 - run: |
1117 set -x
1118 i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
1119 sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
1120 curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.82.0 -y
1121 . "$HOME/.cargo/env"
1122 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
1123 rustup show
1124 if: runner.os == 'Linux'
1125 name: rustup (Linux)
1126 shell: bash
1127 - run: |
1128 set -x
1129 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
1130 ./rustup-init.exe -y --default-toolchain=1.82.0
1131 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
1132 if: runner.os == 'Windows' && runner.arch == 'X64'
1133 name: rustup (Windows X64)
1134 shell: bash
1135 - run: |
1136 set -x
1137 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
1138 ./rustup-init.exe -y --default-toolchain=1.82.0
1139 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
1140 if: runner.os == 'Windows' && runner.arch == 'ARM64'
1141 name: rustup (Windows ARM64)
1142 shell: bash
1143 - uses: actions/checkout@v4
1144 with:
1145 path: flowey_bootstrap
1146 - name: Build flowey
1147 run: CARGO_INCREMENTAL=0 RUSTC_BOOTSTRAP=1 RUSTFLAGS="-Z threads=8" cargo build -p flowey_hvlite --target x86_64-unknown-linux-gnu --profile flowey-ci
1148 working-directory: flowey_bootstrap
1149 shell: bash
1150 - name: Stage flowey artifact
1151 run: |
1152 mkdir ./flowey_bootstrap_temp
1153 mv ./.github/workflows/openvmm-ci.yaml ./flowey_bootstrap_temp/pipeline.yaml
1154 mv target/x86_64-unknown-linux-gnu/flowey-ci/flowey_hvlite ./flowey_bootstrap_temp/flowey
1155 working-directory: flowey_bootstrap
1156 shell: bash
1157 - name: Copy flowey artifact
1158 run: |
1159 OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
1160 mkdir -p $OutDirNormal
1161 cp -r ./flowey_bootstrap_temp/* $OutDirNormal
1162 working-directory: flowey_bootstrap
1163 shell: bash
1164 - name: Cleanup staged flowey artifact
1165 run: rm -rf ./flowey_bootstrap_temp
1166 working-directory: flowey_bootstrap
1167 shell: bash
1168 - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH
1169 shell: bash
1170 name: 🌼📦 Add flowey to PATH
1171 - name: 🌼🔎 Self-check YAML
1172 run: |-
1173 ESCAPED_AGENT_TEMPDIR=$(
1174 cat <<'EOF' | sed 's/\\/\\\\/g'
1175 ${{ runner.temp }}
1176 EOF
1177 )
1178 flowey pipeline github --runtime $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci
1179 shell: bash
1180 - name: 🌼🛫 Initialize job
1181 run: |
1182 AgentTempDirNormal="${{ runner.temp }}"
1183 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
1184 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
1185
1186 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey
1187
1188 echo '"debug"' | flowey v 12 'FLOWEY_LOG' --update-from-stdin
1189 echo "${{ runner.temp }}/work" | flowey v 12 '_internal_WORKING_DIR' --update-from-stdin --is-raw-string
1190
1191 cat <<'EOF' | flowey v 12 'verbose' --update-from-stdin
1192 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
1193 EOF
1194 shell: bash
1195 - name: install Rust
1196 run: flowey e 12 flowey_lib_common::install_rust 0
1197 shell: bash
1198 - name: detect active toolchain
1199 run: flowey e 12 flowey_lib_common::install_rust 1
1200 shell: bash
1201 - name: report common cargo flags
1202 run: flowey e 12 flowey_lib_common::cfg_cargo_common_flags 0
1203 shell: bash
1204 - name: check if hvlite needs to be cloned
1205 run: flowey e 12 flowey_lib_common::git_checkout 0
1206 shell: bash
1207 - run: |
1208 flowey v 12 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:470:46' --write-to-gh-env FLOWEY_CONDITION
1209 shell: bash
1210 name: 🌼❓ Write to 'FLOWEY_CONDITION'
1211 - run: |
1212 flowey v 12 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:469:80' --write-to-gh-env floweyvar6 --is-raw-string
1213 shell: bash
1214 name: 🌼 Write to 'floweyvar6'
1215 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
1216 - id: flowey_lib_common__git_checkout__1
1217 uses: actions/checkout@v4
1218 with:
1219 fetch-depth: '1'
1220 path: repo0
1221 persist-credentials: ${{ env.floweyvar6 }}
1222 name: checkout repo hvlite
1223 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
1224 - run: ${{ github.workspace }}
1225 shell: flowey v 12 'flowey_lib_common::git_checkout:4:flowey_lib_common/src/git_checkout.rs:524:31' --update-from-file {0} --is-raw-string
1226 name: 🌼 Read from 'github.workspace'
1227 - name: report cloned repo directories
1228 run: flowey e 12 flowey_lib_common::git_checkout 3
1229 shell: bash
1230 - name: resolve OpenVMM repo requests
1231 run: flowey e 12 flowey_lib_hvlite::git_checkout_openvmm_repo 0
1232 shell: bash
1233 - name: report openvmm magicpath dir
1234 run: flowey e 12 flowey_lib_hvlite::cfg_openvmm_magicpath 0
1235 shell: bash
1236 - name: checking if packages need to be installed
1237 run: flowey e 12 flowey_lib_common::install_dist_pkg 0
1238 shell: bash
1239 - name: installing packages
1240 run: flowey e 12 flowey_lib_common::install_dist_pkg 1
1241 shell: bash
1242 - name: create gh-release-download cache dir
1243 run: flowey e 12 flowey_lib_common::download_gh_release 0
1244 shell: bash
1245 - name: Pre-processing cache vars
1246 run: flowey e 12 flowey_lib_common::cache 4
1247 shell: bash
1248 - run: |
1249 flowey v 12 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:458:72' --write-to-gh-env floweyvar4 --is-raw-string
1250 shell: bash
1251 name: 🌼 Write to 'floweyvar4'
1252 - run: |
1253 flowey v 12 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar5 --is-raw-string
1254 shell: bash
1255 name: 🌼 Write to 'floweyvar5'
1256 - id: flowey_lib_common__cache__5
1257 uses: actions/cache@v4
1258 with:
1259 key: ${{ env.floweyvar4 }}
1260 path: ${{ env.floweyvar5 }}
1261 name: 'Restore cache: gh-release-download'
1262 - run: ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
1263 shell: flowey v 12 'flowey_lib_common::cache:12:flowey_lib_common/src/cache.rs:510:46' --update-from-file {0} --is-raw-string
1264 name: 🌼 Read from 'steps.flowey_lib_common__cache__5.outputs.cache-hit'
1265 - name: map Github cache-hit to flowey
1266 run: flowey e 12 flowey_lib_common::cache 6
1267 shell: bash
1268 - name: download artifacts from github releases
1269 run: flowey e 12 flowey_lib_common::download_gh_release 1
1270 shell: bash
1271 - name: unpack openvmm-deps archive
1272 run: flowey e 12 flowey_lib_hvlite::download_openvmm_deps 0
1273 shell: bash
1274 - name: extract X64 sysroot.tar.gz
1275 run: flowey e 12 flowey_lib_hvlite::init_openvmm_magicpath_openhcl_sysroot 1
1276 shell: bash
1277 - name: unpack Microsoft.WSL.LxUtil.x64.zip
1278 run: flowey e 12 flowey_lib_hvlite::download_lxutil 0
1279 shell: bash
1280 - name: unpack Microsoft.WSL.LxUtil.AARCH64.zip
1281 run: flowey e 12 flowey_lib_hvlite::download_lxutil 1
1282 shell: bash
1283 - name: move lxutil.dll into its magic folder
1284 run: flowey e 12 flowey_lib_hvlite::init_openvmm_magicpath_lxutil 0
1285 shell: bash
1286 - name: set '-Dwarnings' in .cargo/config.toml
1287 run: flowey e 12 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
1288 shell: bash
1289 - name: unpack protoc
1290 run: flowey e 12 flowey_lib_common::download_protoc 0
1291 shell: bash
1292 - name: symlink protoc
1293 run: flowey e 12 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
1294 shell: bash
1295 - name: inject cross env
1296 run: flowey e 12 flowey_lib_hvlite::init_cross_build 4
1297 shell: bash
1298 - name: inject cross env
1299 run: flowey e 12 flowey_lib_hvlite::init_cross_build 2
1300 shell: bash
1301 - name: cargo build xtask
1302 run: flowey e 12 flowey_lib_common::run_cargo_build 1
1303 shell: bash
1304 - name: 🌼 write_into Var
1305 run: flowey e 12 flowey_lib_hvlite::run_cargo_build 0
1306 shell: bash
1307 - name: split debug symbols
1308 run: flowey e 12 flowey_lib_hvlite::run_split_debug_info 2
1309 shell: bash
1310 - name: reporting split debug info
1311 run: flowey e 12 flowey_lib_hvlite::run_cargo_build 1
1312 shell: bash
1313 - name: report built xtask
1314 run: flowey e 12 flowey_lib_hvlite::build_xtask 0
1315 shell: bash
1316 - name: determine clippy exclusions
1317 run: flowey e 12 flowey_lib_hvlite::_jobs::check_clippy 1
1318 shell: bash
1319 - name: cargo clippy
1320 run: flowey e 12 flowey_lib_common::run_cargo_clippy 0
1321 shell: bash
1322 - name: cargo clippy
1323 run: flowey e 12 flowey_lib_common::run_cargo_clippy 2
1324 shell: bash
1325 - name: cargo clippy
1326 run: flowey e 12 flowey_lib_common::run_cargo_clippy 1
1327 shell: bash
1328 - name: extract Aarch64 sysroot.tar.gz
1329 run: flowey e 12 flowey_lib_hvlite::init_openvmm_magicpath_openhcl_sysroot 0
1330 shell: bash
1331 - name: inject cross env
1332 run: flowey e 12 flowey_lib_hvlite::init_cross_build 0
1333 shell: bash
1334 - name: cargo clippy
1335 run: flowey e 12 flowey_lib_common::run_cargo_clippy 4
1336 shell: bash
1337 - name: inject cross env
1338 run: flowey e 12 flowey_lib_hvlite::init_cross_build 3
1339 shell: bash
1340 - name: cargo build xtask
1341 run: flowey e 12 flowey_lib_common::run_cargo_build 2
1342 shell: bash
1343 - name: 🌼 write_into Var
1344 run: flowey e 12 flowey_lib_hvlite::run_cargo_build 2
1345 shell: bash
1346 - name: split debug symbols
1347 run: flowey e 12 flowey_lib_hvlite::run_split_debug_info 0
1348 shell: bash
1349 - name: reporting split debug info
1350 run: flowey e 12 flowey_lib_hvlite::run_cargo_build 3
1351 shell: bash
1352 - name: report built xtask
1353 run: flowey e 12 flowey_lib_hvlite::build_xtask 1
1354 shell: bash
1355 - name: determine clippy exclusions
1356 run: flowey e 12 flowey_lib_hvlite::_jobs::check_clippy 0
1357 shell: bash
1358 - name: cargo clippy
1359 run: flowey e 12 flowey_lib_common::run_cargo_clippy 3
1360 shell: bash
1361 - name: cargo clippy
1362 run: flowey e 12 flowey_lib_common::run_cargo_clippy 5
1363 shell: bash
1364 - name: create cargo-nextest cache dir
1365 run: flowey e 12 flowey_lib_common::download_cargo_nextest 0
1366 shell: bash
1367 - name: Pre-processing cache vars
1368 run: flowey e 12 flowey_lib_common::cache 0
1369 shell: bash
1370 - run: |
1371 flowey v 12 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:458:72' --write-to-gh-env floweyvar2 --is-raw-string
1372 shell: bash
1373 name: 🌼 Write to 'floweyvar2'
1374 - run: |
1375 flowey v 12 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar3 --is-raw-string
1376 shell: bash
1377 name: 🌼 Write to 'floweyvar3'
1378 - id: flowey_lib_common__cache__1
1379 uses: actions/cache@v4
1380 with:
1381 key: ${{ env.floweyvar2 }}
1382 path: ${{ env.floweyvar3 }}
1383 name: 'Restore cache: cargo-nextest'
1384 - run: ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
1385 shell: flowey v 12 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:510:46' --update-from-file {0} --is-raw-string
1386 name: 🌼 Read from 'steps.flowey_lib_common__cache__1.outputs.cache-hit'
1387 - name: map Github cache-hit to flowey
1388 run: flowey e 12 flowey_lib_common::cache 2
1389 shell: bash
1390 - name: report cargo install persistent dir
1391 run: flowey e 12 flowey_lib_common::cfg_persistent_dir_cargo_install 0
1392 shell: bash
1393 - name: report $CARGO_HOME
1394 run: flowey e 12 flowey_lib_common::install_rust 2
1395 shell: bash
1396 - name: installing cargo-nextest
1397 run: flowey e 12 flowey_lib_common::download_cargo_nextest 1
1398 shell: bash
1399 - name: inject cross env
1400 run: flowey e 12 flowey_lib_hvlite::init_cross_build 1
1401 shell: bash
1402 - name: cargo build xtask
1403 run: flowey e 12 flowey_lib_common::run_cargo_build 0
1404 shell: bash
1405 - name: 🌼 write_into Var
1406 run: flowey e 12 flowey_lib_hvlite::run_cargo_build 4
1407 shell: bash
1408 - name: split debug symbols
1409 run: flowey e 12 flowey_lib_hvlite::run_split_debug_info 1
1410 shell: bash
1411 - name: reporting split debug info
1412 run: flowey e 12 flowey_lib_hvlite::run_cargo_build 5
1413 shell: bash
1414 - name: report built xtask
1415 run: flowey e 12 flowey_lib_hvlite::build_xtask 2
1416 shell: bash
1417 - name: determine unit test exclusions
1418 run: flowey e 12 flowey_lib_hvlite::build_nextest_unit_tests 0
1419 shell: bash
1420 - name: inject cross env
1421 run: flowey e 12 flowey_lib_hvlite::init_cross_build 5
1422 shell: bash
1423 - name: 🌼 write_into Var
1424 run: flowey e 12 flowey_lib_hvlite::run_cargo_nextest_run 0
1425 shell: bash
1426 - name: run 'unit-tests' nextest tests
1427 run: flowey e 12 flowey_lib_common::run_cargo_nextest_run 0
1428 shell: bash
1429 - name: write results
1430 run: flowey e 12 flowey_lib_common::run_cargo_nextest_run 1
1431 shell: bash
1432 - name: 🌼 write_into Var
1433 run: flowey e 12 flowey_lib_hvlite::_jobs::build_and_run_nextest_unit_tests 0
1434 shell: bash
1435 - name: 🌼 write_into Var
1436 run: flowey e 12 flowey_lib_common::publish_test_results 0
1437 shell: bash
1438 - name: 🌼 write_into Var
1439 run: flowey e 12 flowey_lib_common::publish_test_results 1
1440 shell: bash
1441 - name: 🌼 write_into Var
1442 run: flowey e 12 flowey_lib_common::publish_test_results 2
1443 shell: bash
1444 - run: |
1445 flowey v 12 'flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43' --write-to-gh-env FLOWEY_CONDITION
1446 shell: bash
1447 name: 🌼❓ Write to 'FLOWEY_CONDITION'
1448 - run: |
1449 flowey v 12 'flowey_lib_common::publish_test_results:4:flowey_lib_common/src/publish_test_results.rs:95:47' --write-to-gh-env floweyvar1 --is-raw-string
1450 shell: bash
1451 name: 🌼 Write to 'floweyvar1'
1452 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
1453 - id: flowey_lib_common__publish_test_results__3
1454 uses: actions/upload-artifact@v4
1455 with:
1456 name: x64-linux-musl-unit-tests-junit-xml
1457 path: ${{ env.floweyvar1 }}
1458 name: 'publish test results: x64-linux-musl-unit-tests (JUnit XML)'
1459 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
1460 - name: report test results to overall pipeline status
1461 run: flowey e 12 flowey_lib_hvlite::_jobs::build_and_run_nextest_unit_tests 1
1462 shell: bash
1463 - name: run doctests for x86_64-unknown-linux-musl
1464 run: flowey e 12 flowey_lib_hvlite::_jobs::build_and_run_doc_tests 0
1465 shell: bash
1466 - name: 'validate cache entry: cargo-nextest'
1467 run: flowey e 12 flowey_lib_common::cache 3
1468 shell: bash
1469 - name: 'validate cache entry: gh-release-download'
1470 run: flowey e 12 flowey_lib_common::cache 7
1471 shell: bash
1472 job13:
1473 name: unit tests [aarch64-windows]
1474 runs-on:
1475 - self-hosted
1476 - Windows
1477 - ARM64
1478 - Baremetal
1479 permissions:
1480 contents: read
1481 id-token: write
1482 steps:
1483 - run: echo "injected!"
1484 name: 🌼🥾 Bootstrap flowey
1485 shell: bash
1486 - run: |
1487 set -x
1488 i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
1489 sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
1490 curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.82.0 -y
1491 . "$HOME/.cargo/env"
1492 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
1493 rustup show
1494 if: runner.os == 'Linux'
1495 name: rustup (Linux)
1496 shell: bash
1497 - run: |
1498 set -x
1499 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
1500 ./rustup-init.exe -y --default-toolchain=1.82.0
1501 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
1502 if: runner.os == 'Windows' && runner.arch == 'X64'
1503 name: rustup (Windows X64)
1504 shell: bash
1505 - run: |
1506 set -x
1507 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
1508 ./rustup-init.exe -y --default-toolchain=1.82.0
1509 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
1510 if: runner.os == 'Windows' && runner.arch == 'ARM64'
1511 name: rustup (Windows ARM64)
1512 shell: bash
1513 - uses: actions/checkout@v4
1514 with:
1515 path: flowey_bootstrap
1516 - name: Build flowey
1517 run: CARGO_INCREMENTAL=0 RUSTC_BOOTSTRAP=1 RUSTFLAGS="-Z threads=8" cargo build -p flowey_hvlite --target aarch64-pc-windows-msvc --profile flowey-ci
1518 working-directory: flowey_bootstrap
1519 shell: bash
1520 - name: Stage flowey artifact
1521 run: |
1522 mkdir ./flowey_bootstrap_temp
1523 mv ./.github/workflows/openvmm-ci.yaml ./flowey_bootstrap_temp/pipeline.yaml
1524 mv target/aarch64-pc-windows-msvc/flowey-ci/flowey_hvlite.exe ./flowey_bootstrap_temp/flowey.exe
1525 working-directory: flowey_bootstrap
1526 shell: bash
1527 - name: Copy flowey artifact
1528 run: |
1529 OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
1530 mkdir -p $OutDirNormal
1531 cp -r ./flowey_bootstrap_temp/* $OutDirNormal
1532 working-directory: flowey_bootstrap
1533 shell: bash
1534 - name: Cleanup staged flowey artifact
1535 run: rm -rf ./flowey_bootstrap_temp
1536 working-directory: flowey_bootstrap
1537 shell: bash
1538 - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH
1539 shell: bash
1540 name: 🌼📦 Add flowey to PATH
1541 - name: 🌼🔎 Self-check YAML
1542 run: |-
1543 ESCAPED_AGENT_TEMPDIR=$(
1544 cat <<'EOF' | sed 's/\\/\\\\/g'
1545 ${{ runner.temp }}
1546 EOF
1547 )
1548 flowey.exe pipeline github --runtime $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci
1549 shell: bash
1550 - name: 🌼🛫 Initialize job
1551 run: |
1552 AgentTempDirNormal="${{ runner.temp }}"
1553 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
1554 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
1555
1556 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe
1557
1558 echo '"debug"' | flowey.exe v 13 'FLOWEY_LOG' --update-from-stdin
1559 echo "${{ runner.temp }}/work" | flowey.exe v 13 '_internal_WORKING_DIR' --update-from-stdin --is-raw-string
1560
1561 cat <<'EOF' | flowey.exe v 13 'verbose' --update-from-stdin
1562 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
1563 EOF
1564 shell: bash
1565 - name: report common cargo flags
1566 run: flowey.exe e 13 flowey_lib_common::cfg_cargo_common_flags 0
1567 shell: bash
1568 - name: create cargo-nextest cache dir
1569 run: flowey.exe e 13 flowey_lib_common::download_cargo_nextest 0
1570 shell: bash
1571 - name: Pre-processing cache vars
1572 run: flowey.exe e 13 flowey_lib_common::cache 0
1573 shell: bash
1574 - run: |
1575 flowey.exe v 13 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:458:72' --write-to-gh-env floweyvar2 --is-raw-string
1576 shell: bash
1577 name: 🌼 Write to 'floweyvar2'
1578 - run: |
1579 flowey.exe v 13 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar3 --is-raw-string
1580 shell: bash
1581 name: 🌼 Write to 'floweyvar3'
1582 - id: flowey_lib_common__cache__1
1583 uses: actions/cache@v4
1584 with:
1585 key: ${{ env.floweyvar2 }}
1586 path: ${{ env.floweyvar3 }}
1587 name: 'Restore cache: cargo-nextest'
1588 - run: ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
1589 shell: flowey.exe v 13 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:510:46' --update-from-file {0} --is-raw-string
1590 name: 🌼 Read from 'steps.flowey_lib_common__cache__1.outputs.cache-hit'
1591 - name: map Github cache-hit to flowey
1592 run: flowey.exe e 13 flowey_lib_common::cache 2
1593 shell: bash
1594 - name: report cargo install persistent dir
1595 run: flowey.exe e 13 flowey_lib_common::cfg_persistent_dir_cargo_install 0
1596 shell: bash
1597 - name: install Rust
1598 run: flowey.exe e 13 flowey_lib_common::install_rust 0
1599 shell: bash
1600 - name: detect active toolchain
1601 run: flowey.exe e 13 flowey_lib_common::install_rust 1
1602 shell: bash
1603 - name: report $CARGO_HOME
1604 run: flowey.exe e 13 flowey_lib_common::install_rust 2
1605 shell: bash
1606 - name: installing cargo-nextest
1607 run: flowey.exe e 13 flowey_lib_common::download_cargo_nextest 1
1608 shell: bash
1609 - name: check if hvlite needs to be cloned
1610 run: flowey.exe e 13 flowey_lib_common::git_checkout 0
1611 shell: bash
1612 - run: |
1613 flowey.exe v 13 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:470:46' --write-to-gh-env FLOWEY_CONDITION
1614 shell: bash
1615 name: 🌼❓ Write to 'FLOWEY_CONDITION'
1616 - run: |
1617 flowey.exe v 13 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:469:80' --write-to-gh-env floweyvar6 --is-raw-string
1618 shell: bash
1619 name: 🌼 Write to 'floweyvar6'
1620 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
1621 - id: flowey_lib_common__git_checkout__1
1622 uses: actions/checkout@v4
1623 with:
1624 fetch-depth: '1'
1625 path: repo0
1626 persist-credentials: ${{ env.floweyvar6 }}
1627 name: checkout repo hvlite
1628 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
1629 - run: ${{ github.workspace }}
1630 shell: flowey.exe v 13 'flowey_lib_common::git_checkout:4:flowey_lib_common/src/git_checkout.rs:524:31' --update-from-file {0} --is-raw-string
1631 name: 🌼 Read from 'github.workspace'
1632 - name: report cloned repo directories
1633 run: flowey.exe e 13 flowey_lib_common::git_checkout 3
1634 shell: bash
1635 - name: resolve OpenVMM repo requests
1636 run: flowey.exe e 13 flowey_lib_hvlite::git_checkout_openvmm_repo 0
1637 shell: bash
1638 - name: set '-Dwarnings' in .cargo/config.toml
1639 run: flowey.exe e 13 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
1640 shell: bash
1641 - name: create gh-release-download cache dir
1642 run: flowey.exe e 13 flowey_lib_common::download_gh_release 0
1643 shell: bash
1644 - name: Pre-processing cache vars
1645 run: flowey.exe e 13 flowey_lib_common::cache 4
1646 shell: bash
1647 - run: |
1648 flowey.exe v 13 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:458:72' --write-to-gh-env floweyvar4 --is-raw-string
1649 shell: bash
1650 name: 🌼 Write to 'floweyvar4'
1651 - run: |
1652 flowey.exe v 13 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar5 --is-raw-string
1653 shell: bash
1654 name: 🌼 Write to 'floweyvar5'
1655 - id: flowey_lib_common__cache__5
1656 uses: actions/cache@v4
1657 with:
1658 key: ${{ env.floweyvar4 }}
1659 path: ${{ env.floweyvar5 }}
1660 name: 'Restore cache: gh-release-download'
1661 - run: ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
1662 shell: flowey.exe v 13 'flowey_lib_common::cache:12:flowey_lib_common/src/cache.rs:510:46' --update-from-file {0} --is-raw-string
1663 name: 🌼 Read from 'steps.flowey_lib_common__cache__5.outputs.cache-hit'
1664 - name: map Github cache-hit to flowey
1665 run: flowey.exe e 13 flowey_lib_common::cache 6
1666 shell: bash
1667 - name: download artifacts from github releases
1668 run: flowey.exe e 13 flowey_lib_common::download_gh_release 1
1669 shell: bash
1670 - name: unpack protoc
1671 run: flowey.exe e 13 flowey_lib_common::download_protoc 0
1672 shell: bash
1673 - name: report openvmm magicpath dir
1674 run: flowey.exe e 13 flowey_lib_hvlite::cfg_openvmm_magicpath 0
1675 shell: bash
1676 - name: symlink protoc
1677 run: flowey.exe e 13 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
1678 shell: bash
1679 - name: inject cross env
1680 run: flowey.exe e 13 flowey_lib_hvlite::init_cross_build 1
1681 shell: bash
1682 - name: cargo build xtask
1683 run: flowey.exe e 13 flowey_lib_common::run_cargo_build 0
1684 shell: bash
1685 - name: 🌼 write_into Var
1686 run: flowey.exe e 13 flowey_lib_hvlite::run_cargo_build 0
1687 shell: bash
1688 - name: report built xtask
1689 run: flowey.exe e 13 flowey_lib_hvlite::build_xtask 0
1690 shell: bash
1691 - name: determine unit test exclusions
1692 run: flowey.exe e 13 flowey_lib_hvlite::build_nextest_unit_tests 0
1693 shell: bash
1694 - name: unpack Microsoft.WSL.LxUtil.AARCH64.zip
1695 run: flowey.exe e 13 flowey_lib_hvlite::download_lxutil 0
1696 shell: bash
1697 - name: move lxutil.dll into its magic folder
1698 run: flowey.exe e 13 flowey_lib_hvlite::init_openvmm_magicpath_lxutil 0
1699 shell: bash
1700 - name: inject cross env
1701 run: flowey.exe e 13 flowey_lib_hvlite::init_cross_build 0
1702 shell: bash
1703 - name: 🌼 write_into Var
1704 run: flowey.exe e 13 flowey_lib_hvlite::run_cargo_nextest_run 0
1705 shell: bash
1706 - name: run 'unit-tests' nextest tests
1707 run: flowey.exe e 13 flowey_lib_common::run_cargo_nextest_run 0
1708 shell: bash
1709 - name: write results
1710 run: flowey.exe e 13 flowey_lib_common::run_cargo_nextest_run 1
1711 shell: bash
1712 - name: 🌼 write_into Var
1713 run: flowey.exe e 13 flowey_lib_hvlite::_jobs::build_and_run_nextest_unit_tests 0
1714 shell: bash
1715 - name: 🌼 write_into Var
1716 run: flowey.exe e 13 flowey_lib_common::publish_test_results 0
1717 shell: bash
1718 - name: 🌼 write_into Var
1719 run: flowey.exe e 13 flowey_lib_common::publish_test_results 1
1720 shell: bash
1721 - name: 🌼 write_into Var
1722 run: flowey.exe e 13 flowey_lib_common::publish_test_results 2
1723 shell: bash
1724 - run: |
1725 flowey.exe v 13 'flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43' --write-to-gh-env FLOWEY_CONDITION
1726 shell: bash
1727 name: 🌼❓ Write to 'FLOWEY_CONDITION'
1728 - run: |
1729 flowey.exe v 13 'flowey_lib_common::publish_test_results:4:flowey_lib_common/src/publish_test_results.rs:95:47' --write-to-gh-env floweyvar1 --is-raw-string
1730 shell: bash
1731 name: 🌼 Write to 'floweyvar1'
1732 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
1733 - id: flowey_lib_common__publish_test_results__3
1734 uses: actions/upload-artifact@v4
1735 with:
1736 name: aarch64-windows-unit-tests-junit-xml
1737 path: ${{ env.floweyvar1 }}
1738 name: 'publish test results: aarch64-windows-unit-tests (JUnit XML)'
1739 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
1740 - name: report test results to overall pipeline status
1741 run: flowey.exe e 13 flowey_lib_hvlite::_jobs::build_and_run_nextest_unit_tests 1
1742 shell: bash
1743 - name: run doctests for aarch64-pc-windows-msvc
1744 run: flowey.exe e 13 flowey_lib_hvlite::_jobs::build_and_run_doc_tests 0
1745 shell: bash
1746 - name: 'validate cache entry: cargo-nextest'
1747 run: flowey.exe e 13 flowey_lib_common::cache 3
1748 shell: bash
1749 - name: 'validate cache entry: gh-release-download'
1750 run: flowey.exe e 13 flowey_lib_common::cache 7
1751 shell: bash
1752 job14:
1753 name: run vmm-tests [x64-windows-intel]
1754 runs-on:
1755 - self-hosted
1756 - 1ES.Pool=OpenVMM-GitHub-Win-Pool-Intel-WestUS3
1757 - 1ES.ImageOverride=HvLite-CI-Win-Ge-Image-256GB
1758 permissions:
1759 contents: read
1760 id-token: write
1761 needs:
1762 - job9
1763 - job9
1764 - job7
1765 - job5
1766 - job5
1767 - job5
1768 steps:
1769 - name: 🌼🥾 Download bootstrapped flowey
1770 uses: actions/download-artifact@v4
1771 with:
1772 name: _internal-flowey-bootstrap-x86_64-windows-uid-10
1773 path: ${{ runner.temp }}/bootstrapped-flowey
1774 - name: 🌼📦 Download x64-guest_test_uefi
1775 uses: actions/download-artifact@v4
1776 with:
1777 name: x64-guest_test_uefi
1778 path: ${{ runner.temp }}/used_artifacts/x64-guest_test_uefi/
1779 - name: 🌼📦 Download x64-linux-musl-pipette
1780 uses: actions/download-artifact@v4
1781 with:
1782 name: x64-linux-musl-pipette
1783 path: ${{ runner.temp }}/used_artifacts/x64-linux-musl-pipette/
1784 - name: 🌼📦 Download x64-openhcl-igvm
1785 uses: actions/download-artifact@v4
1786 with:
1787 name: x64-openhcl-igvm
1788 path: ${{ runner.temp }}/used_artifacts/x64-openhcl-igvm/
1789 - name: 🌼📦 Download x64-windows-openvmm
1790 uses: actions/download-artifact@v4
1791 with:
1792 name: x64-windows-openvmm
1793 path: ${{ runner.temp }}/used_artifacts/x64-windows-openvmm/
1794 - name: 🌼📦 Download x64-windows-pipette
1795 uses: actions/download-artifact@v4
1796 with:
1797 name: x64-windows-pipette
1798 path: ${{ runner.temp }}/used_artifacts/x64-windows-pipette/
1799 - name: 🌼📦 Download x64-windows-vmm-tests-archive
1800 uses: actions/download-artifact@v4
1801 with:
1802 name: x64-windows-vmm-tests-archive
1803 path: ${{ runner.temp }}/used_artifacts/x64-windows-vmm-tests-archive/
1804 - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH
1805 shell: bash
1806 name: 🌼📦 Add flowey to PATH
1807 - name: 🌼🛫 Initialize job
1808 run: |
1809 AgentTempDirNormal="${{ runner.temp }}"
1810 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
1811 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
1812
1813 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe
1814
1815 echo '"debug"' | flowey.exe v 14 'FLOWEY_LOG' --update-from-stdin
1816 echo "${{ runner.temp }}/work" | flowey.exe v 14 '_internal_WORKING_DIR' --update-from-stdin --is-raw-string
1817
1818 cat <<'EOF' | flowey.exe v 14 'verbose' --update-from-stdin
1819 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
1820 EOF
1821 echo "${{ runner.temp }}\\used_artifacts\\x64-guest_test_uefi" | flowey.exe v 14 'artifact_use_from_x64-guest_test_uefi' --update-from-stdin --is-raw-string
1822 echo "${{ runner.temp }}\\used_artifacts\\x64-linux-musl-pipette" | flowey.exe v 14 'artifact_use_from_x64-linux-musl-pipette' --update-from-stdin --is-raw-string
1823 echo "${{ runner.temp }}\\used_artifacts\\x64-openhcl-igvm" | flowey.exe v 14 'artifact_use_from_x64-openhcl-igvm' --update-from-stdin --is-raw-string
1824 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-openvmm" | flowey.exe v 14 'artifact_use_from_x64-windows-openvmm' --update-from-stdin --is-raw-string
1825 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-pipette" | flowey.exe v 14 'artifact_use_from_x64-windows-pipette' --update-from-stdin --is-raw-string
1826 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-vmm-tests-archive" | flowey.exe v 14 'artifact_use_from_x64-windows-vmm-tests-archive' --update-from-stdin --is-raw-string
1827 shell: bash
1828 - name: create cargo-nextest cache dir
1829 run: flowey.exe e 14 flowey_lib_common::download_cargo_nextest 0
1830 shell: bash
1831 - name: Pre-processing cache vars
1832 run: flowey.exe e 14 flowey_lib_common::cache 4
1833 shell: bash
1834 - run: |
1835 flowey.exe v 14 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:458:72' --write-to-gh-env floweyvar8 --is-raw-string
1836 shell: bash
1837 name: 🌼 Write to 'floweyvar8'
1838 - run: |
1839 flowey.exe v 14 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar9 --is-raw-string
1840 shell: bash
1841 name: 🌼 Write to 'floweyvar9'
1842 - id: flowey_lib_common__cache__5
1843 uses: actions/cache@v4
1844 with:
1845 key: ${{ env.floweyvar8 }}
1846 path: ${{ env.floweyvar9 }}
1847 name: 'Restore cache: cargo-nextest'
1848 - run: ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
1849 shell: flowey.exe v 14 'flowey_lib_common::cache:12:flowey_lib_common/src/cache.rs:510:46' --update-from-file {0} --is-raw-string
1850 name: 🌼 Read from 'steps.flowey_lib_common__cache__5.outputs.cache-hit'
1851 - name: map Github cache-hit to flowey
1852 run: flowey.exe e 14 flowey_lib_common::cache 6
1853 shell: bash
1854 - name: installing cargo-nextest
1855 run: flowey.exe e 14 flowey_lib_common::download_cargo_nextest 1
1856 shell: bash
1857 - name: create gh-release-download cache dir
1858 run: flowey.exe e 14 flowey_lib_common::download_gh_release 0
1859 shell: bash
1860 - name: Pre-processing cache vars
1861 run: flowey.exe e 14 flowey_lib_common::cache 8
1862 shell: bash
1863 - run: |
1864 flowey.exe v 14 'flowey_lib_common::cache:18:flowey_lib_common/src/cache.rs:458:72' --write-to-gh-env floweyvar10 --is-raw-string
1865 shell: bash
1866 name: 🌼 Write to 'floweyvar10'
1867 - run: |
1868 flowey.exe v 14 'flowey_lib_common::cache:17:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar11 --is-raw-string
1869 shell: bash
1870 name: 🌼 Write to 'floweyvar11'
1871 - id: flowey_lib_common__cache__9
1872 uses: actions/cache@v4
1873 with:
1874 key: ${{ env.floweyvar10 }}
1875 path: ${{ env.floweyvar11 }}
1876 name: 'Restore cache: gh-release-download'
1877 - run: ${{ steps.flowey_lib_common__cache__9.outputs.cache-hit }}
1878 shell: flowey.exe v 14 'flowey_lib_common::cache:20:flowey_lib_common/src/cache.rs:510:46' --update-from-file {0} --is-raw-string
1879 name: 🌼 Read from 'steps.flowey_lib_common__cache__9.outputs.cache-hit'
1880 - name: map Github cache-hit to flowey
1881 run: flowey.exe e 14 flowey_lib_common::cache 10
1882 shell: bash
1883 - name: download artifacts from github releases
1884 run: flowey.exe e 14 flowey_lib_common::download_gh_release 1
1885 shell: bash
1886 - name: unpack mu_msvm package (x64)
1887 run: flowey.exe e 14 flowey_lib_hvlite::download_uefi_mu_msvm 0
1888 shell: bash
1889 - name: check if hvlite needs to be cloned
1890 run: flowey.exe e 14 flowey_lib_common::git_checkout 0
1891 shell: bash
1892 - run: |
1893 flowey.exe v 14 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:470:46' --write-to-gh-env FLOWEY_CONDITION
1894 shell: bash
1895 name: 🌼❓ Write to 'FLOWEY_CONDITION'
1896 - run: |
1897 flowey.exe v 14 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:469:80' --write-to-gh-env floweyvar5 --is-raw-string
1898 shell: bash
1899 name: 🌼 Write to 'floweyvar5'
1900 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
1901 - id: flowey_lib_common__git_checkout__1
1902 uses: actions/checkout@v4
1903 with:
1904 fetch-depth: '1'
1905 path: repo0
1906 persist-credentials: ${{ env.floweyvar5 }}
1907 name: checkout repo hvlite
1908 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
1909 - run: ${{ github.workspace }}
1910 shell: flowey.exe v 14 'flowey_lib_common::git_checkout:4:flowey_lib_common/src/git_checkout.rs:524:31' --update-from-file {0} --is-raw-string
1911 name: 🌼 Read from 'github.workspace'
1912 - name: report cloned repo directories
1913 run: flowey.exe e 14 flowey_lib_common::git_checkout 3
1914 shell: bash
1915 - name: resolve OpenVMM repo requests
1916 run: flowey.exe e 14 flowey_lib_hvlite::git_checkout_openvmm_repo 0
1917 shell: bash
1918 - name: report openvmm magicpath dir
1919 run: flowey.exe e 14 flowey_lib_hvlite::cfg_openvmm_magicpath 0
1920 shell: bash
1921 - name: move MSVM.fd into its magic folder
1922 run: flowey.exe e 14 flowey_lib_hvlite::init_openvmm_magicpath_uefi_mu_msvm 0
1923 shell: bash
1924 - name: 🌼 write_into Var
1925 run: flowey.exe e 14 flowey_lib_hvlite::run_cargo_nextest_run 0
1926 shell: bash
1927 - name: creating new test content dir
1928 run: flowey.exe e 14 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 0
1929 shell: bash
1930 - name: resolve openvmm artifact
1931 run: flowey.exe e 14 flowey_lib_hvlite::artifact_openvmm::resolve 0
1932 shell: bash
1933 - name: resolve pipette artifact
1934 run: flowey.exe e 14 flowey_lib_hvlite::artifact_pipette::resolve 1
1935 shell: bash
1936 - name: resolve pipette artifact
1937 run: flowey.exe e 14 flowey_lib_hvlite::artifact_pipette::resolve 0
1938 shell: bash
1939 - name: resolve guest_test_uefi artifact
1940 run: flowey.exe e 14 flowey_lib_hvlite::artifact_guest_test_uefi::resolve 0
1941 shell: bash
1942 - name: resolve OpenHCL igvm artifact
1943 run: flowey.exe e 14 flowey_lib_hvlite::artifact_openhcl_igvm_from_recipe::resolve 0
1944 shell: bash
1945 - name: create azcopy cache dir
1946 run: flowey.exe e 14 flowey_lib_common::download_azcopy 0
1947 shell: bash
1948 - name: Pre-processing cache vars
1949 run: flowey.exe e 14 flowey_lib_common::cache 0
1950 shell: bash
1951 - run: |
1952 flowey.exe v 14 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:458:72' --write-to-gh-env floweyvar6 --is-raw-string
1953 shell: bash
1954 name: 🌼 Write to 'floweyvar6'
1955 - run: |
1956 flowey.exe v 14 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar7 --is-raw-string
1957 shell: bash
1958 name: 🌼 Write to 'floweyvar7'
1959 - id: flowey_lib_common__cache__1
1960 uses: actions/cache@v4
1961 with:
1962 key: ${{ env.floweyvar6 }}
1963 path: ${{ env.floweyvar7 }}
1964 name: 'Restore cache: azcopy'
1965 - run: ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
1966 shell: flowey.exe v 14 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:510:46' --update-from-file {0} --is-raw-string
1967 name: 🌼 Read from 'steps.flowey_lib_common__cache__1.outputs.cache-hit'
1968 - name: map Github cache-hit to flowey
1969 run: flowey.exe e 14 flowey_lib_common::cache 2
1970 shell: bash
1971 - name: installing azcopy
1972 run: flowey.exe e 14 flowey_lib_common::download_azcopy 1
1973 shell: bash
1974 - name: calculating required VMM tests disk images
1975 run: flowey.exe e 14 flowey_lib_hvlite::download_openvmm_vmm_tests_vhds 0
1976 shell: bash
1977 - name: downloading VMM test disk images
1978 run: flowey.exe e 14 flowey_lib_hvlite::download_openvmm_vmm_tests_vhds 1
1979 shell: bash
1980 - name: report downloaded VMM test disk images
1981 run: flowey.exe e 14 flowey_lib_hvlite::download_openvmm_vmm_tests_vhds 2
1982 shell: bash
1983 - name: unpack openvmm-deps archive
1984 run: flowey.exe e 14 flowey_lib_hvlite::download_openvmm_deps 0
1985 shell: bash
1986 - name: setting up vmm_tests env
1987 run: flowey.exe e 14 flowey_lib_hvlite::init_vmm_tests_env 0
1988 shell: bash
1989 - name: 🌼 write_into Var
1990 run: flowey.exe e 14 flowey_lib_hvlite::run_cargo_nextest_run 1
1991 shell: bash
1992 - name: resolve vmm tests archive artifact
1993 run: flowey.exe e 14 flowey_lib_hvlite::artifact_nextest_vmm_tests_archive::resolve 0
1994 shell: bash
1995 - name: 🌼 write_into Var
1996 run: flowey.exe e 14 flowey_lib_hvlite::test_nextest_vmm_tests_archive 0
1997 shell: bash
1998 - name: run 'vmm_tests' nextest tests
1999 run: flowey.exe e 14 flowey_lib_common::run_cargo_nextest_run 0
2000 shell: bash
2001 - name: write results
2002 run: flowey.exe e 14 flowey_lib_common::run_cargo_nextest_run 1
2003 shell: bash
2004 - name: 🌼 write_into Var
2005 run: flowey.exe e 14 flowey_lib_common::publish_test_results 4
2006 shell: bash
2007 - name: 🌼 write_into Var
2008 run: flowey.exe e 14 flowey_lib_common::publish_test_results 5
2009 shell: bash
2010 - run: |
2011 flowey.exe v 14 'flowey_lib_common::publish_test_results:7:flowey_lib_common/src/publish_test_results.rs:141:57' --write-to-gh-env FLOWEY_CONDITION
2012 shell: bash
2013 name: 🌼❓ Write to 'FLOWEY_CONDITION'
2014 - run: |
2015 flowey.exe v 14 'flowey_lib_common::publish_test_results:9:flowey_lib_common/src/publish_test_results.rs:149:62' --write-to-gh-env floweyvar2 --is-raw-string
2016 shell: bash
2017 name: 🌼 Write to 'floweyvar2'
2018 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
2019 - id: flowey_lib_common__publish_test_results__6
2020 uses: actions/upload-artifact@v4
2021 with:
2022 name: x64-windows-intel-vmm-tests-crash-dumps
2023 path: ${{ env.floweyvar2 }}
2024 name: 'publish test results: crash-dumps (x64-windows-intel-vmm-tests)'
2025 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
2026 - name: 🌼 write_into Var
2027 run: flowey.exe e 14 flowey_lib_common::publish_test_results 7
2028 shell: bash
2029 - name: 🌼 write_into Var
2030 run: flowey.exe e 14 flowey_lib_common::publish_test_results 8
2031 shell: bash
2032 - run: |
2033 flowey.exe v 14 'flowey_lib_common::publish_test_results:12:flowey_lib_common/src/publish_test_results.rs:141:57' --write-to-gh-env FLOWEY_CONDITION
2034 shell: bash
2035 name: 🌼❓ Write to 'FLOWEY_CONDITION'
2036 - run: |
2037 flowey.exe v 14 'flowey_lib_common::publish_test_results:14:flowey_lib_common/src/publish_test_results.rs:149:62' --write-to-gh-env floweyvar3 --is-raw-string
2038 shell: bash
2039 name: 🌼 Write to 'floweyvar3'
2040 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
2041 - id: flowey_lib_common__publish_test_results__9
2042 uses: actions/upload-artifact@v4
2043 with:
2044 name: x64-windows-intel-vmm-tests-logs
2045 path: ${{ env.floweyvar3 }}
2046 name: 'publish test results: logs (x64-windows-intel-vmm-tests)'
2047 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
2048 - name: 🌼 write_into Var
2049 run: flowey.exe e 14 flowey_lib_common::publish_test_results 10
2050 shell: bash
2051 - name: 🌼 write_into Var
2052 run: flowey.exe e 14 flowey_lib_common::publish_test_results 11
2053 shell: bash
2054 - run: |
2055 flowey.exe v 14 'flowey_lib_common::publish_test_results:17:flowey_lib_common/src/publish_test_results.rs:141:57' --write-to-gh-env FLOWEY_CONDITION
2056 shell: bash
2057 name: 🌼❓ Write to 'FLOWEY_CONDITION'
2058 - run: |
2059 flowey.exe v 14 'flowey_lib_common::publish_test_results:19:flowey_lib_common/src/publish_test_results.rs:149:62' --write-to-gh-env floweyvar4 --is-raw-string
2060 shell: bash
2061 name: 🌼 Write to 'floweyvar4'
2062 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
2063 - id: flowey_lib_common__publish_test_results__12
2064 uses: actions/upload-artifact@v4
2065 with:
2066 name: x64-windows-intel-vmm-tests-openhcl-dumps
2067 path: ${{ env.floweyvar4 }}
2068 name: 'publish test results: openhcl-dumps (x64-windows-intel-vmm-tests)'
2069 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
2070 - name: 🌼 write_into Var
2071 run: flowey.exe e 14 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 1
2072 shell: bash
2073 - name: 🌼 write_into Var
2074 run: flowey.exe e 14 flowey_lib_common::publish_test_results 0
2075 shell: bash
2076 - name: 🌼 write_into Var
2077 run: flowey.exe e 14 flowey_lib_common::publish_test_results 1
2078 shell: bash
2079 - name: 🌼 write_into Var
2080 run: flowey.exe e 14 flowey_lib_common::publish_test_results 2
2081 shell: bash
2082 - run: |
2083 flowey.exe v 14 'flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43' --write-to-gh-env FLOWEY_CONDITION
2084 shell: bash
2085 name: 🌼❓ Write to 'FLOWEY_CONDITION'
2086 - run: |
2087 flowey.exe v 14 'flowey_lib_common::publish_test_results:4:flowey_lib_common/src/publish_test_results.rs:95:47' --write-to-gh-env floweyvar1 --is-raw-string
2088 shell: bash
2089 name: 🌼 Write to 'floweyvar1'
2090 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
2091 - id: flowey_lib_common__publish_test_results__3
2092 uses: actions/upload-artifact@v4
2093 with:
2094 name: x64-windows-intel-vmm-tests-junit-xml
2095 path: ${{ env.floweyvar1 }}
2096 name: 'publish test results: x64-windows-intel-vmm-tests (JUnit XML)'
2097 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
2098 - name: report test results to overall pipeline status
2099 run: flowey.exe e 14 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 2
2100 shell: bash
2101 - name: 'validate cache entry: gh-release-download'
2102 run: flowey.exe e 14 flowey_lib_common::cache 11
2103 shell: bash
2104 - name: 'validate cache entry: azcopy'
2105 run: flowey.exe e 14 flowey_lib_common::cache 3
2106 shell: bash
2107 - name: 'validate cache entry: cargo-nextest'
2108 run: flowey.exe e 14 flowey_lib_common::cache 7
2109 shell: bash
2110 job15:
2111 name: run vmm-tests [x64-windows-amd]
2112 runs-on:
2113 - self-hosted
2114 - 1ES.Pool=OpenVMM-GitHub-Win-Pool-WestUS3
2115 - 1ES.ImageOverride=HvLite-CI-Win-Ge-Image-256GB
2116 permissions:
2117 contents: read
2118 id-token: write
2119 needs:
2120 - job9
2121 - job9
2122 - job7
2123 - job5
2124 - job5
2125 - job5
2126 steps:
2127 - name: 🌼🥾 Download bootstrapped flowey
2128 uses: actions/download-artifact@v4
2129 with:
2130 name: _internal-flowey-bootstrap-x86_64-windows-uid-10
2131 path: ${{ runner.temp }}/bootstrapped-flowey
2132 - name: 🌼📦 Download x64-guest_test_uefi
2133 uses: actions/download-artifact@v4
2134 with:
2135 name: x64-guest_test_uefi
2136 path: ${{ runner.temp }}/used_artifacts/x64-guest_test_uefi/
2137 - name: 🌼📦 Download x64-linux-musl-pipette
2138 uses: actions/download-artifact@v4
2139 with:
2140 name: x64-linux-musl-pipette
2141 path: ${{ runner.temp }}/used_artifacts/x64-linux-musl-pipette/
2142 - name: 🌼📦 Download x64-openhcl-igvm
2143 uses: actions/download-artifact@v4
2144 with:
2145 name: x64-openhcl-igvm
2146 path: ${{ runner.temp }}/used_artifacts/x64-openhcl-igvm/
2147 - name: 🌼📦 Download x64-windows-openvmm
2148 uses: actions/download-artifact@v4
2149 with:
2150 name: x64-windows-openvmm
2151 path: ${{ runner.temp }}/used_artifacts/x64-windows-openvmm/
2152 - name: 🌼📦 Download x64-windows-pipette
2153 uses: actions/download-artifact@v4
2154 with:
2155 name: x64-windows-pipette
2156 path: ${{ runner.temp }}/used_artifacts/x64-windows-pipette/
2157 - name: 🌼📦 Download x64-windows-vmm-tests-archive
2158 uses: actions/download-artifact@v4
2159 with:
2160 name: x64-windows-vmm-tests-archive
2161 path: ${{ runner.temp }}/used_artifacts/x64-windows-vmm-tests-archive/
2162 - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH
2163 shell: bash
2164 name: 🌼📦 Add flowey to PATH
2165 - name: 🌼🛫 Initialize job
2166 run: |
2167 AgentTempDirNormal="${{ runner.temp }}"
2168 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
2169 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
2170
2171 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe
2172
2173 echo '"debug"' | flowey.exe v 15 'FLOWEY_LOG' --update-from-stdin
2174 echo "${{ runner.temp }}/work" | flowey.exe v 15 '_internal_WORKING_DIR' --update-from-stdin --is-raw-string
2175
2176 cat <<'EOF' | flowey.exe v 15 'verbose' --update-from-stdin
2177 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
2178 EOF
2179 echo "${{ runner.temp }}\\used_artifacts\\x64-guest_test_uefi" | flowey.exe v 15 'artifact_use_from_x64-guest_test_uefi' --update-from-stdin --is-raw-string
2180 echo "${{ runner.temp }}\\used_artifacts\\x64-linux-musl-pipette" | flowey.exe v 15 'artifact_use_from_x64-linux-musl-pipette' --update-from-stdin --is-raw-string
2181 echo "${{ runner.temp }}\\used_artifacts\\x64-openhcl-igvm" | flowey.exe v 15 'artifact_use_from_x64-openhcl-igvm' --update-from-stdin --is-raw-string
2182 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-openvmm" | flowey.exe v 15 'artifact_use_from_x64-windows-openvmm' --update-from-stdin --is-raw-string
2183 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-pipette" | flowey.exe v 15 'artifact_use_from_x64-windows-pipette' --update-from-stdin --is-raw-string
2184 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-vmm-tests-archive" | flowey.exe v 15 'artifact_use_from_x64-windows-vmm-tests-archive' --update-from-stdin --is-raw-string
2185 shell: bash
2186 - name: create cargo-nextest cache dir
2187 run: flowey.exe e 15 flowey_lib_common::download_cargo_nextest 0
2188 shell: bash
2189 - name: Pre-processing cache vars
2190 run: flowey.exe e 15 flowey_lib_common::cache 4
2191 shell: bash
2192 - run: |
2193 flowey.exe v 15 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:458:72' --write-to-gh-env floweyvar8 --is-raw-string
2194 shell: bash
2195 name: 🌼 Write to 'floweyvar8'
2196 - run: |
2197 flowey.exe v 15 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar9 --is-raw-string
2198 shell: bash
2199 name: 🌼 Write to 'floweyvar9'
2200 - id: flowey_lib_common__cache__5
2201 uses: actions/cache@v4
2202 with:
2203 key: ${{ env.floweyvar8 }}
2204 path: ${{ env.floweyvar9 }}
2205 name: 'Restore cache: cargo-nextest'
2206 - run: ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
2207 shell: flowey.exe v 15 'flowey_lib_common::cache:12:flowey_lib_common/src/cache.rs:510:46' --update-from-file {0} --is-raw-string
2208 name: 🌼 Read from 'steps.flowey_lib_common__cache__5.outputs.cache-hit'
2209 - name: map Github cache-hit to flowey
2210 run: flowey.exe e 15 flowey_lib_common::cache 6
2211 shell: bash
2212 - name: installing cargo-nextest
2213 run: flowey.exe e 15 flowey_lib_common::download_cargo_nextest 1
2214 shell: bash
2215 - name: create gh-release-download cache dir
2216 run: flowey.exe e 15 flowey_lib_common::download_gh_release 0
2217 shell: bash
2218 - name: Pre-processing cache vars
2219 run: flowey.exe e 15 flowey_lib_common::cache 8
2220 shell: bash
2221 - run: |
2222 flowey.exe v 15 'flowey_lib_common::cache:18:flowey_lib_common/src/cache.rs:458:72' --write-to-gh-env floweyvar10 --is-raw-string
2223 shell: bash
2224 name: 🌼 Write to 'floweyvar10'
2225 - run: |
2226 flowey.exe v 15 'flowey_lib_common::cache:17:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar11 --is-raw-string
2227 shell: bash
2228 name: 🌼 Write to 'floweyvar11'
2229 - id: flowey_lib_common__cache__9
2230 uses: actions/cache@v4
2231 with:
2232 key: ${{ env.floweyvar10 }}
2233 path: ${{ env.floweyvar11 }}
2234 name: 'Restore cache: gh-release-download'
2235 - run: ${{ steps.flowey_lib_common__cache__9.outputs.cache-hit }}
2236 shell: flowey.exe v 15 'flowey_lib_common::cache:20:flowey_lib_common/src/cache.rs:510:46' --update-from-file {0} --is-raw-string
2237 name: 🌼 Read from 'steps.flowey_lib_common__cache__9.outputs.cache-hit'
2238 - name: map Github cache-hit to flowey
2239 run: flowey.exe e 15 flowey_lib_common::cache 10
2240 shell: bash
2241 - name: download artifacts from github releases
2242 run: flowey.exe e 15 flowey_lib_common::download_gh_release 1
2243 shell: bash
2244 - name: unpack mu_msvm package (x64)
2245 run: flowey.exe e 15 flowey_lib_hvlite::download_uefi_mu_msvm 0
2246 shell: bash
2247 - name: check if hvlite needs to be cloned
2248 run: flowey.exe e 15 flowey_lib_common::git_checkout 0
2249 shell: bash
2250 - run: |
2251 flowey.exe v 15 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:470:46' --write-to-gh-env FLOWEY_CONDITION
2252 shell: bash
2253 name: 🌼❓ Write to 'FLOWEY_CONDITION'
2254 - run: |
2255 flowey.exe v 15 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:469:80' --write-to-gh-env floweyvar5 --is-raw-string
2256 shell: bash
2257 name: 🌼 Write to 'floweyvar5'
2258 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
2259 - id: flowey_lib_common__git_checkout__1
2260 uses: actions/checkout@v4
2261 with:
2262 fetch-depth: '1'
2263 path: repo0
2264 persist-credentials: ${{ env.floweyvar5 }}
2265 name: checkout repo hvlite
2266 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
2267 - run: ${{ github.workspace }}
2268 shell: flowey.exe v 15 'flowey_lib_common::git_checkout:4:flowey_lib_common/src/git_checkout.rs:524:31' --update-from-file {0} --is-raw-string
2269 name: 🌼 Read from 'github.workspace'
2270 - name: report cloned repo directories
2271 run: flowey.exe e 15 flowey_lib_common::git_checkout 3
2272 shell: bash
2273 - name: resolve OpenVMM repo requests
2274 run: flowey.exe e 15 flowey_lib_hvlite::git_checkout_openvmm_repo 0
2275 shell: bash
2276 - name: report openvmm magicpath dir
2277 run: flowey.exe e 15 flowey_lib_hvlite::cfg_openvmm_magicpath 0
2278 shell: bash
2279 - name: move MSVM.fd into its magic folder
2280 run: flowey.exe e 15 flowey_lib_hvlite::init_openvmm_magicpath_uefi_mu_msvm 0
2281 shell: bash
2282 - name: 🌼 write_into Var
2283 run: flowey.exe e 15 flowey_lib_hvlite::run_cargo_nextest_run 0
2284 shell: bash
2285 - name: creating new test content dir
2286 run: flowey.exe e 15 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 0
2287 shell: bash
2288 - name: resolve openvmm artifact
2289 run: flowey.exe e 15 flowey_lib_hvlite::artifact_openvmm::resolve 0
2290 shell: bash
2291 - name: resolve pipette artifact
2292 run: flowey.exe e 15 flowey_lib_hvlite::artifact_pipette::resolve 1
2293 shell: bash
2294 - name: resolve pipette artifact
2295 run: flowey.exe e 15 flowey_lib_hvlite::artifact_pipette::resolve 0
2296 shell: bash
2297 - name: resolve guest_test_uefi artifact
2298 run: flowey.exe e 15 flowey_lib_hvlite::artifact_guest_test_uefi::resolve 0
2299 shell: bash
2300 - name: resolve OpenHCL igvm artifact
2301 run: flowey.exe e 15 flowey_lib_hvlite::artifact_openhcl_igvm_from_recipe::resolve 0
2302 shell: bash
2303 - name: create azcopy cache dir
2304 run: flowey.exe e 15 flowey_lib_common::download_azcopy 0
2305 shell: bash
2306 - name: Pre-processing cache vars
2307 run: flowey.exe e 15 flowey_lib_common::cache 0
2308 shell: bash
2309 - run: |
2310 flowey.exe v 15 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:458:72' --write-to-gh-env floweyvar6 --is-raw-string
2311 shell: bash
2312 name: 🌼 Write to 'floweyvar6'
2313 - run: |
2314 flowey.exe v 15 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar7 --is-raw-string
2315 shell: bash
2316 name: 🌼 Write to 'floweyvar7'
2317 - id: flowey_lib_common__cache__1
2318 uses: actions/cache@v4
2319 with:
2320 key: ${{ env.floweyvar6 }}
2321 path: ${{ env.floweyvar7 }}
2322 name: 'Restore cache: azcopy'
2323 - run: ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
2324 shell: flowey.exe v 15 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:510:46' --update-from-file {0} --is-raw-string
2325 name: 🌼 Read from 'steps.flowey_lib_common__cache__1.outputs.cache-hit'
2326 - name: map Github cache-hit to flowey
2327 run: flowey.exe e 15 flowey_lib_common::cache 2
2328 shell: bash
2329 - name: installing azcopy
2330 run: flowey.exe e 15 flowey_lib_common::download_azcopy 1
2331 shell: bash
2332 - name: calculating required VMM tests disk images
2333 run: flowey.exe e 15 flowey_lib_hvlite::download_openvmm_vmm_tests_vhds 0
2334 shell: bash
2335 - name: downloading VMM test disk images
2336 run: flowey.exe e 15 flowey_lib_hvlite::download_openvmm_vmm_tests_vhds 1
2337 shell: bash
2338 - name: report downloaded VMM test disk images
2339 run: flowey.exe e 15 flowey_lib_hvlite::download_openvmm_vmm_tests_vhds 2
2340 shell: bash
2341 - name: unpack openvmm-deps archive
2342 run: flowey.exe e 15 flowey_lib_hvlite::download_openvmm_deps 0
2343 shell: bash
2344 - name: setting up vmm_tests env
2345 run: flowey.exe e 15 flowey_lib_hvlite::init_vmm_tests_env 0
2346 shell: bash
2347 - name: 🌼 write_into Var
2348 run: flowey.exe e 15 flowey_lib_hvlite::run_cargo_nextest_run 1
2349 shell: bash
2350 - name: resolve vmm tests archive artifact
2351 run: flowey.exe e 15 flowey_lib_hvlite::artifact_nextest_vmm_tests_archive::resolve 0
2352 shell: bash
2353 - name: 🌼 write_into Var
2354 run: flowey.exe e 15 flowey_lib_hvlite::test_nextest_vmm_tests_archive 0
2355 shell: bash
2356 - name: run 'vmm_tests' nextest tests
2357 run: flowey.exe e 15 flowey_lib_common::run_cargo_nextest_run 0
2358 shell: bash
2359 - name: write results
2360 run: flowey.exe e 15 flowey_lib_common::run_cargo_nextest_run 1
2361 shell: bash
2362 - name: 🌼 write_into Var
2363 run: flowey.exe e 15 flowey_lib_common::publish_test_results 4
2364 shell: bash
2365 - name: 🌼 write_into Var
2366 run: flowey.exe e 15 flowey_lib_common::publish_test_results 5
2367 shell: bash
2368 - run: |
2369 flowey.exe v 15 'flowey_lib_common::publish_test_results:7:flowey_lib_common/src/publish_test_results.rs:141:57' --write-to-gh-env FLOWEY_CONDITION
2370 shell: bash
2371 name: 🌼❓ Write to 'FLOWEY_CONDITION'
2372 - run: |
2373 flowey.exe v 15 'flowey_lib_common::publish_test_results:9:flowey_lib_common/src/publish_test_results.rs:149:62' --write-to-gh-env floweyvar2 --is-raw-string
2374 shell: bash
2375 name: 🌼 Write to 'floweyvar2'
2376 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
2377 - id: flowey_lib_common__publish_test_results__6
2378 uses: actions/upload-artifact@v4
2379 with:
2380 name: x64-windows-amd-vmm-tests-crash-dumps
2381 path: ${{ env.floweyvar2 }}
2382 name: 'publish test results: crash-dumps (x64-windows-amd-vmm-tests)'
2383 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
2384 - name: 🌼 write_into Var
2385 run: flowey.exe e 15 flowey_lib_common::publish_test_results 7
2386 shell: bash
2387 - name: 🌼 write_into Var
2388 run: flowey.exe e 15 flowey_lib_common::publish_test_results 8
2389 shell: bash
2390 - run: |
2391 flowey.exe v 15 'flowey_lib_common::publish_test_results:12:flowey_lib_common/src/publish_test_results.rs:141:57' --write-to-gh-env FLOWEY_CONDITION
2392 shell: bash
2393 name: 🌼❓ Write to 'FLOWEY_CONDITION'
2394 - run: |
2395 flowey.exe v 15 'flowey_lib_common::publish_test_results:14:flowey_lib_common/src/publish_test_results.rs:149:62' --write-to-gh-env floweyvar3 --is-raw-string
2396 shell: bash
2397 name: 🌼 Write to 'floweyvar3'
2398 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
2399 - id: flowey_lib_common__publish_test_results__9
2400 uses: actions/upload-artifact@v4
2401 with:
2402 name: x64-windows-amd-vmm-tests-logs
2403 path: ${{ env.floweyvar3 }}
2404 name: 'publish test results: logs (x64-windows-amd-vmm-tests)'
2405 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
2406 - name: 🌼 write_into Var
2407 run: flowey.exe e 15 flowey_lib_common::publish_test_results 10
2408 shell: bash
2409 - name: 🌼 write_into Var
2410 run: flowey.exe e 15 flowey_lib_common::publish_test_results 11
2411 shell: bash
2412 - run: |
2413 flowey.exe v 15 'flowey_lib_common::publish_test_results:17:flowey_lib_common/src/publish_test_results.rs:141:57' --write-to-gh-env FLOWEY_CONDITION
2414 shell: bash
2415 name: 🌼❓ Write to 'FLOWEY_CONDITION'
2416 - run: |
2417 flowey.exe v 15 'flowey_lib_common::publish_test_results:19:flowey_lib_common/src/publish_test_results.rs:149:62' --write-to-gh-env floweyvar4 --is-raw-string
2418 shell: bash
2419 name: 🌼 Write to 'floweyvar4'
2420 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
2421 - id: flowey_lib_common__publish_test_results__12
2422 uses: actions/upload-artifact@v4
2423 with:
2424 name: x64-windows-amd-vmm-tests-openhcl-dumps
2425 path: ${{ env.floweyvar4 }}
2426 name: 'publish test results: openhcl-dumps (x64-windows-amd-vmm-tests)'
2427 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
2428 - name: 🌼 write_into Var
2429 run: flowey.exe e 15 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 1
2430 shell: bash
2431 - name: 🌼 write_into Var
2432 run: flowey.exe e 15 flowey_lib_common::publish_test_results 0
2433 shell: bash
2434 - name: 🌼 write_into Var
2435 run: flowey.exe e 15 flowey_lib_common::publish_test_results 1
2436 shell: bash
2437 - name: 🌼 write_into Var
2438 run: flowey.exe e 15 flowey_lib_common::publish_test_results 2
2439 shell: bash
2440 - run: |
2441 flowey.exe v 15 'flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43' --write-to-gh-env FLOWEY_CONDITION
2442 shell: bash
2443 name: 🌼❓ Write to 'FLOWEY_CONDITION'
2444 - run: |
2445 flowey.exe v 15 'flowey_lib_common::publish_test_results:4:flowey_lib_common/src/publish_test_results.rs:95:47' --write-to-gh-env floweyvar1 --is-raw-string
2446 shell: bash
2447 name: 🌼 Write to 'floweyvar1'
2448 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
2449 - id: flowey_lib_common__publish_test_results__3
2450 uses: actions/upload-artifact@v4
2451 with:
2452 name: x64-windows-amd-vmm-tests-junit-xml
2453 path: ${{ env.floweyvar1 }}
2454 name: 'publish test results: x64-windows-amd-vmm-tests (JUnit XML)'
2455 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
2456 - name: report test results to overall pipeline status
2457 run: flowey.exe e 15 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 2
2458 shell: bash
2459 - name: 'validate cache entry: gh-release-download'
2460 run: flowey.exe e 15 flowey_lib_common::cache 11
2461 shell: bash
2462 - name: 'validate cache entry: azcopy'
2463 run: flowey.exe e 15 flowey_lib_common::cache 3
2464 shell: bash
2465 - name: 'validate cache entry: cargo-nextest'
2466 run: flowey.exe e 15 flowey_lib_common::cache 7
2467 shell: bash
2468 job16:
2469 name: run vmm-tests [x64-linux]
2470 runs-on:
2471 - self-hosted
2472 - 1ES.Pool=OpenVMM-GitHub-Linux-Pool-WestUS3
2473 - 1ES.ImageOverride=MMSUbuntu22.04-256GB
2474 permissions:
2475 contents: read
2476 id-token: write
2477 needs:
2478 - job9
2479 - job7
2480 - job7
2481 - job5
2482 - job7
2483 steps:
2484 - name: 🌼🥾 Download bootstrapped flowey
2485 uses: actions/download-artifact@v4
2486 with:
2487 name: _internal-flowey-bootstrap-x86_64-linux-uid-6
2488 path: ${{ runner.temp }}/bootstrapped-flowey
2489 - name: 🌼📦 Download x64-guest_test_uefi
2490 uses: actions/download-artifact@v4
2491 with:
2492 name: x64-guest_test_uefi
2493 path: ${{ runner.temp }}/used_artifacts/x64-guest_test_uefi/
2494 - name: 🌼📦 Download x64-linux-musl-pipette
2495 uses: actions/download-artifact@v4
2496 with:
2497 name: x64-linux-musl-pipette
2498 path: ${{ runner.temp }}/used_artifacts/x64-linux-musl-pipette/
2499 - name: 🌼📦 Download x64-linux-openvmm
2500 uses: actions/download-artifact@v4
2501 with:
2502 name: x64-linux-openvmm
2503 path: ${{ runner.temp }}/used_artifacts/x64-linux-openvmm/
2504 - name: 🌼📦 Download x64-linux-vmm-tests-archive
2505 uses: actions/download-artifact@v4
2506 with:
2507 name: x64-linux-vmm-tests-archive
2508 path: ${{ runner.temp }}/used_artifacts/x64-linux-vmm-tests-archive/
2509 - name: 🌼📦 Download x64-windows-pipette
2510 uses: actions/download-artifact@v4
2511 with:
2512 name: x64-windows-pipette
2513 path: ${{ runner.temp }}/used_artifacts/x64-windows-pipette/
2514 - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH
2515 shell: bash
2516 name: 🌼📦 Add flowey to PATH
2517 - name: 🌼🛫 Initialize job
2518 run: |
2519 AgentTempDirNormal="${{ runner.temp }}"
2520 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
2521 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
2522
2523 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey
2524
2525 echo '"debug"' | flowey v 16 'FLOWEY_LOG' --update-from-stdin
2526 echo "${{ runner.temp }}/work" | flowey v 16 '_internal_WORKING_DIR' --update-from-stdin --is-raw-string
2527
2528 cat <<'EOF' | flowey v 16 'verbose' --update-from-stdin
2529 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
2530 EOF
2531 echo "$AgentTempDirNormal/used_artifacts/x64-guest_test_uefi" | flowey v 16 'artifact_use_from_x64-guest_test_uefi' --update-from-stdin --is-raw-string
2532 echo "$AgentTempDirNormal/used_artifacts/x64-linux-musl-pipette" | flowey v 16 'artifact_use_from_x64-linux-musl-pipette' --update-from-stdin --is-raw-string
2533 echo "$AgentTempDirNormal/used_artifacts/x64-linux-openvmm" | flowey v 16 'artifact_use_from_x64-linux-openvmm' --update-from-stdin --is-raw-string
2534 echo "$AgentTempDirNormal/used_artifacts/x64-linux-vmm-tests-archive" | flowey v 16 'artifact_use_from_x64-linux-vmm-tests-archive' --update-from-stdin --is-raw-string
2535 echo "$AgentTempDirNormal/used_artifacts/x64-windows-pipette" | flowey v 16 'artifact_use_from_x64-windows-pipette' --update-from-stdin --is-raw-string
2536 shell: bash
2537 - name: ensure /dev/kvm is accessible
2538 run: flowey e 16 flowey_lib_hvlite::test_nextest_vmm_tests_archive 0
2539 shell: bash
2540 - name: create cargo-nextest cache dir
2541 run: flowey e 16 flowey_lib_common::download_cargo_nextest 0
2542 shell: bash
2543 - name: Pre-processing cache vars
2544 run: flowey e 16 flowey_lib_common::cache 4
2545 shell: bash
2546 - run: |
2547 flowey v 16 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:458:72' --write-to-gh-env floweyvar8 --is-raw-string
2548 shell: bash
2549 name: 🌼 Write to 'floweyvar8'
2550 - run: |
2551 flowey v 16 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar9 --is-raw-string
2552 shell: bash
2553 name: 🌼 Write to 'floweyvar9'
2554 - id: flowey_lib_common__cache__5
2555 uses: actions/cache@v4
2556 with:
2557 key: ${{ env.floweyvar8 }}
2558 path: ${{ env.floweyvar9 }}
2559 name: 'Restore cache: cargo-nextest'
2560 - run: ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
2561 shell: flowey v 16 'flowey_lib_common::cache:12:flowey_lib_common/src/cache.rs:510:46' --update-from-file {0} --is-raw-string
2562 name: 🌼 Read from 'steps.flowey_lib_common__cache__5.outputs.cache-hit'
2563 - name: map Github cache-hit to flowey
2564 run: flowey e 16 flowey_lib_common::cache 6
2565 shell: bash
2566 - name: installing cargo-nextest
2567 run: flowey e 16 flowey_lib_common::download_cargo_nextest 1
2568 shell: bash
2569 - name: checking if packages need to be installed
2570 run: flowey e 16 flowey_lib_common::install_dist_pkg 0
2571 shell: bash
2572 - name: installing packages
2573 run: flowey e 16 flowey_lib_common::install_dist_pkg 1
2574 shell: bash
2575 - name: create gh-release-download cache dir
2576 run: flowey e 16 flowey_lib_common::download_gh_release 0
2577 shell: bash
2578 - name: Pre-processing cache vars
2579 run: flowey e 16 flowey_lib_common::cache 8
2580 shell: bash
2581 - run: |
2582 flowey v 16 'flowey_lib_common::cache:18:flowey_lib_common/src/cache.rs:458:72' --write-to-gh-env floweyvar10 --is-raw-string
2583 shell: bash
2584 name: 🌼 Write to 'floweyvar10'
2585 - run: |
2586 flowey v 16 'flowey_lib_common::cache:17:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar11 --is-raw-string
2587 shell: bash
2588 name: 🌼 Write to 'floweyvar11'
2589 - id: flowey_lib_common__cache__9
2590 uses: actions/cache@v4
2591 with:
2592 key: ${{ env.floweyvar10 }}
2593 path: ${{ env.floweyvar11 }}
2594 name: 'Restore cache: gh-release-download'
2595 - run: ${{ steps.flowey_lib_common__cache__9.outputs.cache-hit }}
2596 shell: flowey v 16 'flowey_lib_common::cache:20:flowey_lib_common/src/cache.rs:510:46' --update-from-file {0} --is-raw-string
2597 name: 🌼 Read from 'steps.flowey_lib_common__cache__9.outputs.cache-hit'
2598 - name: map Github cache-hit to flowey
2599 run: flowey e 16 flowey_lib_common::cache 10
2600 shell: bash
2601 - name: download artifacts from github releases
2602 run: flowey e 16 flowey_lib_common::download_gh_release 1
2603 shell: bash
2604 - name: unpack mu_msvm package (x64)
2605 run: flowey e 16 flowey_lib_hvlite::download_uefi_mu_msvm 0
2606 shell: bash
2607 - name: check if hvlite needs to be cloned
2608 run: flowey e 16 flowey_lib_common::git_checkout 0
2609 shell: bash
2610 - run: |
2611 flowey v 16 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:470:46' --write-to-gh-env FLOWEY_CONDITION
2612 shell: bash
2613 name: 🌼❓ Write to 'FLOWEY_CONDITION'
2614 - run: |
2615 flowey v 16 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:469:80' --write-to-gh-env floweyvar5 --is-raw-string
2616 shell: bash
2617 name: 🌼 Write to 'floweyvar5'
2618 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
2619 - id: flowey_lib_common__git_checkout__1
2620 uses: actions/checkout@v4
2621 with:
2622 fetch-depth: '1'
2623 path: repo0
2624 persist-credentials: ${{ env.floweyvar5 }}
2625 name: checkout repo hvlite
2626 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
2627 - run: ${{ github.workspace }}
2628 shell: flowey v 16 'flowey_lib_common::git_checkout:4:flowey_lib_common/src/git_checkout.rs:524:31' --update-from-file {0} --is-raw-string
2629 name: 🌼 Read from 'github.workspace'
2630 - name: report cloned repo directories
2631 run: flowey e 16 flowey_lib_common::git_checkout 3
2632 shell: bash
2633 - name: resolve OpenVMM repo requests
2634 run: flowey e 16 flowey_lib_hvlite::git_checkout_openvmm_repo 0
2635 shell: bash
2636 - name: report openvmm magicpath dir
2637 run: flowey e 16 flowey_lib_hvlite::cfg_openvmm_magicpath 0
2638 shell: bash
2639 - name: move MSVM.fd into its magic folder
2640 run: flowey e 16 flowey_lib_hvlite::init_openvmm_magicpath_uefi_mu_msvm 0
2641 shell: bash
2642 - name: 🌼 write_into Var
2643 run: flowey e 16 flowey_lib_hvlite::run_cargo_nextest_run 0
2644 shell: bash
2645 - name: creating new test content dir
2646 run: flowey e 16 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 0
2647 shell: bash
2648 - name: resolve openvmm artifact
2649 run: flowey e 16 flowey_lib_hvlite::artifact_openvmm::resolve 0
2650 shell: bash
2651 - name: resolve pipette artifact
2652 run: flowey e 16 flowey_lib_hvlite::artifact_pipette::resolve 1
2653 shell: bash
2654 - name: resolve pipette artifact
2655 run: flowey e 16 flowey_lib_hvlite::artifact_pipette::resolve 0
2656 shell: bash
2657 - name: resolve guest_test_uefi artifact
2658 run: flowey e 16 flowey_lib_hvlite::artifact_guest_test_uefi::resolve 0
2659 shell: bash
2660 - name: create azcopy cache dir
2661 run: flowey e 16 flowey_lib_common::download_azcopy 0
2662 shell: bash
2663 - name: Pre-processing cache vars
2664 run: flowey e 16 flowey_lib_common::cache 0
2665 shell: bash
2666 - run: |
2667 flowey v 16 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:458:72' --write-to-gh-env floweyvar6 --is-raw-string
2668 shell: bash
2669 name: 🌼 Write to 'floweyvar6'
2670 - run: |
2671 flowey v 16 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar7 --is-raw-string
2672 shell: bash
2673 name: 🌼 Write to 'floweyvar7'
2674 - id: flowey_lib_common__cache__1
2675 uses: actions/cache@v4
2676 with:
2677 key: ${{ env.floweyvar6 }}
2678 path: ${{ env.floweyvar7 }}
2679 name: 'Restore cache: azcopy'
2680 - run: ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
2681 shell: flowey v 16 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:510:46' --update-from-file {0} --is-raw-string
2682 name: 🌼 Read from 'steps.flowey_lib_common__cache__1.outputs.cache-hit'
2683 - name: map Github cache-hit to flowey
2684 run: flowey e 16 flowey_lib_common::cache 2
2685 shell: bash
2686 - name: installing azcopy
2687 run: flowey e 16 flowey_lib_common::download_azcopy 1
2688 shell: bash
2689 - name: calculating required VMM tests disk images
2690 run: flowey e 16 flowey_lib_hvlite::download_openvmm_vmm_tests_vhds 0
2691 shell: bash
2692 - name: downloading VMM test disk images
2693 run: flowey e 16 flowey_lib_hvlite::download_openvmm_vmm_tests_vhds 1
2694 shell: bash
2695 - name: report downloaded VMM test disk images
2696 run: flowey e 16 flowey_lib_hvlite::download_openvmm_vmm_tests_vhds 2
2697 shell: bash
2698 - name: unpack openvmm-deps archive
2699 run: flowey e 16 flowey_lib_hvlite::download_openvmm_deps 0
2700 shell: bash
2701 - name: setting up vmm_tests env
2702 run: flowey e 16 flowey_lib_hvlite::init_vmm_tests_env 0
2703 shell: bash
2704 - name: 🌼 write_into Var
2705 run: flowey e 16 flowey_lib_hvlite::run_cargo_nextest_run 1
2706 shell: bash
2707 - name: resolve vmm tests archive artifact
2708 run: flowey e 16 flowey_lib_hvlite::artifact_nextest_vmm_tests_archive::resolve 0
2709 shell: bash
2710 - name: 🌼 write_into Var
2711 run: flowey e 16 flowey_lib_hvlite::test_nextest_vmm_tests_archive 1
2712 shell: bash
2713 - name: run 'vmm_tests' nextest tests
2714 run: flowey e 16 flowey_lib_common::run_cargo_nextest_run 0
2715 shell: bash
2716 - name: write results
2717 run: flowey e 16 flowey_lib_common::run_cargo_nextest_run 1
2718 shell: bash
2719 - name: 🌼 write_into Var
2720 run: flowey e 16 flowey_lib_common::publish_test_results 4
2721 shell: bash
2722 - name: 🌼 write_into Var
2723 run: flowey e 16 flowey_lib_common::publish_test_results 5
2724 shell: bash
2725 - run: |
2726 flowey v 16 'flowey_lib_common::publish_test_results:7:flowey_lib_common/src/publish_test_results.rs:141:57' --write-to-gh-env FLOWEY_CONDITION
2727 shell: bash
2728 name: 🌼❓ Write to 'FLOWEY_CONDITION'
2729 - run: |
2730 flowey v 16 'flowey_lib_common::publish_test_results:9:flowey_lib_common/src/publish_test_results.rs:149:62' --write-to-gh-env floweyvar2 --is-raw-string
2731 shell: bash
2732 name: 🌼 Write to 'floweyvar2'
2733 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
2734 - id: flowey_lib_common__publish_test_results__6
2735 uses: actions/upload-artifact@v4
2736 with:
2737 name: x64-linux-vmm-tests-crash-dumps
2738 path: ${{ env.floweyvar2 }}
2739 name: 'publish test results: crash-dumps (x64-linux-vmm-tests)'
2740 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
2741 - name: 🌼 write_into Var
2742 run: flowey e 16 flowey_lib_common::publish_test_results 7
2743 shell: bash
2744 - name: 🌼 write_into Var
2745 run: flowey e 16 flowey_lib_common::publish_test_results 8
2746 shell: bash
2747 - run: |
2748 flowey v 16 'flowey_lib_common::publish_test_results:12:flowey_lib_common/src/publish_test_results.rs:141:57' --write-to-gh-env FLOWEY_CONDITION
2749 shell: bash
2750 name: 🌼❓ Write to 'FLOWEY_CONDITION'
2751 - run: |
2752 flowey v 16 'flowey_lib_common::publish_test_results:14:flowey_lib_common/src/publish_test_results.rs:149:62' --write-to-gh-env floweyvar3 --is-raw-string
2753 shell: bash
2754 name: 🌼 Write to 'floweyvar3'
2755 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
2756 - id: flowey_lib_common__publish_test_results__9
2757 uses: actions/upload-artifact@v4
2758 with:
2759 name: x64-linux-vmm-tests-logs
2760 path: ${{ env.floweyvar3 }}
2761 name: 'publish test results: logs (x64-linux-vmm-tests)'
2762 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
2763 - name: 🌼 write_into Var
2764 run: flowey e 16 flowey_lib_common::publish_test_results 10
2765 shell: bash
2766 - name: 🌼 write_into Var
2767 run: flowey e 16 flowey_lib_common::publish_test_results 11
2768 shell: bash
2769 - run: |
2770 flowey v 16 'flowey_lib_common::publish_test_results:17:flowey_lib_common/src/publish_test_results.rs:141:57' --write-to-gh-env FLOWEY_CONDITION
2771 shell: bash
2772 name: 🌼❓ Write to 'FLOWEY_CONDITION'
2773 - run: |
2774 flowey v 16 'flowey_lib_common::publish_test_results:19:flowey_lib_common/src/publish_test_results.rs:149:62' --write-to-gh-env floweyvar4 --is-raw-string
2775 shell: bash
2776 name: 🌼 Write to 'floweyvar4'
2777 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
2778 - id: flowey_lib_common__publish_test_results__12
2779 uses: actions/upload-artifact@v4
2780 with:
2781 name: x64-linux-vmm-tests-openhcl-dumps
2782 path: ${{ env.floweyvar4 }}
2783 name: 'publish test results: openhcl-dumps (x64-linux-vmm-tests)'
2784 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
2785 - name: 🌼 write_into Var
2786 run: flowey e 16 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 1
2787 shell: bash
2788 - name: 🌼 write_into Var
2789 run: flowey e 16 flowey_lib_common::publish_test_results 0
2790 shell: bash
2791 - name: 🌼 write_into Var
2792 run: flowey e 16 flowey_lib_common::publish_test_results 1
2793 shell: bash
2794 - name: 🌼 write_into Var
2795 run: flowey e 16 flowey_lib_common::publish_test_results 2
2796 shell: bash
2797 - run: |
2798 flowey v 16 'flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43' --write-to-gh-env FLOWEY_CONDITION
2799 shell: bash
2800 name: 🌼❓ Write to 'FLOWEY_CONDITION'
2801 - run: |
2802 flowey v 16 'flowey_lib_common::publish_test_results:4:flowey_lib_common/src/publish_test_results.rs:95:47' --write-to-gh-env floweyvar1 --is-raw-string
2803 shell: bash
2804 name: 🌼 Write to 'floweyvar1'
2805 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
2806 - id: flowey_lib_common__publish_test_results__3
2807 uses: actions/upload-artifact@v4
2808 with:
2809 name: x64-linux-vmm-tests-junit-xml
2810 path: ${{ env.floweyvar1 }}
2811 name: 'publish test results: x64-linux-vmm-tests (JUnit XML)'
2812 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
2813 - name: report test results to overall pipeline status
2814 run: flowey e 16 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 2
2815 shell: bash
2816 - name: 'validate cache entry: gh-release-download'
2817 run: flowey e 16 flowey_lib_common::cache 11
2818 shell: bash
2819 - name: 'validate cache entry: azcopy'
2820 run: flowey e 16 flowey_lib_common::cache 3
2821 shell: bash
2822 - name: 'validate cache entry: cargo-nextest'
2823 run: flowey e 16 flowey_lib_common::cache 7
2824 shell: bash
2825 job17:
2826 name: run vmm-tests [aarch64-windows]
2827 runs-on:
2828 - self-hosted
2829 - Windows
2830 - ARM64
2831 - Baremetal
2832 permissions:
2833 contents: read
2834 id-token: write
2835 needs:
2836 - job8
2837 - job8
2838 - job6
2839 - job3
2840 - job3
2841 - job3
2842 steps:
2843 - name: 🌼🥾 Download bootstrapped flowey
2844 uses: actions/download-artifact@v4
2845 with:
2846 name: _internal-flowey-bootstrap-x86_64-windows-uid-12
2847 path: ${{ runner.temp }}/bootstrapped-flowey
2848 - name: 🌼📦 Download aarch64-guest_test_uefi
2849 uses: actions/download-artifact@v4
2850 with:
2851 name: aarch64-guest_test_uefi
2852 path: ${{ runner.temp }}/used_artifacts/aarch64-guest_test_uefi/
2853 - name: 🌼📦 Download aarch64-linux-musl-pipette
2854 uses: actions/download-artifact@v4
2855 with:
2856 name: aarch64-linux-musl-pipette
2857 path: ${{ runner.temp }}/used_artifacts/aarch64-linux-musl-pipette/
2858 - name: 🌼📦 Download aarch64-openhcl-igvm
2859 uses: actions/download-artifact@v4
2860 with:
2861 name: aarch64-openhcl-igvm
2862 path: ${{ runner.temp }}/used_artifacts/aarch64-openhcl-igvm/
2863 - name: 🌼📦 Download aarch64-windows-openvmm
2864 uses: actions/download-artifact@v4
2865 with:
2866 name: aarch64-windows-openvmm
2867 path: ${{ runner.temp }}/used_artifacts/aarch64-windows-openvmm/
2868 - name: 🌼📦 Download aarch64-windows-pipette
2869 uses: actions/download-artifact@v4
2870 with:
2871 name: aarch64-windows-pipette
2872 path: ${{ runner.temp }}/used_artifacts/aarch64-windows-pipette/
2873 - name: 🌼📦 Download aarch64-windows-vmm-tests-archive
2874 uses: actions/download-artifact@v4
2875 with:
2876 name: aarch64-windows-vmm-tests-archive
2877 path: ${{ runner.temp }}/used_artifacts/aarch64-windows-vmm-tests-archive/
2878 - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH
2879 shell: bash
2880 name: 🌼📦 Add flowey to PATH
2881 - name: 🌼🛫 Initialize job
2882 run: |
2883 AgentTempDirNormal="${{ runner.temp }}"
2884 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
2885 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
2886
2887 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe
2888
2889 echo '"debug"' | flowey.exe v 17 'FLOWEY_LOG' --update-from-stdin
2890 echo "${{ runner.temp }}/work" | flowey.exe v 17 '_internal_WORKING_DIR' --update-from-stdin --is-raw-string
2891
2892 cat <<'EOF' | flowey.exe v 17 'verbose' --update-from-stdin
2893 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
2894 EOF
2895 echo "${{ runner.temp }}\\used_artifacts\\aarch64-guest_test_uefi" | flowey.exe v 17 'artifact_use_from_aarch64-guest_test_uefi' --update-from-stdin --is-raw-string
2896 echo "${{ runner.temp }}\\used_artifacts\\aarch64-linux-musl-pipette" | flowey.exe v 17 'artifact_use_from_aarch64-linux-musl-pipette' --update-from-stdin --is-raw-string
2897 echo "${{ runner.temp }}\\used_artifacts\\aarch64-openhcl-igvm" | flowey.exe v 17 'artifact_use_from_aarch64-openhcl-igvm' --update-from-stdin --is-raw-string
2898 echo "${{ runner.temp }}\\used_artifacts\\aarch64-windows-openvmm" | flowey.exe v 17 'artifact_use_from_aarch64-windows-openvmm' --update-from-stdin --is-raw-string
2899 echo "${{ runner.temp }}\\used_artifacts\\aarch64-windows-pipette" | flowey.exe v 17 'artifact_use_from_aarch64-windows-pipette' --update-from-stdin --is-raw-string
2900 echo "${{ runner.temp }}\\used_artifacts\\aarch64-windows-vmm-tests-archive" | flowey.exe v 17 'artifact_use_from_aarch64-windows-vmm-tests-archive' --update-from-stdin --is-raw-string
2901 shell: bash
2902 - name: create cargo-nextest cache dir
2903 run: flowey.exe e 17 flowey_lib_common::download_cargo_nextest 0
2904 shell: bash
2905 - name: Pre-processing cache vars
2906 run: flowey.exe e 17 flowey_lib_common::cache 4
2907 shell: bash
2908 - run: |
2909 flowey.exe v 17 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:458:72' --write-to-gh-env floweyvar8 --is-raw-string
2910 shell: bash
2911 name: 🌼 Write to 'floweyvar8'
2912 - run: |
2913 flowey.exe v 17 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar9 --is-raw-string
2914 shell: bash
2915 name: 🌼 Write to 'floweyvar9'
2916 - id: flowey_lib_common__cache__5
2917 uses: actions/cache@v4
2918 with:
2919 key: ${{ env.floweyvar8 }}
2920 path: ${{ env.floweyvar9 }}
2921 name: 'Restore cache: cargo-nextest'
2922 - run: ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
2923 shell: flowey.exe v 17 'flowey_lib_common::cache:12:flowey_lib_common/src/cache.rs:510:46' --update-from-file {0} --is-raw-string
2924 name: 🌼 Read from 'steps.flowey_lib_common__cache__5.outputs.cache-hit'
2925 - name: map Github cache-hit to flowey
2926 run: flowey.exe e 17 flowey_lib_common::cache 6
2927 shell: bash
2928 - name: installing cargo-nextest
2929 run: flowey.exe e 17 flowey_lib_common::download_cargo_nextest 1
2930 shell: bash
2931 - name: create gh-release-download cache dir
2932 run: flowey.exe e 17 flowey_lib_common::download_gh_release 0
2933 shell: bash
2934 - name: Pre-processing cache vars
2935 run: flowey.exe e 17 flowey_lib_common::cache 8
2936 shell: bash
2937 - run: |
2938 flowey.exe v 17 'flowey_lib_common::cache:18:flowey_lib_common/src/cache.rs:458:72' --write-to-gh-env floweyvar10 --is-raw-string
2939 shell: bash
2940 name: 🌼 Write to 'floweyvar10'
2941 - run: |
2942 flowey.exe v 17 'flowey_lib_common::cache:17:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar11 --is-raw-string
2943 shell: bash
2944 name: 🌼 Write to 'floweyvar11'
2945 - id: flowey_lib_common__cache__9
2946 uses: actions/cache@v4
2947 with:
2948 key: ${{ env.floweyvar10 }}
2949 path: ${{ env.floweyvar11 }}
2950 name: 'Restore cache: gh-release-download'
2951 - run: ${{ steps.flowey_lib_common__cache__9.outputs.cache-hit }}
2952 shell: flowey.exe v 17 'flowey_lib_common::cache:20:flowey_lib_common/src/cache.rs:510:46' --update-from-file {0} --is-raw-string
2953 name: 🌼 Read from 'steps.flowey_lib_common__cache__9.outputs.cache-hit'
2954 - name: map Github cache-hit to flowey
2955 run: flowey.exe e 17 flowey_lib_common::cache 10
2956 shell: bash
2957 - name: download artifacts from github releases
2958 run: flowey.exe e 17 flowey_lib_common::download_gh_release 1
2959 shell: bash
2960 - name: unpack mu_msvm package (aarch64)
2961 run: flowey.exe e 17 flowey_lib_hvlite::download_uefi_mu_msvm 0
2962 shell: bash
2963 - name: check if hvlite needs to be cloned
2964 run: flowey.exe e 17 flowey_lib_common::git_checkout 0
2965 shell: bash
2966 - run: |
2967 flowey.exe v 17 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:470:46' --write-to-gh-env FLOWEY_CONDITION
2968 shell: bash
2969 name: 🌼❓ Write to 'FLOWEY_CONDITION'
2970 - run: |
2971 flowey.exe v 17 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:469:80' --write-to-gh-env floweyvar5 --is-raw-string
2972 shell: bash
2973 name: 🌼 Write to 'floweyvar5'
2974 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
2975 - id: flowey_lib_common__git_checkout__1
2976 uses: actions/checkout@v4
2977 with:
2978 fetch-depth: '1'
2979 path: repo0
2980 persist-credentials: ${{ env.floweyvar5 }}
2981 name: checkout repo hvlite
2982 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
2983 - run: ${{ github.workspace }}
2984 shell: flowey.exe v 17 'flowey_lib_common::git_checkout:4:flowey_lib_common/src/git_checkout.rs:524:31' --update-from-file {0} --is-raw-string
2985 name: 🌼 Read from 'github.workspace'
2986 - name: report cloned repo directories
2987 run: flowey.exe e 17 flowey_lib_common::git_checkout 3
2988 shell: bash
2989 - name: resolve OpenVMM repo requests
2990 run: flowey.exe e 17 flowey_lib_hvlite::git_checkout_openvmm_repo 0
2991 shell: bash
2992 - name: report openvmm magicpath dir
2993 run: flowey.exe e 17 flowey_lib_hvlite::cfg_openvmm_magicpath 0
2994 shell: bash
2995 - name: move MSVM.fd into its magic folder
2996 run: flowey.exe e 17 flowey_lib_hvlite::init_openvmm_magicpath_uefi_mu_msvm 0
2997 shell: bash
2998 - name: 🌼 write_into Var
2999 run: flowey.exe e 17 flowey_lib_hvlite::run_cargo_nextest_run 0
3000 shell: bash
3001 - name: creating new test content dir
3002 run: flowey.exe e 17 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 0
3003 shell: bash
3004 - name: resolve openvmm artifact
3005 run: flowey.exe e 17 flowey_lib_hvlite::artifact_openvmm::resolve 0
3006 shell: bash
3007 - name: resolve pipette artifact
3008 run: flowey.exe e 17 flowey_lib_hvlite::artifact_pipette::resolve 1
3009 shell: bash
3010 - name: resolve pipette artifact
3011 run: flowey.exe e 17 flowey_lib_hvlite::artifact_pipette::resolve 0
3012 shell: bash
3013 - name: resolve guest_test_uefi artifact
3014 run: flowey.exe e 17 flowey_lib_hvlite::artifact_guest_test_uefi::resolve 0
3015 shell: bash
3016 - name: resolve OpenHCL igvm artifact
3017 run: flowey.exe e 17 flowey_lib_hvlite::artifact_openhcl_igvm_from_recipe::resolve 0
3018 shell: bash
3019 - name: create azcopy cache dir
3020 run: flowey.exe e 17 flowey_lib_common::download_azcopy 0
3021 shell: bash
3022 - name: Pre-processing cache vars
3023 run: flowey.exe e 17 flowey_lib_common::cache 0
3024 shell: bash
3025 - run: |
3026 flowey.exe v 17 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:458:72' --write-to-gh-env floweyvar6 --is-raw-string
3027 shell: bash
3028 name: 🌼 Write to 'floweyvar6'
3029 - run: |
3030 flowey.exe v 17 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar7 --is-raw-string
3031 shell: bash
3032 name: 🌼 Write to 'floweyvar7'
3033 - id: flowey_lib_common__cache__1
3034 uses: actions/cache@v4
3035 with:
3036 key: ${{ env.floweyvar6 }}
3037 path: ${{ env.floweyvar7 }}
3038 name: 'Restore cache: azcopy'
3039 - run: ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
3040 shell: flowey.exe v 17 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:510:46' --update-from-file {0} --is-raw-string
3041 name: 🌼 Read from 'steps.flowey_lib_common__cache__1.outputs.cache-hit'
3042 - name: map Github cache-hit to flowey
3043 run: flowey.exe e 17 flowey_lib_common::cache 2
3044 shell: bash
3045 - name: installing azcopy
3046 run: flowey.exe e 17 flowey_lib_common::download_azcopy 1
3047 shell: bash
3048 - name: calculating required VMM tests disk images
3049 run: flowey.exe e 17 flowey_lib_hvlite::download_openvmm_vmm_tests_vhds 0
3050 shell: bash
3051 - name: downloading VMM test disk images
3052 run: flowey.exe e 17 flowey_lib_hvlite::download_openvmm_vmm_tests_vhds 1
3053 shell: bash
3054 - name: report downloaded VMM test disk images
3055 run: flowey.exe e 17 flowey_lib_hvlite::download_openvmm_vmm_tests_vhds 2
3056 shell: bash
3057 - name: unpack openvmm-deps archive
3058 run: flowey.exe e 17 flowey_lib_hvlite::download_openvmm_deps 0
3059 shell: bash
3060 - name: setting up vmm_tests env
3061 run: flowey.exe e 17 flowey_lib_hvlite::init_vmm_tests_env 0
3062 shell: bash
3063 - name: 🌼 write_into Var
3064 run: flowey.exe e 17 flowey_lib_hvlite::run_cargo_nextest_run 1
3065 shell: bash
3066 - name: resolve vmm tests archive artifact
3067 run: flowey.exe e 17 flowey_lib_hvlite::artifact_nextest_vmm_tests_archive::resolve 0
3068 shell: bash
3069 - name: 🌼 write_into Var
3070 run: flowey.exe e 17 flowey_lib_hvlite::test_nextest_vmm_tests_archive 0
3071 shell: bash
3072 - name: run 'vmm_tests' nextest tests
3073 run: flowey.exe e 17 flowey_lib_common::run_cargo_nextest_run 0
3074 shell: bash
3075 - name: write results
3076 run: flowey.exe e 17 flowey_lib_common::run_cargo_nextest_run 1
3077 shell: bash
3078 - name: 🌼 write_into Var
3079 run: flowey.exe e 17 flowey_lib_common::publish_test_results 4
3080 shell: bash
3081 - name: 🌼 write_into Var
3082 run: flowey.exe e 17 flowey_lib_common::publish_test_results 5
3083 shell: bash
3084 - run: |
3085 flowey.exe v 17 'flowey_lib_common::publish_test_results:7:flowey_lib_common/src/publish_test_results.rs:141:57' --write-to-gh-env FLOWEY_CONDITION
3086 shell: bash
3087 name: 🌼❓ Write to 'FLOWEY_CONDITION'
3088 - run: |
3089 flowey.exe v 17 'flowey_lib_common::publish_test_results:9:flowey_lib_common/src/publish_test_results.rs:149:62' --write-to-gh-env floweyvar2 --is-raw-string
3090 shell: bash
3091 name: 🌼 Write to 'floweyvar2'
3092 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
3093 - id: flowey_lib_common__publish_test_results__6
3094 uses: actions/upload-artifact@v4
3095 with:
3096 name: aarch64-windows-vmm-tests-crash-dumps
3097 path: ${{ env.floweyvar2 }}
3098 name: 'publish test results: crash-dumps (aarch64-windows-vmm-tests)'
3099 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
3100 - name: 🌼 write_into Var
3101 run: flowey.exe e 17 flowey_lib_common::publish_test_results 7
3102 shell: bash
3103 - name: 🌼 write_into Var
3104 run: flowey.exe e 17 flowey_lib_common::publish_test_results 8
3105 shell: bash
3106 - run: |
3107 flowey.exe v 17 'flowey_lib_common::publish_test_results:12:flowey_lib_common/src/publish_test_results.rs:141:57' --write-to-gh-env FLOWEY_CONDITION
3108 shell: bash
3109 name: 🌼❓ Write to 'FLOWEY_CONDITION'
3110 - run: |
3111 flowey.exe v 17 'flowey_lib_common::publish_test_results:14:flowey_lib_common/src/publish_test_results.rs:149:62' --write-to-gh-env floweyvar3 --is-raw-string
3112 shell: bash
3113 name: 🌼 Write to 'floweyvar3'
3114 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
3115 - id: flowey_lib_common__publish_test_results__9
3116 uses: actions/upload-artifact@v4
3117 with:
3118 name: aarch64-windows-vmm-tests-logs
3119 path: ${{ env.floweyvar3 }}
3120 name: 'publish test results: logs (aarch64-windows-vmm-tests)'
3121 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
3122 - name: 🌼 write_into Var
3123 run: flowey.exe e 17 flowey_lib_common::publish_test_results 10
3124 shell: bash
3125 - name: 🌼 write_into Var
3126 run: flowey.exe e 17 flowey_lib_common::publish_test_results 11
3127 shell: bash
3128 - run: |
3129 flowey.exe v 17 'flowey_lib_common::publish_test_results:17:flowey_lib_common/src/publish_test_results.rs:141:57' --write-to-gh-env FLOWEY_CONDITION
3130 shell: bash
3131 name: 🌼❓ Write to 'FLOWEY_CONDITION'
3132 - run: |
3133 flowey.exe v 17 'flowey_lib_common::publish_test_results:19:flowey_lib_common/src/publish_test_results.rs:149:62' --write-to-gh-env floweyvar4 --is-raw-string
3134 shell: bash
3135 name: 🌼 Write to 'floweyvar4'
3136 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
3137 - id: flowey_lib_common__publish_test_results__12
3138 uses: actions/upload-artifact@v4
3139 with:
3140 name: aarch64-windows-vmm-tests-openhcl-dumps
3141 path: ${{ env.floweyvar4 }}
3142 name: 'publish test results: openhcl-dumps (aarch64-windows-vmm-tests)'
3143 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
3144 - name: 🌼 write_into Var
3145 run: flowey.exe e 17 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 1
3146 shell: bash
3147 - name: 🌼 write_into Var
3148 run: flowey.exe e 17 flowey_lib_common::publish_test_results 0
3149 shell: bash
3150 - name: 🌼 write_into Var
3151 run: flowey.exe e 17 flowey_lib_common::publish_test_results 1
3152 shell: bash
3153 - name: 🌼 write_into Var
3154 run: flowey.exe e 17 flowey_lib_common::publish_test_results 2
3155 shell: bash
3156 - run: |
3157 flowey.exe v 17 'flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43' --write-to-gh-env FLOWEY_CONDITION
3158 shell: bash
3159 name: 🌼❓ Write to 'FLOWEY_CONDITION'
3160 - run: |
3161 flowey.exe v 17 'flowey_lib_common::publish_test_results:4:flowey_lib_common/src/publish_test_results.rs:95:47' --write-to-gh-env floweyvar1 --is-raw-string
3162 shell: bash
3163 name: 🌼 Write to 'floweyvar1'
3164 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
3165 - id: flowey_lib_common__publish_test_results__3
3166 uses: actions/upload-artifact@v4
3167 with:
3168 name: aarch64-windows-vmm-tests-junit-xml
3169 path: ${{ env.floweyvar1 }}
3170 name: 'publish test results: aarch64-windows-vmm-tests (JUnit XML)'
3171 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
3172 - name: report test results to overall pipeline status
3173 run: flowey.exe e 17 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 2
3174 shell: bash
3175 - name: 'validate cache entry: gh-release-download'
3176 run: flowey.exe e 17 flowey_lib_common::cache 11
3177 shell: bash
3178 - name: 'validate cache entry: azcopy'
3179 run: flowey.exe e 17 flowey_lib_common::cache 3
3180 shell: bash
3181 - name: 'validate cache entry: cargo-nextest'
3182 run: flowey.exe e 17 flowey_lib_common::cache 7
3183 shell: bash
3184 job18:
3185 name: test flowey local backend
3186 runs-on:
3187 - self-hosted
3188 - 1ES.Pool=OpenVMM-GitHub-Linux-Pool-WestUS3
3189 - 1ES.ImageOverride=MMSUbuntu22.04-256GB
3190 permissions:
3191 contents: read
3192 id-token: write
3193 steps:
3194 - run: echo "injected!"
3195 name: 🌼🥾 Bootstrap flowey
3196 shell: bash
3197 - run: |
3198 set -x
3199 i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
3200 sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
3201 curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.82.0 -y
3202 . "$HOME/.cargo/env"
3203 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
3204 rustup show
3205 if: runner.os == 'Linux'
3206 name: rustup (Linux)
3207 shell: bash
3208 - run: |
3209 set -x
3210 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
3211 ./rustup-init.exe -y --default-toolchain=1.82.0
3212 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
3213 if: runner.os == 'Windows' && runner.arch == 'X64'
3214 name: rustup (Windows X64)
3215 shell: bash
3216 - run: |
3217 set -x
3218 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
3219 ./rustup-init.exe -y --default-toolchain=1.82.0
3220 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
3221 if: runner.os == 'Windows' && runner.arch == 'ARM64'
3222 name: rustup (Windows ARM64)
3223 shell: bash
3224 - uses: actions/checkout@v4
3225 with:
3226 path: flowey_bootstrap
3227 - name: Build flowey
3228 run: CARGO_INCREMENTAL=0 RUSTC_BOOTSTRAP=1 RUSTFLAGS="-Z threads=8" cargo build -p flowey_hvlite --target x86_64-unknown-linux-gnu --profile flowey-ci
3229 working-directory: flowey_bootstrap
3230 shell: bash
3231 - name: Stage flowey artifact
3232 run: |
3233 mkdir ./flowey_bootstrap_temp
3234 mv ./.github/workflows/openvmm-ci.yaml ./flowey_bootstrap_temp/pipeline.yaml
3235 mv target/x86_64-unknown-linux-gnu/flowey-ci/flowey_hvlite ./flowey_bootstrap_temp/flowey
3236 working-directory: flowey_bootstrap
3237 shell: bash
3238 - name: Copy flowey artifact
3239 run: |
3240 OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
3241 mkdir -p $OutDirNormal
3242 cp -r ./flowey_bootstrap_temp/* $OutDirNormal
3243 working-directory: flowey_bootstrap
3244 shell: bash
3245 - name: Cleanup staged flowey artifact
3246 run: rm -rf ./flowey_bootstrap_temp
3247 working-directory: flowey_bootstrap
3248 shell: bash
3249 - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH
3250 shell: bash
3251 name: 🌼📦 Add flowey to PATH
3252 - name: 🌼🔎 Self-check YAML
3253 run: |-
3254 ESCAPED_AGENT_TEMPDIR=$(
3255 cat <<'EOF' | sed 's/\\/\\\\/g'
3256 ${{ runner.temp }}
3257 EOF
3258 )
3259 flowey pipeline github --runtime $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci
3260 shell: bash
3261 - name: 🌼🛫 Initialize job
3262 run: |
3263 AgentTempDirNormal="${{ runner.temp }}"
3264 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
3265 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
3266
3267 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey
3268
3269 echo '"debug"' | flowey v 18 'FLOWEY_LOG' --update-from-stdin
3270 echo "${{ runner.temp }}/work" | flowey v 18 '_internal_WORKING_DIR' --update-from-stdin --is-raw-string
3271
3272 cat <<'EOF' | flowey v 18 'verbose' --update-from-stdin
3273 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
3274 EOF
3275 shell: bash
3276 - name: check if hvlite needs to be cloned
3277 run: flowey e 18 flowey_lib_common::git_checkout 0
3278 shell: bash
3279 - run: |
3280 flowey v 18 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:470:46' --write-to-gh-env FLOWEY_CONDITION
3281 shell: bash
3282 name: 🌼❓ Write to 'FLOWEY_CONDITION'
3283 - run: |
3284 flowey v 18 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:469:80' --write-to-gh-env floweyvar1 --is-raw-string
3285 shell: bash
3286 name: 🌼 Write to 'floweyvar1'
3287 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
3288 - id: flowey_lib_common__git_checkout__1
3289 uses: actions/checkout@v4
3290 with:
3291 fetch-depth: '1'
3292 path: repo0
3293 persist-credentials: ${{ env.floweyvar1 }}
3294 name: checkout repo hvlite
3295 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
3296 - run: ${{ github.workspace }}
3297 shell: flowey v 18 'flowey_lib_common::git_checkout:4:flowey_lib_common/src/git_checkout.rs:524:31' --update-from-file {0} --is-raw-string
3298 name: 🌼 Read from 'github.workspace'
3299 - name: report cloned repo directories
3300 run: flowey e 18 flowey_lib_common::git_checkout 3
3301 shell: bash
3302 - name: resolve OpenVMM repo requests
3303 run: flowey e 18 flowey_lib_hvlite::git_checkout_openvmm_repo 0
3304 shell: bash
3305 - name: install Rust
3306 run: flowey e 18 flowey_lib_common::install_rust 0
3307 shell: bash
3308 - run: ${{ github.token }}
3309 shell: flowey v 18 'flowey_lib_hvlite::_jobs::test_local_flowey_build_igvm:2:flowey_lib_hvlite/src/_jobs/test_local_flowey_build_igvm.rs:32:28' --is-secret --update-from-file {0} --is-raw-string
3310 name: 🌼 Read from 'github.token'
3311 - name: test cargo xflowey build-igvm x64 --install-missing-deps
3312 run: flowey e 18 flowey_lib_hvlite::_jobs::test_local_flowey_build_igvm 1
3313 shell: bash
3314 job2:
3315 name: build artifacts (not for VMM tests) [aarch64-windows]
3316 runs-on:
3317 - self-hosted
3318 - 1ES.Pool=OpenVMM-GitHub-Win-Pool-WestUS3
3319 permissions:
3320 contents: read
3321 id-token: write
3322 steps:
3323 - run: echo "injected!"
3324 name: 🌼🥾 Bootstrap flowey
3325 shell: bash
3326 - run: |
3327 set -x
3328 i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
3329 sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
3330 curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.82.0 -y
3331 . "$HOME/.cargo/env"
3332 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
3333 rustup show
3334 if: runner.os == 'Linux'
3335 name: rustup (Linux)
3336 shell: bash
3337 - run: |
3338 set -x
3339 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
3340 ./rustup-init.exe -y --default-toolchain=1.82.0
3341 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
3342 if: runner.os == 'Windows' && runner.arch == 'X64'
3343 name: rustup (Windows X64)
3344 shell: bash
3345 - run: |
3346 set -x
3347 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
3348 ./rustup-init.exe -y --default-toolchain=1.82.0
3349 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
3350 if: runner.os == 'Windows' && runner.arch == 'ARM64'
3351 name: rustup (Windows ARM64)
3352 shell: bash
3353 - uses: actions/checkout@v4
3354 with:
3355 path: flowey_bootstrap
3356 - name: Build flowey
3357 run: CARGO_INCREMENTAL=0 RUSTC_BOOTSTRAP=1 RUSTFLAGS="-Z threads=8" cargo build -p flowey_hvlite --target x86_64-pc-windows-msvc --profile flowey-ci
3358 working-directory: flowey_bootstrap
3359 shell: bash
3360 - name: Stage flowey artifact
3361 run: |
3362 mkdir ./flowey_bootstrap_temp
3363 mv ./.github/workflows/openvmm-ci.yaml ./flowey_bootstrap_temp/pipeline.yaml
3364 mv target/x86_64-pc-windows-msvc/flowey-ci/flowey_hvlite.exe ./flowey_bootstrap_temp/flowey.exe
3365 working-directory: flowey_bootstrap
3366 shell: bash
3367 - name: Copy flowey artifact
3368 run: |
3369 OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
3370 mkdir -p $OutDirNormal
3371 cp -r ./flowey_bootstrap_temp/* $OutDirNormal
3372 working-directory: flowey_bootstrap
3373 shell: bash
3374 - name: Cleanup staged flowey artifact
3375 run: rm -rf ./flowey_bootstrap_temp
3376 working-directory: flowey_bootstrap
3377 shell: bash
3378 - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH
3379 shell: bash
3380 name: 🌼📦 Add flowey to PATH
3381 - name: 🌼🔎 Self-check YAML
3382 run: |-
3383 ESCAPED_AGENT_TEMPDIR=$(
3384 cat <<'EOF' | sed 's/\\/\\\\/g'
3385 ${{ runner.temp }}
3386 EOF
3387 )
3388 flowey.exe pipeline github --runtime $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci
3389 shell: bash
3390 - name: 🌼🛫 Initialize job
3391 run: |
3392 AgentTempDirNormal="${{ runner.temp }}"
3393 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
3394 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
3395
3396 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe
3397
3398 echo '"debug"' | flowey.exe v 2 'FLOWEY_LOG' --update-from-stdin
3399 echo "${{ runner.temp }}/work" | flowey.exe v 2 '_internal_WORKING_DIR' --update-from-stdin --is-raw-string
3400
3401 cat <<'EOF' | flowey.exe v 2 'verbose' --update-from-stdin
3402 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
3403 EOF
3404 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-igvmfilegen"
3405 echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-igvmfilegen" | flowey.exe v 2 'artifact_publish_from_aarch64-windows-igvmfilegen' --update-from-stdin --is-raw-string
3406 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-ohcldiag-dev"
3407 echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-ohcldiag-dev" | flowey.exe v 2 'artifact_publish_from_aarch64-windows-ohcldiag-dev' --update-from-stdin --is-raw-string
3408 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-vmgs_lib"
3409 echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-vmgs_lib" | flowey.exe v 2 'artifact_publish_from_aarch64-windows-vmgs_lib' --update-from-stdin --is-raw-string
3410 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-vmgstool"
3411 echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-vmgstool" | flowey.exe v 2 'artifact_publish_from_aarch64-windows-vmgstool' --update-from-stdin --is-raw-string
3412 shell: bash
3413 - name: install Rust
3414 run: flowey.exe e 2 flowey_lib_common::install_rust 0
3415 shell: bash
3416 - name: detect active toolchain
3417 run: flowey.exe e 2 flowey_lib_common::install_rust 1
3418 shell: bash
3419 - name: report common cargo flags
3420 run: flowey.exe e 2 flowey_lib_common::cfg_cargo_common_flags 0
3421 shell: bash
3422 - name: check if hvlite needs to be cloned
3423 run: flowey.exe e 2 flowey_lib_common::git_checkout 0
3424 shell: bash
3425 - run: |
3426 flowey.exe v 2 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:470:46' --write-to-gh-env FLOWEY_CONDITION
3427 shell: bash
3428 name: 🌼❓ Write to 'FLOWEY_CONDITION'
3429 - run: |
3430 flowey.exe v 2 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:469:80' --write-to-gh-env floweyvar3 --is-raw-string
3431 shell: bash
3432 name: 🌼 Write to 'floweyvar3'
3433 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
3434 - id: flowey_lib_common__git_checkout__1
3435 uses: actions/checkout@v4
3436 with:
3437 fetch-depth: '1'
3438 path: repo0
3439 persist-credentials: ${{ env.floweyvar3 }}
3440 name: checkout repo hvlite
3441 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
3442 - run: ${{ github.workspace }}
3443 shell: flowey.exe v 2 'flowey_lib_common::git_checkout:4:flowey_lib_common/src/git_checkout.rs:524:31' --update-from-file {0} --is-raw-string
3444 name: 🌼 Read from 'github.workspace'
3445 - name: report cloned repo directories
3446 run: flowey.exe e 2 flowey_lib_common::git_checkout 3
3447 shell: bash
3448 - name: resolve OpenVMM repo requests
3449 run: flowey.exe e 2 flowey_lib_hvlite::git_checkout_openvmm_repo 0
3450 shell: bash
3451 - name: set '-Dwarnings' in .cargo/config.toml
3452 run: flowey.exe e 2 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
3453 shell: bash
3454 - name: create gh-release-download cache dir
3455 run: flowey.exe e 2 flowey_lib_common::download_gh_release 0
3456 shell: bash
3457 - name: Pre-processing cache vars
3458 run: flowey.exe e 2 flowey_lib_common::cache 0
3459 shell: bash
3460 - run: |
3461 flowey.exe v 2 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:458:72' --write-to-gh-env floweyvar1 --is-raw-string
3462 shell: bash
3463 name: 🌼 Write to 'floweyvar1'
3464 - run: |
3465 flowey.exe v 2 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar2 --is-raw-string
3466 shell: bash
3467 name: 🌼 Write to 'floweyvar2'
3468 - id: flowey_lib_common__cache__1
3469 uses: actions/cache@v4
3470 with:
3471 key: ${{ env.floweyvar1 }}
3472 path: ${{ env.floweyvar2 }}
3473 name: 'Restore cache: gh-release-download'
3474 - run: ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
3475 shell: flowey.exe v 2 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:510:46' --update-from-file {0} --is-raw-string
3476 name: 🌼 Read from 'steps.flowey_lib_common__cache__1.outputs.cache-hit'
3477 - name: map Github cache-hit to flowey
3478 run: flowey.exe e 2 flowey_lib_common::cache 2
3479 shell: bash
3480 - name: download artifacts from github releases
3481 run: flowey.exe e 2 flowey_lib_common::download_gh_release 1
3482 shell: bash
3483 - name: unpack protoc
3484 run: flowey.exe e 2 flowey_lib_common::download_protoc 0
3485 shell: bash
3486 - name: report openvmm magicpath dir
3487 run: flowey.exe e 2 flowey_lib_hvlite::cfg_openvmm_magicpath 0
3488 shell: bash
3489 - name: symlink protoc
3490 run: flowey.exe e 2 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
3491 shell: bash
3492 - name: inject cross env
3493 run: flowey.exe e 2 flowey_lib_hvlite::init_cross_build 0
3494 shell: bash
3495 - name: cargo build vmgstool
3496 run: flowey.exe e 2 flowey_lib_common::run_cargo_build 3
3497 shell: bash
3498 - name: 🌼 write_into Var
3499 run: flowey.exe e 2 flowey_lib_hvlite::run_cargo_build 3
3500 shell: bash
3501 - name: report built vmgstool
3502 run: flowey.exe e 2 flowey_lib_hvlite::build_vmgstool 0
3503 shell: bash
3504 - name: 🌼 write_into Var
3505 run: flowey.exe e 2 flowey_lib_hvlite::artifact_vmgstool::publish 0
3506 shell: bash
3507 - name: copying vmgstool to artifact dir
3508 run: flowey.exe e 2 flowey_lib_common::copy_to_artifact_dir 3
3509 shell: bash
3510 - name: inject cross env
3511 run: flowey.exe e 2 flowey_lib_hvlite::init_cross_build 3
3512 shell: bash
3513 - name: cargo build vmgs_lib
3514 run: flowey.exe e 2 flowey_lib_common::run_cargo_build 2
3515 shell: bash
3516 - name: 🌼 write_into Var
3517 run: flowey.exe e 2 flowey_lib_hvlite::run_cargo_build 2
3518 shell: bash
3519 - name: check built vmgs_lib
3520 run: flowey.exe e 2 flowey_lib_hvlite::build_and_test_vmgs_lib 0
3521 shell: bash
3522 - name: report built vmgs_lib
3523 run: flowey.exe e 2 flowey_lib_hvlite::build_and_test_vmgs_lib 1
3524 shell: bash
3525 - name: 🌼 write_into Var
3526 run: flowey.exe e 2 flowey_lib_hvlite::artifact_vmgs_lib::publish 0
3527 shell: bash
3528 - name: copying vmgs_lib to artifact dir
3529 run: flowey.exe e 2 flowey_lib_common::copy_to_artifact_dir 2
3530 shell: bash
3531 - name: inject cross env
3532 run: flowey.exe e 2 flowey_lib_hvlite::init_cross_build 1
3533 shell: bash
3534 - name: cargo build igvmfilegen
3535 run: flowey.exe e 2 flowey_lib_common::run_cargo_build 0
3536 shell: bash
3537 - name: 🌼 write_into Var
3538 run: flowey.exe e 2 flowey_lib_hvlite::run_cargo_build 0
3539 shell: bash
3540 - name: report built igvmfilegen
3541 run: flowey.exe e 2 flowey_lib_hvlite::build_igvmfilegen 0
3542 shell: bash
3543 - name: 🌼 write_into Var
3544 run: flowey.exe e 2 flowey_lib_hvlite::artifact_igvmfilegen::publish 0
3545 shell: bash
3546 - name: copying igvmfilegen to artifact dir
3547 run: flowey.exe e 2 flowey_lib_common::copy_to_artifact_dir 0
3548 shell: bash
3549 - name: inject cross env
3550 run: flowey.exe e 2 flowey_lib_hvlite::init_cross_build 2
3551 shell: bash
3552 - name: cargo build ohcldiag-dev
3553 run: flowey.exe e 2 flowey_lib_common::run_cargo_build 1
3554 shell: bash
3555 - name: 🌼 write_into Var
3556 run: flowey.exe e 2 flowey_lib_hvlite::run_cargo_build 1
3557 shell: bash
3558 - name: report built ohcldiag_dev
3559 run: flowey.exe e 2 flowey_lib_hvlite::build_ohcldiag_dev 0
3560 shell: bash
3561 - name: 🌼 write_into Var
3562 run: flowey.exe e 2 flowey_lib_hvlite::artifact_ohcldiag_dev::publish 0
3563 shell: bash
3564 - name: copying ohcldiag-dev to artifact dir
3565 run: flowey.exe e 2 flowey_lib_common::copy_to_artifact_dir 1
3566 shell: bash
3567 - name: 'validate cache entry: gh-release-download'
3568 run: flowey.exe e 2 flowey_lib_common::cache 3
3569 shell: bash
3570 - name: 🌼📦 Publish aarch64-windows-igvmfilegen
3571 uses: actions/upload-artifact@v4
3572 with:
3573 name: aarch64-windows-igvmfilegen
3574 path: ${{ runner.temp }}/publish_artifacts/aarch64-windows-igvmfilegen/
3575 - name: 🌼📦 Publish aarch64-windows-ohcldiag-dev
3576 uses: actions/upload-artifact@v4
3577 with:
3578 name: aarch64-windows-ohcldiag-dev
3579 path: ${{ runner.temp }}/publish_artifacts/aarch64-windows-ohcldiag-dev/
3580 - name: 🌼📦 Publish aarch64-windows-vmgs_lib
3581 uses: actions/upload-artifact@v4
3582 with:
3583 name: aarch64-windows-vmgs_lib
3584 path: ${{ runner.temp }}/publish_artifacts/aarch64-windows-vmgs_lib/
3585 - name: 🌼📦 Publish aarch64-windows-vmgstool
3586 uses: actions/upload-artifact@v4
3587 with:
3588 name: aarch64-windows-vmgstool
3589 path: ${{ runner.temp }}/publish_artifacts/aarch64-windows-vmgstool/
3590 job3:
3591 name: build artifacts (for VMM tests) [aarch64-windows]
3592 runs-on: windows-latest
3593 permissions:
3594 contents: read
3595 id-token: write
3596 steps:
3597 - run: echo "injected!"
3598 name: 🌼🥾 Bootstrap flowey
3599 shell: bash
3600 - run: |
3601 set -x
3602 i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
3603 sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
3604 curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.82.0 -y
3605 . "$HOME/.cargo/env"
3606 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
3607 rustup show
3608 if: runner.os == 'Linux'
3609 name: rustup (Linux)
3610 shell: bash
3611 - run: |
3612 set -x
3613 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
3614 ./rustup-init.exe -y --default-toolchain=1.82.0
3615 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
3616 if: runner.os == 'Windows' && runner.arch == 'X64'
3617 name: rustup (Windows X64)
3618 shell: bash
3619 - run: |
3620 set -x
3621 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
3622 ./rustup-init.exe -y --default-toolchain=1.82.0
3623 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
3624 if: runner.os == 'Windows' && runner.arch == 'ARM64'
3625 name: rustup (Windows ARM64)
3626 shell: bash
3627 - uses: actions/checkout@v4
3628 with:
3629 path: flowey_bootstrap
3630 - name: Build flowey
3631 run: CARGO_INCREMENTAL=0 RUSTC_BOOTSTRAP=1 RUSTFLAGS="-Z threads=8" cargo build -p flowey_hvlite --target x86_64-pc-windows-msvc --profile flowey-ci
3632 working-directory: flowey_bootstrap
3633 shell: bash
3634 - name: Stage flowey artifact
3635 run: |
3636 mkdir ./flowey_bootstrap_temp
3637 mv ./.github/workflows/openvmm-ci.yaml ./flowey_bootstrap_temp/pipeline.yaml
3638 mv target/x86_64-pc-windows-msvc/flowey-ci/flowey_hvlite.exe ./flowey_bootstrap_temp/flowey.exe
3639 working-directory: flowey_bootstrap
3640 shell: bash
3641 - name: Copy flowey artifact
3642 run: |
3643 OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
3644 mkdir -p $OutDirNormal
3645 cp -r ./flowey_bootstrap_temp/* $OutDirNormal
3646 working-directory: flowey_bootstrap
3647 shell: bash
3648 - name: Cleanup staged flowey artifact
3649 run: rm -rf ./flowey_bootstrap_temp
3650 working-directory: flowey_bootstrap
3651 shell: bash
3652 - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH
3653 shell: bash
3654 name: 🌼📦 Add flowey to PATH
3655 - name: 🌼🔎 Self-check YAML
3656 run: |-
3657 ESCAPED_AGENT_TEMPDIR=$(
3658 cat <<'EOF' | sed 's/\\/\\\\/g'
3659 ${{ runner.temp }}
3660 EOF
3661 )
3662 flowey.exe pipeline github --runtime $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci
3663 shell: bash
3664 - name: 🌼🛫 Initialize job
3665 run: |
3666 AgentTempDirNormal="${{ runner.temp }}"
3667 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
3668 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
3669
3670 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe
3671
3672 echo '"debug"' | flowey.exe v 3 'FLOWEY_LOG' --update-from-stdin
3673 echo "${{ runner.temp }}/work" | flowey.exe v 3 '_internal_WORKING_DIR' --update-from-stdin --is-raw-string
3674
3675 cat <<'EOF' | flowey.exe v 3 'verbose' --update-from-stdin
3676 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
3677 EOF
3678 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-openvmm"
3679 echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-openvmm" | flowey.exe v 3 'artifact_publish_from_aarch64-windows-openvmm' --update-from-stdin --is-raw-string
3680 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-pipette"
3681 echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-pipette" | flowey.exe v 3 'artifact_publish_from_aarch64-windows-pipette' --update-from-stdin --is-raw-string
3682 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-vmm-tests-archive"
3683 echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-vmm-tests-archive" | flowey.exe v 3 'artifact_publish_from_aarch64-windows-vmm-tests-archive' --update-from-stdin --is-raw-string
3684 shell: bash
3685 - name: install Rust
3686 run: flowey.exe e 3 flowey_lib_common::install_rust 0
3687 shell: bash
3688 - name: detect active toolchain
3689 run: flowey.exe e 3 flowey_lib_common::install_rust 1
3690 shell: bash
3691 - name: report common cargo flags
3692 run: flowey.exe e 3 flowey_lib_common::cfg_cargo_common_flags 0
3693 shell: bash
3694 - name: create gh-release-download cache dir
3695 run: flowey.exe e 3 flowey_lib_common::download_gh_release 0
3696 shell: bash
3697 - name: Pre-processing cache vars
3698 run: flowey.exe e 3 flowey_lib_common::cache 4
3699 shell: bash
3700 - run: |
3701 flowey.exe v 3 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:458:72' --write-to-gh-env floweyvar4 --is-raw-string
3702 shell: bash
3703 name: 🌼 Write to 'floweyvar4'
3704 - run: |
3705 flowey.exe v 3 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar5 --is-raw-string
3706 shell: bash
3707 name: 🌼 Write to 'floweyvar5'
3708 - id: flowey_lib_common__cache__5
3709 uses: actions/cache@v4
3710 with:
3711 key: ${{ env.floweyvar4 }}
3712 path: ${{ env.floweyvar5 }}
3713 name: 'Restore cache: gh-release-download'
3714 - run: ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
3715 shell: flowey.exe v 3 'flowey_lib_common::cache:12:flowey_lib_common/src/cache.rs:510:46' --update-from-file {0} --is-raw-string
3716 name: 🌼 Read from 'steps.flowey_lib_common__cache__5.outputs.cache-hit'
3717 - name: map Github cache-hit to flowey
3718 run: flowey.exe e 3 flowey_lib_common::cache 6
3719 shell: bash
3720 - name: download artifacts from github releases
3721 run: flowey.exe e 3 flowey_lib_common::download_gh_release 1
3722 shell: bash
3723 - name: unpack Microsoft.WSL.LxUtil.AARCH64.zip
3724 run: flowey.exe e 3 flowey_lib_hvlite::download_lxutil 0
3725 shell: bash
3726 - name: check if hvlite needs to be cloned
3727 run: flowey.exe e 3 flowey_lib_common::git_checkout 0
3728 shell: bash
3729 - run: |
3730 flowey.exe v 3 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:470:46' --write-to-gh-env FLOWEY_CONDITION
3731 shell: bash
3732 name: 🌼❓ Write to 'FLOWEY_CONDITION'
3733 - run: |
3734 flowey.exe v 3 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:469:80' --write-to-gh-env floweyvar1 --is-raw-string
3735 shell: bash
3736 name: 🌼 Write to 'floweyvar1'
3737 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
3738 - id: flowey_lib_common__git_checkout__1
3739 uses: actions/checkout@v4
3740 with:
3741 fetch-depth: '1'
3742 path: repo0
3743 persist-credentials: ${{ env.floweyvar1 }}
3744 name: checkout repo hvlite
3745 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
3746 - run: ${{ github.workspace }}
3747 shell: flowey.exe v 3 'flowey_lib_common::git_checkout:4:flowey_lib_common/src/git_checkout.rs:524:31' --update-from-file {0} --is-raw-string
3748 name: 🌼 Read from 'github.workspace'
3749 - name: report cloned repo directories
3750 run: flowey.exe e 3 flowey_lib_common::git_checkout 3
3751 shell: bash
3752 - name: resolve OpenVMM repo requests
3753 run: flowey.exe e 3 flowey_lib_hvlite::git_checkout_openvmm_repo 0
3754 shell: bash
3755 - name: report openvmm magicpath dir
3756 run: flowey.exe e 3 flowey_lib_hvlite::cfg_openvmm_magicpath 0
3757 shell: bash
3758 - name: move lxutil.dll into its magic folder
3759 run: flowey.exe e 3 flowey_lib_hvlite::init_openvmm_magicpath_lxutil 0
3760 shell: bash
3761 - name: set '-Dwarnings' in .cargo/config.toml
3762 run: flowey.exe e 3 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
3763 shell: bash
3764 - name: unpack protoc
3765 run: flowey.exe e 3 flowey_lib_common::download_protoc 0
3766 shell: bash
3767 - name: symlink protoc
3768 run: flowey.exe e 3 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
3769 shell: bash
3770 - name: inject cross env
3771 run: flowey.exe e 3 flowey_lib_hvlite::init_cross_build 1
3772 shell: bash
3773 - name: cargo build openvmm
3774 run: flowey.exe e 3 flowey_lib_common::run_cargo_build 0
3775 shell: bash
3776 - name: 🌼 write_into Var
3777 run: flowey.exe e 3 flowey_lib_hvlite::run_cargo_build 0
3778 shell: bash
3779 - name: report built openvmm
3780 run: flowey.exe e 3 flowey_lib_hvlite::build_openvmm 0
3781 shell: bash
3782 - name: copying openvmm to publish dir
3783 run: flowey.exe e 3 flowey_lib_hvlite::artifact_openvmm::publish 0
3784 shell: bash
3785 - name: inject cross env
3786 run: flowey.exe e 3 flowey_lib_hvlite::init_cross_build 2
3787 shell: bash
3788 - name: cargo build pipette
3789 run: flowey.exe e 3 flowey_lib_common::run_cargo_build 1
3790 shell: bash
3791 - name: 🌼 write_into Var
3792 run: flowey.exe e 3 flowey_lib_hvlite::run_cargo_build 1
3793 shell: bash
3794 - name: report built pipette
3795 run: flowey.exe e 3 flowey_lib_hvlite::build_pipette 0
3796 shell: bash
3797 - name: 🌼 write_into Var
3798 run: flowey.exe e 3 flowey_lib_hvlite::artifact_pipette::publish 0
3799 shell: bash
3800 - name: copying pipette to artifact dir
3801 run: flowey.exe e 3 flowey_lib_common::copy_to_artifact_dir 0
3802 shell: bash
3803 - name: create cargo-nextest cache dir
3804 run: flowey.exe e 3 flowey_lib_common::download_cargo_nextest 0
3805 shell: bash
3806 - name: Pre-processing cache vars
3807 run: flowey.exe e 3 flowey_lib_common::cache 0
3808 shell: bash
3809 - run: |
3810 flowey.exe v 3 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:458:72' --write-to-gh-env floweyvar2 --is-raw-string
3811 shell: bash
3812 name: 🌼 Write to 'floweyvar2'
3813 - run: |
3814 flowey.exe v 3 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar3 --is-raw-string
3815 shell: bash
3816 name: 🌼 Write to 'floweyvar3'
3817 - id: flowey_lib_common__cache__1
3818 uses: actions/cache@v4
3819 with:
3820 key: ${{ env.floweyvar2 }}
3821 path: ${{ env.floweyvar3 }}
3822 name: 'Restore cache: cargo-nextest'
3823 - run: ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
3824 shell: flowey.exe v 3 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:510:46' --update-from-file {0} --is-raw-string
3825 name: 🌼 Read from 'steps.flowey_lib_common__cache__1.outputs.cache-hit'
3826 - name: map Github cache-hit to flowey
3827 run: flowey.exe e 3 flowey_lib_common::cache 2
3828 shell: bash
3829 - name: report cargo install persistent dir
3830 run: flowey.exe e 3 flowey_lib_common::cfg_persistent_dir_cargo_install 0
3831 shell: bash
3832 - name: report $CARGO_HOME
3833 run: flowey.exe e 3 flowey_lib_common::install_rust 2
3834 shell: bash
3835 - name: installing cargo-nextest
3836 run: flowey.exe e 3 flowey_lib_common::download_cargo_nextest 1
3837 shell: bash
3838 - name: inject cross env
3839 run: flowey.exe e 3 flowey_lib_hvlite::init_cross_build 0
3840 shell: bash
3841 - name: build + archive 'vmm_tests' nextests
3842 run: flowey.exe e 3 flowey_lib_common::run_cargo_nextest_archive 0
3843 shell: bash
3844 - name: report built vmm_tests
3845 run: flowey.exe e 3 flowey_lib_hvlite::build_nextest_vmm_tests 0
3846 shell: bash
3847 - name: 🌼 write_into Var
3848 run: flowey.exe e 3 flowey_lib_hvlite::artifact_nextest_vmm_tests_archive::publish 0
3849 shell: bash
3850 - name: copying vmm_tests to artifact dir
3851 run: flowey.exe e 3 flowey_lib_common::copy_to_artifact_dir 1
3852 shell: bash
3853 - name: 'validate cache entry: cargo-nextest'
3854 run: flowey.exe e 3 flowey_lib_common::cache 3
3855 shell: bash
3856 - name: 'validate cache entry: gh-release-download'
3857 run: flowey.exe e 3 flowey_lib_common::cache 7
3858 shell: bash
3859 - name: 🌼📦 Publish aarch64-windows-openvmm
3860 uses: actions/upload-artifact@v4
3861 with:
3862 name: aarch64-windows-openvmm
3863 path: ${{ runner.temp }}/publish_artifacts/aarch64-windows-openvmm/
3864 - name: 🌼📦 Publish aarch64-windows-pipette
3865 uses: actions/upload-artifact@v4
3866 with:
3867 name: aarch64-windows-pipette
3868 path: ${{ runner.temp }}/publish_artifacts/aarch64-windows-pipette/
3869 - name: 🌼📦 Publish aarch64-windows-vmm-tests-archive
3870 uses: actions/upload-artifact@v4
3871 with:
3872 name: aarch64-windows-vmm-tests-archive
3873 path: ${{ runner.temp }}/publish_artifacts/aarch64-windows-vmm-tests-archive/
3874 - name: 🌼🧼 Redact bootstrap var db
3875 run: rm $AgentTempDirNormal/bootstrapped-flowey/job3.json
3876 shell: bash
3877 - name: 🌼🥾 Publish bootstrapped flowey
3878 uses: actions/upload-artifact@v4
3879 with:
3880 name: _internal-flowey-bootstrap-x86_64-windows-uid-12
3881 path: ${{ runner.temp }}/bootstrapped-flowey
3882 job4:
3883 name: build artifacts (not for VMM tests) [x64-windows]
3884 runs-on:
3885 - self-hosted
3886 - 1ES.Pool=OpenVMM-GitHub-Win-Pool-WestUS3
3887 permissions:
3888 contents: read
3889 id-token: write
3890 steps:
3891 - run: echo "injected!"
3892 name: 🌼🥾 Bootstrap flowey
3893 shell: bash
3894 - run: |
3895 set -x
3896 i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
3897 sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
3898 curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.82.0 -y
3899 . "$HOME/.cargo/env"
3900 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
3901 rustup show
3902 if: runner.os == 'Linux'
3903 name: rustup (Linux)
3904 shell: bash
3905 - run: |
3906 set -x
3907 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
3908 ./rustup-init.exe -y --default-toolchain=1.82.0
3909 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
3910 if: runner.os == 'Windows' && runner.arch == 'X64'
3911 name: rustup (Windows X64)
3912 shell: bash
3913 - run: |
3914 set -x
3915 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
3916 ./rustup-init.exe -y --default-toolchain=1.82.0
3917 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
3918 if: runner.os == 'Windows' && runner.arch == 'ARM64'
3919 name: rustup (Windows ARM64)
3920 shell: bash
3921 - uses: actions/checkout@v4
3922 with:
3923 path: flowey_bootstrap
3924 - name: Build flowey
3925 run: CARGO_INCREMENTAL=0 RUSTC_BOOTSTRAP=1 RUSTFLAGS="-Z threads=8" cargo build -p flowey_hvlite --target x86_64-pc-windows-msvc --profile flowey-ci
3926 working-directory: flowey_bootstrap
3927 shell: bash
3928 - name: Stage flowey artifact
3929 run: |
3930 mkdir ./flowey_bootstrap_temp
3931 mv ./.github/workflows/openvmm-ci.yaml ./flowey_bootstrap_temp/pipeline.yaml
3932 mv target/x86_64-pc-windows-msvc/flowey-ci/flowey_hvlite.exe ./flowey_bootstrap_temp/flowey.exe
3933 working-directory: flowey_bootstrap
3934 shell: bash
3935 - name: Copy flowey artifact
3936 run: |
3937 OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
3938 mkdir -p $OutDirNormal
3939 cp -r ./flowey_bootstrap_temp/* $OutDirNormal
3940 working-directory: flowey_bootstrap
3941 shell: bash
3942 - name: Cleanup staged flowey artifact
3943 run: rm -rf ./flowey_bootstrap_temp
3944 working-directory: flowey_bootstrap
3945 shell: bash
3946 - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH
3947 shell: bash
3948 name: 🌼📦 Add flowey to PATH
3949 - name: 🌼🔎 Self-check YAML
3950 run: |-
3951 ESCAPED_AGENT_TEMPDIR=$(
3952 cat <<'EOF' | sed 's/\\/\\\\/g'
3953 ${{ runner.temp }}
3954 EOF
3955 )
3956 flowey.exe pipeline github --runtime $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci
3957 shell: bash
3958 - name: 🌼🛫 Initialize job
3959 run: |
3960 AgentTempDirNormal="${{ runner.temp }}"
3961 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
3962 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
3963
3964 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe
3965
3966 echo '"debug"' | flowey.exe v 4 'FLOWEY_LOG' --update-from-stdin
3967 echo "${{ runner.temp }}/work" | flowey.exe v 4 '_internal_WORKING_DIR' --update-from-stdin --is-raw-string
3968
3969 cat <<'EOF' | flowey.exe v 4 'verbose' --update-from-stdin
3970 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
3971 EOF
3972 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-igvmfilegen"
3973 echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-igvmfilegen" | flowey.exe v 4 'artifact_publish_from_x64-windows-igvmfilegen' --update-from-stdin --is-raw-string
3974 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-ohcldiag-dev"
3975 echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-ohcldiag-dev" | flowey.exe v 4 'artifact_publish_from_x64-windows-ohcldiag-dev' --update-from-stdin --is-raw-string
3976 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-vmgs_lib"
3977 echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-vmgs_lib" | flowey.exe v 4 'artifact_publish_from_x64-windows-vmgs_lib' --update-from-stdin --is-raw-string
3978 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-vmgstool"
3979 echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-vmgstool" | flowey.exe v 4 'artifact_publish_from_x64-windows-vmgstool' --update-from-stdin --is-raw-string
3980 shell: bash
3981 - name: install Rust
3982 run: flowey.exe e 4 flowey_lib_common::install_rust 0
3983 shell: bash
3984 - name: detect active toolchain
3985 run: flowey.exe e 4 flowey_lib_common::install_rust 1
3986 shell: bash
3987 - name: report common cargo flags
3988 run: flowey.exe e 4 flowey_lib_common::cfg_cargo_common_flags 0
3989 shell: bash
3990 - name: check if hvlite needs to be cloned
3991 run: flowey.exe e 4 flowey_lib_common::git_checkout 0
3992 shell: bash
3993 - run: |
3994 flowey.exe v 4 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:470:46' --write-to-gh-env FLOWEY_CONDITION
3995 shell: bash
3996 name: 🌼❓ Write to 'FLOWEY_CONDITION'
3997 - run: |
3998 flowey.exe v 4 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:469:80' --write-to-gh-env floweyvar3 --is-raw-string
3999 shell: bash
4000 name: 🌼 Write to 'floweyvar3'
4001 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
4002 - id: flowey_lib_common__git_checkout__1
4003 uses: actions/checkout@v4
4004 with:
4005 fetch-depth: '1'
4006 path: repo0
4007 persist-credentials: ${{ env.floweyvar3 }}
4008 name: checkout repo hvlite
4009 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
4010 - run: ${{ github.workspace }}
4011 shell: flowey.exe v 4 'flowey_lib_common::git_checkout:4:flowey_lib_common/src/git_checkout.rs:524:31' --update-from-file {0} --is-raw-string
4012 name: 🌼 Read from 'github.workspace'
4013 - name: report cloned repo directories
4014 run: flowey.exe e 4 flowey_lib_common::git_checkout 3
4015 shell: bash
4016 - name: resolve OpenVMM repo requests
4017 run: flowey.exe e 4 flowey_lib_hvlite::git_checkout_openvmm_repo 0
4018 shell: bash
4019 - name: set '-Dwarnings' in .cargo/config.toml
4020 run: flowey.exe e 4 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
4021 shell: bash
4022 - name: create gh-release-download cache dir
4023 run: flowey.exe e 4 flowey_lib_common::download_gh_release 0
4024 shell: bash
4025 - name: Pre-processing cache vars
4026 run: flowey.exe e 4 flowey_lib_common::cache 0
4027 shell: bash
4028 - run: |
4029 flowey.exe v 4 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:458:72' --write-to-gh-env floweyvar1 --is-raw-string
4030 shell: bash
4031 name: 🌼 Write to 'floweyvar1'
4032 - run: |
4033 flowey.exe v 4 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar2 --is-raw-string
4034 shell: bash
4035 name: 🌼 Write to 'floweyvar2'
4036 - id: flowey_lib_common__cache__1
4037 uses: actions/cache@v4
4038 with:
4039 key: ${{ env.floweyvar1 }}
4040 path: ${{ env.floweyvar2 }}
4041 name: 'Restore cache: gh-release-download'
4042 - run: ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
4043 shell: flowey.exe v 4 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:510:46' --update-from-file {0} --is-raw-string
4044 name: 🌼 Read from 'steps.flowey_lib_common__cache__1.outputs.cache-hit'
4045 - name: map Github cache-hit to flowey
4046 run: flowey.exe e 4 flowey_lib_common::cache 2
4047 shell: bash
4048 - name: download artifacts from github releases
4049 run: flowey.exe e 4 flowey_lib_common::download_gh_release 1
4050 shell: bash
4051 - name: unpack protoc
4052 run: flowey.exe e 4 flowey_lib_common::download_protoc 0
4053 shell: bash
4054 - name: report openvmm magicpath dir
4055 run: flowey.exe e 4 flowey_lib_hvlite::cfg_openvmm_magicpath 0
4056 shell: bash
4057 - name: symlink protoc
4058 run: flowey.exe e 4 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
4059 shell: bash
4060 - name: inject cross env
4061 run: flowey.exe e 4 flowey_lib_hvlite::init_cross_build 0
4062 shell: bash
4063 - name: cargo build vmgstool
4064 run: flowey.exe e 4 flowey_lib_common::run_cargo_build 3
4065 shell: bash
4066 - name: 🌼 write_into Var
4067 run: flowey.exe e 4 flowey_lib_hvlite::run_cargo_build 3
4068 shell: bash
4069 - name: report built vmgstool
4070 run: flowey.exe e 4 flowey_lib_hvlite::build_vmgstool 0
4071 shell: bash
4072 - name: 🌼 write_into Var
4073 run: flowey.exe e 4 flowey_lib_hvlite::artifact_vmgstool::publish 0
4074 shell: bash
4075 - name: copying vmgstool to artifact dir
4076 run: flowey.exe e 4 flowey_lib_common::copy_to_artifact_dir 3
4077 shell: bash
4078 - name: inject cross env
4079 run: flowey.exe e 4 flowey_lib_hvlite::init_cross_build 3
4080 shell: bash
4081 - name: cargo build vmgs_lib
4082 run: flowey.exe e 4 flowey_lib_common::run_cargo_build 2
4083 shell: bash
4084 - name: 🌼 write_into Var
4085 run: flowey.exe e 4 flowey_lib_hvlite::run_cargo_build 2
4086 shell: bash
4087 - name: check built vmgs_lib
4088 run: flowey.exe e 4 flowey_lib_hvlite::build_and_test_vmgs_lib 0
4089 shell: bash
4090 - name: test vmgs_lib
4091 run: flowey.exe e 4 flowey_lib_hvlite::build_and_test_vmgs_lib 1
4092 shell: bash
4093 - name: report built vmgs_lib
4094 run: flowey.exe e 4 flowey_lib_hvlite::build_and_test_vmgs_lib 2
4095 shell: bash
4096 - name: 🌼 write_into Var
4097 run: flowey.exe e 4 flowey_lib_hvlite::artifact_vmgs_lib::publish 0
4098 shell: bash
4099 - name: copying vmgs_lib to artifact dir
4100 run: flowey.exe e 4 flowey_lib_common::copy_to_artifact_dir 2
4101 shell: bash
4102 - name: inject cross env
4103 run: flowey.exe e 4 flowey_lib_hvlite::init_cross_build 1
4104 shell: bash
4105 - name: cargo build igvmfilegen
4106 run: flowey.exe e 4 flowey_lib_common::run_cargo_build 0
4107 shell: bash
4108 - name: 🌼 write_into Var
4109 run: flowey.exe e 4 flowey_lib_hvlite::run_cargo_build 0
4110 shell: bash
4111 - name: report built igvmfilegen
4112 run: flowey.exe e 4 flowey_lib_hvlite::build_igvmfilegen 0
4113 shell: bash
4114 - name: 🌼 write_into Var
4115 run: flowey.exe e 4 flowey_lib_hvlite::artifact_igvmfilegen::publish 0
4116 shell: bash
4117 - name: copying igvmfilegen to artifact dir
4118 run: flowey.exe e 4 flowey_lib_common::copy_to_artifact_dir 0
4119 shell: bash
4120 - name: inject cross env
4121 run: flowey.exe e 4 flowey_lib_hvlite::init_cross_build 2
4122 shell: bash
4123 - name: cargo build ohcldiag-dev
4124 run: flowey.exe e 4 flowey_lib_common::run_cargo_build 1
4125 shell: bash
4126 - name: 🌼 write_into Var
4127 run: flowey.exe e 4 flowey_lib_hvlite::run_cargo_build 1
4128 shell: bash
4129 - name: report built ohcldiag_dev
4130 run: flowey.exe e 4 flowey_lib_hvlite::build_ohcldiag_dev 0
4131 shell: bash
4132 - name: 🌼 write_into Var
4133 run: flowey.exe e 4 flowey_lib_hvlite::artifact_ohcldiag_dev::publish 0
4134 shell: bash
4135 - name: copying ohcldiag-dev to artifact dir
4136 run: flowey.exe e 4 flowey_lib_common::copy_to_artifact_dir 1
4137 shell: bash
4138 - name: 'validate cache entry: gh-release-download'
4139 run: flowey.exe e 4 flowey_lib_common::cache 3
4140 shell: bash
4141 - name: 🌼📦 Publish x64-windows-igvmfilegen
4142 uses: actions/upload-artifact@v4
4143 with:
4144 name: x64-windows-igvmfilegen
4145 path: ${{ runner.temp }}/publish_artifacts/x64-windows-igvmfilegen/
4146 - name: 🌼📦 Publish x64-windows-ohcldiag-dev
4147 uses: actions/upload-artifact@v4
4148 with:
4149 name: x64-windows-ohcldiag-dev
4150 path: ${{ runner.temp }}/publish_artifacts/x64-windows-ohcldiag-dev/
4151 - name: 🌼📦 Publish x64-windows-vmgs_lib
4152 uses: actions/upload-artifact@v4
4153 with:
4154 name: x64-windows-vmgs_lib
4155 path: ${{ runner.temp }}/publish_artifacts/x64-windows-vmgs_lib/
4156 - name: 🌼📦 Publish x64-windows-vmgstool
4157 uses: actions/upload-artifact@v4
4158 with:
4159 name: x64-windows-vmgstool
4160 path: ${{ runner.temp }}/publish_artifacts/x64-windows-vmgstool/
4161 job5:
4162 name: build artifacts (for VMM tests) [x64-windows]
4163 runs-on: windows-latest
4164 permissions:
4165 contents: read
4166 id-token: write
4167 steps:
4168 - run: echo "injected!"
4169 name: 🌼🥾 Bootstrap flowey
4170 shell: bash
4171 - run: |
4172 set -x
4173 i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
4174 sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
4175 curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.82.0 -y
4176 . "$HOME/.cargo/env"
4177 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
4178 rustup show
4179 if: runner.os == 'Linux'
4180 name: rustup (Linux)
4181 shell: bash
4182 - run: |
4183 set -x
4184 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
4185 ./rustup-init.exe -y --default-toolchain=1.82.0
4186 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
4187 if: runner.os == 'Windows' && runner.arch == 'X64'
4188 name: rustup (Windows X64)
4189 shell: bash
4190 - run: |
4191 set -x
4192 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
4193 ./rustup-init.exe -y --default-toolchain=1.82.0
4194 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
4195 if: runner.os == 'Windows' && runner.arch == 'ARM64'
4196 name: rustup (Windows ARM64)
4197 shell: bash
4198 - uses: actions/checkout@v4
4199 with:
4200 path: flowey_bootstrap
4201 - name: Build flowey
4202 run: CARGO_INCREMENTAL=0 RUSTC_BOOTSTRAP=1 RUSTFLAGS="-Z threads=8" cargo build -p flowey_hvlite --target x86_64-pc-windows-msvc --profile flowey-ci
4203 working-directory: flowey_bootstrap
4204 shell: bash
4205 - name: Stage flowey artifact
4206 run: |
4207 mkdir ./flowey_bootstrap_temp
4208 mv ./.github/workflows/openvmm-ci.yaml ./flowey_bootstrap_temp/pipeline.yaml
4209 mv target/x86_64-pc-windows-msvc/flowey-ci/flowey_hvlite.exe ./flowey_bootstrap_temp/flowey.exe
4210 working-directory: flowey_bootstrap
4211 shell: bash
4212 - name: Copy flowey artifact
4213 run: |
4214 OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
4215 mkdir -p $OutDirNormal
4216 cp -r ./flowey_bootstrap_temp/* $OutDirNormal
4217 working-directory: flowey_bootstrap
4218 shell: bash
4219 - name: Cleanup staged flowey artifact
4220 run: rm -rf ./flowey_bootstrap_temp
4221 working-directory: flowey_bootstrap
4222 shell: bash
4223 - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH
4224 shell: bash
4225 name: 🌼📦 Add flowey to PATH
4226 - name: 🌼🔎 Self-check YAML
4227 run: |-
4228 ESCAPED_AGENT_TEMPDIR=$(
4229 cat <<'EOF' | sed 's/\\/\\\\/g'
4230 ${{ runner.temp }}
4231 EOF
4232 )
4233 flowey.exe pipeline github --runtime $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci
4234 shell: bash
4235 - name: 🌼🛫 Initialize job
4236 run: |
4237 AgentTempDirNormal="${{ runner.temp }}"
4238 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
4239 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
4240
4241 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe
4242
4243 echo '"debug"' | flowey.exe v 5 'FLOWEY_LOG' --update-from-stdin
4244 echo "${{ runner.temp }}/work" | flowey.exe v 5 '_internal_WORKING_DIR' --update-from-stdin --is-raw-string
4245
4246 cat <<'EOF' | flowey.exe v 5 'verbose' --update-from-stdin
4247 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
4248 EOF
4249 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-openvmm"
4250 echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-openvmm" | flowey.exe v 5 'artifact_publish_from_x64-windows-openvmm' --update-from-stdin --is-raw-string
4251 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-pipette"
4252 echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-pipette" | flowey.exe v 5 'artifact_publish_from_x64-windows-pipette' --update-from-stdin --is-raw-string
4253 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-vmm-tests-archive"
4254 echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-vmm-tests-archive" | flowey.exe v 5 'artifact_publish_from_x64-windows-vmm-tests-archive' --update-from-stdin --is-raw-string
4255 shell: bash
4256 - name: install Rust
4257 run: flowey.exe e 5 flowey_lib_common::install_rust 0
4258 shell: bash
4259 - name: detect active toolchain
4260 run: flowey.exe e 5 flowey_lib_common::install_rust 1
4261 shell: bash
4262 - name: report common cargo flags
4263 run: flowey.exe e 5 flowey_lib_common::cfg_cargo_common_flags 0
4264 shell: bash
4265 - name: create gh-release-download cache dir
4266 run: flowey.exe e 5 flowey_lib_common::download_gh_release 0
4267 shell: bash
4268 - name: Pre-processing cache vars
4269 run: flowey.exe e 5 flowey_lib_common::cache 4
4270 shell: bash
4271 - run: |
4272 flowey.exe v 5 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:458:72' --write-to-gh-env floweyvar4 --is-raw-string
4273 shell: bash
4274 name: 🌼 Write to 'floweyvar4'
4275 - run: |
4276 flowey.exe v 5 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar5 --is-raw-string
4277 shell: bash
4278 name: 🌼 Write to 'floweyvar5'
4279 - id: flowey_lib_common__cache__5
4280 uses: actions/cache@v4
4281 with:
4282 key: ${{ env.floweyvar4 }}
4283 path: ${{ env.floweyvar5 }}
4284 name: 'Restore cache: gh-release-download'
4285 - run: ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
4286 shell: flowey.exe v 5 'flowey_lib_common::cache:12:flowey_lib_common/src/cache.rs:510:46' --update-from-file {0} --is-raw-string
4287 name: 🌼 Read from 'steps.flowey_lib_common__cache__5.outputs.cache-hit'
4288 - name: map Github cache-hit to flowey
4289 run: flowey.exe e 5 flowey_lib_common::cache 6
4290 shell: bash
4291 - name: download artifacts from github releases
4292 run: flowey.exe e 5 flowey_lib_common::download_gh_release 1
4293 shell: bash
4294 - name: unpack Microsoft.WSL.LxUtil.x64.zip
4295 run: flowey.exe e 5 flowey_lib_hvlite::download_lxutil 0
4296 shell: bash
4297 - name: check if hvlite needs to be cloned
4298 run: flowey.exe e 5 flowey_lib_common::git_checkout 0
4299 shell: bash
4300 - run: |
4301 flowey.exe v 5 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:470:46' --write-to-gh-env FLOWEY_CONDITION
4302 shell: bash
4303 name: 🌼❓ Write to 'FLOWEY_CONDITION'
4304 - run: |
4305 flowey.exe v 5 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:469:80' --write-to-gh-env floweyvar1 --is-raw-string
4306 shell: bash
4307 name: 🌼 Write to 'floweyvar1'
4308 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
4309 - id: flowey_lib_common__git_checkout__1
4310 uses: actions/checkout@v4
4311 with:
4312 fetch-depth: '1'
4313 path: repo0
4314 persist-credentials: ${{ env.floweyvar1 }}
4315 name: checkout repo hvlite
4316 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
4317 - run: ${{ github.workspace }}
4318 shell: flowey.exe v 5 'flowey_lib_common::git_checkout:4:flowey_lib_common/src/git_checkout.rs:524:31' --update-from-file {0} --is-raw-string
4319 name: 🌼 Read from 'github.workspace'
4320 - name: report cloned repo directories
4321 run: flowey.exe e 5 flowey_lib_common::git_checkout 3
4322 shell: bash
4323 - name: resolve OpenVMM repo requests
4324 run: flowey.exe e 5 flowey_lib_hvlite::git_checkout_openvmm_repo 0
4325 shell: bash
4326 - name: report openvmm magicpath dir
4327 run: flowey.exe e 5 flowey_lib_hvlite::cfg_openvmm_magicpath 0
4328 shell: bash
4329 - name: move lxutil.dll into its magic folder
4330 run: flowey.exe e 5 flowey_lib_hvlite::init_openvmm_magicpath_lxutil 0
4331 shell: bash
4332 - name: set '-Dwarnings' in .cargo/config.toml
4333 run: flowey.exe e 5 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
4334 shell: bash
4335 - name: unpack protoc
4336 run: flowey.exe e 5 flowey_lib_common::download_protoc 0
4337 shell: bash
4338 - name: symlink protoc
4339 run: flowey.exe e 5 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
4340 shell: bash
4341 - name: inject cross env
4342 run: flowey.exe e 5 flowey_lib_hvlite::init_cross_build 1
4343 shell: bash
4344 - name: cargo build openvmm
4345 run: flowey.exe e 5 flowey_lib_common::run_cargo_build 0
4346 shell: bash
4347 - name: 🌼 write_into Var
4348 run: flowey.exe e 5 flowey_lib_hvlite::run_cargo_build 0
4349 shell: bash
4350 - name: report built openvmm
4351 run: flowey.exe e 5 flowey_lib_hvlite::build_openvmm 0
4352 shell: bash
4353 - name: copying openvmm to publish dir
4354 run: flowey.exe e 5 flowey_lib_hvlite::artifact_openvmm::publish 0
4355 shell: bash
4356 - name: inject cross env
4357 run: flowey.exe e 5 flowey_lib_hvlite::init_cross_build 2
4358 shell: bash
4359 - name: cargo build pipette
4360 run: flowey.exe e 5 flowey_lib_common::run_cargo_build 1
4361 shell: bash
4362 - name: 🌼 write_into Var
4363 run: flowey.exe e 5 flowey_lib_hvlite::run_cargo_build 1
4364 shell: bash
4365 - name: report built pipette
4366 run: flowey.exe e 5 flowey_lib_hvlite::build_pipette 0
4367 shell: bash
4368 - name: 🌼 write_into Var
4369 run: flowey.exe e 5 flowey_lib_hvlite::artifact_pipette::publish 0
4370 shell: bash
4371 - name: copying pipette to artifact dir
4372 run: flowey.exe e 5 flowey_lib_common::copy_to_artifact_dir 0
4373 shell: bash
4374 - name: create cargo-nextest cache dir
4375 run: flowey.exe e 5 flowey_lib_common::download_cargo_nextest 0
4376 shell: bash
4377 - name: Pre-processing cache vars
4378 run: flowey.exe e 5 flowey_lib_common::cache 0
4379 shell: bash
4380 - run: |
4381 flowey.exe v 5 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:458:72' --write-to-gh-env floweyvar2 --is-raw-string
4382 shell: bash
4383 name: 🌼 Write to 'floweyvar2'
4384 - run: |
4385 flowey.exe v 5 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar3 --is-raw-string
4386 shell: bash
4387 name: 🌼 Write to 'floweyvar3'
4388 - id: flowey_lib_common__cache__1
4389 uses: actions/cache@v4
4390 with:
4391 key: ${{ env.floweyvar2 }}
4392 path: ${{ env.floweyvar3 }}
4393 name: 'Restore cache: cargo-nextest'
4394 - run: ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
4395 shell: flowey.exe v 5 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:510:46' --update-from-file {0} --is-raw-string
4396 name: 🌼 Read from 'steps.flowey_lib_common__cache__1.outputs.cache-hit'
4397 - name: map Github cache-hit to flowey
4398 run: flowey.exe e 5 flowey_lib_common::cache 2
4399 shell: bash
4400 - name: report cargo install persistent dir
4401 run: flowey.exe e 5 flowey_lib_common::cfg_persistent_dir_cargo_install 0
4402 shell: bash
4403 - name: report $CARGO_HOME
4404 run: flowey.exe e 5 flowey_lib_common::install_rust 2
4405 shell: bash
4406 - name: installing cargo-nextest
4407 run: flowey.exe e 5 flowey_lib_common::download_cargo_nextest 1
4408 shell: bash
4409 - name: inject cross env
4410 run: flowey.exe e 5 flowey_lib_hvlite::init_cross_build 0
4411 shell: bash
4412 - name: build + archive 'vmm_tests' nextests
4413 run: flowey.exe e 5 flowey_lib_common::run_cargo_nextest_archive 0
4414 shell: bash
4415 - name: report built vmm_tests
4416 run: flowey.exe e 5 flowey_lib_hvlite::build_nextest_vmm_tests 0
4417 shell: bash
4418 - name: 🌼 write_into Var
4419 run: flowey.exe e 5 flowey_lib_hvlite::artifact_nextest_vmm_tests_archive::publish 0
4420 shell: bash
4421 - name: copying vmm_tests to artifact dir
4422 run: flowey.exe e 5 flowey_lib_common::copy_to_artifact_dir 1
4423 shell: bash
4424 - name: 'validate cache entry: cargo-nextest'
4425 run: flowey.exe e 5 flowey_lib_common::cache 3
4426 shell: bash
4427 - name: 'validate cache entry: gh-release-download'
4428 run: flowey.exe e 5 flowey_lib_common::cache 7
4429 shell: bash
4430 - name: 🌼📦 Publish x64-windows-openvmm
4431 uses: actions/upload-artifact@v4
4432 with:
4433 name: x64-windows-openvmm
4434 path: ${{ runner.temp }}/publish_artifacts/x64-windows-openvmm/
4435 - name: 🌼📦 Publish x64-windows-pipette
4436 uses: actions/upload-artifact@v4
4437 with:
4438 name: x64-windows-pipette
4439 path: ${{ runner.temp }}/publish_artifacts/x64-windows-pipette/
4440 - name: 🌼📦 Publish x64-windows-vmm-tests-archive
4441 uses: actions/upload-artifact@v4
4442 with:
4443 name: x64-windows-vmm-tests-archive
4444 path: ${{ runner.temp }}/publish_artifacts/x64-windows-vmm-tests-archive/
4445 - name: 🌼🧼 Redact bootstrap var db
4446 run: rm $AgentTempDirNormal/bootstrapped-flowey/job5.json
4447 shell: bash
4448 - name: 🌼🥾 Publish bootstrapped flowey
4449 uses: actions/upload-artifact@v4
4450 with:
4451 name: _internal-flowey-bootstrap-x86_64-windows-uid-10
4452 path: ${{ runner.temp }}/bootstrapped-flowey
4453 job6:
4454 name: build artifacts [aarch64-linux]
4455 runs-on:
4456 - self-hosted
4457 - 1ES.Pool=OpenVMM-GitHub-Linux-Pool-WestUS3
4458 - 1ES.ImageOverride=MMSUbuntu22.04-256GB
4459 permissions:
4460 contents: read
4461 id-token: write
4462 steps:
4463 - run: echo "injected!"
4464 name: 🌼🥾 Bootstrap flowey
4465 shell: bash
4466 - run: |
4467 set -x
4468 i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
4469 sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
4470 curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.82.0 -y
4471 . "$HOME/.cargo/env"
4472 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
4473 rustup show
4474 if: runner.os == 'Linux'
4475 name: rustup (Linux)
4476 shell: bash
4477 - run: |
4478 set -x
4479 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
4480 ./rustup-init.exe -y --default-toolchain=1.82.0
4481 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
4482 if: runner.os == 'Windows' && runner.arch == 'X64'
4483 name: rustup (Windows X64)
4484 shell: bash
4485 - run: |
4486 set -x
4487 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
4488 ./rustup-init.exe -y --default-toolchain=1.82.0
4489 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
4490 if: runner.os == 'Windows' && runner.arch == 'ARM64'
4491 name: rustup (Windows ARM64)
4492 shell: bash
4493 - uses: actions/checkout@v4
4494 with:
4495 path: flowey_bootstrap
4496 - name: Build flowey
4497 run: CARGO_INCREMENTAL=0 RUSTC_BOOTSTRAP=1 RUSTFLAGS="-Z threads=8" cargo build -p flowey_hvlite --target x86_64-unknown-linux-gnu --profile flowey-ci
4498 working-directory: flowey_bootstrap
4499 shell: bash
4500 - name: Stage flowey artifact
4501 run: |
4502 mkdir ./flowey_bootstrap_temp
4503 mv ./.github/workflows/openvmm-ci.yaml ./flowey_bootstrap_temp/pipeline.yaml
4504 mv target/x86_64-unknown-linux-gnu/flowey-ci/flowey_hvlite ./flowey_bootstrap_temp/flowey
4505 working-directory: flowey_bootstrap
4506 shell: bash
4507 - name: Copy flowey artifact
4508 run: |
4509 OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
4510 mkdir -p $OutDirNormal
4511 cp -r ./flowey_bootstrap_temp/* $OutDirNormal
4512 working-directory: flowey_bootstrap
4513 shell: bash
4514 - name: Cleanup staged flowey artifact
4515 run: rm -rf ./flowey_bootstrap_temp
4516 working-directory: flowey_bootstrap
4517 shell: bash
4518 - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH
4519 shell: bash
4520 name: 🌼📦 Add flowey to PATH
4521 - name: 🌼🔎 Self-check YAML
4522 run: |-
4523 ESCAPED_AGENT_TEMPDIR=$(
4524 cat <<'EOF' | sed 's/\\/\\\\/g'
4525 ${{ runner.temp }}
4526 EOF
4527 )
4528 flowey pipeline github --runtime $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci
4529 shell: bash
4530 - name: 🌼🛫 Initialize job
4531 run: |
4532 AgentTempDirNormal="${{ runner.temp }}"
4533 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
4534 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
4535
4536 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey
4537
4538 echo '"debug"' | flowey v 6 'FLOWEY_LOG' --update-from-stdin
4539 echo "${{ runner.temp }}/work" | flowey v 6 '_internal_WORKING_DIR' --update-from-stdin --is-raw-string
4540
4541 cat <<'EOF' | flowey v 6 'verbose' --update-from-stdin
4542 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
4543 EOF
4544 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-guest_test_uefi"
4545 echo "$AgentTempDirNormal/publish_artifacts/aarch64-guest_test_uefi" | flowey v 6 'artifact_publish_from_aarch64-guest_test_uefi' --update-from-stdin --is-raw-string
4546 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-igvmfilegen"
4547 echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-igvmfilegen" | flowey v 6 'artifact_publish_from_aarch64-linux-igvmfilegen' --update-from-stdin --is-raw-string
4548 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-ohcldiag-dev"
4549 echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-ohcldiag-dev" | flowey v 6 'artifact_publish_from_aarch64-linux-ohcldiag-dev' --update-from-stdin --is-raw-string
4550 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-openvmm"
4551 echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-openvmm" | flowey v 6 'artifact_publish_from_aarch64-linux-openvmm' --update-from-stdin --is-raw-string
4552 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-vmgs_lib"
4553 echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-vmgs_lib" | flowey v 6 'artifact_publish_from_aarch64-linux-vmgs_lib' --update-from-stdin --is-raw-string
4554 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-vmgstool"
4555 echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-vmgstool" | flowey v 6 'artifact_publish_from_aarch64-linux-vmgstool' --update-from-stdin --is-raw-string
4556 shell: bash
4557 - name: install Rust
4558 run: flowey e 6 flowey_lib_common::install_rust 0
4559 shell: bash
4560 - name: detect active toolchain
4561 run: flowey e 6 flowey_lib_common::install_rust 1
4562 shell: bash
4563 - name: report common cargo flags
4564 run: flowey e 6 flowey_lib_common::cfg_cargo_common_flags 0
4565 shell: bash
4566 - name: checking if packages need to be installed
4567 run: flowey e 6 flowey_lib_common::install_dist_pkg 0
4568 shell: bash
4569 - name: installing packages
4570 run: flowey e 6 flowey_lib_common::install_dist_pkg 1
4571 shell: bash
4572 - name: create gh-release-download cache dir
4573 run: flowey e 6 flowey_lib_common::download_gh_release 0
4574 shell: bash
4575 - name: Pre-processing cache vars
4576 run: flowey e 6 flowey_lib_common::cache 0
4577 shell: bash
4578 - run: |
4579 flowey v 6 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:458:72' --write-to-gh-env floweyvar1 --is-raw-string
4580 shell: bash
4581 name: 🌼 Write to 'floweyvar1'
4582 - run: |
4583 flowey v 6 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar2 --is-raw-string
4584 shell: bash
4585 name: 🌼 Write to 'floweyvar2'
4586 - id: flowey_lib_common__cache__1
4587 uses: actions/cache@v4
4588 with:
4589 key: ${{ env.floweyvar1 }}
4590 path: ${{ env.floweyvar2 }}
4591 name: 'Restore cache: gh-release-download'
4592 - run: ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
4593 shell: flowey v 6 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:510:46' --update-from-file {0} --is-raw-string
4594 name: 🌼 Read from 'steps.flowey_lib_common__cache__1.outputs.cache-hit'
4595 - name: map Github cache-hit to flowey
4596 run: flowey e 6 flowey_lib_common::cache 2
4597 shell: bash
4598 - name: download artifacts from github releases
4599 run: flowey e 6 flowey_lib_common::download_gh_release 1
4600 shell: bash
4601 - name: unpack Microsoft.WSL.LxUtil.AARCH64.zip
4602 run: flowey e 6 flowey_lib_hvlite::download_lxutil 0
4603 shell: bash
4604 - name: check if hvlite needs to be cloned
4605 run: flowey e 6 flowey_lib_common::git_checkout 0
4606 shell: bash
4607 - run: |
4608 flowey v 6 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:470:46' --write-to-gh-env FLOWEY_CONDITION
4609 shell: bash
4610 name: 🌼❓ Write to 'FLOWEY_CONDITION'
4611 - run: |
4612 flowey v 6 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:469:80' --write-to-gh-env floweyvar3 --is-raw-string
4613 shell: bash
4614 name: 🌼 Write to 'floweyvar3'
4615 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
4616 - id: flowey_lib_common__git_checkout__1
4617 uses: actions/checkout@v4
4618 with:
4619 fetch-depth: '1'
4620 path: repo0
4621 persist-credentials: ${{ env.floweyvar3 }}
4622 name: checkout repo hvlite
4623 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
4624 - run: ${{ github.workspace }}
4625 shell: flowey v 6 'flowey_lib_common::git_checkout:4:flowey_lib_common/src/git_checkout.rs:524:31' --update-from-file {0} --is-raw-string
4626 name: 🌼 Read from 'github.workspace'
4627 - name: report cloned repo directories
4628 run: flowey e 6 flowey_lib_common::git_checkout 3
4629 shell: bash
4630 - name: resolve OpenVMM repo requests
4631 run: flowey e 6 flowey_lib_hvlite::git_checkout_openvmm_repo 0
4632 shell: bash
4633 - name: report openvmm magicpath dir
4634 run: flowey e 6 flowey_lib_hvlite::cfg_openvmm_magicpath 0
4635 shell: bash
4636 - name: move lxutil.dll into its magic folder
4637 run: flowey e 6 flowey_lib_hvlite::init_openvmm_magicpath_lxutil 0
4638 shell: bash
4639 - name: set '-Dwarnings' in .cargo/config.toml
4640 run: flowey e 6 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
4641 shell: bash
4642 - name: unpack protoc
4643 run: flowey e 6 flowey_lib_common::download_protoc 0
4644 shell: bash
4645 - name: symlink protoc
4646 run: flowey e 6 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
4647 shell: bash
4648 - name: inject cross env
4649 run: flowey e 6 flowey_lib_hvlite::init_cross_build 1
4650 shell: bash
4651 - name: cargo build openvmm
4652 run: flowey e 6 flowey_lib_common::run_cargo_build 3
4653 shell: bash
4654 - name: 🌼 write_into Var
4655 run: flowey e 6 flowey_lib_hvlite::run_cargo_build 5
4656 shell: bash
4657 - name: split debug symbols
4658 run: flowey e 6 flowey_lib_hvlite::run_split_debug_info 1
4659 shell: bash
4660 - name: reporting split debug info
4661 run: flowey e 6 flowey_lib_hvlite::run_cargo_build 6
4662 shell: bash
4663 - name: report built openvmm
4664 run: flowey e 6 flowey_lib_hvlite::build_openvmm 0
4665 shell: bash
4666 - name: copying openvmm to publish dir
4667 run: flowey e 6 flowey_lib_hvlite::artifact_openvmm::publish 0
4668 shell: bash
4669 - name: inject cross env
4670 run: flowey e 6 flowey_lib_hvlite::init_cross_build 3
4671 shell: bash
4672 - name: cargo build vmgstool
4673 run: flowey e 6 flowey_lib_common::run_cargo_build 5
4674 shell: bash
4675 - name: 🌼 write_into Var
4676 run: flowey e 6 flowey_lib_hvlite::run_cargo_build 8
4677 shell: bash
4678 - name: split debug symbols
4679 run: flowey e 6 flowey_lib_hvlite::run_split_debug_info 2
4680 shell: bash
4681 - name: reporting split debug info
4682 run: flowey e 6 flowey_lib_hvlite::run_cargo_build 9
4683 shell: bash
4684 - name: report built vmgstool
4685 run: flowey e 6 flowey_lib_hvlite::build_vmgstool 0
4686 shell: bash
4687 - name: 🌼 write_into Var
4688 run: flowey e 6 flowey_lib_hvlite::artifact_vmgstool::publish 0
4689 shell: bash
4690 - name: copying vmgstool to artifact dir
4691 run: flowey e 6 flowey_lib_common::copy_to_artifact_dir 4
4692 shell: bash
4693 - name: inject cross env
4694 run: flowey e 6 flowey_lib_hvlite::init_cross_build 2
4695 shell: bash
4696 - name: cargo build vmgs_lib
4697 run: flowey e 6 flowey_lib_common::run_cargo_build 4
4698 shell: bash
4699 - name: 🌼 write_into Var
4700 run: flowey e 6 flowey_lib_hvlite::run_cargo_build 7
4701 shell: bash
4702 - name: check built vmgs_lib
4703 run: flowey e 6 flowey_lib_hvlite::build_and_test_vmgs_lib 0
4704 shell: bash
4705 - name: report built vmgs_lib
4706 run: flowey e 6 flowey_lib_hvlite::build_and_test_vmgs_lib 1
4707 shell: bash
4708 - name: 🌼 write_into Var
4709 run: flowey e 6 flowey_lib_hvlite::artifact_vmgs_lib::publish 0
4710 shell: bash
4711 - name: copying vmgs_lib to artifact dir
4712 run: flowey e 6 flowey_lib_common::copy_to_artifact_dir 3
4713 shell: bash
4714 - name: inject cross env
4715 run: flowey e 6 flowey_lib_hvlite::init_cross_build 4
4716 shell: bash
4717 - name: cargo build igvmfilegen
4718 run: flowey e 6 flowey_lib_common::run_cargo_build 1
4719 shell: bash
4720 - name: 🌼 write_into Var
4721 run: flowey e 6 flowey_lib_hvlite::run_cargo_build 1
4722 shell: bash
4723 - name: split debug symbols
4724 run: flowey e 6 flowey_lib_hvlite::run_split_debug_info 3
4725 shell: bash
4726 - name: reporting split debug info
4727 run: flowey e 6 flowey_lib_hvlite::run_cargo_build 2
4728 shell: bash
4729 - name: report built igvmfilegen
4730 run: flowey e 6 flowey_lib_hvlite::build_igvmfilegen 0
4731 shell: bash
4732 - name: 🌼 write_into Var
4733 run: flowey e 6 flowey_lib_hvlite::artifact_igvmfilegen::publish 0
4734 shell: bash
4735 - name: copying igvmfilegen to artifact dir
4736 run: flowey e 6 flowey_lib_common::copy_to_artifact_dir 1
4737 shell: bash
4738 - name: inject cross env
4739 run: flowey e 6 flowey_lib_hvlite::init_cross_build 0
4740 shell: bash
4741 - name: cargo build ohcldiag-dev
4742 run: flowey e 6 flowey_lib_common::run_cargo_build 2
4743 shell: bash
4744 - name: 🌼 write_into Var
4745 run: flowey e 6 flowey_lib_hvlite::run_cargo_build 3
4746 shell: bash
4747 - name: split debug symbols
4748 run: flowey e 6 flowey_lib_hvlite::run_split_debug_info 0
4749 shell: bash
4750 - name: reporting split debug info
4751 run: flowey e 6 flowey_lib_hvlite::run_cargo_build 4
4752 shell: bash
4753 - name: report built ohcldiag_dev
4754 run: flowey e 6 flowey_lib_hvlite::build_ohcldiag_dev 0
4755 shell: bash
4756 - name: 🌼 write_into Var
4757 run: flowey e 6 flowey_lib_hvlite::artifact_ohcldiag_dev::publish 0
4758 shell: bash
4759 - name: copying ohcldiag-dev to artifact dir
4760 run: flowey e 6 flowey_lib_common::copy_to_artifact_dir 2
4761 shell: bash
4762 - name: inject cross env
4763 run: flowey e 6 flowey_lib_hvlite::init_cross_build 5
4764 shell: bash
4765 - name: cargo build guest_test_uefi
4766 run: flowey e 6 flowey_lib_common::run_cargo_build 0
4767 shell: bash
4768 - name: 🌼 write_into Var
4769 run: flowey e 6 flowey_lib_hvlite::run_cargo_build 0
4770 shell: bash
4771 - name: build guest_test_uefi.img
4772 run: flowey e 6 flowey_lib_hvlite::build_guest_test_uefi 0
4773 shell: bash
4774 - name: 🌼 write_into Var
4775 run: flowey e 6 flowey_lib_hvlite::artifact_guest_test_uefi::publish 0
4776 shell: bash
4777 - name: copying guest_test_uefi to artifact dir
4778 run: flowey e 6 flowey_lib_common::copy_to_artifact_dir 0
4779 shell: bash
4780 - name: 'validate cache entry: gh-release-download'
4781 run: flowey e 6 flowey_lib_common::cache 3
4782 shell: bash
4783 - name: 🌼📦 Publish aarch64-guest_test_uefi
4784 uses: actions/upload-artifact@v4
4785 with:
4786 name: aarch64-guest_test_uefi
4787 path: ${{ runner.temp }}/publish_artifacts/aarch64-guest_test_uefi/
4788 - name: 🌼📦 Publish aarch64-linux-igvmfilegen
4789 uses: actions/upload-artifact@v4
4790 with:
4791 name: aarch64-linux-igvmfilegen
4792 path: ${{ runner.temp }}/publish_artifacts/aarch64-linux-igvmfilegen/
4793 - name: 🌼📦 Publish aarch64-linux-ohcldiag-dev
4794 uses: actions/upload-artifact@v4
4795 with:
4796 name: aarch64-linux-ohcldiag-dev
4797 path: ${{ runner.temp }}/publish_artifacts/aarch64-linux-ohcldiag-dev/
4798 - name: 🌼📦 Publish aarch64-linux-openvmm
4799 uses: actions/upload-artifact@v4
4800 with:
4801 name: aarch64-linux-openvmm
4802 path: ${{ runner.temp }}/publish_artifacts/aarch64-linux-openvmm/
4803 - name: 🌼📦 Publish aarch64-linux-vmgs_lib
4804 uses: actions/upload-artifact@v4
4805 with:
4806 name: aarch64-linux-vmgs_lib
4807 path: ${{ runner.temp }}/publish_artifacts/aarch64-linux-vmgs_lib/
4808 - name: 🌼📦 Publish aarch64-linux-vmgstool
4809 uses: actions/upload-artifact@v4
4810 with:
4811 name: aarch64-linux-vmgstool
4812 path: ${{ runner.temp }}/publish_artifacts/aarch64-linux-vmgstool/
4813 job7:
4814 name: build artifacts [x64-linux]
4815 runs-on:
4816 - self-hosted
4817 - 1ES.Pool=OpenVMM-GitHub-Linux-Pool-WestUS3
4818 - 1ES.ImageOverride=MMSUbuntu22.04-256GB
4819 permissions:
4820 contents: read
4821 id-token: write
4822 steps:
4823 - run: echo "injected!"
4824 name: 🌼🥾 Bootstrap flowey
4825 shell: bash
4826 - run: |
4827 set -x
4828 i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
4829 sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
4830 curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.82.0 -y
4831 . "$HOME/.cargo/env"
4832 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
4833 rustup show
4834 if: runner.os == 'Linux'
4835 name: rustup (Linux)
4836 shell: bash
4837 - run: |
4838 set -x
4839 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
4840 ./rustup-init.exe -y --default-toolchain=1.82.0
4841 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
4842 if: runner.os == 'Windows' && runner.arch == 'X64'
4843 name: rustup (Windows X64)
4844 shell: bash
4845 - run: |
4846 set -x
4847 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
4848 ./rustup-init.exe -y --default-toolchain=1.82.0
4849 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
4850 if: runner.os == 'Windows' && runner.arch == 'ARM64'
4851 name: rustup (Windows ARM64)
4852 shell: bash
4853 - uses: actions/checkout@v4
4854 with:
4855 path: flowey_bootstrap
4856 - name: Build flowey
4857 run: CARGO_INCREMENTAL=0 RUSTC_BOOTSTRAP=1 RUSTFLAGS="-Z threads=8" cargo build -p flowey_hvlite --target x86_64-unknown-linux-gnu --profile flowey-ci
4858 working-directory: flowey_bootstrap
4859 shell: bash
4860 - name: Stage flowey artifact
4861 run: |
4862 mkdir ./flowey_bootstrap_temp
4863 mv ./.github/workflows/openvmm-ci.yaml ./flowey_bootstrap_temp/pipeline.yaml
4864 mv target/x86_64-unknown-linux-gnu/flowey-ci/flowey_hvlite ./flowey_bootstrap_temp/flowey
4865 working-directory: flowey_bootstrap
4866 shell: bash
4867 - name: Copy flowey artifact
4868 run: |
4869 OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
4870 mkdir -p $OutDirNormal
4871 cp -r ./flowey_bootstrap_temp/* $OutDirNormal
4872 working-directory: flowey_bootstrap
4873 shell: bash
4874 - name: Cleanup staged flowey artifact
4875 run: rm -rf ./flowey_bootstrap_temp
4876 working-directory: flowey_bootstrap
4877 shell: bash
4878 - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH
4879 shell: bash
4880 name: 🌼📦 Add flowey to PATH
4881 - name: 🌼🔎 Self-check YAML
4882 run: |-
4883 ESCAPED_AGENT_TEMPDIR=$(
4884 cat <<'EOF' | sed 's/\\/\\\\/g'
4885 ${{ runner.temp }}
4886 EOF
4887 )
4888 flowey pipeline github --runtime $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci
4889 shell: bash
4890 - name: 🌼🛫 Initialize job
4891 run: |
4892 AgentTempDirNormal="${{ runner.temp }}"
4893 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
4894 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
4895
4896 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey
4897
4898 echo '"debug"' | flowey v 7 'FLOWEY_LOG' --update-from-stdin
4899 echo "${{ runner.temp }}/work" | flowey v 7 '_internal_WORKING_DIR' --update-from-stdin --is-raw-string
4900
4901 cat <<'EOF' | flowey v 7 'verbose' --update-from-stdin
4902 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
4903 EOF
4904 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-guest_test_uefi"
4905 echo "$AgentTempDirNormal/publish_artifacts/x64-guest_test_uefi" | flowey v 7 'artifact_publish_from_x64-guest_test_uefi' --update-from-stdin --is-raw-string
4906 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-igvmfilegen"
4907 echo "$AgentTempDirNormal/publish_artifacts/x64-linux-igvmfilegen" | flowey v 7 'artifact_publish_from_x64-linux-igvmfilegen' --update-from-stdin --is-raw-string
4908 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-ohcldiag-dev"
4909 echo "$AgentTempDirNormal/publish_artifacts/x64-linux-ohcldiag-dev" | flowey v 7 'artifact_publish_from_x64-linux-ohcldiag-dev' --update-from-stdin --is-raw-string
4910 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-openvmm"
4911 echo "$AgentTempDirNormal/publish_artifacts/x64-linux-openvmm" | flowey v 7 'artifact_publish_from_x64-linux-openvmm' --update-from-stdin --is-raw-string
4912 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-vmgs_lib"
4913 echo "$AgentTempDirNormal/publish_artifacts/x64-linux-vmgs_lib" | flowey v 7 'artifact_publish_from_x64-linux-vmgs_lib' --update-from-stdin --is-raw-string
4914 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-vmgstool"
4915 echo "$AgentTempDirNormal/publish_artifacts/x64-linux-vmgstool" | flowey v 7 'artifact_publish_from_x64-linux-vmgstool' --update-from-stdin --is-raw-string
4916 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-vmm-tests-archive"
4917 echo "$AgentTempDirNormal/publish_artifacts/x64-linux-vmm-tests-archive" | flowey v 7 'artifact_publish_from_x64-linux-vmm-tests-archive' --update-from-stdin --is-raw-string
4918 shell: bash
4919 - name: install Rust
4920 run: flowey e 7 flowey_lib_common::install_rust 0
4921 shell: bash
4922 - name: detect active toolchain
4923 run: flowey e 7 flowey_lib_common::install_rust 1
4924 shell: bash
4925 - name: report common cargo flags
4926 run: flowey e 7 flowey_lib_common::cfg_cargo_common_flags 0
4927 shell: bash
4928 - name: checking if packages need to be installed
4929 run: flowey e 7 flowey_lib_common::install_dist_pkg 0
4930 shell: bash
4931 - name: installing packages
4932 run: flowey e 7 flowey_lib_common::install_dist_pkg 1
4933 shell: bash
4934 - name: create gh-release-download cache dir
4935 run: flowey e 7 flowey_lib_common::download_gh_release 0
4936 shell: bash
4937 - name: Pre-processing cache vars
4938 run: flowey e 7 flowey_lib_common::cache 4
4939 shell: bash
4940 - run: |
4941 flowey v 7 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:458:72' --write-to-gh-env floweyvar3 --is-raw-string
4942 shell: bash
4943 name: 🌼 Write to 'floweyvar3'
4944 - run: |
4945 flowey v 7 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar4 --is-raw-string
4946 shell: bash
4947 name: 🌼 Write to 'floweyvar4'
4948 - id: flowey_lib_common__cache__5
4949 uses: actions/cache@v4
4950 with:
4951 key: ${{ env.floweyvar3 }}
4952 path: ${{ env.floweyvar4 }}
4953 name: 'Restore cache: gh-release-download'
4954 - run: ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
4955 shell: flowey v 7 'flowey_lib_common::cache:12:flowey_lib_common/src/cache.rs:510:46' --update-from-file {0} --is-raw-string
4956 name: 🌼 Read from 'steps.flowey_lib_common__cache__5.outputs.cache-hit'
4957 - name: map Github cache-hit to flowey
4958 run: flowey e 7 flowey_lib_common::cache 6
4959 shell: bash
4960 - name: download artifacts from github releases
4961 run: flowey e 7 flowey_lib_common::download_gh_release 1
4962 shell: bash
4963 - name: unpack Microsoft.WSL.LxUtil.x64.zip
4964 run: flowey e 7 flowey_lib_hvlite::download_lxutil 0
4965 shell: bash
4966 - name: check if hvlite needs to be cloned
4967 run: flowey e 7 flowey_lib_common::git_checkout 0
4968 shell: bash
4969 - run: |
4970 flowey v 7 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:470:46' --write-to-gh-env FLOWEY_CONDITION
4971 shell: bash
4972 name: 🌼❓ Write to 'FLOWEY_CONDITION'
4973 - run: |
4974 flowey v 7 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:469:80' --write-to-gh-env floweyvar5 --is-raw-string
4975 shell: bash
4976 name: 🌼 Write to 'floweyvar5'
4977 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
4978 - id: flowey_lib_common__git_checkout__1
4979 uses: actions/checkout@v4
4980 with:
4981 fetch-depth: '1'
4982 path: repo0
4983 persist-credentials: ${{ env.floweyvar5 }}
4984 name: checkout repo hvlite
4985 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
4986 - run: ${{ github.workspace }}
4987 shell: flowey v 7 'flowey_lib_common::git_checkout:4:flowey_lib_common/src/git_checkout.rs:524:31' --update-from-file {0} --is-raw-string
4988 name: 🌼 Read from 'github.workspace'
4989 - name: report cloned repo directories
4990 run: flowey e 7 flowey_lib_common::git_checkout 3
4991 shell: bash
4992 - name: resolve OpenVMM repo requests
4993 run: flowey e 7 flowey_lib_hvlite::git_checkout_openvmm_repo 0
4994 shell: bash
4995 - name: report openvmm magicpath dir
4996 run: flowey e 7 flowey_lib_hvlite::cfg_openvmm_magicpath 0
4997 shell: bash
4998 - name: move lxutil.dll into its magic folder
4999 run: flowey e 7 flowey_lib_hvlite::init_openvmm_magicpath_lxutil 0
5000 shell: bash
5001 - name: set '-Dwarnings' in .cargo/config.toml
5002 run: flowey e 7 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
5003 shell: bash
5004 - name: unpack protoc
5005 run: flowey e 7 flowey_lib_common::download_protoc 0
5006 shell: bash
5007 - name: symlink protoc
5008 run: flowey e 7 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
5009 shell: bash
5010 - name: inject cross env
5011 run: flowey e 7 flowey_lib_hvlite::init_cross_build 2
5012 shell: bash
5013 - name: cargo build openvmm
5014 run: flowey e 7 flowey_lib_common::run_cargo_build 3
5015 shell: bash
5016 - name: 🌼 write_into Var
5017 run: flowey e 7 flowey_lib_hvlite::run_cargo_build 5
5018 shell: bash
5019 - name: split debug symbols
5020 run: flowey e 7 flowey_lib_hvlite::run_split_debug_info 1
5021 shell: bash
5022 - name: reporting split debug info
5023 run: flowey e 7 flowey_lib_hvlite::run_cargo_build 6
5024 shell: bash
5025 - name: report built openvmm
5026 run: flowey e 7 flowey_lib_hvlite::build_openvmm 0
5027 shell: bash
5028 - name: copying openvmm to publish dir
5029 run: flowey e 7 flowey_lib_hvlite::artifact_openvmm::publish 0
5030 shell: bash
5031 - name: inject cross env
5032 run: flowey e 7 flowey_lib_hvlite::init_cross_build 4
5033 shell: bash
5034 - name: cargo build vmgstool
5035 run: flowey e 7 flowey_lib_common::run_cargo_build 5
5036 shell: bash
5037 - name: 🌼 write_into Var
5038 run: flowey e 7 flowey_lib_hvlite::run_cargo_build 8
5039 shell: bash
5040 - name: split debug symbols
5041 run: flowey e 7 flowey_lib_hvlite::run_split_debug_info 2
5042 shell: bash
5043 - name: reporting split debug info
5044 run: flowey e 7 flowey_lib_hvlite::run_cargo_build 9
5045 shell: bash
5046 - name: report built vmgstool
5047 run: flowey e 7 flowey_lib_hvlite::build_vmgstool 0
5048 shell: bash
5049 - name: 🌼 write_into Var
5050 run: flowey e 7 flowey_lib_hvlite::artifact_vmgstool::publish 0
5051 shell: bash
5052 - name: copying vmgstool to artifact dir
5053 run: flowey e 7 flowey_lib_common::copy_to_artifact_dir 4
5054 shell: bash
5055 - name: inject cross env
5056 run: flowey e 7 flowey_lib_hvlite::init_cross_build 3
5057 shell: bash
5058 - name: cargo build vmgs_lib
5059 run: flowey e 7 flowey_lib_common::run_cargo_build 4
5060 shell: bash
5061 - name: 🌼 write_into Var
5062 run: flowey e 7 flowey_lib_hvlite::run_cargo_build 7
5063 shell: bash
5064 - name: check built vmgs_lib
5065 run: flowey e 7 flowey_lib_hvlite::build_and_test_vmgs_lib 0
5066 shell: bash
5067 - name: test vmgs_lib
5068 run: flowey e 7 flowey_lib_hvlite::build_and_test_vmgs_lib 1
5069 shell: bash
5070 - name: report built vmgs_lib
5071 run: flowey e 7 flowey_lib_hvlite::build_and_test_vmgs_lib 2
5072 shell: bash
5073 - name: 🌼 write_into Var
5074 run: flowey e 7 flowey_lib_hvlite::artifact_vmgs_lib::publish 0
5075 shell: bash
5076 - name: copying vmgs_lib to artifact dir
5077 run: flowey e 7 flowey_lib_common::copy_to_artifact_dir 3
5078 shell: bash
5079 - name: inject cross env
5080 run: flowey e 7 flowey_lib_hvlite::init_cross_build 5
5081 shell: bash
5082 - name: cargo build igvmfilegen
5083 run: flowey e 7 flowey_lib_common::run_cargo_build 1
5084 shell: bash
5085 - name: 🌼 write_into Var
5086 run: flowey e 7 flowey_lib_hvlite::run_cargo_build 1
5087 shell: bash
5088 - name: split debug symbols
5089 run: flowey e 7 flowey_lib_hvlite::run_split_debug_info 3
5090 shell: bash
5091 - name: reporting split debug info
5092 run: flowey e 7 flowey_lib_hvlite::run_cargo_build 2
5093 shell: bash
5094 - name: report built igvmfilegen
5095 run: flowey e 7 flowey_lib_hvlite::build_igvmfilegen 0
5096 shell: bash
5097 - name: 🌼 write_into Var
5098 run: flowey e 7 flowey_lib_hvlite::artifact_igvmfilegen::publish 0
5099 shell: bash
5100 - name: copying igvmfilegen to artifact dir
5101 run: flowey e 7 flowey_lib_common::copy_to_artifact_dir 1
5102 shell: bash
5103 - name: inject cross env
5104 run: flowey e 7 flowey_lib_hvlite::init_cross_build 1
5105 shell: bash
5106 - name: cargo build ohcldiag-dev
5107 run: flowey e 7 flowey_lib_common::run_cargo_build 2
5108 shell: bash
5109 - name: 🌼 write_into Var
5110 run: flowey e 7 flowey_lib_hvlite::run_cargo_build 3
5111 shell: bash
5112 - name: split debug symbols
5113 run: flowey e 7 flowey_lib_hvlite::run_split_debug_info 0
5114 shell: bash
5115 - name: reporting split debug info
5116 run: flowey e 7 flowey_lib_hvlite::run_cargo_build 4
5117 shell: bash
5118 - name: report built ohcldiag_dev
5119 run: flowey e 7 flowey_lib_hvlite::build_ohcldiag_dev 0
5120 shell: bash
5121 - name: 🌼 write_into Var
5122 run: flowey e 7 flowey_lib_hvlite::artifact_ohcldiag_dev::publish 0
5123 shell: bash
5124 - name: copying ohcldiag-dev to artifact dir
5125 run: flowey e 7 flowey_lib_common::copy_to_artifact_dir 2
5126 shell: bash
5127 - name: inject cross env
5128 run: flowey e 7 flowey_lib_hvlite::init_cross_build 6
5129 shell: bash
5130 - name: cargo build guest_test_uefi
5131 run: flowey e 7 flowey_lib_common::run_cargo_build 0
5132 shell: bash
5133 - name: 🌼 write_into Var
5134 run: flowey e 7 flowey_lib_hvlite::run_cargo_build 0
5135 shell: bash
5136 - name: build guest_test_uefi.img
5137 run: flowey e 7 flowey_lib_hvlite::build_guest_test_uefi 0
5138 shell: bash
5139 - name: 🌼 write_into Var
5140 run: flowey e 7 flowey_lib_hvlite::artifact_guest_test_uefi::publish 0
5141 shell: bash
5142 - name: copying guest_test_uefi to artifact dir
5143 run: flowey e 7 flowey_lib_common::copy_to_artifact_dir 0
5144 shell: bash
5145 - name: create cargo-nextest cache dir
5146 run: flowey e 7 flowey_lib_common::download_cargo_nextest 0
5147 shell: bash
5148 - name: Pre-processing cache vars
5149 run: flowey e 7 flowey_lib_common::cache 0
5150 shell: bash
5151 - run: |
5152 flowey v 7 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:458:72' --write-to-gh-env floweyvar1 --is-raw-string
5153 shell: bash
5154 name: 🌼 Write to 'floweyvar1'
5155 - run: |
5156 flowey v 7 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar2 --is-raw-string
5157 shell: bash
5158 name: 🌼 Write to 'floweyvar2'
5159 - id: flowey_lib_common__cache__1
5160 uses: actions/cache@v4
5161 with:
5162 key: ${{ env.floweyvar1 }}
5163 path: ${{ env.floweyvar2 }}
5164 name: 'Restore cache: cargo-nextest'
5165 - run: ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
5166 shell: flowey v 7 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:510:46' --update-from-file {0} --is-raw-string
5167 name: 🌼 Read from 'steps.flowey_lib_common__cache__1.outputs.cache-hit'
5168 - name: map Github cache-hit to flowey
5169 run: flowey e 7 flowey_lib_common::cache 2
5170 shell: bash
5171 - name: report cargo install persistent dir
5172 run: flowey e 7 flowey_lib_common::cfg_persistent_dir_cargo_install 0
5173 shell: bash
5174 - name: report $CARGO_HOME
5175 run: flowey e 7 flowey_lib_common::install_rust 2
5176 shell: bash
5177 - name: installing cargo-nextest
5178 run: flowey e 7 flowey_lib_common::download_cargo_nextest 1
5179 shell: bash
5180 - name: inject cross env
5181 run: flowey e 7 flowey_lib_hvlite::init_cross_build 0
5182 shell: bash
5183 - name: build + archive 'vmm_tests' nextests
5184 run: flowey e 7 flowey_lib_common::run_cargo_nextest_archive 0
5185 shell: bash
5186 - name: report built vmm_tests
5187 run: flowey e 7 flowey_lib_hvlite::build_nextest_vmm_tests 0
5188 shell: bash
5189 - name: 🌼 write_into Var
5190 run: flowey e 7 flowey_lib_hvlite::artifact_nextest_vmm_tests_archive::publish 0
5191 shell: bash
5192 - name: copying vmm_tests to artifact dir
5193 run: flowey e 7 flowey_lib_common::copy_to_artifact_dir 5
5194 shell: bash
5195 - name: 'validate cache entry: cargo-nextest'
5196 run: flowey e 7 flowey_lib_common::cache 3
5197 shell: bash
5198 - name: 'validate cache entry: gh-release-download'
5199 run: flowey e 7 flowey_lib_common::cache 7
5200 shell: bash
5201 - name: 🌼📦 Publish x64-guest_test_uefi
5202 uses: actions/upload-artifact@v4
5203 with:
5204 name: x64-guest_test_uefi
5205 path: ${{ runner.temp }}/publish_artifacts/x64-guest_test_uefi/
5206 - name: 🌼📦 Publish x64-linux-igvmfilegen
5207 uses: actions/upload-artifact@v4
5208 with:
5209 name: x64-linux-igvmfilegen
5210 path: ${{ runner.temp }}/publish_artifacts/x64-linux-igvmfilegen/
5211 - name: 🌼📦 Publish x64-linux-ohcldiag-dev
5212 uses: actions/upload-artifact@v4
5213 with:
5214 name: x64-linux-ohcldiag-dev
5215 path: ${{ runner.temp }}/publish_artifacts/x64-linux-ohcldiag-dev/
5216 - name: 🌼📦 Publish x64-linux-openvmm
5217 uses: actions/upload-artifact@v4
5218 with:
5219 name: x64-linux-openvmm
5220 path: ${{ runner.temp }}/publish_artifacts/x64-linux-openvmm/
5221 - name: 🌼📦 Publish x64-linux-vmgs_lib
5222 uses: actions/upload-artifact@v4
5223 with:
5224 name: x64-linux-vmgs_lib
5225 path: ${{ runner.temp }}/publish_artifacts/x64-linux-vmgs_lib/
5226 - name: 🌼📦 Publish x64-linux-vmgstool
5227 uses: actions/upload-artifact@v4
5228 with:
5229 name: x64-linux-vmgstool
5230 path: ${{ runner.temp }}/publish_artifacts/x64-linux-vmgstool/
5231 - name: 🌼📦 Publish x64-linux-vmm-tests-archive
5232 uses: actions/upload-artifact@v4
5233 with:
5234 name: x64-linux-vmm-tests-archive
5235 path: ${{ runner.temp }}/publish_artifacts/x64-linux-vmm-tests-archive/
5236 job8:
5237 name: build openhcl [aarch64-linux]
5238 runs-on:
5239 - self-hosted
5240 - 1ES.Pool=OpenVMM-GitHub-Linux-Pool-WestUS3
5241 - 1ES.ImageOverride=MMSUbuntu22.04-256GB
5242 permissions:
5243 contents: read
5244 id-token: write
5245 steps:
5246 - run: echo "injected!"
5247 name: 🌼🥾 Bootstrap flowey
5248 shell: bash
5249 - run: |
5250 set -x
5251 i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
5252 sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
5253 curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.82.0 -y
5254 . "$HOME/.cargo/env"
5255 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
5256 rustup show
5257 if: runner.os == 'Linux'
5258 name: rustup (Linux)
5259 shell: bash
5260 - run: |
5261 set -x
5262 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
5263 ./rustup-init.exe -y --default-toolchain=1.82.0
5264 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
5265 if: runner.os == 'Windows' && runner.arch == 'X64'
5266 name: rustup (Windows X64)
5267 shell: bash
5268 - run: |
5269 set -x
5270 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
5271 ./rustup-init.exe -y --default-toolchain=1.82.0
5272 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
5273 if: runner.os == 'Windows' && runner.arch == 'ARM64'
5274 name: rustup (Windows ARM64)
5275 shell: bash
5276 - uses: actions/checkout@v4
5277 with:
5278 path: flowey_bootstrap
5279 - name: Build flowey
5280 run: CARGO_INCREMENTAL=0 RUSTC_BOOTSTRAP=1 RUSTFLAGS="-Z threads=8" cargo build -p flowey_hvlite --target x86_64-unknown-linux-gnu --profile flowey-ci
5281 working-directory: flowey_bootstrap
5282 shell: bash
5283 - name: Stage flowey artifact
5284 run: |
5285 mkdir ./flowey_bootstrap_temp
5286 mv ./.github/workflows/openvmm-ci.yaml ./flowey_bootstrap_temp/pipeline.yaml
5287 mv target/x86_64-unknown-linux-gnu/flowey-ci/flowey_hvlite ./flowey_bootstrap_temp/flowey
5288 working-directory: flowey_bootstrap
5289 shell: bash
5290 - name: Copy flowey artifact
5291 run: |
5292 OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
5293 mkdir -p $OutDirNormal
5294 cp -r ./flowey_bootstrap_temp/* $OutDirNormal
5295 working-directory: flowey_bootstrap
5296 shell: bash
5297 - name: Cleanup staged flowey artifact
5298 run: rm -rf ./flowey_bootstrap_temp
5299 working-directory: flowey_bootstrap
5300 shell: bash
5301 - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH
5302 shell: bash
5303 name: 🌼📦 Add flowey to PATH
5304 - name: 🌼🔎 Self-check YAML
5305 run: |-
5306 ESCAPED_AGENT_TEMPDIR=$(
5307 cat <<'EOF' | sed 's/\\/\\\\/g'
5308 ${{ runner.temp }}
5309 EOF
5310 )
5311 flowey pipeline github --runtime $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci
5312 shell: bash
5313 - name: 🌼🛫 Initialize job
5314 run: |
5315 AgentTempDirNormal="${{ runner.temp }}"
5316 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
5317 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
5318
5319 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey
5320
5321 echo '"debug"' | flowey v 8 'FLOWEY_LOG' --update-from-stdin
5322 echo "${{ runner.temp }}/work" | flowey v 8 '_internal_WORKING_DIR' --update-from-stdin --is-raw-string
5323
5324 cat <<'EOF' | flowey v 8 'verbose' --update-from-stdin
5325 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
5326 EOF
5327 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-musl-pipette"
5328 echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-musl-pipette" | flowey v 8 'artifact_publish_from_aarch64-linux-musl-pipette' --update-from-stdin --is-raw-string
5329 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-openhcl-igvm"
5330 echo "$AgentTempDirNormal/publish_artifacts/aarch64-openhcl-igvm" | flowey v 8 'artifact_publish_from_aarch64-openhcl-igvm' --update-from-stdin --is-raw-string
5331 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-openhcl-igvm-extras"
5332 echo "$AgentTempDirNormal/publish_artifacts/aarch64-openhcl-igvm-extras" | flowey v 8 'artifact_publish_from_aarch64-openhcl-igvm-extras' --update-from-stdin --is-raw-string
5333 shell: bash
5334 - name: checking if packages need to be installed
5335 run: flowey e 8 flowey_lib_common::install_dist_pkg 0
5336 shell: bash
5337 - name: installing packages
5338 run: flowey e 8 flowey_lib_common::install_dist_pkg 1
5339 shell: bash
5340 - name: create gh-release-download cache dir
5341 run: flowey e 8 flowey_lib_common::download_gh_release 0
5342 shell: bash
5343 - name: Pre-processing cache vars
5344 run: flowey e 8 flowey_lib_common::cache 0
5345 shell: bash
5346 - run: |
5347 flowey v 8 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:458:72' --write-to-gh-env floweyvar1 --is-raw-string
5348 shell: bash
5349 name: 🌼 Write to 'floweyvar1'
5350 - run: |
5351 flowey v 8 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar2 --is-raw-string
5352 shell: bash
5353 name: 🌼 Write to 'floweyvar2'
5354 - id: flowey_lib_common__cache__1
5355 uses: actions/cache@v4
5356 with:
5357 key: ${{ env.floweyvar1 }}
5358 path: ${{ env.floweyvar2 }}
5359 name: 'Restore cache: gh-release-download'
5360 - run: ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
5361 shell: flowey v 8 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:510:46' --update-from-file {0} --is-raw-string
5362 name: 🌼 Read from 'steps.flowey_lib_common__cache__1.outputs.cache-hit'
5363 - name: map Github cache-hit to flowey
5364 run: flowey e 8 flowey_lib_common::cache 2
5365 shell: bash
5366 - name: download artifacts from github releases
5367 run: flowey e 8 flowey_lib_common::download_gh_release 1
5368 shell: bash
5369 - name: unpack mu_msvm package (aarch64)
5370 run: flowey e 8 flowey_lib_hvlite::download_uefi_mu_msvm 0
5371 shell: bash
5372 - name: install Rust
5373 run: flowey e 8 flowey_lib_common::install_rust 0
5374 shell: bash
5375 - name: detect active toolchain
5376 run: flowey e 8 flowey_lib_common::install_rust 1
5377 shell: bash
5378 - name: report common cargo flags
5379 run: flowey e 8 flowey_lib_common::cfg_cargo_common_flags 0
5380 shell: bash
5381 - name: check if hvlite needs to be cloned
5382 run: flowey e 8 flowey_lib_common::git_checkout 0
5383 shell: bash
5384 - run: |
5385 flowey v 8 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:470:46' --write-to-gh-env FLOWEY_CONDITION
5386 shell: bash
5387 name: 🌼❓ Write to 'FLOWEY_CONDITION'
5388 - run: |
5389 flowey v 8 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:469:80' --write-to-gh-env floweyvar3 --is-raw-string
5390 shell: bash
5391 name: 🌼 Write to 'floweyvar3'
5392 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
5393 - id: flowey_lib_common__git_checkout__1
5394 uses: actions/checkout@v4
5395 with:
5396 fetch-depth: '1'
5397 path: repo0
5398 persist-credentials: ${{ env.floweyvar3 }}
5399 name: checkout repo hvlite
5400 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
5401 - run: ${{ github.workspace }}
5402 shell: flowey v 8 'flowey_lib_common::git_checkout:4:flowey_lib_common/src/git_checkout.rs:524:31' --update-from-file {0} --is-raw-string
5403 name: 🌼 Read from 'github.workspace'
5404 - name: report cloned repo directories
5405 run: flowey e 8 flowey_lib_common::git_checkout 3
5406 shell: bash
5407 - name: resolve OpenVMM repo requests
5408 run: flowey e 8 flowey_lib_hvlite::git_checkout_openvmm_repo 0
5409 shell: bash
5410 - name: set '-Dwarnings' in .cargo/config.toml
5411 run: flowey e 8 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
5412 shell: bash
5413 - name: unpack protoc
5414 run: flowey e 8 flowey_lib_common::download_protoc 0
5415 shell: bash
5416 - name: report openvmm magicpath dir
5417 run: flowey e 8 flowey_lib_hvlite::cfg_openvmm_magicpath 0
5418 shell: bash
5419 - name: symlink protoc
5420 run: flowey e 8 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
5421 shell: bash
5422 - name: inject cross env
5423 run: flowey e 8 flowey_lib_hvlite::init_cross_build 0
5424 shell: bash
5425 - name: 🌼 Zip Vars
5426 run: flowey e 8 flowey_lib_hvlite::run_cargo_build 2
5427 shell: bash
5428 - name: 🌼 write_into Var
5429 run: flowey e 8 flowey_lib_hvlite::run_cargo_build 3
5430 shell: bash
5431 - name: unpack openvmm-deps archive
5432 run: flowey e 8 flowey_lib_hvlite::download_openvmm_deps 0
5433 shell: bash
5434 - name: extract Aarch64 sysroot.tar.gz
5435 run: flowey e 8 flowey_lib_hvlite::init_openvmm_magicpath_openhcl_sysroot 0
5436 shell: bash
5437 - name: cargo build openhcl_boot
5438 run: flowey e 8 flowey_lib_common::run_cargo_build 1
5439 shell: bash
5440 - name: 🌼 write_into Var
5441 run: flowey e 8 flowey_lib_hvlite::run_cargo_build 4
5442 shell: bash
5443 - name: split debug symbols
5444 run: flowey e 8 flowey_lib_hvlite::run_split_debug_info 2
5445 shell: bash
5446 - name: reporting split debug info
5447 run: flowey e 8 flowey_lib_hvlite::run_cargo_build 5
5448 shell: bash
5449 - name: report built openhcl_boot
5450 run: flowey e 8 flowey_lib_hvlite::build_openhcl_boot 0
5451 shell: bash
5452 - name: unpack kernel package
5453 run: flowey e 8 flowey_lib_hvlite::download_openhcl_kernel_package 1
5454 shell: bash
5455 - name: 🌼 write_into Var
5456 run: flowey e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 16
5457 shell: bash
5458 - name: inject cross env
5459 run: flowey e 8 flowey_lib_hvlite::init_cross_build 1
5460 shell: bash
5461 - name: cargo build openvmm_hcl
5462 run: flowey e 8 flowey_lib_common::run_cargo_build 2
5463 shell: bash
5464 - name: 🌼 write_into Var
5465 run: flowey e 8 flowey_lib_hvlite::run_cargo_build 6
5466 shell: bash
5467 - name: report built openvmm_hcl
5468 run: flowey e 8 flowey_lib_hvlite::build_openvmm_hcl 0
5469 shell: bash
5470 - name: 🌼 write_into Var
5471 run: flowey e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 12
5472 shell: bash
5473 - name: split debug symbols
5474 run: flowey e 8 flowey_lib_hvlite::run_split_debug_info 0
5475 shell: bash
5476 - name: 🌼 Zip Vars
5477 run: flowey e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 13
5478 shell: bash
5479 - name: 🌼 write_into Var
5480 run: flowey e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 14
5481 shell: bash
5482 - name: 🌼 write_into Var
5483 run: flowey e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 17
5484 shell: bash
5485 - name: building openhcl initrd
5486 run: flowey e 8 flowey_lib_hvlite::build_openhcl_initrd 1
5487 shell: bash
5488 - name: 🌼 write_into Var
5489 run: flowey e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 18
5490 shell: bash
5491 - name: enumerate igvm resources
5492 run: flowey e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 19
5493 shell: bash
5494 - name: inject cross env
5495 run: flowey e 8 flowey_lib_hvlite::init_cross_build 3
5496 shell: bash
5497 - name: cargo build igvmfilegen
5498 run: flowey e 8 flowey_lib_common::run_cargo_build 0
5499 shell: bash
5500 - name: 🌼 write_into Var
5501 run: flowey e 8 flowey_lib_hvlite::run_cargo_build 0
5502 shell: bash
5503 - name: split debug symbols
5504 run: flowey e 8 flowey_lib_hvlite::run_split_debug_info 4
5505 shell: bash
5506 - name: reporting split debug info
5507 run: flowey e 8 flowey_lib_hvlite::run_cargo_build 1
5508 shell: bash
5509 - name: report built igvmfilegen
5510 run: flowey e 8 flowey_lib_hvlite::build_igvmfilegen 0
5511 shell: bash
5512 - name: 🌼 write_into Var
5513 run: flowey e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 20
5514 shell: bash
5515 - name: 🌼 write_into Var
5516 run: flowey e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 21
5517 shell: bash
5518 - name: building igvm file
5519 run: flowey e 8 flowey_lib_hvlite::run_igvmfilegen 1
5520 shell: bash
5521 - name: 🌼 write_into Var
5522 run: flowey e 8 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 4
5523 shell: bash
5524 - name: 🌼 write_into Var
5525 run: flowey e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 5
5526 shell: bash
5527 - name: 🌼 write_into Var
5528 run: flowey e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 1
5529 shell: bash
5530 - name: split debug symbols
5531 run: flowey e 8 flowey_lib_hvlite::run_split_debug_info 1
5532 shell: bash
5533 - name: 🌼 Zip Vars
5534 run: flowey e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 2
5535 shell: bash
5536 - name: 🌼 write_into Var
5537 run: flowey e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 3
5538 shell: bash
5539 - name: 🌼 write_into Var
5540 run: flowey e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 6
5541 shell: bash
5542 - name: unpack kernel package
5543 run: flowey e 8 flowey_lib_hvlite::download_openhcl_kernel_package 0
5544 shell: bash
5545 - name: building openhcl initrd
5546 run: flowey e 8 flowey_lib_hvlite::build_openhcl_initrd 0
5547 shell: bash
5548 - name: 🌼 write_into Var
5549 run: flowey e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 7
5550 shell: bash
5551 - name: enumerate igvm resources
5552 run: flowey e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 8
5553 shell: bash
5554 - name: 🌼 write_into Var
5555 run: flowey e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 9
5556 shell: bash
5557 - name: 🌼 write_into Var
5558 run: flowey e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 10
5559 shell: bash
5560 - name: building igvm file
5561 run: flowey e 8 flowey_lib_hvlite::run_igvmfilegen 0
5562 shell: bash
5563 - name: 🌼 write_into Var
5564 run: flowey e 8 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 0
5565 shell: bash
5566 - name: describe OpenHCL igvm artifact
5567 run: flowey e 8 flowey_lib_hvlite::artifact_openhcl_igvm_from_recipe::publish 0
5568 shell: bash
5569 - name: copying OpenHCL igvm files to artifact dir
5570 run: flowey e 8 flowey_lib_common::copy_to_artifact_dir 1
5571 shell: bash
5572 - name: 🌼 write_into Var
5573 run: flowey e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 15
5574 shell: bash
5575 - name: 🌼 write_into Var
5576 run: flowey e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 11
5577 shell: bash
5578 - name: 🌼 Zip Vars
5579 run: flowey e 8 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 5
5580 shell: bash
5581 - name: 🌼 Zip Vars
5582 run: flowey e 8 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 6
5583 shell: bash
5584 - name: 🌼 write_into Var
5585 run: flowey e 8 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 7
5586 shell: bash
5587 - name: 🌼 write_into Var
5588 run: flowey e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 4
5589 shell: bash
5590 - name: 🌼 write_into Var
5591 run: flowey e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 0
5592 shell: bash
5593 - name: 🌼 Zip Vars
5594 run: flowey e 8 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 1
5595 shell: bash
5596 - name: 🌼 Zip Vars
5597 run: flowey e 8 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 2
5598 shell: bash
5599 - name: 🌼 write_into Var
5600 run: flowey e 8 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 3
5601 shell: bash
5602 - name: describe OpenHCL igvm extras artifact
5603 run: flowey e 8 flowey_lib_hvlite::artifact_openhcl_igvm_from_recipe_extras::publish 0
5604 shell: bash
5605 - name: copying OpenHCL igvm extras to artifact dir
5606 run: flowey e 8 flowey_lib_common::copy_to_artifact_dir 0
5607 shell: bash
5608 - name: inject cross env
5609 run: flowey e 8 flowey_lib_hvlite::init_cross_build 2
5610 shell: bash
5611 - name: cargo build pipette
5612 run: flowey e 8 flowey_lib_common::run_cargo_build 3
5613 shell: bash
5614 - name: 🌼 write_into Var
5615 run: flowey e 8 flowey_lib_hvlite::run_cargo_build 7
5616 shell: bash
5617 - name: split debug symbols
5618 run: flowey e 8 flowey_lib_hvlite::run_split_debug_info 3
5619 shell: bash
5620 - name: reporting split debug info
5621 run: flowey e 8 flowey_lib_hvlite::run_cargo_build 8
5622 shell: bash
5623 - name: report built pipette
5624 run: flowey e 8 flowey_lib_hvlite::build_pipette 0
5625 shell: bash
5626 - name: 🌼 write_into Var
5627 run: flowey e 8 flowey_lib_hvlite::artifact_pipette::publish 0
5628 shell: bash
5629 - name: copying pipette to artifact dir
5630 run: flowey e 8 flowey_lib_common::copy_to_artifact_dir 2
5631 shell: bash
5632 - name: 'validate cache entry: gh-release-download'
5633 run: flowey e 8 flowey_lib_common::cache 3
5634 shell: bash
5635 - name: 🌼📦 Publish aarch64-linux-musl-pipette
5636 uses: actions/upload-artifact@v4
5637 with:
5638 name: aarch64-linux-musl-pipette
5639 path: ${{ runner.temp }}/publish_artifacts/aarch64-linux-musl-pipette/
5640 - name: 🌼📦 Publish aarch64-openhcl-igvm
5641 uses: actions/upload-artifact@v4
5642 with:
5643 name: aarch64-openhcl-igvm
5644 path: ${{ runner.temp }}/publish_artifacts/aarch64-openhcl-igvm/
5645 - name: 🌼📦 Publish aarch64-openhcl-igvm-extras
5646 uses: actions/upload-artifact@v4
5647 with:
5648 name: aarch64-openhcl-igvm-extras
5649 path: ${{ runner.temp }}/publish_artifacts/aarch64-openhcl-igvm-extras/
5650 job9:
5651 name: build openhcl [x64-linux]
5652 runs-on:
5653 - self-hosted
5654 - 1ES.Pool=OpenVMM-GitHub-Linux-Pool-WestUS3
5655 - 1ES.ImageOverride=MMSUbuntu22.04-256GB
5656 permissions:
5657 contents: read
5658 id-token: write
5659 steps:
5660 - run: echo "injected!"
5661 name: 🌼🥾 Bootstrap flowey
5662 shell: bash
5663 - run: |
5664 set -x
5665 i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
5666 sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
5667 curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.82.0 -y
5668 . "$HOME/.cargo/env"
5669 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
5670 rustup show
5671 if: runner.os == 'Linux'
5672 name: rustup (Linux)
5673 shell: bash
5674 - run: |
5675 set -x
5676 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
5677 ./rustup-init.exe -y --default-toolchain=1.82.0
5678 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
5679 if: runner.os == 'Windows' && runner.arch == 'X64'
5680 name: rustup (Windows X64)
5681 shell: bash
5682 - run: |
5683 set -x
5684 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
5685 ./rustup-init.exe -y --default-toolchain=1.82.0
5686 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
5687 if: runner.os == 'Windows' && runner.arch == 'ARM64'
5688 name: rustup (Windows ARM64)
5689 shell: bash
5690 - uses: actions/checkout@v4
5691 with:
5692 path: flowey_bootstrap
5693 - name: Build flowey
5694 run: CARGO_INCREMENTAL=0 RUSTC_BOOTSTRAP=1 RUSTFLAGS="-Z threads=8" cargo build -p flowey_hvlite --target x86_64-unknown-linux-gnu --profile flowey-ci
5695 working-directory: flowey_bootstrap
5696 shell: bash
5697 - name: Stage flowey artifact
5698 run: |
5699 mkdir ./flowey_bootstrap_temp
5700 mv ./.github/workflows/openvmm-ci.yaml ./flowey_bootstrap_temp/pipeline.yaml
5701 mv target/x86_64-unknown-linux-gnu/flowey-ci/flowey_hvlite ./flowey_bootstrap_temp/flowey
5702 working-directory: flowey_bootstrap
5703 shell: bash
5704 - name: Copy flowey artifact
5705 run: |
5706 OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
5707 mkdir -p $OutDirNormal
5708 cp -r ./flowey_bootstrap_temp/* $OutDirNormal
5709 working-directory: flowey_bootstrap
5710 shell: bash
5711 - name: Cleanup staged flowey artifact
5712 run: rm -rf ./flowey_bootstrap_temp
5713 working-directory: flowey_bootstrap
5714 shell: bash
5715 - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH
5716 shell: bash
5717 name: 🌼📦 Add flowey to PATH
5718 - name: 🌼🔎 Self-check YAML
5719 run: |-
5720 ESCAPED_AGENT_TEMPDIR=$(
5721 cat <<'EOF' | sed 's/\\/\\\\/g'
5722 ${{ runner.temp }}
5723 EOF
5724 )
5725 flowey pipeline github --runtime $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci
5726 shell: bash
5727 - name: 🌼🛫 Initialize job
5728 run: |
5729 AgentTempDirNormal="${{ runner.temp }}"
5730 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
5731 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
5732
5733 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey
5734
5735 echo '"debug"' | flowey v 9 'FLOWEY_LOG' --update-from-stdin
5736 echo "${{ runner.temp }}/work" | flowey v 9 '_internal_WORKING_DIR' --update-from-stdin --is-raw-string
5737
5738 cat <<'EOF' | flowey v 9 'verbose' --update-from-stdin
5739 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
5740 EOF
5741 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-musl-pipette"
5742 echo "$AgentTempDirNormal/publish_artifacts/x64-linux-musl-pipette" | flowey v 9 'artifact_publish_from_x64-linux-musl-pipette' --update-from-stdin --is-raw-string
5743 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-openhcl-igvm"
5744 echo "$AgentTempDirNormal/publish_artifacts/x64-openhcl-igvm" | flowey v 9 'artifact_publish_from_x64-openhcl-igvm' --update-from-stdin --is-raw-string
5745 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-openhcl-igvm-extras"
5746 echo "$AgentTempDirNormal/publish_artifacts/x64-openhcl-igvm-extras" | flowey v 9 'artifact_publish_from_x64-openhcl-igvm-extras' --update-from-stdin --is-raw-string
5747 shell: bash
5748 - name: checking if packages need to be installed
5749 run: flowey e 9 flowey_lib_common::install_dist_pkg 0
5750 shell: bash
5751 - name: installing packages
5752 run: flowey e 9 flowey_lib_common::install_dist_pkg 1
5753 shell: bash
5754 - name: create gh-release-download cache dir
5755 run: flowey e 9 flowey_lib_common::download_gh_release 0
5756 shell: bash
5757 - name: Pre-processing cache vars
5758 run: flowey e 9 flowey_lib_common::cache 0
5759 shell: bash
5760 - run: |
5761 flowey v 9 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:458:72' --write-to-gh-env floweyvar1 --is-raw-string
5762 shell: bash
5763 name: 🌼 Write to 'floweyvar1'
5764 - run: |
5765 flowey v 9 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar2 --is-raw-string
5766 shell: bash
5767 name: 🌼 Write to 'floweyvar2'
5768 - id: flowey_lib_common__cache__1
5769 uses: actions/cache@v4
5770 with:
5771 key: ${{ env.floweyvar1 }}
5772 path: ${{ env.floweyvar2 }}
5773 name: 'Restore cache: gh-release-download'
5774 - run: ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
5775 shell: flowey v 9 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:510:46' --update-from-file {0} --is-raw-string
5776 name: 🌼 Read from 'steps.flowey_lib_common__cache__1.outputs.cache-hit'
5777 - name: map Github cache-hit to flowey
5778 run: flowey e 9 flowey_lib_common::cache 2
5779 shell: bash
5780 - name: download artifacts from github releases
5781 run: flowey e 9 flowey_lib_common::download_gh_release 1
5782 shell: bash
5783 - name: unpack mu_msvm package (x64)
5784 run: flowey e 9 flowey_lib_hvlite::download_uefi_mu_msvm 0
5785 shell: bash
5786 - name: install Rust
5787 run: flowey e 9 flowey_lib_common::install_rust 0
5788 shell: bash
5789 - name: detect active toolchain
5790 run: flowey e 9 flowey_lib_common::install_rust 1
5791 shell: bash
5792 - name: report common cargo flags
5793 run: flowey e 9 flowey_lib_common::cfg_cargo_common_flags 0
5794 shell: bash
5795 - name: check if hvlite needs to be cloned
5796 run: flowey e 9 flowey_lib_common::git_checkout 0
5797 shell: bash
5798 - run: |
5799 flowey v 9 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:470:46' --write-to-gh-env FLOWEY_CONDITION
5800 shell: bash
5801 name: 🌼❓ Write to 'FLOWEY_CONDITION'
5802 - run: |
5803 flowey v 9 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:469:80' --write-to-gh-env floweyvar3 --is-raw-string
5804 shell: bash
5805 name: 🌼 Write to 'floweyvar3'
5806 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
5807 - id: flowey_lib_common__git_checkout__1
5808 uses: actions/checkout@v4
5809 with:
5810 fetch-depth: '1'
5811 path: repo0
5812 persist-credentials: ${{ env.floweyvar3 }}
5813 name: checkout repo hvlite
5814 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
5815 - run: ${{ github.workspace }}
5816 shell: flowey v 9 'flowey_lib_common::git_checkout:4:flowey_lib_common/src/git_checkout.rs:524:31' --update-from-file {0} --is-raw-string
5817 name: 🌼 Read from 'github.workspace'
5818 - name: report cloned repo directories
5819 run: flowey e 9 flowey_lib_common::git_checkout 3
5820 shell: bash
5821 - name: resolve OpenVMM repo requests
5822 run: flowey e 9 flowey_lib_hvlite::git_checkout_openvmm_repo 0
5823 shell: bash
5824 - name: set '-Dwarnings' in .cargo/config.toml
5825 run: flowey e 9 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
5826 shell: bash
5827 - name: unpack protoc
5828 run: flowey e 9 flowey_lib_common::download_protoc 0
5829 shell: bash
5830 - name: report openvmm magicpath dir
5831 run: flowey e 9 flowey_lib_hvlite::cfg_openvmm_magicpath 0
5832 shell: bash
5833 - name: symlink protoc
5834 run: flowey e 9 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
5835 shell: bash
5836 - name: inject cross env
5837 run: flowey e 9 flowey_lib_hvlite::init_cross_build 3
5838 shell: bash
5839 - name: 🌼 Zip Vars
5840 run: flowey e 9 flowey_lib_hvlite::run_cargo_build 2
5841 shell: bash
5842 - name: 🌼 write_into Var
5843 run: flowey e 9 flowey_lib_hvlite::run_cargo_build 3
5844 shell: bash
5845 - name: cargo build openhcl_boot
5846 run: flowey e 9 flowey_lib_common::run_cargo_build 1
5847 shell: bash
5848 - name: 🌼 write_into Var
5849 run: flowey e 9 flowey_lib_hvlite::run_cargo_build 4
5850 shell: bash
5851 - name: split debug symbols
5852 run: flowey e 9 flowey_lib_hvlite::run_split_debug_info 5
5853 shell: bash
5854 - name: reporting split debug info
5855 run: flowey e 9 flowey_lib_hvlite::run_cargo_build 5
5856 shell: bash
5857 - name: report built openhcl_boot
5858 run: flowey e 9 flowey_lib_hvlite::build_openhcl_boot 0
5859 shell: bash
5860 - name: unpack kernel package
5861 run: flowey e 9 flowey_lib_hvlite::download_openhcl_kernel_package 2
5862 shell: bash
5863 - name: 🌼 write_into Var
5864 run: flowey e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 27
5865 shell: bash
5866 - name: unpack openvmm-deps archive
5867 run: flowey e 9 flowey_lib_hvlite::download_openvmm_deps 0
5868 shell: bash
5869 - name: extract X64 sysroot.tar.gz
5870 run: flowey e 9 flowey_lib_hvlite::init_openvmm_magicpath_openhcl_sysroot 0
5871 shell: bash
5872 - name: inject cross env
5873 run: flowey e 9 flowey_lib_hvlite::init_cross_build 1
5874 shell: bash
5875 - name: cargo build openvmm_hcl
5876 run: flowey e 9 flowey_lib_common::run_cargo_build 2
5877 shell: bash
5878 - name: 🌼 write_into Var
5879 run: flowey e 9 flowey_lib_hvlite::run_cargo_build 6
5880 shell: bash
5881 - name: report built openvmm_hcl
5882 run: flowey e 9 flowey_lib_hvlite::build_openvmm_hcl 0
5883 shell: bash
5884 - name: 🌼 write_into Var
5885 run: flowey e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 23
5886 shell: bash
5887 - name: split debug symbols
5888 run: flowey e 9 flowey_lib_hvlite::run_split_debug_info 2
5889 shell: bash
5890 - name: 🌼 Zip Vars
5891 run: flowey e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 24
5892 shell: bash
5893 - name: 🌼 write_into Var
5894 run: flowey e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 25
5895 shell: bash
5896 - name: 🌼 write_into Var
5897 run: flowey e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 28
5898 shell: bash
5899 - name: building openhcl initrd
5900 run: flowey e 9 flowey_lib_hvlite::build_openhcl_initrd 4
5901 shell: bash
5902 - name: 🌼 write_into Var
5903 run: flowey e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 29
5904 shell: bash
5905 - name: enumerate igvm resources
5906 run: flowey e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 30
5907 shell: bash
5908 - name: inject cross env
5909 run: flowey e 9 flowey_lib_hvlite::init_cross_build 0
5910 shell: bash
5911 - name: cargo build igvmfilegen
5912 run: flowey e 9 flowey_lib_common::run_cargo_build 0
5913 shell: bash
5914 - name: 🌼 write_into Var
5915 run: flowey e 9 flowey_lib_hvlite::run_cargo_build 0
5916 shell: bash
5917 - name: split debug symbols
5918 run: flowey e 9 flowey_lib_hvlite::run_split_debug_info 7
5919 shell: bash
5920 - name: reporting split debug info
5921 run: flowey e 9 flowey_lib_hvlite::run_cargo_build 1
5922 shell: bash
5923 - name: report built igvmfilegen
5924 run: flowey e 9 flowey_lib_hvlite::build_igvmfilegen 0
5925 shell: bash
5926 - name: 🌼 write_into Var
5927 run: flowey e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 31
5928 shell: bash
5929 - name: 🌼 write_into Var
5930 run: flowey e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 32
5931 shell: bash
5932 - name: building igvm file
5933 run: flowey e 9 flowey_lib_hvlite::run_igvmfilegen 4
5934 shell: bash
5935 - name: 🌼 write_into Var
5936 run: flowey e 9 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 4
5937 shell: bash
5938 - name: 🌼 write_into Var
5939 run: flowey e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 38
5940 shell: bash
5941 - name: 🌼 write_into Var
5942 run: flowey e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 34
5943 shell: bash
5944 - name: split debug symbols
5945 run: flowey e 9 flowey_lib_hvlite::run_split_debug_info 3
5946 shell: bash
5947 - name: 🌼 Zip Vars
5948 run: flowey e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 35
5949 shell: bash
5950 - name: 🌼 write_into Var
5951 run: flowey e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 36
5952 shell: bash
5953 - name: 🌼 write_into Var
5954 run: flowey e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 39
5955 shell: bash
5956 - name: unpack kernel package
5957 run: flowey e 9 flowey_lib_hvlite::download_openhcl_kernel_package 0
5958 shell: bash
5959 - name: building openhcl initrd
5960 run: flowey e 9 flowey_lib_hvlite::build_openhcl_initrd 0
5961 shell: bash
5962 - name: 🌼 write_into Var
5963 run: flowey e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 40
5964 shell: bash
5965 - name: enumerate igvm resources
5966 run: flowey e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 41
5967 shell: bash
5968 - name: 🌼 write_into Var
5969 run: flowey e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 42
5970 shell: bash
5971 - name: 🌼 write_into Var
5972 run: flowey e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 43
5973 shell: bash
5974 - name: building igvm file
5975 run: flowey e 9 flowey_lib_hvlite::run_igvmfilegen 0
5976 shell: bash
5977 - name: 🌼 write_into Var
5978 run: flowey e 9 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 8
5979 shell: bash
5980 - name: 🌼 write_into Var
5981 run: flowey e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 49
5982 shell: bash
5983 - name: 🌼 write_into Var
5984 run: flowey e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 45
5985 shell: bash
5986 - name: split debug symbols
5987 run: flowey e 9 flowey_lib_hvlite::run_split_debug_info 0
5988 shell: bash
5989 - name: 🌼 Zip Vars
5990 run: flowey e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 46
5991 shell: bash
5992 - name: 🌼 write_into Var
5993 run: flowey e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 47
5994 shell: bash
5995 - name: 🌼 write_into Var
5996 run: flowey e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 50
5997 shell: bash
5998 - name: building openhcl initrd
5999 run: flowey e 9 flowey_lib_hvlite::build_openhcl_initrd 1
6000 shell: bash
6001 - name: 🌼 write_into Var
6002 run: flowey e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 51
6003 shell: bash
6004 - name: enumerate igvm resources
6005 run: flowey e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 52
6006 shell: bash
6007 - name: 🌼 write_into Var
6008 run: flowey e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 53
6009 shell: bash
6010 - name: 🌼 write_into Var
6011 run: flowey e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 54
6012 shell: bash
6013 - name: building igvm file
6014 run: flowey e 9 flowey_lib_hvlite::run_igvmfilegen 1
6015 shell: bash
6016 - name: 🌼 write_into Var
6017 run: flowey e 9 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 12
6018 shell: bash
6019 - name: 🌼 write_into Var
6020 run: flowey e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 5
6021 shell: bash
6022 - name: 🌼 write_into Var
6023 run: flowey e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 1
6024 shell: bash
6025 - name: split debug symbols
6026 run: flowey e 9 flowey_lib_hvlite::run_split_debug_info 4
6027 shell: bash
6028 - name: 🌼 Zip Vars
6029 run: flowey e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 2
6030 shell: bash
6031 - name: 🌼 write_into Var
6032 run: flowey e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 3
6033 shell: bash
6034 - name: 🌼 write_into Var
6035 run: flowey e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 6
6036 shell: bash
6037 - name: building openhcl initrd
6038 run: flowey e 9 flowey_lib_hvlite::build_openhcl_initrd 2
6039 shell: bash
6040 - name: 🌼 write_into Var
6041 run: flowey e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 7
6042 shell: bash
6043 - name: enumerate igvm resources
6044 run: flowey e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 8
6045 shell: bash
6046 - name: 🌼 write_into Var
6047 run: flowey e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 9
6048 shell: bash
6049 - name: 🌼 write_into Var
6050 run: flowey e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 10
6051 shell: bash
6052 - name: building igvm file
6053 run: flowey e 9 flowey_lib_hvlite::run_igvmfilegen 2
6054 shell: bash
6055 - name: 🌼 write_into Var
6056 run: flowey e 9 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 0
6057 shell: bash
6058 - name: unpack kernel package
6059 run: flowey e 9 flowey_lib_hvlite::download_openhcl_kernel_package 1
6060 shell: bash
6061 - name: 🌼 write_into Var
6062 run: flowey e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 16
6063 shell: bash
6064 - name: 🌼 write_into Var
6065 run: flowey e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 12
6066 shell: bash
6067 - name: split debug symbols
6068 run: flowey e 9 flowey_lib_hvlite::run_split_debug_info 1
6069 shell: bash
6070 - name: 🌼 Zip Vars
6071 run: flowey e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 13
6072 shell: bash
6073 - name: 🌼 write_into Var
6074 run: flowey e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 14
6075 shell: bash
6076 - name: 🌼 write_into Var
6077 run: flowey e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 17
6078 shell: bash
6079 - name: building openhcl initrd
6080 run: flowey e 9 flowey_lib_hvlite::build_openhcl_initrd 3
6081 shell: bash
6082 - name: 🌼 write_into Var
6083 run: flowey e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 18
6084 shell: bash
6085 - name: enumerate igvm resources
6086 run: flowey e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 19
6087 shell: bash
6088 - name: 🌼 write_into Var
6089 run: flowey e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 20
6090 shell: bash
6091 - name: 🌼 write_into Var
6092 run: flowey e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 21
6093 shell: bash
6094 - name: building igvm file
6095 run: flowey e 9 flowey_lib_hvlite::run_igvmfilegen 3
6096 shell: bash
6097 - name: 🌼 write_into Var
6098 run: flowey e 9 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 16
6099 shell: bash
6100 - name: describe OpenHCL igvm artifact
6101 run: flowey e 9 flowey_lib_hvlite::artifact_openhcl_igvm_from_recipe::publish 0
6102 shell: bash
6103 - name: copying OpenHCL igvm files to artifact dir
6104 run: flowey e 9 flowey_lib_common::copy_to_artifact_dir 1
6105 shell: bash
6106 - name: 🌼 write_into Var
6107 run: flowey e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 26
6108 shell: bash
6109 - name: 🌼 write_into Var
6110 run: flowey e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 22
6111 shell: bash
6112 - name: 🌼 Zip Vars
6113 run: flowey e 9 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 5
6114 shell: bash
6115 - name: 🌼 Zip Vars
6116 run: flowey e 9 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 6
6117 shell: bash
6118 - name: 🌼 write_into Var
6119 run: flowey e 9 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 7
6120 shell: bash
6121 - name: 🌼 write_into Var
6122 run: flowey e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 37
6123 shell: bash
6124 - name: 🌼 write_into Var
6125 run: flowey e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 33
6126 shell: bash
6127 - name: 🌼 Zip Vars
6128 run: flowey e 9 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 9
6129 shell: bash
6130 - name: 🌼 Zip Vars
6131 run: flowey e 9 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 10
6132 shell: bash
6133 - name: 🌼 write_into Var
6134 run: flowey e 9 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 11
6135 shell: bash
6136 - name: 🌼 write_into Var
6137 run: flowey e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 48
6138 shell: bash
6139 - name: 🌼 write_into Var
6140 run: flowey e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 44
6141 shell: bash
6142 - name: 🌼 Zip Vars
6143 run: flowey e 9 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 13
6144 shell: bash
6145 - name: 🌼 Zip Vars
6146 run: flowey e 9 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 14
6147 shell: bash
6148 - name: 🌼 write_into Var
6149 run: flowey e 9 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 15
6150 shell: bash
6151 - name: 🌼 write_into Var
6152 run: flowey e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 15
6153 shell: bash
6154 - name: 🌼 write_into Var
6155 run: flowey e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 11
6156 shell: bash
6157 - name: 🌼 Zip Vars
6158 run: flowey e 9 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 17
6159 shell: bash
6160 - name: 🌼 Zip Vars
6161 run: flowey e 9 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 18
6162 shell: bash
6163 - name: 🌼 write_into Var
6164 run: flowey e 9 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 19
6165 shell: bash
6166 - name: 🌼 write_into Var
6167 run: flowey e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 4
6168 shell: bash
6169 - name: 🌼 write_into Var
6170 run: flowey e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 0
6171 shell: bash
6172 - name: 🌼 Zip Vars
6173 run: flowey e 9 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 1
6174 shell: bash
6175 - name: 🌼 Zip Vars
6176 run: flowey e 9 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 2
6177 shell: bash
6178 - name: 🌼 write_into Var
6179 run: flowey e 9 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 3
6180 shell: bash
6181 - name: describe OpenHCL igvm extras artifact
6182 run: flowey e 9 flowey_lib_hvlite::artifact_openhcl_igvm_from_recipe_extras::publish 0
6183 shell: bash
6184 - name: copying OpenHCL igvm extras to artifact dir
6185 run: flowey e 9 flowey_lib_common::copy_to_artifact_dir 0
6186 shell: bash
6187 - name: inject cross env
6188 run: flowey e 9 flowey_lib_hvlite::init_cross_build 2
6189 shell: bash
6190 - name: cargo build pipette
6191 run: flowey e 9 flowey_lib_common::run_cargo_build 3
6192 shell: bash
6193 - name: 🌼 write_into Var
6194 run: flowey e 9 flowey_lib_hvlite::run_cargo_build 7
6195 shell: bash
6196 - name: split debug symbols
6197 run: flowey e 9 flowey_lib_hvlite::run_split_debug_info 6
6198 shell: bash
6199 - name: reporting split debug info
6200 run: flowey e 9 flowey_lib_hvlite::run_cargo_build 8
6201 shell: bash
6202 - name: report built pipette
6203 run: flowey e 9 flowey_lib_hvlite::build_pipette 0
6204 shell: bash
6205 - name: 🌼 write_into Var
6206 run: flowey e 9 flowey_lib_hvlite::artifact_pipette::publish 0
6207 shell: bash
6208 - name: copying pipette to artifact dir
6209 run: flowey e 9 flowey_lib_common::copy_to_artifact_dir 2
6210 shell: bash
6211 - name: 'validate cache entry: gh-release-download'
6212 run: flowey e 9 flowey_lib_common::cache 3
6213 shell: bash
6214 - name: 🌼📦 Publish x64-linux-musl-pipette
6215 uses: actions/upload-artifact@v4
6216 with:
6217 name: x64-linux-musl-pipette
6218 path: ${{ runner.temp }}/publish_artifacts/x64-linux-musl-pipette/
6219 - name: 🌼📦 Publish x64-openhcl-igvm
6220 uses: actions/upload-artifact@v4
6221 with:
6222 name: x64-openhcl-igvm
6223 path: ${{ runner.temp }}/publish_artifacts/x64-openhcl-igvm/
6224 - name: 🌼📦 Publish x64-openhcl-igvm-extras
6225 uses: actions/upload-artifact@v4
6226 with:
6227 name: x64-openhcl-igvm-extras
6228 path: ${{ runner.temp }}/publish_artifacts/x64-openhcl-igvm-extras/
6229 - name: 🌼🧼 Redact bootstrap var db
6230 run: rm $AgentTempDirNormal/bootstrapped-flowey/job9.json
6231 shell: bash
6232 - name: 🌼🥾 Publish bootstrapped flowey
6233 uses: actions/upload-artifact@v4
6234 with:
6235 name: _internal-flowey-bootstrap-x86_64-linux-uid-6
6236 path: ${{ runner.temp }}/bootstrapped-flowey