microsoft/openvmm

Public

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

CodeCommitsIssuesPull requestsActionsInsightsSecurity
8d2cebf6f8e36f1af912f1dc94a69983e5624b2b

Branches

Tags

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

Clone

HTTPS

Download ZIP

.github/workflows/openvmm-pr.yaml

5689lines Β· modecode

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