microsoft/openvmm

Public

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

CodeCommitsIssuesPull requestsActionsInsightsSecurity
a31e888631a854ffe20650593f27c56863530f79

Branches

Tags

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

Clone

HTTPS

Download ZIP

.github/workflows/openvmm-pr.yaml

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