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-pr.yaml

6295lines · modecode

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