microsoft/openvmm

Public

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

CodeCommitsIssuesPull requestsActionsInsightsSecurity
5a51f410cad6057d65383c0b9a45f481989d6de0

Branches

Tags

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

Clone

HTTPS

Download ZIP

.github/workflows/openvmm-ci.yaml

6993lines Β· modecode

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