microsoft/openvmm

Public

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

CodeCommitsIssuesPull requestsActionsInsightsSecurity
7b228ba1c5ed173d8d960f5f8a702b0372dad2de

Branches

Tags

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

Clone

HTTPS

Download ZIP

.github/workflows/openvmm-ci.yaml

6970lines Β· modecode

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