microsoft/openvmm

Public

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

CodeCommitsIssuesPull requestsActionsInsightsSecurity
e33c6d4ba5e25ad6d236e2cdc8e463b1a969949f

Branches

Tags

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

Clone

HTTPS

Download ZIP

.github/workflows/openvmm-ci.yaml

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