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-release.yaml

5875lines Β· modecode

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