microsoft/openvmm

Public

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

CodeCommitsIssuesPull requestsActionsInsightsSecurity
copilot/solve-hibernate-for-hyper-v

Branches

Tags

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

Clone

HTTPS

Download ZIP

.github/workflows/openvmm-pr.yaml

6374lines Β· modecode

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