microsoft/openvmm

Public

mirrored from https://github.com/microsoft/openvmmAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
copilot/identify-fixed-issues

Branches

Tags

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

Clone

HTTPS

Download ZIP

.github/workflows/openvmm-ci.yaml

6320lines · modecode

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