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

6971lines Β· modecode

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