microsoft/openvmm

Public

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

CodeCommitsIssuesPull requestsActionsInsightsSecurity
0357affb34636db72661cd6f167b206d2ef8e913

Branches

Tags

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

Clone

HTTPS

Download ZIP

.github/workflows/openvmm-pr.yaml

5481lines Β· modecode

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