microsoft/openvmm

Public

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

CodeCommitsIssuesPull requestsActionsInsightsSecurity
3188b95a31cf8522bf9372a3c2586b3da9940312

Branches

Tags

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

Clone

HTTPS

Download ZIP

.github/workflows/openvmm-pr.yaml

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