microsoft/openvmm

Public

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

CodeCommitsIssuesPull requestsActionsInsightsSecurity
bc046e1ea621f83b97afc2694de8eed2ed249869

Branches

Tags

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

Clone

HTTPS

Download ZIP

.github/workflows/openvmm-ci.yaml

8459lines · modecode

1##############################
2# THIS FILE IS AUTOGENERATED #
3# DO NOT MANUALLY EDIT #
4##############################
5name: OpenVMM CI
6on:
7 workflow_dispatch:
8 inputs:
9 verbose:
10 description: Run with verbose output
11 default: false
12 required: false
13 type: boolean
14 push:
15 branches:
16 - main
17 - release/*
18 paths-ignore:
19 - Guide/**
20 - petri/logview/**
21jobs:
22 job0:
23 name: xtask fmt (windows)
24 runs-on: windows-latest
25 permissions:
26 contents: read
27 id-token: write
28 needs:
29 - job1
30 if: github.event.pull_request.draft == false
31 steps:
32 - run: |
33 set -x
34 i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
35 sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
36 curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.95.0 -y
37 . "$HOME/.cargo/env"
38 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
39 rustup show
40 if: runner.os == 'Linux'
41 name: rustup (Linux)
42 shell: bash
43 - run: |
44 set -x
45 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
46 ./rustup-init.exe -y --default-toolchain=1.95.0
47 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
48 if: runner.os == 'Windows' && runner.arch == 'X64'
49 name: rustup (Windows X64)
50 shell: bash
51 - run: |
52 set -x
53 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
54 ./rustup-init.exe -y --default-toolchain=1.95.0
55 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
56 if: runner.os == 'Windows' && runner.arch == 'ARM64'
57 name: rustup (Windows ARM64)
58 shell: bash
59 - uses: actions/checkout@v6
60 with:
61 path: flowey_bootstrap
62 - name: Build flowey
63 run: |
64 set -x
65 CARGO_INCREMENTAL=0 cargo build -p flowey_hvlite --target x86_64-pc-windows-msvc --profile flowey-ci
66 OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
67 mkdir -p "$OutDirNormal"
68 mv ./.github/workflows/openvmm-ci.yaml "$OutDirNormal/pipeline.yaml"
69 mv target/x86_64-pc-windows-msvc/flowey-ci/flowey_hvlite.exe "$OutDirNormal/flowey.exe"
70 working-directory: flowey_bootstrap
71 shell: bash
72 - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH
73 shell: bash
74 name: 🌼📦 Add flowey to PATH
75 - name: 🌼🔎 Self-check YAML
76 run: |-
77 ESCAPED_AGENT_TEMPDIR=$(
78 cat <<'EOF' | sed 's/\\/\\\\/g'
79 ${{ runner.temp }}
80 EOF
81 )
82 flowey.exe pipeline github --runtime $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci
83 shell: bash
84 - name: 🌼🛫 Initialize job
85 run: |
86 AgentTempDirNormal="${{ runner.temp }}"
87 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
88 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
89
90 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe
91
92 echo '"debug"' | flowey.exe v 0 'FLOWEY_LOG' update
93 echo "${{ runner.temp }}/work" | flowey.exe v 0 '_internal_WORKING_DIR' --is-raw-string update
94
95 cat <<'EOF' | flowey.exe v 0 'verbose' update
96 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
97 EOF
98 shell: bash
99 - name: check if openvmm needs to be cloned
100 run: |-
101 flowey.exe e 0 flowey_lib_common::git_checkout 0
102 flowey.exe v 0 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:489:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46 write-to-env github floweyvar1
103 flowey.exe v 0 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION
104 shell: bash
105 - id: flowey_lib_common__git_checkout__1
106 uses: actions/checkout@v6
107 with:
108 fetch-depth: '1'
109 path: repo0
110 persist-credentials: ${{ env.floweyvar1 }}
111 name: checkout repo openvmm
112 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
113 - name: report cloned repo directories
114 run: |-
115 flowey.exe v 0 'flowey_lib_common::git_checkout:4:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.workspace <<EOF
116 ${{ github.workspace }}
117 EOF
118 flowey.exe e 0 flowey_lib_common::git_checkout 3
119 flowey.exe e 0 flowey_lib_hvlite::git_checkout_openvmm_repo 0
120 shell: bash
121 - name: add default cargo home to path
122 run: flowey.exe e 0 flowey_lib_common::install_rust 0
123 shell: bash
124 - name: install Rust
125 run: flowey.exe e 0 flowey_lib_common::install_rust 1
126 shell: bash
127 - name: detect active toolchain
128 run: |-
129 flowey.exe e 0 flowey_lib_common::install_rust 2
130 flowey.exe e 0 flowey_lib_common::cfg_cargo_common_flags 0
131 shell: bash
132 - name: set '-Dwarnings' in .cargo/config.toml
133 run: flowey.exe e 0 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
134 shell: bash
135 - name: create gh-release-download cache dir
136 run: flowey.exe e 0 flowey_lib_common::download_gh_release 0
137 shell: bash
138 - name: Pre-processing cache vars
139 run: |-
140 flowey.exe e 0 flowey_lib_common::cache 0
141 flowey.exe v 0 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar2
142 flowey.exe v 0 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar3
143 shell: bash
144 - id: flowey_lib_common__cache__1
145 uses: actions/cache@v5
146 with:
147 key: ${{ env.floweyvar2 }}
148 path: ${{ env.floweyvar3 }}
149 name: 'Restore cache: gh-release-download'
150 - name: download artifacts from github releases
151 run: |-
152 flowey.exe v 0 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__1.outputs.cache-hit <<EOF
153 ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
154 EOF
155 flowey.exe e 0 flowey_lib_common::cache 2
156 flowey.exe e 0 flowey_lib_common::download_gh_release 1
157 shell: bash
158 - name: unpack protoc
159 run: |-
160 flowey.exe e 0 flowey_lib_common::resolve_protoc 0
161 flowey.exe e 0 flowey_lib_hvlite::cfg_openvmm_magicpath 0
162 shell: bash
163 - name: symlink protoc
164 run: |-
165 flowey.exe e 0 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
166 flowey.exe e 0 flowey_lib_hvlite::init_cross_build 0
167 shell: bash
168 - name: cargo build xtask
169 run: |-
170 flowey.exe e 0 flowey_lib_common::run_cargo_build 0
171 flowey.exe e 0 flowey_lib_hvlite::run_cargo_build 0
172 flowey.exe e 0 flowey_lib_hvlite::build_xtask 0
173 shell: bash
174 - name: run xtask fmt
175 run: flowey.exe e 0 flowey_lib_hvlite::_jobs::check_xtask_fmt 0
176 shell: bash
177 - name: 'validate cache entry: gh-release-download'
178 run: flowey.exe e 0 flowey_lib_common::cache 3
179 shell: bash
180 job1:
181 name: xtask fmt (linux)
182 runs-on: ubuntu-latest
183 permissions:
184 contents: read
185 id-token: write
186 if: github.event.pull_request.draft == false
187 steps:
188 - run: |
189 set -x
190 i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
191 sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
192 curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.95.0 -y
193 . "$HOME/.cargo/env"
194 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
195 rustup show
196 if: runner.os == 'Linux'
197 name: rustup (Linux)
198 shell: bash
199 - run: |
200 set -x
201 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
202 ./rustup-init.exe -y --default-toolchain=1.95.0
203 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
204 if: runner.os == 'Windows' && runner.arch == 'X64'
205 name: rustup (Windows X64)
206 shell: bash
207 - run: |
208 set -x
209 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
210 ./rustup-init.exe -y --default-toolchain=1.95.0
211 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
212 if: runner.os == 'Windows' && runner.arch == 'ARM64'
213 name: rustup (Windows ARM64)
214 shell: bash
215 - uses: actions/checkout@v6
216 with:
217 path: flowey_bootstrap
218 - name: Build flowey
219 run: |
220 set -x
221 CARGO_INCREMENTAL=0 cargo build -p flowey_hvlite --target x86_64-unknown-linux-gnu --profile flowey-ci
222 OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
223 mkdir -p "$OutDirNormal"
224 mv ./.github/workflows/openvmm-ci.yaml "$OutDirNormal/pipeline.yaml"
225 mv target/x86_64-unknown-linux-gnu/flowey-ci/flowey_hvlite "$OutDirNormal/flowey"
226 working-directory: flowey_bootstrap
227 shell: bash
228 - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH
229 shell: bash
230 name: 🌼📦 Add flowey to PATH
231 - name: 🌼🔎 Self-check YAML
232 run: |-
233 ESCAPED_AGENT_TEMPDIR=$(
234 cat <<'EOF' | sed 's/\\/\\\\/g'
235 ${{ runner.temp }}
236 EOF
237 )
238 flowey pipeline github --runtime $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci
239 shell: bash
240 - name: 🌼🛫 Initialize job
241 run: |
242 AgentTempDirNormal="${{ runner.temp }}"
243 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
244 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
245
246 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey
247
248 echo '"debug"' | flowey v 1 'FLOWEY_LOG' update
249 echo "${{ runner.temp }}/work" | flowey v 1 '_internal_WORKING_DIR' --is-raw-string update
250
251 cat <<'EOF' | flowey v 1 'verbose' update
252 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
253 EOF
254 shell: bash
255 - name: check if openvmm needs to be cloned
256 run: |-
257 flowey e 1 flowey_lib_common::git_checkout 0
258 flowey v 1 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:489:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46 write-to-env github floweyvar1
259 flowey v 1 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION
260 shell: bash
261 - id: flowey_lib_common__git_checkout__1
262 uses: actions/checkout@v6
263 with:
264 fetch-depth: '1'
265 path: repo0
266 persist-credentials: ${{ env.floweyvar1 }}
267 name: checkout repo openvmm
268 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
269 - name: report cloned repo directories
270 run: |-
271 flowey v 1 'flowey_lib_common::git_checkout:4:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.workspace <<EOF
272 ${{ github.workspace }}
273 EOF
274 flowey e 1 flowey_lib_common::git_checkout 3
275 flowey e 1 flowey_lib_hvlite::git_checkout_openvmm_repo 0
276 shell: bash
277 - name: add default cargo home to path
278 run: flowey e 1 flowey_lib_common::install_rust 0
279 shell: bash
280 - name: install Rust
281 run: flowey e 1 flowey_lib_common::install_rust 1
282 shell: bash
283 - name: detect active toolchain
284 run: |-
285 flowey e 1 flowey_lib_common::install_rust 2
286 flowey e 1 flowey_lib_common::cfg_cargo_common_flags 0
287 shell: bash
288 - name: set '-Dwarnings' in .cargo/config.toml
289 run: flowey e 1 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
290 shell: bash
291 - name: create gh-release-download cache dir
292 run: flowey e 1 flowey_lib_common::download_gh_release 0
293 shell: bash
294 - name: Pre-processing cache vars
295 run: |-
296 flowey e 1 flowey_lib_common::cache 0
297 flowey v 1 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar2
298 flowey v 1 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar3
299 shell: bash
300 - id: flowey_lib_common__cache__1
301 uses: actions/cache@v5
302 with:
303 key: ${{ env.floweyvar2 }}
304 path: ${{ env.floweyvar3 }}
305 name: 'Restore cache: gh-release-download'
306 - name: download artifacts from github releases
307 run: |-
308 flowey v 1 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__1.outputs.cache-hit <<EOF
309 ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
310 EOF
311 flowey e 1 flowey_lib_common::cache 2
312 flowey e 1 flowey_lib_common::download_gh_release 1
313 shell: bash
314 - name: checking if packages need to be installed
315 run: flowey e 1 flowey_lib_common::install_dist_pkg 0
316 shell: bash
317 - name: installing packages
318 run: flowey e 1 flowey_lib_common::install_dist_pkg 1
319 shell: bash
320 - name: unpack protoc
321 run: |-
322 flowey e 1 flowey_lib_common::resolve_protoc 0
323 flowey e 1 flowey_lib_hvlite::cfg_openvmm_magicpath 0
324 shell: bash
325 - name: symlink protoc
326 run: |-
327 flowey e 1 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
328 flowey e 1 flowey_lib_hvlite::init_cross_build 0
329 shell: bash
330 - name: cargo build xtask
331 run: |-
332 flowey e 1 flowey_lib_common::run_cargo_build 0
333 flowey e 1 flowey_lib_hvlite::run_cargo_build 0
334 shell: bash
335 - name: split debug symbols
336 run: |-
337 flowey e 1 flowey_lib_hvlite::run_split_debug_info 0
338 flowey e 1 flowey_lib_hvlite::run_cargo_build 1
339 flowey e 1 flowey_lib_hvlite::build_xtask 0
340 shell: bash
341 - name: run xtask fmt
342 run: flowey e 1 flowey_lib_hvlite::_jobs::check_xtask_fmt 0
343 shell: bash
344 - name: 'validate cache entry: gh-release-download'
345 run: flowey e 1 flowey_lib_common::cache 3
346 shell: bash
347 job10:
348 name: build openhcl [aarch64-linux]
349 runs-on:
350 - self-hosted
351 - 1ES.Pool=openvmm-gh-amd-westus3
352 - 1ES.ImageOverride=ubuntu2404-amd64
353 - JobId=job10-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}
354 permissions:
355 contents: read
356 id-token: write
357 if: github.event.pull_request.draft == false
358 steps:
359 - run: |
360 set -x
361 i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
362 sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
363 curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.95.0 -y
364 . "$HOME/.cargo/env"
365 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
366 rustup show
367 if: runner.os == 'Linux'
368 name: rustup (Linux)
369 shell: bash
370 - run: |
371 set -x
372 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
373 ./rustup-init.exe -y --default-toolchain=1.95.0
374 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
375 if: runner.os == 'Windows' && runner.arch == 'X64'
376 name: rustup (Windows X64)
377 shell: bash
378 - run: |
379 set -x
380 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
381 ./rustup-init.exe -y --default-toolchain=1.95.0
382 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
383 if: runner.os == 'Windows' && runner.arch == 'ARM64'
384 name: rustup (Windows ARM64)
385 shell: bash
386 - uses: actions/checkout@v6
387 with:
388 path: flowey_bootstrap
389 - name: Build flowey
390 run: |
391 set -x
392 CARGO_INCREMENTAL=0 cargo build -p flowey_hvlite --target x86_64-unknown-linux-gnu --profile flowey-ci
393 OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
394 mkdir -p "$OutDirNormal"
395 mv ./.github/workflows/openvmm-ci.yaml "$OutDirNormal/pipeline.yaml"
396 mv target/x86_64-unknown-linux-gnu/flowey-ci/flowey_hvlite "$OutDirNormal/flowey"
397 working-directory: flowey_bootstrap
398 shell: bash
399 - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH
400 shell: bash
401 name: 🌼📦 Add flowey to PATH
402 - name: 🌼🔎 Self-check YAML
403 run: |-
404 ESCAPED_AGENT_TEMPDIR=$(
405 cat <<'EOF' | sed 's/\\/\\\\/g'
406 ${{ runner.temp }}
407 EOF
408 )
409 flowey pipeline github --runtime $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci
410 shell: bash
411 - name: 🌼🛫 Initialize job
412 run: |
413 AgentTempDirNormal="${{ runner.temp }}"
414 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
415 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
416
417 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey
418
419 echo '"debug"' | flowey v 10 'FLOWEY_LOG' update
420 echo "${{ runner.temp }}/work" | flowey v 10 '_internal_WORKING_DIR' --is-raw-string update
421
422 cat <<'EOF' | flowey v 10 'verbose' update
423 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
424 EOF
425 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-openhcl-baseline"
426 echo "$AgentTempDirNormal/publish_artifacts/aarch64-openhcl-baseline" | flowey v 10 'artifact_publish_from_aarch64-openhcl-baseline' --is-raw-string update
427 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-openhcl-igvm"
428 echo "$AgentTempDirNormal/publish_artifacts/aarch64-openhcl-igvm" | flowey v 10 'artifact_publish_from_aarch64-openhcl-igvm' --is-raw-string update
429 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-openhcl-igvm-extras"
430 echo "$AgentTempDirNormal/publish_artifacts/aarch64-openhcl-igvm-extras" | flowey v 10 'artifact_publish_from_aarch64-openhcl-igvm-extras' --is-raw-string update
431 shell: bash
432 - name: checking if packages need to be installed
433 run: flowey e 10 flowey_lib_common::install_dist_pkg 0
434 shell: bash
435 - name: installing packages
436 run: flowey e 10 flowey_lib_common::install_dist_pkg 1
437 shell: bash
438 - name: create gh-release-download cache dir
439 run: flowey e 10 flowey_lib_common::download_gh_release 0
440 shell: bash
441 - name: Pre-processing cache vars
442 run: |-
443 flowey e 10 flowey_lib_common::cache 0
444 flowey v 10 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar1
445 flowey v 10 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar2
446 shell: bash
447 - id: flowey_lib_common__cache__1
448 uses: actions/cache@v5
449 with:
450 key: ${{ env.floweyvar1 }}
451 path: ${{ env.floweyvar2 }}
452 name: 'Restore cache: gh-release-download'
453 - name: download artifacts from github releases
454 run: |-
455 flowey v 10 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__1.outputs.cache-hit <<EOF
456 ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
457 EOF
458 flowey e 10 flowey_lib_common::cache 2
459 flowey e 10 flowey_lib_common::download_gh_release 1
460 shell: bash
461 - name: unpack mu_msvm package (aarch64)
462 run: flowey e 10 flowey_lib_hvlite::download_uefi_mu_msvm 0
463 shell: bash
464 - name: add default cargo home to path
465 run: flowey e 10 flowey_lib_common::install_rust 0
466 shell: bash
467 - name: install Rust
468 run: flowey e 10 flowey_lib_common::install_rust 1
469 shell: bash
470 - name: detect active toolchain
471 run: |-
472 flowey e 10 flowey_lib_common::install_rust 2
473 flowey 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 e 10 flowey_lib_common::git_checkout 0
478 flowey v 10 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:489:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46 write-to-env github floweyvar3
479 flowey v 10 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION
480 shell: bash
481 - id: flowey_lib_common__git_checkout__1
482 uses: actions/checkout@v6
483 with:
484 fetch-depth: '1'
485 path: repo0
486 persist-credentials: ${{ env.floweyvar3 }}
487 name: checkout repo openvmm
488 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
489 - name: report cloned repo directories
490 run: |-
491 flowey v 10 'flowey_lib_common::git_checkout:4:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.workspace <<EOF
492 ${{ github.workspace }}
493 EOF
494 flowey e 10 flowey_lib_common::git_checkout 3
495 flowey e 10 flowey_lib_hvlite::git_checkout_openvmm_repo 0
496 shell: bash
497 - name: set '-Dwarnings' in .cargo/config.toml
498 run: flowey e 10 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
499 shell: bash
500 - name: unpack protoc
501 run: |-
502 flowey e 10 flowey_lib_common::resolve_protoc 0
503 flowey e 10 flowey_lib_hvlite::cfg_openvmm_magicpath 0
504 shell: bash
505 - name: symlink protoc
506 run: |-
507 flowey e 10 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
508 flowey e 10 flowey_lib_hvlite::init_cross_build 0
509 flowey e 10 flowey_lib_hvlite::run_cargo_build 2
510 flowey e 10 flowey_lib_hvlite::run_cargo_build 3
511 shell: bash
512 - name: cargo build openhcl_boot
513 run: |-
514 flowey e 10 flowey_lib_common::run_cargo_build 1
515 flowey e 10 flowey_lib_hvlite::run_cargo_build 4
516 shell: bash
517 - name: split debug symbols
518 run: |-
519 flowey e 10 flowey_lib_hvlite::run_split_debug_info 2
520 flowey e 10 flowey_lib_hvlite::run_cargo_build 5
521 flowey e 10 flowey_lib_hvlite::build_openhcl_boot 0
522 shell: bash
523 - name: extract and resolve kernel package
524 run: |-
525 flowey e 10 flowey_lib_hvlite::resolve_openhcl_kernel_package 1
526 flowey e 10 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 17
527 shell: bash
528 - name: unpack openvmm-deps archive
529 run: flowey e 10 flowey_lib_hvlite::resolve_openvmm_deps 0
530 shell: bash
531 - name: extract Aarch64 sysroot.tar.gz
532 run: |-
533 flowey e 10 flowey_lib_hvlite::init_openvmm_magicpath_openhcl_sysroot 0
534 flowey e 10 flowey_lib_hvlite::init_cross_build 2
535 shell: bash
536 - name: cargo build openvmm_hcl
537 run: |-
538 flowey e 10 flowey_lib_common::run_cargo_build 3
539 flowey e 10 flowey_lib_hvlite::run_cargo_build 8
540 flowey e 10 flowey_lib_hvlite::build_openvmm_hcl 1
541 flowey e 10 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 13
542 shell: bash
543 - name: split debug symbols
544 run: |-
545 flowey e 10 flowey_lib_hvlite::run_split_debug_info 1
546 flowey e 10 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 14
547 flowey e 10 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 15
548 flowey e 10 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 18
549 shell: bash
550 - name: building openhcl initrd
551 run: |-
552 flowey e 10 flowey_lib_hvlite::build_openhcl_initrd 1
553 flowey e 10 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 19
554 flowey e 10 flowey_lib_hvlite::init_cross_build 3
555 shell: bash
556 - name: cargo build igvmfilegen
557 run: |-
558 flowey e 10 flowey_lib_common::run_cargo_build 0
559 flowey e 10 flowey_lib_hvlite::run_cargo_build 0
560 shell: bash
561 - name: split debug symbols
562 run: |-
563 flowey e 10 flowey_lib_hvlite::run_split_debug_info 4
564 flowey e 10 flowey_lib_hvlite::run_cargo_build 1
565 flowey e 10 flowey_lib_hvlite::build_igvmfilegen 0
566 flowey e 10 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 20
567 flowey e 10 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 21
568 shell: bash
569 - name: building igvm file
570 run: |-
571 flowey e 10 flowey_lib_hvlite::run_igvmfilegen 1
572 flowey e 10 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 2
573 flowey e 10 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 6
574 shell: bash
575 - name: extract and resolve kernel package
576 run: |-
577 flowey e 10 flowey_lib_hvlite::resolve_openhcl_kernel_package 0
578 flowey e 10 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 2
579 shell: bash
580 - name: split debug symbols
581 run: |-
582 flowey e 10 flowey_lib_hvlite::run_split_debug_info 0
583 flowey e 10 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 3
584 flowey e 10 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 4
585 flowey e 10 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 7
586 shell: bash
587 - name: building openhcl initrd
588 run: |-
589 flowey e 10 flowey_lib_hvlite::build_openhcl_initrd 0
590 flowey e 10 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 8
591 flowey e 10 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 9
592 flowey e 10 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 10
593 shell: bash
594 - name: building igvm file
595 run: |-
596 flowey e 10 flowey_lib_hvlite::run_igvmfilegen 0
597 flowey e 10 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 0
598 flowey e 10 flowey_lib_hvlite::artifact_openhcl_igvm_from_recipe::publish 0
599 shell: bash
600 - name: copying OpenHCL igvm files to artifact dir
601 run: |-
602 flowey e 10 flowey_lib_common::copy_to_artifact_dir 1
603 flowey e 10 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 11
604 flowey e 10 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 16
605 flowey e 10 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 12
606 flowey e 10 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 3
607 flowey e 10 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 5
608 flowey e 10 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 1
609 flowey e 10 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 0
610 flowey e 10 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 1
611 flowey e 10 flowey_lib_hvlite::artifact_openhcl_igvm_from_recipe_extras::publish 0
612 shell: bash
613 - name: copying OpenHCL igvm extras to artifact dir
614 run: |-
615 flowey e 10 flowey_lib_common::copy_to_artifact_dir 0
616 flowey e 10 flowey_lib_hvlite::init_cross_build 1
617 shell: bash
618 - name: cargo build openvmm_hcl
619 run: |-
620 flowey e 10 flowey_lib_common::run_cargo_build 2
621 flowey e 10 flowey_lib_hvlite::run_cargo_build 6
622 shell: bash
623 - name: split debug symbols
624 run: |-
625 flowey e 10 flowey_lib_hvlite::run_split_debug_info 3
626 flowey e 10 flowey_lib_hvlite::run_cargo_build 7
627 flowey e 10 flowey_lib_hvlite::build_openvmm_hcl 0
628 shell: bash
629 - name: copying openhcl build to publish dir
630 run: flowey e 10 flowey_lib_hvlite::artifact_openvmm_hcl_sizecheck::publish 0
631 shell: bash
632 - name: 'validate cache entry: gh-release-download'
633 run: flowey e 10 flowey_lib_common::cache 3
634 shell: bash
635 - name: 🌼📦 Publish aarch64-openhcl-baseline
636 uses: actions/upload-artifact@v7
637 with:
638 name: aarch64-openhcl-baseline
639 path: ${{ runner.temp }}/publish_artifacts/aarch64-openhcl-baseline/
640 include-hidden-files: true
641 - name: 🌼📦 Publish aarch64-openhcl-igvm
642 uses: actions/upload-artifact@v7
643 with:
644 name: aarch64-openhcl-igvm
645 path: ${{ runner.temp }}/publish_artifacts/aarch64-openhcl-igvm/
646 include-hidden-files: true
647 - name: 🌼📦 Publish aarch64-openhcl-igvm-extras
648 uses: actions/upload-artifact@v7
649 with:
650 name: aarch64-openhcl-igvm-extras
651 path: ${{ runner.temp }}/publish_artifacts/aarch64-openhcl-igvm-extras/
652 include-hidden-files: true
653 job11:
654 name: build openhcl [x64-linux]
655 runs-on:
656 - self-hosted
657 - 1ES.Pool=openvmm-gh-amd-westus3
658 - 1ES.ImageOverride=ubuntu2404-amd64
659 - JobId=job11-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}
660 permissions:
661 contents: read
662 id-token: write
663 if: github.event.pull_request.draft == false
664 steps:
665 - run: |
666 set -x
667 i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
668 sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
669 curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.95.0 -y
670 . "$HOME/.cargo/env"
671 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
672 rustup show
673 if: runner.os == 'Linux'
674 name: rustup (Linux)
675 shell: bash
676 - run: |
677 set -x
678 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
679 ./rustup-init.exe -y --default-toolchain=1.95.0
680 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
681 if: runner.os == 'Windows' && runner.arch == 'X64'
682 name: rustup (Windows X64)
683 shell: bash
684 - run: |
685 set -x
686 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
687 ./rustup-init.exe -y --default-toolchain=1.95.0
688 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
689 if: runner.os == 'Windows' && runner.arch == 'ARM64'
690 name: rustup (Windows ARM64)
691 shell: bash
692 - uses: actions/checkout@v6
693 with:
694 path: flowey_bootstrap
695 - name: Build flowey
696 run: |
697 set -x
698 CARGO_INCREMENTAL=0 cargo build -p flowey_hvlite --target x86_64-unknown-linux-gnu --profile flowey-ci
699 OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
700 mkdir -p "$OutDirNormal"
701 mv ./.github/workflows/openvmm-ci.yaml "$OutDirNormal/pipeline.yaml"
702 mv target/x86_64-unknown-linux-gnu/flowey-ci/flowey_hvlite "$OutDirNormal/flowey"
703 working-directory: flowey_bootstrap
704 shell: bash
705 - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH
706 shell: bash
707 name: 🌼📦 Add flowey to PATH
708 - name: 🌼🔎 Self-check YAML
709 run: |-
710 ESCAPED_AGENT_TEMPDIR=$(
711 cat <<'EOF' | sed 's/\\/\\\\/g'
712 ${{ runner.temp }}
713 EOF
714 )
715 flowey pipeline github --runtime $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci
716 shell: bash
717 - name: 🌼🛫 Initialize job
718 run: |
719 AgentTempDirNormal="${{ runner.temp }}"
720 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
721 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
722
723 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey
724
725 echo '"debug"' | flowey v 11 'FLOWEY_LOG' update
726 echo "${{ runner.temp }}/work" | flowey v 11 '_internal_WORKING_DIR' --is-raw-string update
727
728 cat <<'EOF' | flowey v 11 'verbose' update
729 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
730 EOF
731 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-openhcl-baseline"
732 echo "$AgentTempDirNormal/publish_artifacts/x64-openhcl-baseline" | flowey v 11 'artifact_publish_from_x64-openhcl-baseline' --is-raw-string update
733 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-openhcl-igvm"
734 echo "$AgentTempDirNormal/publish_artifacts/x64-openhcl-igvm" | flowey v 11 'artifact_publish_from_x64-openhcl-igvm' --is-raw-string update
735 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-openhcl-igvm-extras"
736 echo "$AgentTempDirNormal/publish_artifacts/x64-openhcl-igvm-extras" | flowey v 11 'artifact_publish_from_x64-openhcl-igvm-extras' --is-raw-string update
737 shell: bash
738 - name: checking if packages need to be installed
739 run: flowey e 11 flowey_lib_common::install_dist_pkg 0
740 shell: bash
741 - name: installing packages
742 run: flowey e 11 flowey_lib_common::install_dist_pkg 1
743 shell: bash
744 - name: create gh-release-download cache dir
745 run: flowey e 11 flowey_lib_common::download_gh_release 0
746 shell: bash
747 - name: Pre-processing cache vars
748 run: |-
749 flowey e 11 flowey_lib_common::cache 0
750 flowey v 11 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar1
751 flowey v 11 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar2
752 shell: bash
753 - id: flowey_lib_common__cache__1
754 uses: actions/cache@v5
755 with:
756 key: ${{ env.floweyvar1 }}
757 path: ${{ env.floweyvar2 }}
758 name: 'Restore cache: gh-release-download'
759 - name: download artifacts from github releases
760 run: |-
761 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
762 ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
763 EOF
764 flowey e 11 flowey_lib_common::cache 2
765 flowey e 11 flowey_lib_common::download_gh_release 1
766 shell: bash
767 - name: unpack mu_msvm package (x64)
768 run: flowey e 11 flowey_lib_hvlite::download_uefi_mu_msvm 0
769 shell: bash
770 - name: add default cargo home to path
771 run: flowey e 11 flowey_lib_common::install_rust 0
772 shell: bash
773 - name: install Rust
774 run: flowey e 11 flowey_lib_common::install_rust 1
775 shell: bash
776 - name: detect active toolchain
777 run: |-
778 flowey e 11 flowey_lib_common::install_rust 2
779 flowey e 11 flowey_lib_common::cfg_cargo_common_flags 0
780 shell: bash
781 - name: check if openvmm needs to be cloned
782 run: |-
783 flowey e 11 flowey_lib_common::git_checkout 0
784 flowey v 11 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:489:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46 write-to-env github floweyvar3
785 flowey v 11 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION
786 shell: bash
787 - id: flowey_lib_common__git_checkout__1
788 uses: actions/checkout@v6
789 with:
790 fetch-depth: '1'
791 path: repo0
792 persist-credentials: ${{ env.floweyvar3 }}
793 name: checkout repo openvmm
794 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
795 - name: report cloned repo directories
796 run: |-
797 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
798 ${{ github.workspace }}
799 EOF
800 flowey e 11 flowey_lib_common::git_checkout 3
801 flowey e 11 flowey_lib_hvlite::git_checkout_openvmm_repo 0
802 shell: bash
803 - name: set '-Dwarnings' in .cargo/config.toml
804 run: flowey e 11 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
805 shell: bash
806 - name: unpack protoc
807 run: |-
808 flowey e 11 flowey_lib_common::resolve_protoc 0
809 flowey e 11 flowey_lib_hvlite::cfg_openvmm_magicpath 0
810 shell: bash
811 - name: symlink protoc
812 run: |-
813 flowey e 11 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
814 flowey e 11 flowey_lib_hvlite::init_cross_build 0
815 flowey e 11 flowey_lib_hvlite::run_cargo_build 9
816 flowey e 11 flowey_lib_hvlite::run_cargo_build 10
817 shell: bash
818 - name: cargo build sidecar
819 run: |-
820 flowey e 11 flowey_lib_common::run_cargo_build 4
821 flowey e 11 flowey_lib_hvlite::run_cargo_build 11
822 shell: bash
823 - name: split debug symbols
824 run: |-
825 flowey e 11 flowey_lib_hvlite::run_split_debug_info 7
826 flowey e 11 flowey_lib_hvlite::run_cargo_build 12
827 flowey e 11 flowey_lib_hvlite::build_sidecar 0
828 flowey e 11 flowey_lib_hvlite::init_cross_build 1
829 flowey e 11 flowey_lib_hvlite::run_cargo_build 2
830 flowey e 11 flowey_lib_hvlite::run_cargo_build 3
831 shell: bash
832 - name: cargo build openhcl_boot
833 run: |-
834 flowey e 11 flowey_lib_common::run_cargo_build 1
835 flowey e 11 flowey_lib_hvlite::run_cargo_build 4
836 shell: bash
837 - name: split debug symbols
838 run: |-
839 flowey e 11 flowey_lib_hvlite::run_split_debug_info 5
840 flowey e 11 flowey_lib_hvlite::run_cargo_build 5
841 flowey e 11 flowey_lib_hvlite::build_openhcl_boot 0
842 shell: bash
843 - name: extract and resolve kernel package
844 run: |-
845 flowey e 11 flowey_lib_hvlite::resolve_openhcl_kernel_package 2
846 flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 28
847 shell: bash
848 - name: unpack openvmm-deps archive
849 run: flowey e 11 flowey_lib_hvlite::resolve_openvmm_deps 0
850 shell: bash
851 - name: extract X86_64 sysroot.tar.gz
852 run: |-
853 flowey e 11 flowey_lib_hvlite::init_openvmm_magicpath_openhcl_sysroot 0
854 flowey e 11 flowey_lib_hvlite::init_cross_build 4
855 shell: bash
856 - name: cargo build openvmm_hcl
857 run: |-
858 flowey e 11 flowey_lib_common::run_cargo_build 3
859 flowey e 11 flowey_lib_hvlite::run_cargo_build 8
860 flowey e 11 flowey_lib_hvlite::build_openvmm_hcl 1
861 flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 24
862 shell: bash
863 - name: split debug symbols
864 run: |-
865 flowey e 11 flowey_lib_hvlite::run_split_debug_info 4
866 flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 25
867 flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 26
868 flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 29
869 shell: bash
870 - name: building openhcl initrd
871 run: |-
872 flowey e 11 flowey_lib_hvlite::build_openhcl_initrd 4
873 flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 30
874 flowey e 11 flowey_lib_hvlite::init_cross_build 2
875 shell: bash
876 - name: cargo build igvmfilegen
877 run: |-
878 flowey e 11 flowey_lib_common::run_cargo_build 0
879 flowey e 11 flowey_lib_hvlite::run_cargo_build 0
880 shell: bash
881 - name: split debug symbols
882 run: |-
883 flowey e 11 flowey_lib_hvlite::run_split_debug_info 8
884 flowey e 11 flowey_lib_hvlite::run_cargo_build 1
885 flowey e 11 flowey_lib_hvlite::build_igvmfilegen 0
886 flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 31
887 flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 32
888 shell: bash
889 - name: building igvm file
890 run: |-
891 flowey e 11 flowey_lib_hvlite::run_igvmfilegen 4
892 flowey e 11 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 2
893 flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 39
894 flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 35
895 shell: bash
896 - name: split debug symbols
897 run: |-
898 flowey e 11 flowey_lib_hvlite::run_split_debug_info 0
899 flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 36
900 flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 37
901 flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 40
902 shell: bash
903 - name: extract and resolve kernel package
904 run: flowey e 11 flowey_lib_hvlite::resolve_openhcl_kernel_package 0
905 shell: bash
906 - name: building openhcl initrd
907 run: flowey e 11 flowey_lib_hvlite::build_openhcl_initrd 0
908 shell: bash
909 - name: unpack openvmm-test-linux archives
910 run: flowey e 11 flowey_lib_hvlite::resolve_openvmm_test_linux_kernel 0
911 shell: bash
912 - name: unpack openvmm-test-initrd archives
913 run: |-
914 flowey e 11 flowey_lib_hvlite::resolve_openvmm_test_initrd 0
915 flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 41
916 flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 42
917 flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 43
918 shell: bash
919 - name: building igvm file
920 run: |-
921 flowey e 11 flowey_lib_hvlite::run_igvmfilegen 0
922 flowey e 11 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 4
923 flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 50
924 flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 46
925 shell: bash
926 - name: split debug symbols
927 run: |-
928 flowey e 11 flowey_lib_hvlite::run_split_debug_info 1
929 flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 47
930 flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 48
931 flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 51
932 shell: bash
933 - name: building openhcl initrd
934 run: |-
935 flowey e 11 flowey_lib_hvlite::build_openhcl_initrd 1
936 flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 52
937 flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 53
938 flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 54
939 shell: bash
940 - name: building igvm file
941 run: |-
942 flowey e 11 flowey_lib_hvlite::run_igvmfilegen 1
943 flowey e 11 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 6
944 shell: bash
945 - name: extract and resolve kernel package
946 run: |-
947 flowey e 11 flowey_lib_hvlite::resolve_openhcl_kernel_package 1
948 flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 17
949 flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 13
950 shell: bash
951 - name: split debug symbols
952 run: |-
953 flowey e 11 flowey_lib_hvlite::run_split_debug_info 3
954 flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 14
955 flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 15
956 flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 18
957 shell: bash
958 - name: building openhcl initrd
959 run: |-
960 flowey e 11 flowey_lib_hvlite::build_openhcl_initrd 3
961 flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 19
962 flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 20
963 flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 21
964 shell: bash
965 - name: building igvm file
966 run: |-
967 flowey e 11 flowey_lib_hvlite::run_igvmfilegen 3
968 flowey e 11 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 8
969 flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 6
970 flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 2
971 shell: bash
972 - name: split debug symbols
973 run: |-
974 flowey e 11 flowey_lib_hvlite::run_split_debug_info 2
975 flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 3
976 flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 4
977 flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 7
978 shell: bash
979 - name: building openhcl initrd
980 run: |-
981 flowey e 11 flowey_lib_hvlite::build_openhcl_initrd 2
982 flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 8
983 flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 9
984 flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 10
985 shell: bash
986 - name: building igvm file
987 run: |-
988 flowey e 11 flowey_lib_hvlite::run_igvmfilegen 2
989 flowey e 11 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 0
990 flowey e 11 flowey_lib_hvlite::artifact_openhcl_igvm_from_recipe::publish 0
991 shell: bash
992 - name: copying OpenHCL igvm files to artifact dir
993 run: |-
994 flowey e 11 flowey_lib_common::copy_to_artifact_dir 1
995 flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 22
996 flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 27
997 flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 23
998 flowey e 11 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 3
999 flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 38
1000 flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 34
1001 flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 33
1002 flowey e 11 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 5
1003 flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 49
1004 flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 45
1005 flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 44
1006 flowey e 11 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 7
1007 flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 16
1008 flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 12
1009 flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 11
1010 flowey e 11 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 9
1011 flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 5
1012 flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 1
1013 flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 0
1014 flowey e 11 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 1
1015 flowey e 11 flowey_lib_hvlite::artifact_openhcl_igvm_from_recipe_extras::publish 0
1016 shell: bash
1017 - name: copying OpenHCL igvm extras to artifact dir
1018 run: |-
1019 flowey e 11 flowey_lib_common::copy_to_artifact_dir 0
1020 flowey e 11 flowey_lib_hvlite::init_cross_build 3
1021 shell: bash
1022 - name: cargo build openvmm_hcl
1023 run: |-
1024 flowey e 11 flowey_lib_common::run_cargo_build 2
1025 flowey e 11 flowey_lib_hvlite::run_cargo_build 6
1026 shell: bash
1027 - name: split debug symbols
1028 run: |-
1029 flowey e 11 flowey_lib_hvlite::run_split_debug_info 6
1030 flowey e 11 flowey_lib_hvlite::run_cargo_build 7
1031 flowey e 11 flowey_lib_hvlite::build_openvmm_hcl 0
1032 shell: bash
1033 - name: copying openhcl build to publish dir
1034 run: flowey e 11 flowey_lib_hvlite::artifact_openvmm_hcl_sizecheck::publish 0
1035 shell: bash
1036 - name: 'validate cache entry: gh-release-download'
1037 run: flowey e 11 flowey_lib_common::cache 3
1038 shell: bash
1039 - name: 🌼📦 Publish x64-openhcl-baseline
1040 uses: actions/upload-artifact@v7
1041 with:
1042 name: x64-openhcl-baseline
1043 path: ${{ runner.temp }}/publish_artifacts/x64-openhcl-baseline/
1044 include-hidden-files: true
1045 - name: 🌼📦 Publish x64-openhcl-igvm
1046 uses: actions/upload-artifact@v7
1047 with:
1048 name: x64-openhcl-igvm
1049 path: ${{ runner.temp }}/publish_artifacts/x64-openhcl-igvm/
1050 include-hidden-files: true
1051 - name: 🌼📦 Publish x64-openhcl-igvm-extras
1052 uses: actions/upload-artifact@v7
1053 with:
1054 name: x64-openhcl-igvm-extras
1055 path: ${{ runner.temp }}/publish_artifacts/x64-openhcl-igvm-extras/
1056 include-hidden-files: true
1057 job12:
1058 name: build openhcl (mi-secure) [x64-linux]
1059 runs-on:
1060 - self-hosted
1061 - 1ES.Pool=openvmm-gh-amd-westus3
1062 - 1ES.ImageOverride=ubuntu2404-amd64
1063 - JobId=job12-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}
1064 permissions:
1065 contents: read
1066 id-token: write
1067 if: github.event.pull_request.draft == false
1068 steps:
1069 - run: |
1070 set -x
1071 i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
1072 sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
1073 curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.95.0 -y
1074 . "$HOME/.cargo/env"
1075 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
1076 rustup show
1077 if: runner.os == 'Linux'
1078 name: rustup (Linux)
1079 shell: bash
1080 - run: |
1081 set -x
1082 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
1083 ./rustup-init.exe -y --default-toolchain=1.95.0
1084 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
1085 if: runner.os == 'Windows' && runner.arch == 'X64'
1086 name: rustup (Windows X64)
1087 shell: bash
1088 - run: |
1089 set -x
1090 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
1091 ./rustup-init.exe -y --default-toolchain=1.95.0
1092 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
1093 if: runner.os == 'Windows' && runner.arch == 'ARM64'
1094 name: rustup (Windows ARM64)
1095 shell: bash
1096 - uses: actions/checkout@v6
1097 with:
1098 path: flowey_bootstrap
1099 - name: Build flowey
1100 run: |
1101 set -x
1102 CARGO_INCREMENTAL=0 cargo build -p flowey_hvlite --target x86_64-unknown-linux-gnu --profile flowey-ci
1103 OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
1104 mkdir -p "$OutDirNormal"
1105 mv ./.github/workflows/openvmm-ci.yaml "$OutDirNormal/pipeline.yaml"
1106 mv target/x86_64-unknown-linux-gnu/flowey-ci/flowey_hvlite "$OutDirNormal/flowey"
1107 working-directory: flowey_bootstrap
1108 shell: bash
1109 - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH
1110 shell: bash
1111 name: 🌼📦 Add flowey to PATH
1112 - name: 🌼🔎 Self-check YAML
1113 run: |-
1114 ESCAPED_AGENT_TEMPDIR=$(
1115 cat <<'EOF' | sed 's/\\/\\\\/g'
1116 ${{ runner.temp }}
1117 EOF
1118 )
1119 flowey pipeline github --runtime $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci
1120 shell: bash
1121 - name: 🌼🛫 Initialize job
1122 run: |
1123 AgentTempDirNormal="${{ runner.temp }}"
1124 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
1125 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
1126
1127 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey
1128
1129 echo '"debug"' | flowey v 12 'FLOWEY_LOG' update
1130 echo "${{ runner.temp }}/work" | flowey v 12 '_internal_WORKING_DIR' --is-raw-string update
1131
1132 cat <<'EOF' | flowey v 12 'verbose' update
1133 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
1134 EOF
1135 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-mi-secure-openhcl-igvm"
1136 echo "$AgentTempDirNormal/publish_artifacts/x64-mi-secure-openhcl-igvm" | flowey v 12 'artifact_publish_from_x64-mi-secure-openhcl-igvm' --is-raw-string update
1137 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-mi-secure-openhcl-igvm-extras"
1138 echo "$AgentTempDirNormal/publish_artifacts/x64-mi-secure-openhcl-igvm-extras" | flowey v 12 'artifact_publish_from_x64-mi-secure-openhcl-igvm-extras' --is-raw-string update
1139 shell: bash
1140 - name: create gh-release-download cache dir
1141 run: flowey e 12 flowey_lib_common::download_gh_release 0
1142 shell: bash
1143 - name: Pre-processing cache vars
1144 run: |-
1145 flowey e 12 flowey_lib_common::cache 0
1146 flowey v 12 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar1
1147 flowey v 12 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar2
1148 shell: bash
1149 - id: flowey_lib_common__cache__1
1150 uses: actions/cache@v5
1151 with:
1152 key: ${{ env.floweyvar1 }}
1153 path: ${{ env.floweyvar2 }}
1154 name: 'Restore cache: gh-release-download'
1155 - name: download artifacts from github releases
1156 run: |-
1157 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
1158 ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
1159 EOF
1160 flowey e 12 flowey_lib_common::cache 2
1161 flowey e 12 flowey_lib_common::download_gh_release 1
1162 shell: bash
1163 - name: unpack openvmm-test-linux archives
1164 run: flowey e 12 flowey_lib_hvlite::resolve_openvmm_test_linux_kernel 0
1165 shell: bash
1166 - name: unpack openvmm-test-initrd archives
1167 run: flowey e 12 flowey_lib_hvlite::resolve_openvmm_test_initrd 0
1168 shell: bash
1169 - name: add default cargo home to path
1170 run: flowey e 12 flowey_lib_common::install_rust 0
1171 shell: bash
1172 - name: install Rust
1173 run: flowey e 12 flowey_lib_common::install_rust 1
1174 shell: bash
1175 - name: detect active toolchain
1176 run: |-
1177 flowey e 12 flowey_lib_common::install_rust 2
1178 flowey e 12 flowey_lib_common::cfg_cargo_common_flags 0
1179 shell: bash
1180 - name: check if openvmm needs to be cloned
1181 run: |-
1182 flowey e 12 flowey_lib_common::git_checkout 0
1183 flowey v 12 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:489:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46 write-to-env github floweyvar3
1184 flowey v 12 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION
1185 shell: bash
1186 - id: flowey_lib_common__git_checkout__1
1187 uses: actions/checkout@v6
1188 with:
1189 fetch-depth: '1'
1190 path: repo0
1191 persist-credentials: ${{ env.floweyvar3 }}
1192 name: checkout repo openvmm
1193 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
1194 - name: report cloned repo directories
1195 run: |-
1196 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
1197 ${{ github.workspace }}
1198 EOF
1199 flowey e 12 flowey_lib_common::git_checkout 3
1200 flowey e 12 flowey_lib_hvlite::git_checkout_openvmm_repo 0
1201 shell: bash
1202 - name: set '-Dwarnings' in .cargo/config.toml
1203 run: flowey e 12 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
1204 shell: bash
1205 - name: checking if packages need to be installed
1206 run: flowey e 12 flowey_lib_common::install_dist_pkg 0
1207 shell: bash
1208 - name: installing packages
1209 run: flowey e 12 flowey_lib_common::install_dist_pkg 1
1210 shell: bash
1211 - name: unpack protoc
1212 run: |-
1213 flowey e 12 flowey_lib_common::resolve_protoc 0
1214 flowey e 12 flowey_lib_hvlite::cfg_openvmm_magicpath 0
1215 shell: bash
1216 - name: symlink protoc
1217 run: |-
1218 flowey e 12 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
1219 flowey e 12 flowey_lib_hvlite::init_cross_build 0
1220 flowey e 12 flowey_lib_hvlite::run_cargo_build 7
1221 flowey e 12 flowey_lib_hvlite::run_cargo_build 8
1222 shell: bash
1223 - name: cargo build sidecar
1224 run: |-
1225 flowey e 12 flowey_lib_common::run_cargo_build 3
1226 flowey e 12 flowey_lib_hvlite::run_cargo_build 9
1227 shell: bash
1228 - name: split debug symbols
1229 run: |-
1230 flowey e 12 flowey_lib_hvlite::run_split_debug_info 4
1231 flowey e 12 flowey_lib_hvlite::run_cargo_build 10
1232 flowey e 12 flowey_lib_hvlite::build_sidecar 0
1233 flowey e 12 flowey_lib_hvlite::init_cross_build 1
1234 flowey e 12 flowey_lib_hvlite::run_cargo_build 2
1235 flowey e 12 flowey_lib_hvlite::run_cargo_build 3
1236 shell: bash
1237 - name: cargo build openhcl_boot
1238 run: |-
1239 flowey e 12 flowey_lib_common::run_cargo_build 1
1240 flowey e 12 flowey_lib_hvlite::run_cargo_build 4
1241 shell: bash
1242 - name: split debug symbols
1243 run: |-
1244 flowey e 12 flowey_lib_hvlite::run_split_debug_info 3
1245 flowey e 12 flowey_lib_hvlite::run_cargo_build 5
1246 flowey e 12 flowey_lib_hvlite::build_openhcl_boot 0
1247 shell: bash
1248 - name: extract and resolve kernel package
1249 run: |-
1250 flowey e 12 flowey_lib_hvlite::resolve_openhcl_kernel_package 0
1251 flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 28
1252 shell: bash
1253 - name: unpack openvmm-deps archive
1254 run: flowey e 12 flowey_lib_hvlite::resolve_openvmm_deps 0
1255 shell: bash
1256 - name: extract X86_64 sysroot.tar.gz
1257 run: |-
1258 flowey e 12 flowey_lib_hvlite::init_openvmm_magicpath_openhcl_sysroot 0
1259 flowey e 12 flowey_lib_hvlite::init_cross_build 3
1260 shell: bash
1261 - name: cargo build openvmm_hcl
1262 run: |-
1263 flowey e 12 flowey_lib_common::run_cargo_build 2
1264 flowey e 12 flowey_lib_hvlite::run_cargo_build 6
1265 flowey e 12 flowey_lib_hvlite::build_openvmm_hcl 0
1266 flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 24
1267 shell: bash
1268 - name: split debug symbols
1269 run: |-
1270 flowey e 12 flowey_lib_hvlite::run_split_debug_info 2
1271 flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 25
1272 flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 26
1273 flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 29
1274 shell: bash
1275 - name: building openhcl initrd
1276 run: |-
1277 flowey e 12 flowey_lib_hvlite::build_openhcl_initrd 2
1278 flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 30
1279 flowey e 12 flowey_lib_hvlite::init_cross_build 2
1280 shell: bash
1281 - name: cargo build igvmfilegen
1282 run: |-
1283 flowey e 12 flowey_lib_common::run_cargo_build 0
1284 flowey e 12 flowey_lib_hvlite::run_cargo_build 0
1285 shell: bash
1286 - name: split debug symbols
1287 run: |-
1288 flowey e 12 flowey_lib_hvlite::run_split_debug_info 5
1289 flowey e 12 flowey_lib_hvlite::run_cargo_build 1
1290 flowey e 12 flowey_lib_hvlite::build_igvmfilegen 0
1291 flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 31
1292 flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 32
1293 shell: bash
1294 - name: building igvm file
1295 run: |-
1296 flowey e 12 flowey_lib_hvlite::run_igvmfilegen 2
1297 flowey e 12 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 2
1298 shell: bash
1299 - name: unpack mu_msvm package (x64)
1300 run: flowey e 12 flowey_lib_hvlite::download_uefi_mu_msvm 0
1301 shell: bash
1302 - name: extract and resolve kernel package
1303 run: |-
1304 flowey e 12 flowey_lib_hvlite::resolve_openhcl_kernel_package 1
1305 flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 17
1306 flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 13
1307 shell: bash
1308 - name: split debug symbols
1309 run: |-
1310 flowey e 12 flowey_lib_hvlite::run_split_debug_info 1
1311 flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 14
1312 flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 15
1313 flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 18
1314 shell: bash
1315 - name: building openhcl initrd
1316 run: |-
1317 flowey e 12 flowey_lib_hvlite::build_openhcl_initrd 1
1318 flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 19
1319 flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 20
1320 flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 21
1321 shell: bash
1322 - name: building igvm file
1323 run: |-
1324 flowey e 12 flowey_lib_hvlite::run_igvmfilegen 1
1325 flowey e 12 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 4
1326 flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 6
1327 flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 2
1328 shell: bash
1329 - name: split debug symbols
1330 run: |-
1331 flowey e 12 flowey_lib_hvlite::run_split_debug_info 0
1332 flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 3
1333 flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 4
1334 flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 7
1335 shell: bash
1336 - name: building openhcl initrd
1337 run: |-
1338 flowey e 12 flowey_lib_hvlite::build_openhcl_initrd 0
1339 flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 8
1340 flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 9
1341 flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 10
1342 shell: bash
1343 - name: building igvm file
1344 run: |-
1345 flowey e 12 flowey_lib_hvlite::run_igvmfilegen 0
1346 flowey e 12 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 0
1347 flowey e 12 flowey_lib_hvlite::artifact_openhcl_igvm_from_recipe::publish 0
1348 shell: bash
1349 - name: copying OpenHCL igvm files to artifact dir
1350 run: |-
1351 flowey e 12 flowey_lib_common::copy_to_artifact_dir 1
1352 flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 22
1353 flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 27
1354 flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 23
1355 flowey e 12 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 3
1356 flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 16
1357 flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 12
1358 flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 11
1359 flowey e 12 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 5
1360 flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 5
1361 flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 1
1362 flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 0
1363 flowey e 12 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 1
1364 flowey e 12 flowey_lib_hvlite::artifact_openhcl_igvm_from_recipe_extras::publish 0
1365 shell: bash
1366 - name: copying OpenHCL igvm extras to artifact dir
1367 run: flowey e 12 flowey_lib_common::copy_to_artifact_dir 0
1368 shell: bash
1369 - name: 'validate cache entry: gh-release-download'
1370 run: flowey e 12 flowey_lib_common::cache 3
1371 shell: bash
1372 - name: 🌼📦 Publish x64-mi-secure-openhcl-igvm
1373 uses: actions/upload-artifact@v7
1374 with:
1375 name: x64-mi-secure-openhcl-igvm
1376 path: ${{ runner.temp }}/publish_artifacts/x64-mi-secure-openhcl-igvm/
1377 include-hidden-files: true
1378 - name: 🌼📦 Publish x64-mi-secure-openhcl-igvm-extras
1379 uses: actions/upload-artifact@v7
1380 with:
1381 name: x64-mi-secure-openhcl-igvm-extras
1382 path: ${{ runner.temp }}/publish_artifacts/x64-mi-secure-openhcl-igvm-extras/
1383 include-hidden-files: true
1384 job13:
1385 name: clippy [x64-windows], unit tests [x64-windows]
1386 runs-on:
1387 - self-hosted
1388 - 1ES.Pool=openvmm-gh-amd-westus3
1389 - 1ES.ImageOverride=win-amd64
1390 - JobId=job13-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}
1391 permissions:
1392 contents: read
1393 id-token: write
1394 if: github.event.pull_request.draft == false
1395 steps:
1396 - run: |
1397 set -x
1398 i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
1399 sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
1400 curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.95.0 -y
1401 . "$HOME/.cargo/env"
1402 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
1403 rustup show
1404 if: runner.os == 'Linux'
1405 name: rustup (Linux)
1406 shell: bash
1407 - run: |
1408 set -x
1409 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
1410 ./rustup-init.exe -y --default-toolchain=1.95.0
1411 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
1412 if: runner.os == 'Windows' && runner.arch == 'X64'
1413 name: rustup (Windows X64)
1414 shell: bash
1415 - run: |
1416 set -x
1417 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
1418 ./rustup-init.exe -y --default-toolchain=1.95.0
1419 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
1420 if: runner.os == 'Windows' && runner.arch == 'ARM64'
1421 name: rustup (Windows ARM64)
1422 shell: bash
1423 - uses: actions/checkout@v6
1424 with:
1425 path: flowey_bootstrap
1426 - name: Build flowey
1427 run: |
1428 set -x
1429 CARGO_INCREMENTAL=0 cargo build -p flowey_hvlite --target x86_64-pc-windows-msvc --profile flowey-ci
1430 OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
1431 mkdir -p "$OutDirNormal"
1432 mv ./.github/workflows/openvmm-ci.yaml "$OutDirNormal/pipeline.yaml"
1433 mv target/x86_64-pc-windows-msvc/flowey-ci/flowey_hvlite.exe "$OutDirNormal/flowey.exe"
1434 working-directory: flowey_bootstrap
1435 shell: bash
1436 - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH
1437 shell: bash
1438 name: 🌼📦 Add flowey to PATH
1439 - name: 🌼🔎 Self-check YAML
1440 run: |-
1441 ESCAPED_AGENT_TEMPDIR=$(
1442 cat <<'EOF' | sed 's/\\/\\\\/g'
1443 ${{ runner.temp }}
1444 EOF
1445 )
1446 flowey.exe pipeline github --runtime $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci
1447 shell: bash
1448 - name: 🌼🛫 Initialize job
1449 run: |
1450 AgentTempDirNormal="${{ runner.temp }}"
1451 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
1452 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
1453
1454 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe
1455
1456 echo '"debug"' | flowey.exe v 13 'FLOWEY_LOG' update
1457 echo "${{ runner.temp }}/work" | flowey.exe v 13 '_internal_WORKING_DIR' --is-raw-string update
1458
1459 cat <<'EOF' | flowey.exe v 13 'verbose' update
1460 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
1461 EOF
1462 shell: bash
1463 - name: add default cargo home to path
1464 run: flowey.exe e 13 flowey_lib_common::install_rust 0
1465 shell: bash
1466 - name: install Rust
1467 run: flowey.exe e 13 flowey_lib_common::install_rust 1
1468 shell: bash
1469 - name: detect active toolchain
1470 run: |-
1471 flowey.exe e 13 flowey_lib_common::install_rust 2
1472 flowey.exe e 13 flowey_lib_common::cfg_cargo_common_flags 0
1473 shell: bash
1474 - name: check if openvmm needs to be cloned
1475 run: |-
1476 flowey.exe e 13 flowey_lib_common::git_checkout 0
1477 flowey.exe v 13 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:489:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46 write-to-env github floweyvar8
1478 flowey.exe v 13 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION
1479 shell: bash
1480 - id: flowey_lib_common__git_checkout__1
1481 uses: actions/checkout@v6
1482 with:
1483 fetch-depth: '1'
1484 path: repo0
1485 persist-credentials: ${{ env.floweyvar8 }}
1486 name: checkout repo openvmm
1487 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
1488 - name: report cloned repo directories
1489 run: |-
1490 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
1491 ${{ github.workspace }}
1492 EOF
1493 flowey.exe e 13 flowey_lib_common::git_checkout 3
1494 flowey.exe e 13 flowey_lib_hvlite::git_checkout_openvmm_repo 0
1495 shell: bash
1496 - name: set '-Dwarnings' in .cargo/config.toml
1497 run: flowey.exe e 13 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
1498 shell: bash
1499 - name: create gh-release-download cache dir
1500 run: flowey.exe e 13 flowey_lib_common::download_gh_release 0
1501 shell: bash
1502 - name: Pre-processing cache vars
1503 run: |-
1504 flowey.exe e 13 flowey_lib_common::cache 4
1505 flowey.exe v 13 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar6
1506 flowey.exe v 13 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar7
1507 shell: bash
1508 - id: flowey_lib_common__cache__5
1509 uses: actions/cache@v5
1510 with:
1511 key: ${{ env.floweyvar6 }}
1512 path: ${{ env.floweyvar7 }}
1513 name: 'Restore cache: gh-release-download'
1514 - name: download artifacts from github releases
1515 run: |-
1516 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
1517 ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
1518 EOF
1519 flowey.exe e 13 flowey_lib_common::cache 6
1520 flowey.exe e 13 flowey_lib_common::download_gh_release 1
1521 shell: bash
1522 - name: unpack protoc
1523 run: |-
1524 flowey.exe e 13 flowey_lib_common::resolve_protoc 0
1525 flowey.exe e 13 flowey_lib_hvlite::cfg_openvmm_magicpath 0
1526 shell: bash
1527 - name: symlink protoc
1528 run: |-
1529 flowey.exe e 13 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
1530 flowey.exe e 13 flowey_lib_hvlite::init_cross_build 0
1531 flowey.exe e 13 flowey_lib_hvlite::init_cross_build 2
1532 shell: bash
1533 - name: cargo build xtask
1534 run: |-
1535 flowey.exe e 13 flowey_lib_common::run_cargo_build 0
1536 flowey.exe e 13 flowey_lib_hvlite::run_cargo_build 0
1537 flowey.exe e 13 flowey_lib_hvlite::build_xtask 0
1538 shell: bash
1539 - name: determine clippy exclusions
1540 run: flowey.exe e 13 flowey_lib_hvlite::_jobs::check_clippy 0
1541 shell: bash
1542 - name: cargo clippy
1543 run: flowey.exe e 13 flowey_lib_common::run_cargo_clippy 0
1544 shell: bash
1545 - name: cargo clippy
1546 run: flowey.exe e 13 flowey_lib_common::run_cargo_clippy 1
1547 shell: bash
1548 - name: cargo clippy
1549 run: flowey.exe e 13 flowey_lib_common::run_cargo_clippy 2
1550 shell: bash
1551 - name: create cargo-nextest cache dir
1552 run: |-
1553 flowey.exe e 13 flowey_lib_common::download_cargo_nextest 0
1554 flowey.exe e 13 flowey_lib_common::download_cargo_nextest 1
1555 flowey.exe e 13 flowey_lib_common::download_cargo_nextest 2
1556 flowey.exe e 13 flowey_lib_common::download_cargo_nextest 3
1557 shell: bash
1558 - name: Pre-processing cache vars
1559 run: |-
1560 flowey.exe e 13 flowey_lib_common::cache 0
1561 flowey.exe v 13 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar4
1562 flowey.exe v 13 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar5
1563 shell: bash
1564 - id: flowey_lib_common__cache__1
1565 uses: actions/cache@v5
1566 with:
1567 key: ${{ env.floweyvar4 }}
1568 path: ${{ env.floweyvar5 }}
1569 name: 'Restore cache: cargo-nextest'
1570 - name: downloading cargo-nextest
1571 run: |-
1572 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
1573 ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
1574 EOF
1575 flowey.exe e 13 flowey_lib_common::cache 2
1576 flowey.exe e 13 flowey_lib_common::download_cargo_nextest 4
1577 shell: bash
1578 - name: report $CARGO_HOME
1579 run: flowey.exe e 13 flowey_lib_common::install_rust 3
1580 shell: bash
1581 - name: installing cargo-nextest
1582 run: |-
1583 flowey.exe e 13 flowey_lib_common::install_cargo_nextest 0
1584 flowey.exe e 13 flowey_lib_hvlite::init_cross_build 1
1585 flowey.exe e 13 flowey_lib_hvlite::run_cargo_nextest_run 0
1586 shell: bash
1587 - name: generate nextest command
1588 run: flowey.exe e 13 flowey_lib_common::gen_cargo_nextest_run_cmd 1
1589 shell: bash
1590 - name: run 'unit-tests crypto (rust)' nextest tests
1591 run: |-
1592 flowey.exe e 13 flowey_lib_common::run_cargo_nextest_run 2
1593 flowey.exe e 13 flowey_lib_common::run_cargo_nextest_run 3
1594 flowey.exe e 13 flowey_lib_hvlite::build_nextest_unit_tests 3
1595 flowey.exe e 13 flowey_lib_common::publish_test_results 5
1596 flowey.exe e 13 flowey_lib_common::publish_test_results 6
1597 flowey.exe e 13 flowey_lib_common::publish_test_results 4
1598 flowey.exe v 13 'flowey_lib_common::publish_test_results:11:flowey_lib_common/src/publish_test_results.rs:95:47' --is-raw-string --condvar flowey_lib_common::publish_test_results:7:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env github floweyvar2
1599 flowey.exe v 13 'flowey_lib_common::publish_test_results:7:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
1600 shell: bash
1601 - id: flowey_lib_common__publish_test_results__7
1602 uses: actions/upload-artifact@v7
1603 with:
1604 name: x64-windows-unit-tests-unit-tests crypto (rust)-junit-xml
1605 path: ${{ env.floweyvar2 }}
1606 name: 'publish test results: x64-windows-unit-tests-unit-tests crypto (rust) (JUnit XML)'
1607 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
1608 - name: cargo build xtask
1609 run: |-
1610 flowey.exe e 13 flowey_lib_hvlite::init_cross_build 3
1611 flowey.exe e 13 flowey_lib_common::run_cargo_build 1
1612 flowey.exe e 13 flowey_lib_hvlite::run_cargo_build 1
1613 flowey.exe e 13 flowey_lib_hvlite::build_xtask 1
1614 shell: bash
1615 - name: determine unit test exclusions
1616 run: flowey.exe e 13 flowey_lib_hvlite::build_nextest_unit_tests 0
1617 shell: bash
1618 - name: generate nextest command
1619 run: flowey.exe e 13 flowey_lib_common::gen_cargo_nextest_run_cmd 2
1620 shell: bash
1621 - name: run 'unit-tests' nextest tests
1622 run: |-
1623 flowey.exe e 13 flowey_lib_common::run_cargo_nextest_run 4
1624 flowey.exe e 13 flowey_lib_common::run_cargo_nextest_run 5
1625 flowey.exe e 13 flowey_lib_hvlite::build_nextest_unit_tests 1
1626 flowey.exe e 13 flowey_lib_common::publish_test_results 8
1627 flowey.exe e 13 flowey_lib_common::publish_test_results 9
1628 flowey.exe e 13 flowey_lib_common::publish_test_results 10
1629 flowey.exe v 13 'flowey_lib_common::publish_test_results:18:flowey_lib_common/src/publish_test_results.rs:95:47' --is-raw-string --condvar flowey_lib_common::publish_test_results:14:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env github floweyvar3
1630 flowey.exe v 13 'flowey_lib_common::publish_test_results:14:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
1631 shell: bash
1632 - id: flowey_lib_common__publish_test_results__11
1633 uses: actions/upload-artifact@v7
1634 with:
1635 name: x64-windows-unit-tests-unit-tests-junit-xml
1636 path: ${{ env.floweyvar3 }}
1637 name: 'publish test results: x64-windows-unit-tests-unit-tests (JUnit XML)'
1638 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
1639 - name: generate nextest command
1640 run: flowey.exe e 13 flowey_lib_common::gen_cargo_nextest_run_cmd 0
1641 shell: bash
1642 - name: run 'unit-tests crypto (native)' nextest tests
1643 run: |-
1644 flowey.exe e 13 flowey_lib_common::run_cargo_nextest_run 0
1645 flowey.exe e 13 flowey_lib_common::run_cargo_nextest_run 1
1646 flowey.exe e 13 flowey_lib_hvlite::build_nextest_unit_tests 2
1647 flowey.exe e 13 flowey_lib_common::publish_test_results 0
1648 flowey.exe e 13 flowey_lib_common::publish_test_results 1
1649 flowey.exe e 13 flowey_lib_common::publish_test_results 2
1650 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
1651 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
1652 shell: bash
1653 - id: flowey_lib_common__publish_test_results__3
1654 uses: actions/upload-artifact@v7
1655 with:
1656 name: x64-windows-unit-tests-unit-tests crypto (native)-junit-xml
1657 path: ${{ env.floweyvar1 }}
1658 name: 'publish test results: x64-windows-unit-tests-unit-tests crypto (native) (JUnit XML)'
1659 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
1660 - name: report test results to overall pipeline status
1661 run: |-
1662 flowey.exe e 13 flowey_lib_hvlite::build_nextest_unit_tests 4
1663 flowey.exe e 13 flowey_lib_hvlite::_jobs::build_and_run_nextest_unit_tests 0
1664 shell: bash
1665 - name: run doctests for x86_64-pc-windows-msvc
1666 run: flowey.exe e 13 flowey_lib_hvlite::_jobs::build_and_run_doc_tests 0
1667 shell: bash
1668 - name: 'validate cache entry: cargo-nextest'
1669 run: flowey.exe e 13 flowey_lib_common::cache 3
1670 shell: bash
1671 - name: 'validate cache entry: gh-release-download'
1672 run: flowey.exe e 13 flowey_lib_common::cache 7
1673 shell: bash
1674 job14:
1675 name: clippy [x64-linux, macos], unit tests [x64-linux]
1676 runs-on:
1677 - self-hosted
1678 - 1ES.Pool=openvmm-gh-amd-westus3
1679 - 1ES.ImageOverride=ubuntu2404-amd64
1680 - JobId=job14-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}
1681 permissions:
1682 contents: read
1683 id-token: write
1684 if: github.event.pull_request.draft == false
1685 steps:
1686 - run: |
1687 set -x
1688 i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
1689 sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
1690 curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.95.0 -y
1691 . "$HOME/.cargo/env"
1692 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
1693 rustup show
1694 if: runner.os == 'Linux'
1695 name: rustup (Linux)
1696 shell: bash
1697 - run: |
1698 set -x
1699 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
1700 ./rustup-init.exe -y --default-toolchain=1.95.0
1701 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
1702 if: runner.os == 'Windows' && runner.arch == 'X64'
1703 name: rustup (Windows X64)
1704 shell: bash
1705 - run: |
1706 set -x
1707 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
1708 ./rustup-init.exe -y --default-toolchain=1.95.0
1709 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
1710 if: runner.os == 'Windows' && runner.arch == 'ARM64'
1711 name: rustup (Windows ARM64)
1712 shell: bash
1713 - uses: actions/checkout@v6
1714 with:
1715 path: flowey_bootstrap
1716 - name: Build flowey
1717 run: |
1718 set -x
1719 CARGO_INCREMENTAL=0 cargo build -p flowey_hvlite --target x86_64-unknown-linux-gnu --profile flowey-ci
1720 OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
1721 mkdir -p "$OutDirNormal"
1722 mv ./.github/workflows/openvmm-ci.yaml "$OutDirNormal/pipeline.yaml"
1723 mv target/x86_64-unknown-linux-gnu/flowey-ci/flowey_hvlite "$OutDirNormal/flowey"
1724 working-directory: flowey_bootstrap
1725 shell: bash
1726 - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH
1727 shell: bash
1728 name: 🌼📦 Add flowey to PATH
1729 - name: 🌼🔎 Self-check YAML
1730 run: |-
1731 ESCAPED_AGENT_TEMPDIR=$(
1732 cat <<'EOF' | sed 's/\\/\\\\/g'
1733 ${{ runner.temp }}
1734 EOF
1735 )
1736 flowey pipeline github --runtime $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci
1737 shell: bash
1738 - name: 🌼🛫 Initialize job
1739 run: |
1740 AgentTempDirNormal="${{ runner.temp }}"
1741 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
1742 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
1743
1744 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey
1745
1746 echo '"debug"' | flowey v 14 'FLOWEY_LOG' update
1747 echo "${{ runner.temp }}/work" | flowey v 14 '_internal_WORKING_DIR' --is-raw-string update
1748
1749 cat <<'EOF' | flowey v 14 'verbose' update
1750 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
1751 EOF
1752 shell: bash
1753 - name: add default cargo home to path
1754 run: flowey e 14 flowey_lib_common::install_rust 0
1755 shell: bash
1756 - name: install Rust
1757 run: flowey e 14 flowey_lib_common::install_rust 1
1758 shell: bash
1759 - name: detect active toolchain
1760 run: |-
1761 flowey e 14 flowey_lib_common::install_rust 2
1762 flowey e 14 flowey_lib_common::cfg_cargo_common_flags 0
1763 flowey e 14 flowey_lib_hvlite::init_cross_build 0
1764 shell: bash
1765 - name: check if openvmm needs to be cloned
1766 run: |-
1767 flowey e 14 flowey_lib_common::git_checkout 0
1768 flowey v 14 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:489:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46 write-to-env github floweyvar10
1769 flowey v 14 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION
1770 shell: bash
1771 - id: flowey_lib_common__git_checkout__1
1772 uses: actions/checkout@v6
1773 with:
1774 fetch-depth: '1'
1775 path: repo0
1776 persist-credentials: ${{ env.floweyvar10 }}
1777 name: checkout repo openvmm
1778 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
1779 - name: report cloned repo directories
1780 run: |-
1781 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
1782 ${{ github.workspace }}
1783 EOF
1784 flowey e 14 flowey_lib_common::git_checkout 3
1785 flowey e 14 flowey_lib_hvlite::git_checkout_openvmm_repo 0
1786 shell: bash
1787 - name: set '-Dwarnings' in .cargo/config.toml
1788 run: flowey e 14 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
1789 shell: bash
1790 - name: create gh-release-download cache dir
1791 run: flowey e 14 flowey_lib_common::download_gh_release 0
1792 shell: bash
1793 - name: Pre-processing cache vars
1794 run: |-
1795 flowey e 14 flowey_lib_common::cache 4
1796 flowey v 14 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar8
1797 flowey v 14 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar9
1798 shell: bash
1799 - id: flowey_lib_common__cache__5
1800 uses: actions/cache@v5
1801 with:
1802 key: ${{ env.floweyvar8 }}
1803 path: ${{ env.floweyvar9 }}
1804 name: 'Restore cache: gh-release-download'
1805 - name: download artifacts from github releases
1806 run: |-
1807 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
1808 ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
1809 EOF
1810 flowey e 14 flowey_lib_common::cache 6
1811 flowey e 14 flowey_lib_common::download_gh_release 1
1812 shell: bash
1813 - name: checking if packages need to be installed
1814 run: flowey e 14 flowey_lib_common::install_dist_pkg 0
1815 shell: bash
1816 - name: installing packages
1817 run: flowey e 14 flowey_lib_common::install_dist_pkg 1
1818 shell: bash
1819 - name: unpack protoc
1820 run: |-
1821 flowey e 14 flowey_lib_common::resolve_protoc 0
1822 flowey e 14 flowey_lib_hvlite::cfg_openvmm_magicpath 0
1823 shell: bash
1824 - name: symlink protoc
1825 run: |-
1826 flowey e 14 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
1827 flowey e 14 flowey_lib_hvlite::init_cross_build 3
1828 shell: bash
1829 - name: cargo build xtask
1830 run: |-
1831 flowey e 14 flowey_lib_common::run_cargo_build 1
1832 flowey e 14 flowey_lib_hvlite::run_cargo_build 0
1833 shell: bash
1834 - name: split debug symbols
1835 run: |-
1836 flowey e 14 flowey_lib_hvlite::run_split_debug_info 2
1837 flowey e 14 flowey_lib_hvlite::run_cargo_build 1
1838 flowey e 14 flowey_lib_hvlite::build_xtask 0
1839 shell: bash
1840 - name: determine clippy exclusions
1841 run: flowey e 14 flowey_lib_hvlite::_jobs::check_clippy 1
1842 shell: bash
1843 - name: cargo clippy
1844 run: flowey e 14 flowey_lib_common::run_cargo_clippy 0
1845 shell: bash
1846 - name: cargo clippy
1847 run: flowey e 14 flowey_lib_common::run_cargo_clippy 2
1848 shell: bash
1849 - name: cargo clippy
1850 run: flowey e 14 flowey_lib_common::run_cargo_clippy 4
1851 shell: bash
1852 - name: cargo clippy
1853 run: flowey e 14 flowey_lib_common::run_cargo_clippy 3
1854 shell: bash
1855 - name: cargo clippy
1856 run: |-
1857 flowey e 14 flowey_lib_common::run_cargo_clippy 1
1858 flowey e 14 flowey_lib_hvlite::init_cross_build 4
1859 shell: bash
1860 - name: cargo build xtask
1861 run: |-
1862 flowey e 14 flowey_lib_common::run_cargo_build 2
1863 flowey e 14 flowey_lib_hvlite::run_cargo_build 2
1864 shell: bash
1865 - name: split debug symbols
1866 run: |-
1867 flowey e 14 flowey_lib_hvlite::run_split_debug_info 0
1868 flowey e 14 flowey_lib_hvlite::run_cargo_build 3
1869 flowey e 14 flowey_lib_hvlite::build_xtask 1
1870 shell: bash
1871 - name: determine clippy exclusions
1872 run: flowey e 14 flowey_lib_hvlite::_jobs::check_clippy 0
1873 shell: bash
1874 - name: cargo clippy
1875 run: flowey e 14 flowey_lib_common::run_cargo_clippy 5
1876 shell: bash
1877 - name: cargo clippy
1878 run: flowey e 14 flowey_lib_common::run_cargo_clippy 6
1879 shell: bash
1880 - name: cargo clippy
1881 run: flowey e 14 flowey_lib_common::run_cargo_clippy 7
1882 shell: bash
1883 - name: create cargo-nextest cache dir
1884 run: |-
1885 flowey e 14 flowey_lib_common::download_cargo_nextest 0
1886 flowey e 14 flowey_lib_common::download_cargo_nextest 1
1887 flowey e 14 flowey_lib_common::download_cargo_nextest 2
1888 flowey e 14 flowey_lib_common::download_cargo_nextest 3
1889 shell: bash
1890 - name: Pre-processing cache vars
1891 run: |-
1892 flowey e 14 flowey_lib_common::cache 0
1893 flowey v 14 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar6
1894 flowey v 14 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar7
1895 shell: bash
1896 - id: flowey_lib_common__cache__1
1897 uses: actions/cache@v5
1898 with:
1899 key: ${{ env.floweyvar6 }}
1900 path: ${{ env.floweyvar7 }}
1901 name: 'Restore cache: cargo-nextest'
1902 - name: downloading cargo-nextest
1903 run: |-
1904 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
1905 ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
1906 EOF
1907 flowey e 14 flowey_lib_common::cache 2
1908 flowey e 14 flowey_lib_common::download_cargo_nextest 4
1909 shell: bash
1910 - name: report $CARGO_HOME
1911 run: flowey e 14 flowey_lib_common::install_rust 3
1912 shell: bash
1913 - name: installing cargo-nextest
1914 run: |-
1915 flowey e 14 flowey_lib_common::install_cargo_nextest 0
1916 flowey e 14 flowey_lib_hvlite::init_cross_build 1
1917 flowey e 14 flowey_lib_hvlite::run_cargo_nextest_run 0
1918 shell: bash
1919 - name: generate nextest command
1920 run: flowey e 14 flowey_lib_common::gen_cargo_nextest_run_cmd 1
1921 shell: bash
1922 - name: run 'unit-tests crypto (native)' nextest tests
1923 run: |-
1924 flowey e 14 flowey_lib_common::run_cargo_nextest_run 2
1925 flowey e 14 flowey_lib_common::run_cargo_nextest_run 3
1926 flowey e 14 flowey_lib_hvlite::build_nextest_unit_tests 2
1927 flowey e 14 flowey_lib_common::publish_test_results 5
1928 flowey e 14 flowey_lib_common::publish_test_results 6
1929 flowey e 14 flowey_lib_common::publish_test_results 4
1930 flowey v 14 'flowey_lib_common::publish_test_results:11:flowey_lib_common/src/publish_test_results.rs:95:47' --is-raw-string --condvar flowey_lib_common::publish_test_results:7:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env github floweyvar2
1931 flowey v 14 'flowey_lib_common::publish_test_results:7:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
1932 shell: bash
1933 - id: flowey_lib_common__publish_test_results__7
1934 uses: actions/upload-artifact@v7
1935 with:
1936 name: x64-linux-unit-tests-unit-tests crypto (native)-junit-xml
1937 path: ${{ env.floweyvar2 }}
1938 name: 'publish test results: x64-linux-unit-tests-unit-tests crypto (native) (JUnit XML)'
1939 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
1940 - name: generate nextest command
1941 run: flowey e 14 flowey_lib_common::gen_cargo_nextest_run_cmd 3
1942 shell: bash
1943 - name: run 'unit-tests crypto (rust)' nextest tests
1944 run: |-
1945 flowey e 14 flowey_lib_common::run_cargo_nextest_run 6
1946 flowey e 14 flowey_lib_common::run_cargo_nextest_run 7
1947 flowey e 14 flowey_lib_hvlite::build_nextest_unit_tests 3
1948 flowey e 14 flowey_lib_common::publish_test_results 8
1949 flowey e 14 flowey_lib_common::publish_test_results 9
1950 flowey e 14 flowey_lib_common::publish_test_results 10
1951 flowey v 14 'flowey_lib_common::publish_test_results:18:flowey_lib_common/src/publish_test_results.rs:95:47' --is-raw-string --condvar flowey_lib_common::publish_test_results:14:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env github floweyvar3
1952 flowey v 14 'flowey_lib_common::publish_test_results:14:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
1953 shell: bash
1954 - id: flowey_lib_common__publish_test_results__11
1955 uses: actions/upload-artifact@v7
1956 with:
1957 name: x64-linux-unit-tests-unit-tests crypto (rust)-junit-xml
1958 path: ${{ env.floweyvar3 }}
1959 name: 'publish test results: x64-linux-unit-tests-unit-tests crypto (rust) (JUnit XML)'
1960 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
1961 - name: generate nextest command
1962 run: flowey e 14 flowey_lib_common::gen_cargo_nextest_run_cmd 2
1963 shell: bash
1964 - name: run 'unit-tests crypto (openssl)' nextest tests
1965 run: |-
1966 flowey e 14 flowey_lib_common::run_cargo_nextest_run 4
1967 flowey e 14 flowey_lib_common::run_cargo_nextest_run 5
1968 flowey e 14 flowey_lib_hvlite::build_nextest_unit_tests 4
1969 flowey e 14 flowey_lib_common::publish_test_results 12
1970 flowey e 14 flowey_lib_common::publish_test_results 13
1971 flowey e 14 flowey_lib_common::publish_test_results 14
1972 flowey v 14 'flowey_lib_common::publish_test_results:25:flowey_lib_common/src/publish_test_results.rs:95:47' --is-raw-string --condvar flowey_lib_common::publish_test_results:21:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env github floweyvar4
1973 flowey v 14 'flowey_lib_common::publish_test_results:21:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
1974 shell: bash
1975 - id: flowey_lib_common__publish_test_results__15
1976 uses: actions/upload-artifact@v7
1977 with:
1978 name: x64-linux-unit-tests-unit-tests crypto (openssl)-junit-xml
1979 path: ${{ env.floweyvar4 }}
1980 name: 'publish test results: x64-linux-unit-tests-unit-tests crypto (openssl) (JUnit XML)'
1981 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
1982 - name: generate nextest command
1983 run: flowey e 14 flowey_lib_common::gen_cargo_nextest_run_cmd 0
1984 shell: bash
1985 - name: run 'unit-tests crypto (all)' nextest tests
1986 run: |-
1987 flowey e 14 flowey_lib_common::run_cargo_nextest_run 0
1988 flowey e 14 flowey_lib_common::run_cargo_nextest_run 1
1989 flowey e 14 flowey_lib_hvlite::build_nextest_unit_tests 5
1990 flowey e 14 flowey_lib_common::publish_test_results 16
1991 flowey e 14 flowey_lib_common::publish_test_results 17
1992 flowey e 14 flowey_lib_common::publish_test_results 18
1993 flowey v 14 'flowey_lib_common::publish_test_results:32:flowey_lib_common/src/publish_test_results.rs:95:47' --is-raw-string --condvar flowey_lib_common::publish_test_results:28:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env github floweyvar5
1994 flowey v 14 'flowey_lib_common::publish_test_results:28:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
1995 shell: bash
1996 - id: flowey_lib_common__publish_test_results__19
1997 uses: actions/upload-artifact@v7
1998 with:
1999 name: x64-linux-unit-tests-unit-tests crypto (all)-junit-xml
2000 path: ${{ env.floweyvar5 }}
2001 name: 'publish test results: x64-linux-unit-tests-unit-tests crypto (all) (JUnit XML)'
2002 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
2003 - name: cargo build xtask
2004 run: |-
2005 flowey e 14 flowey_lib_hvlite::init_cross_build 2
2006 flowey e 14 flowey_lib_common::run_cargo_build 0
2007 flowey e 14 flowey_lib_hvlite::run_cargo_build 4
2008 shell: bash
2009 - name: split debug symbols
2010 run: |-
2011 flowey e 14 flowey_lib_hvlite::run_split_debug_info 1
2012 flowey e 14 flowey_lib_hvlite::run_cargo_build 5
2013 flowey e 14 flowey_lib_hvlite::build_xtask 2
2014 shell: bash
2015 - name: determine unit test exclusions
2016 run: flowey e 14 flowey_lib_hvlite::build_nextest_unit_tests 0
2017 shell: bash
2018 - name: generate nextest command
2019 run: flowey e 14 flowey_lib_common::gen_cargo_nextest_run_cmd 4
2020 shell: bash
2021 - name: run 'unit-tests' nextest tests
2022 run: |-
2023 flowey e 14 flowey_lib_common::run_cargo_nextest_run 8
2024 flowey e 14 flowey_lib_common::run_cargo_nextest_run 9
2025 flowey e 14 flowey_lib_hvlite::build_nextest_unit_tests 1
2026 flowey e 14 flowey_lib_common::publish_test_results 0
2027 flowey e 14 flowey_lib_common::publish_test_results 1
2028 flowey e 14 flowey_lib_common::publish_test_results 2
2029 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
2030 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
2031 shell: bash
2032 - id: flowey_lib_common__publish_test_results__3
2033 uses: actions/upload-artifact@v7
2034 with:
2035 name: x64-linux-unit-tests-unit-tests-junit-xml
2036 path: ${{ env.floweyvar1 }}
2037 name: 'publish test results: x64-linux-unit-tests-unit-tests (JUnit XML)'
2038 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
2039 - name: report test results to overall pipeline status
2040 run: |-
2041 flowey e 14 flowey_lib_hvlite::build_nextest_unit_tests 6
2042 flowey e 14 flowey_lib_hvlite::_jobs::build_and_run_nextest_unit_tests 0
2043 shell: bash
2044 - name: run doctests for x86_64-unknown-linux-gnu
2045 run: flowey e 14 flowey_lib_hvlite::_jobs::build_and_run_doc_tests 0
2046 shell: bash
2047 - name: 'validate cache entry: cargo-nextest'
2048 run: flowey e 14 flowey_lib_common::cache 3
2049 shell: bash
2050 - name: 'validate cache entry: gh-release-download'
2051 run: flowey e 14 flowey_lib_common::cache 7
2052 shell: bash
2053 job15:
2054 name: clippy [x64-linux-musl, misc nostd], unit tests [x64-linux-musl]
2055 runs-on:
2056 - self-hosted
2057 - 1ES.Pool=openvmm-gh-amd-westus3
2058 - 1ES.ImageOverride=ubuntu2404-amd64
2059 - JobId=job15-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}
2060 permissions:
2061 contents: read
2062 id-token: write
2063 if: github.event.pull_request.draft == false
2064 steps:
2065 - run: |
2066 set -x
2067 i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
2068 sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
2069 curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.95.0 -y
2070 . "$HOME/.cargo/env"
2071 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
2072 rustup show
2073 if: runner.os == 'Linux'
2074 name: rustup (Linux)
2075 shell: bash
2076 - run: |
2077 set -x
2078 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
2079 ./rustup-init.exe -y --default-toolchain=1.95.0
2080 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
2081 if: runner.os == 'Windows' && runner.arch == 'X64'
2082 name: rustup (Windows X64)
2083 shell: bash
2084 - run: |
2085 set -x
2086 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
2087 ./rustup-init.exe -y --default-toolchain=1.95.0
2088 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
2089 if: runner.os == 'Windows' && runner.arch == 'ARM64'
2090 name: rustup (Windows ARM64)
2091 shell: bash
2092 - uses: actions/checkout@v6
2093 with:
2094 path: flowey_bootstrap
2095 - name: Build flowey
2096 run: |
2097 set -x
2098 CARGO_INCREMENTAL=0 cargo build -p flowey_hvlite --target x86_64-unknown-linux-gnu --profile flowey-ci
2099 OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
2100 mkdir -p "$OutDirNormal"
2101 mv ./.github/workflows/openvmm-ci.yaml "$OutDirNormal/pipeline.yaml"
2102 mv target/x86_64-unknown-linux-gnu/flowey-ci/flowey_hvlite "$OutDirNormal/flowey"
2103 working-directory: flowey_bootstrap
2104 shell: bash
2105 - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH
2106 shell: bash
2107 name: 🌼📦 Add flowey to PATH
2108 - name: 🌼🔎 Self-check YAML
2109 run: |-
2110 ESCAPED_AGENT_TEMPDIR=$(
2111 cat <<'EOF' | sed 's/\\/\\\\/g'
2112 ${{ runner.temp }}
2113 EOF
2114 )
2115 flowey pipeline github --runtime $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci
2116 shell: bash
2117 - name: 🌼🛫 Initialize job
2118 run: |
2119 AgentTempDirNormal="${{ runner.temp }}"
2120 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
2121 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
2122
2123 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey
2124
2125 echo '"debug"' | flowey v 15 'FLOWEY_LOG' update
2126 echo "${{ runner.temp }}/work" | flowey v 15 '_internal_WORKING_DIR' --is-raw-string update
2127
2128 cat <<'EOF' | flowey v 15 'verbose' update
2129 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
2130 EOF
2131 shell: bash
2132 - name: add default cargo home to path
2133 run: flowey e 15 flowey_lib_common::install_rust 0
2134 shell: bash
2135 - name: install Rust
2136 run: flowey e 15 flowey_lib_common::install_rust 1
2137 shell: bash
2138 - name: detect active toolchain
2139 run: |-
2140 flowey e 15 flowey_lib_common::install_rust 2
2141 flowey e 15 flowey_lib_common::cfg_cargo_common_flags 0
2142 shell: bash
2143 - name: check if openvmm needs to be cloned
2144 run: |-
2145 flowey e 15 flowey_lib_common::git_checkout 0
2146 flowey v 15 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:489:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46 write-to-env github floweyvar11
2147 flowey v 15 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION
2148 shell: bash
2149 - id: flowey_lib_common__git_checkout__1
2150 uses: actions/checkout@v6
2151 with:
2152 fetch-depth: '1'
2153 path: repo0
2154 persist-credentials: ${{ env.floweyvar11 }}
2155 name: checkout repo openvmm
2156 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
2157 - name: report cloned repo directories
2158 run: |-
2159 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
2160 ${{ github.workspace }}
2161 EOF
2162 flowey e 15 flowey_lib_common::git_checkout 3
2163 flowey e 15 flowey_lib_hvlite::git_checkout_openvmm_repo 0
2164 flowey e 15 flowey_lib_hvlite::cfg_openvmm_magicpath 0
2165 shell: bash
2166 - name: create gh-release-download cache dir
2167 run: flowey e 15 flowey_lib_common::download_gh_release 0
2168 shell: bash
2169 - name: Pre-processing cache vars
2170 run: |-
2171 flowey e 15 flowey_lib_common::cache 4
2172 flowey v 15 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar9
2173 flowey v 15 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar10
2174 shell: bash
2175 - id: flowey_lib_common__cache__5
2176 uses: actions/cache@v5
2177 with:
2178 key: ${{ env.floweyvar9 }}
2179 path: ${{ env.floweyvar10 }}
2180 name: 'Restore cache: gh-release-download'
2181 - name: download artifacts from github releases
2182 run: |-
2183 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
2184 ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
2185 EOF
2186 flowey e 15 flowey_lib_common::cache 6
2187 flowey e 15 flowey_lib_common::download_gh_release 1
2188 shell: bash
2189 - name: unpack openvmm-deps archive
2190 run: flowey e 15 flowey_lib_hvlite::resolve_openvmm_deps 0
2191 shell: bash
2192 - name: extract X86_64 sysroot.tar.gz
2193 run: flowey e 15 flowey_lib_hvlite::init_openvmm_magicpath_openhcl_sysroot 0
2194 shell: bash
2195 - name: checking if packages need to be installed
2196 run: flowey e 15 flowey_lib_common::install_dist_pkg 0
2197 shell: bash
2198 - name: installing packages
2199 run: flowey e 15 flowey_lib_common::install_dist_pkg 1
2200 shell: bash
2201 - name: set '-Dwarnings' in .cargo/config.toml
2202 run: flowey e 15 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
2203 shell: bash
2204 - name: unpack protoc
2205 run: flowey e 15 flowey_lib_common::resolve_protoc 0
2206 shell: bash
2207 - name: symlink protoc
2208 run: |-
2209 flowey e 15 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
2210 flowey e 15 flowey_lib_hvlite::init_cross_build 2
2211 shell: bash
2212 - name: cargo clippy
2213 run: flowey e 15 flowey_lib_common::run_cargo_clippy 3
2214 shell: bash
2215 - name: cargo clippy
2216 run: flowey e 15 flowey_lib_common::run_cargo_clippy 5
2217 shell: bash
2218 - name: cargo clippy
2219 run: flowey e 15 flowey_lib_common::run_cargo_clippy 1
2220 shell: bash
2221 - name: cargo clippy
2222 run: flowey e 15 flowey_lib_common::run_cargo_clippy 7
2223 shell: bash
2224 - name: cargo clippy
2225 run: |-
2226 flowey e 15 flowey_lib_common::run_cargo_clippy 6
2227 flowey e 15 flowey_lib_hvlite::init_cross_build 0
2228 shell: bash
2229 - name: cargo build xtask
2230 run: |-
2231 flowey e 15 flowey_lib_common::run_cargo_build 0
2232 flowey e 15 flowey_lib_hvlite::run_cargo_build 0
2233 shell: bash
2234 - name: split debug symbols
2235 run: |-
2236 flowey e 15 flowey_lib_hvlite::run_split_debug_info 1
2237 flowey e 15 flowey_lib_hvlite::run_cargo_build 1
2238 flowey e 15 flowey_lib_hvlite::build_xtask 0
2239 shell: bash
2240 - name: determine clippy exclusions
2241 run: flowey e 15 flowey_lib_hvlite::_jobs::check_clippy 0
2242 shell: bash
2243 - name: cargo clippy
2244 run: flowey e 15 flowey_lib_common::run_cargo_clippy 0
2245 shell: bash
2246 - name: cargo clippy
2247 run: flowey e 15 flowey_lib_common::run_cargo_clippy 2
2248 shell: bash
2249 - name: cargo clippy
2250 run: flowey e 15 flowey_lib_common::run_cargo_clippy 4
2251 shell: bash
2252 - name: create cargo-nextest cache dir
2253 run: |-
2254 flowey e 15 flowey_lib_common::download_cargo_nextest 0
2255 flowey e 15 flowey_lib_common::download_cargo_nextest 1
2256 flowey e 15 flowey_lib_common::download_cargo_nextest 2
2257 flowey e 15 flowey_lib_common::download_cargo_nextest 3
2258 shell: bash
2259 - name: Pre-processing cache vars
2260 run: |-
2261 flowey e 15 flowey_lib_common::cache 0
2262 flowey v 15 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar7
2263 flowey v 15 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar8
2264 shell: bash
2265 - id: flowey_lib_common__cache__1
2266 uses: actions/cache@v5
2267 with:
2268 key: ${{ env.floweyvar7 }}
2269 path: ${{ env.floweyvar8 }}
2270 name: 'Restore cache: cargo-nextest'
2271 - name: downloading cargo-nextest
2272 run: |-
2273 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
2274 ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
2275 EOF
2276 flowey e 15 flowey_lib_common::cache 2
2277 flowey e 15 flowey_lib_common::download_cargo_nextest 4
2278 shell: bash
2279 - name: report $CARGO_HOME
2280 run: flowey e 15 flowey_lib_common::install_rust 3
2281 shell: bash
2282 - name: installing cargo-nextest
2283 run: |-
2284 flowey e 15 flowey_lib_common::install_cargo_nextest 0
2285 flowey e 15 flowey_lib_hvlite::init_cross_build 3
2286 flowey e 15 flowey_lib_hvlite::run_cargo_nextest_run 0
2287 shell: bash
2288 - name: generate nextest command
2289 run: flowey e 15 flowey_lib_common::gen_cargo_nextest_run_cmd 1
2290 shell: bash
2291 - name: run 'unit-tests crypto (native)' nextest tests
2292 run: |-
2293 flowey e 15 flowey_lib_common::run_cargo_nextest_run 2
2294 flowey e 15 flowey_lib_common::run_cargo_nextest_run 3
2295 flowey e 15 flowey_lib_hvlite::build_nextest_unit_tests 2
2296 flowey e 15 flowey_lib_common::publish_test_results 5
2297 flowey e 15 flowey_lib_common::publish_test_results 6
2298 flowey e 15 flowey_lib_common::publish_test_results 4
2299 flowey v 15 'flowey_lib_common::publish_test_results:11:flowey_lib_common/src/publish_test_results.rs:95:47' --is-raw-string --condvar flowey_lib_common::publish_test_results:7:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env github floweyvar2
2300 flowey v 15 'flowey_lib_common::publish_test_results:7:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
2301 shell: bash
2302 - id: flowey_lib_common__publish_test_results__7
2303 uses: actions/upload-artifact@v7
2304 with:
2305 name: x64-linux-musl-unit-tests-unit-tests crypto (native)-junit-xml
2306 path: ${{ env.floweyvar2 }}
2307 name: 'publish test results: x64-linux-musl-unit-tests-unit-tests crypto (native) (JUnit XML)'
2308 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
2309 - name: generate nextest command
2310 run: flowey e 15 flowey_lib_common::gen_cargo_nextest_run_cmd 3
2311 shell: bash
2312 - name: run 'unit-tests crypto (rust)' nextest tests
2313 run: |-
2314 flowey e 15 flowey_lib_common::run_cargo_nextest_run 6
2315 flowey e 15 flowey_lib_common::run_cargo_nextest_run 7
2316 flowey e 15 flowey_lib_hvlite::build_nextest_unit_tests 3
2317 flowey e 15 flowey_lib_common::publish_test_results 8
2318 flowey e 15 flowey_lib_common::publish_test_results 9
2319 flowey e 15 flowey_lib_common::publish_test_results 10
2320 flowey v 15 'flowey_lib_common::publish_test_results:18:flowey_lib_common/src/publish_test_results.rs:95:47' --is-raw-string --condvar flowey_lib_common::publish_test_results:14:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env github floweyvar3
2321 flowey v 15 'flowey_lib_common::publish_test_results:14:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
2322 shell: bash
2323 - id: flowey_lib_common__publish_test_results__11
2324 uses: actions/upload-artifact@v7
2325 with:
2326 name: x64-linux-musl-unit-tests-unit-tests crypto (rust)-junit-xml
2327 path: ${{ env.floweyvar3 }}
2328 name: 'publish test results: x64-linux-musl-unit-tests-unit-tests crypto (rust) (JUnit XML)'
2329 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
2330 - name: generate nextest command
2331 run: flowey e 15 flowey_lib_common::gen_cargo_nextest_run_cmd 2
2332 shell: bash
2333 - name: run 'unit-tests crypto (openssl)' nextest tests
2334 run: |-
2335 flowey e 15 flowey_lib_common::run_cargo_nextest_run 4
2336 flowey e 15 flowey_lib_common::run_cargo_nextest_run 5
2337 flowey e 15 flowey_lib_hvlite::build_nextest_unit_tests 4
2338 flowey e 15 flowey_lib_common::publish_test_results 12
2339 flowey e 15 flowey_lib_common::publish_test_results 13
2340 flowey e 15 flowey_lib_common::publish_test_results 14
2341 flowey v 15 'flowey_lib_common::publish_test_results:25:flowey_lib_common/src/publish_test_results.rs:95:47' --is-raw-string --condvar flowey_lib_common::publish_test_results:21:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env github floweyvar4
2342 flowey v 15 'flowey_lib_common::publish_test_results:21:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
2343 shell: bash
2344 - id: flowey_lib_common__publish_test_results__15
2345 uses: actions/upload-artifact@v7
2346 with:
2347 name: x64-linux-musl-unit-tests-unit-tests crypto (openssl)-junit-xml
2348 path: ${{ env.floweyvar4 }}
2349 name: 'publish test results: x64-linux-musl-unit-tests-unit-tests crypto (openssl) (JUnit XML)'
2350 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
2351 - name: generate nextest command
2352 run: flowey e 15 flowey_lib_common::gen_cargo_nextest_run_cmd 4
2353 shell: bash
2354 - name: run 'unit-tests crypto (symcrypt)' nextest tests
2355 run: |-
2356 flowey e 15 flowey_lib_common::run_cargo_nextest_run 8
2357 flowey e 15 flowey_lib_common::run_cargo_nextest_run 9
2358 flowey e 15 flowey_lib_hvlite::build_nextest_unit_tests 5
2359 flowey e 15 flowey_lib_common::publish_test_results 16
2360 flowey e 15 flowey_lib_common::publish_test_results 17
2361 flowey e 15 flowey_lib_common::publish_test_results 18
2362 flowey v 15 'flowey_lib_common::publish_test_results:32:flowey_lib_common/src/publish_test_results.rs:95:47' --is-raw-string --condvar flowey_lib_common::publish_test_results:28:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env github floweyvar5
2363 flowey v 15 'flowey_lib_common::publish_test_results:28:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
2364 shell: bash
2365 - id: flowey_lib_common__publish_test_results__19
2366 uses: actions/upload-artifact@v7
2367 with:
2368 name: x64-linux-musl-unit-tests-unit-tests crypto (symcrypt)-junit-xml
2369 path: ${{ env.floweyvar5 }}
2370 name: 'publish test results: x64-linux-musl-unit-tests-unit-tests crypto (symcrypt) (JUnit XML)'
2371 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
2372 - name: generate nextest command
2373 run: flowey e 15 flowey_lib_common::gen_cargo_nextest_run_cmd 0
2374 shell: bash
2375 - name: run 'unit-tests crypto (all)' nextest tests
2376 run: |-
2377 flowey e 15 flowey_lib_common::run_cargo_nextest_run 0
2378 flowey e 15 flowey_lib_common::run_cargo_nextest_run 1
2379 flowey e 15 flowey_lib_hvlite::build_nextest_unit_tests 6
2380 flowey e 15 flowey_lib_common::publish_test_results 20
2381 flowey e 15 flowey_lib_common::publish_test_results 21
2382 flowey e 15 flowey_lib_common::publish_test_results 22
2383 flowey v 15 'flowey_lib_common::publish_test_results:39:flowey_lib_common/src/publish_test_results.rs:95:47' --is-raw-string --condvar flowey_lib_common::publish_test_results:35:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env github floweyvar6
2384 flowey v 15 'flowey_lib_common::publish_test_results:35:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
2385 shell: bash
2386 - id: flowey_lib_common__publish_test_results__23
2387 uses: actions/upload-artifact@v7
2388 with:
2389 name: x64-linux-musl-unit-tests-unit-tests crypto (all)-junit-xml
2390 path: ${{ env.floweyvar6 }}
2391 name: 'publish test results: x64-linux-musl-unit-tests-unit-tests crypto (all) (JUnit XML)'
2392 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
2393 - name: cargo build xtask
2394 run: |-
2395 flowey e 15 flowey_lib_hvlite::init_cross_build 1
2396 flowey e 15 flowey_lib_common::run_cargo_build 1
2397 flowey e 15 flowey_lib_hvlite::run_cargo_build 2
2398 shell: bash
2399 - name: split debug symbols
2400 run: |-
2401 flowey e 15 flowey_lib_hvlite::run_split_debug_info 0
2402 flowey e 15 flowey_lib_hvlite::run_cargo_build 3
2403 flowey e 15 flowey_lib_hvlite::build_xtask 1
2404 shell: bash
2405 - name: determine unit test exclusions
2406 run: flowey e 15 flowey_lib_hvlite::build_nextest_unit_tests 0
2407 shell: bash
2408 - name: generate nextest command
2409 run: flowey e 15 flowey_lib_common::gen_cargo_nextest_run_cmd 5
2410 shell: bash
2411 - name: run 'unit-tests' nextest tests
2412 run: |-
2413 flowey e 15 flowey_lib_common::run_cargo_nextest_run 10
2414 flowey e 15 flowey_lib_common::run_cargo_nextest_run 11
2415 flowey e 15 flowey_lib_hvlite::build_nextest_unit_tests 1
2416 flowey e 15 flowey_lib_common::publish_test_results 0
2417 flowey e 15 flowey_lib_common::publish_test_results 1
2418 flowey e 15 flowey_lib_common::publish_test_results 2
2419 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
2420 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
2421 shell: bash
2422 - id: flowey_lib_common__publish_test_results__3
2423 uses: actions/upload-artifact@v7
2424 with:
2425 name: x64-linux-musl-unit-tests-unit-tests-junit-xml
2426 path: ${{ env.floweyvar1 }}
2427 name: 'publish test results: x64-linux-musl-unit-tests-unit-tests (JUnit XML)'
2428 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
2429 - name: report test results to overall pipeline status
2430 run: |-
2431 flowey e 15 flowey_lib_hvlite::build_nextest_unit_tests 7
2432 flowey e 15 flowey_lib_hvlite::_jobs::build_and_run_nextest_unit_tests 0
2433 shell: bash
2434 - name: run doctests for x86_64-unknown-linux-musl
2435 run: flowey e 15 flowey_lib_hvlite::_jobs::build_and_run_doc_tests 0
2436 shell: bash
2437 - name: 'validate cache entry: cargo-nextest'
2438 run: flowey e 15 flowey_lib_common::cache 3
2439 shell: bash
2440 - name: 'validate cache entry: gh-release-download'
2441 run: flowey e 15 flowey_lib_common::cache 7
2442 shell: bash
2443 job16:
2444 name: clippy [aarch64-windows], unit tests [aarch64-windows]
2445 runs-on:
2446 - self-hosted
2447 - 1ES.Pool=openvmm-gh-arm-westus2
2448 - 1ES.ImageOverride=win-arm64
2449 - JobId=job16-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}
2450 permissions:
2451 contents: read
2452 id-token: write
2453 if: github.event.pull_request.draft == false
2454 steps:
2455 - run: |
2456 set -x
2457 i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
2458 sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
2459 curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.95.0 -y
2460 . "$HOME/.cargo/env"
2461 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
2462 rustup show
2463 if: runner.os == 'Linux'
2464 name: rustup (Linux)
2465 shell: bash
2466 - run: |
2467 set -x
2468 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
2469 ./rustup-init.exe -y --default-toolchain=1.95.0
2470 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
2471 if: runner.os == 'Windows' && runner.arch == 'X64'
2472 name: rustup (Windows X64)
2473 shell: bash
2474 - run: |
2475 set -x
2476 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
2477 ./rustup-init.exe -y --default-toolchain=1.95.0
2478 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
2479 if: runner.os == 'Windows' && runner.arch == 'ARM64'
2480 name: rustup (Windows ARM64)
2481 shell: bash
2482 - uses: actions/checkout@v6
2483 with:
2484 path: flowey_bootstrap
2485 - name: Build flowey
2486 run: |
2487 set -x
2488 CARGO_INCREMENTAL=0 cargo build -p flowey_hvlite --target aarch64-pc-windows-msvc --profile flowey-ci
2489 OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
2490 mkdir -p "$OutDirNormal"
2491 mv ./.github/workflows/openvmm-ci.yaml "$OutDirNormal/pipeline.yaml"
2492 mv target/aarch64-pc-windows-msvc/flowey-ci/flowey_hvlite.exe "$OutDirNormal/flowey.exe"
2493 working-directory: flowey_bootstrap
2494 shell: bash
2495 - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH
2496 shell: bash
2497 name: 🌼📦 Add flowey to PATH
2498 - name: 🌼🔎 Self-check YAML
2499 run: |-
2500 ESCAPED_AGENT_TEMPDIR=$(
2501 cat <<'EOF' | sed 's/\\/\\\\/g'
2502 ${{ runner.temp }}
2503 EOF
2504 )
2505 flowey.exe pipeline github --runtime $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci
2506 shell: bash
2507 - name: 🌼🛫 Initialize job
2508 run: |
2509 AgentTempDirNormal="${{ runner.temp }}"
2510 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
2511 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
2512
2513 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe
2514
2515 echo '"debug"' | flowey.exe v 16 'FLOWEY_LOG' update
2516 echo "${{ runner.temp }}/work" | flowey.exe v 16 '_internal_WORKING_DIR' --is-raw-string update
2517
2518 cat <<'EOF' | flowey.exe v 16 'verbose' update
2519 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
2520 EOF
2521 shell: bash
2522 - name: add default cargo home to path
2523 run: flowey.exe e 16 flowey_lib_common::install_rust 0
2524 shell: bash
2525 - name: install Rust
2526 run: flowey.exe e 16 flowey_lib_common::install_rust 1
2527 shell: bash
2528 - name: detect active toolchain
2529 run: |-
2530 flowey.exe e 16 flowey_lib_common::install_rust 2
2531 flowey.exe e 16 flowey_lib_common::cfg_cargo_common_flags 0
2532 shell: bash
2533 - name: check if openvmm needs to be cloned
2534 run: |-
2535 flowey.exe e 16 flowey_lib_common::git_checkout 0
2536 flowey.exe v 16 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:489:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46 write-to-env github floweyvar8
2537 flowey.exe v 16 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION
2538 shell: bash
2539 - id: flowey_lib_common__git_checkout__1
2540 uses: actions/checkout@v6
2541 with:
2542 fetch-depth: '1'
2543 path: repo0
2544 persist-credentials: ${{ env.floweyvar8 }}
2545 name: checkout repo openvmm
2546 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
2547 - name: report cloned repo directories
2548 run: |-
2549 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
2550 ${{ github.workspace }}
2551 EOF
2552 flowey.exe e 16 flowey_lib_common::git_checkout 3
2553 flowey.exe e 16 flowey_lib_hvlite::git_checkout_openvmm_repo 0
2554 shell: bash
2555 - name: set '-Dwarnings' in .cargo/config.toml
2556 run: flowey.exe e 16 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
2557 shell: bash
2558 - name: create gh-release-download cache dir
2559 run: flowey.exe e 16 flowey_lib_common::download_gh_release 0
2560 shell: bash
2561 - name: Pre-processing cache vars
2562 run: |-
2563 flowey.exe e 16 flowey_lib_common::cache 4
2564 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
2565 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
2566 shell: bash
2567 - id: flowey_lib_common__cache__5
2568 uses: actions/cache@v5
2569 with:
2570 key: ${{ env.floweyvar6 }}
2571 path: ${{ env.floweyvar7 }}
2572 name: 'Restore cache: gh-release-download'
2573 - name: download artifacts from github releases
2574 run: |-
2575 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
2576 ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
2577 EOF
2578 flowey.exe e 16 flowey_lib_common::cache 6
2579 flowey.exe e 16 flowey_lib_common::download_gh_release 1
2580 shell: bash
2581 - name: unpack protoc
2582 run: |-
2583 flowey.exe e 16 flowey_lib_common::resolve_protoc 0
2584 flowey.exe e 16 flowey_lib_hvlite::cfg_openvmm_magicpath 0
2585 shell: bash
2586 - name: symlink protoc
2587 run: |-
2588 flowey.exe e 16 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
2589 flowey.exe e 16 flowey_lib_hvlite::init_cross_build 0
2590 flowey.exe e 16 flowey_lib_hvlite::init_cross_build 2
2591 shell: bash
2592 - name: cargo build xtask
2593 run: |-
2594 flowey.exe e 16 flowey_lib_common::run_cargo_build 0
2595 flowey.exe e 16 flowey_lib_hvlite::run_cargo_build 0
2596 flowey.exe e 16 flowey_lib_hvlite::build_xtask 0
2597 shell: bash
2598 - name: determine clippy exclusions
2599 run: flowey.exe e 16 flowey_lib_hvlite::_jobs::check_clippy 0
2600 shell: bash
2601 - name: cargo clippy
2602 run: flowey.exe e 16 flowey_lib_common::run_cargo_clippy 0
2603 shell: bash
2604 - name: cargo clippy
2605 run: flowey.exe e 16 flowey_lib_common::run_cargo_clippy 1
2606 shell: bash
2607 - name: cargo clippy
2608 run: flowey.exe e 16 flowey_lib_common::run_cargo_clippy 2
2609 shell: bash
2610 - name: create cargo-nextest cache dir
2611 run: |-
2612 flowey.exe e 16 flowey_lib_common::download_cargo_nextest 0
2613 flowey.exe e 16 flowey_lib_common::download_cargo_nextest 1
2614 flowey.exe e 16 flowey_lib_common::download_cargo_nextest 2
2615 flowey.exe e 16 flowey_lib_common::download_cargo_nextest 3
2616 shell: bash
2617 - name: Pre-processing cache vars
2618 run: |-
2619 flowey.exe e 16 flowey_lib_common::cache 0
2620 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
2621 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
2622 shell: bash
2623 - id: flowey_lib_common__cache__1
2624 uses: actions/cache@v5
2625 with:
2626 key: ${{ env.floweyvar4 }}
2627 path: ${{ env.floweyvar5 }}
2628 name: 'Restore cache: cargo-nextest'
2629 - name: downloading cargo-nextest
2630 run: |-
2631 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
2632 ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
2633 EOF
2634 flowey.exe e 16 flowey_lib_common::cache 2
2635 flowey.exe e 16 flowey_lib_common::download_cargo_nextest 4
2636 shell: bash
2637 - name: report $CARGO_HOME
2638 run: flowey.exe e 16 flowey_lib_common::install_rust 3
2639 shell: bash
2640 - name: installing cargo-nextest
2641 run: |-
2642 flowey.exe e 16 flowey_lib_common::install_cargo_nextest 0
2643 flowey.exe e 16 flowey_lib_hvlite::init_cross_build 1
2644 flowey.exe e 16 flowey_lib_hvlite::run_cargo_nextest_run 0
2645 shell: bash
2646 - name: generate nextest command
2647 run: flowey.exe e 16 flowey_lib_common::gen_cargo_nextest_run_cmd 1
2648 shell: bash
2649 - name: run 'unit-tests crypto (rust)' nextest tests
2650 run: |-
2651 flowey.exe e 16 flowey_lib_common::run_cargo_nextest_run 2
2652 flowey.exe e 16 flowey_lib_common::run_cargo_nextest_run 3
2653 flowey.exe e 16 flowey_lib_hvlite::build_nextest_unit_tests 3
2654 flowey.exe e 16 flowey_lib_common::publish_test_results 5
2655 flowey.exe e 16 flowey_lib_common::publish_test_results 6
2656 flowey.exe e 16 flowey_lib_common::publish_test_results 4
2657 flowey.exe v 16 'flowey_lib_common::publish_test_results:11:flowey_lib_common/src/publish_test_results.rs:95:47' --is-raw-string --condvar flowey_lib_common::publish_test_results:7:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env github floweyvar2
2658 flowey.exe v 16 'flowey_lib_common::publish_test_results:7:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
2659 shell: bash
2660 - id: flowey_lib_common__publish_test_results__7
2661 uses: actions/upload-artifact@v7
2662 with:
2663 name: aarch64-windows-unit-tests-unit-tests crypto (rust)-junit-xml
2664 path: ${{ env.floweyvar2 }}
2665 name: 'publish test results: aarch64-windows-unit-tests-unit-tests crypto (rust) (JUnit XML)'
2666 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
2667 - name: cargo build xtask
2668 run: |-
2669 flowey.exe e 16 flowey_lib_hvlite::init_cross_build 3
2670 flowey.exe e 16 flowey_lib_common::run_cargo_build 1
2671 flowey.exe e 16 flowey_lib_hvlite::run_cargo_build 1
2672 flowey.exe e 16 flowey_lib_hvlite::build_xtask 1
2673 shell: bash
2674 - name: determine unit test exclusions
2675 run: flowey.exe e 16 flowey_lib_hvlite::build_nextest_unit_tests 0
2676 shell: bash
2677 - name: generate nextest command
2678 run: flowey.exe e 16 flowey_lib_common::gen_cargo_nextest_run_cmd 2
2679 shell: bash
2680 - name: run 'unit-tests' nextest tests
2681 run: |-
2682 flowey.exe e 16 flowey_lib_common::run_cargo_nextest_run 4
2683 flowey.exe e 16 flowey_lib_common::run_cargo_nextest_run 5
2684 flowey.exe e 16 flowey_lib_hvlite::build_nextest_unit_tests 1
2685 flowey.exe e 16 flowey_lib_common::publish_test_results 8
2686 flowey.exe e 16 flowey_lib_common::publish_test_results 9
2687 flowey.exe e 16 flowey_lib_common::publish_test_results 10
2688 flowey.exe v 16 'flowey_lib_common::publish_test_results:18:flowey_lib_common/src/publish_test_results.rs:95:47' --is-raw-string --condvar flowey_lib_common::publish_test_results:14:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env github floweyvar3
2689 flowey.exe v 16 'flowey_lib_common::publish_test_results:14:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
2690 shell: bash
2691 - id: flowey_lib_common__publish_test_results__11
2692 uses: actions/upload-artifact@v7
2693 with:
2694 name: aarch64-windows-unit-tests-unit-tests-junit-xml
2695 path: ${{ env.floweyvar3 }}
2696 name: 'publish test results: aarch64-windows-unit-tests-unit-tests (JUnit XML)'
2697 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
2698 - name: generate nextest command
2699 run: flowey.exe e 16 flowey_lib_common::gen_cargo_nextest_run_cmd 0
2700 shell: bash
2701 - name: run 'unit-tests crypto (native)' nextest tests
2702 run: |-
2703 flowey.exe e 16 flowey_lib_common::run_cargo_nextest_run 0
2704 flowey.exe e 16 flowey_lib_common::run_cargo_nextest_run 1
2705 flowey.exe e 16 flowey_lib_hvlite::build_nextest_unit_tests 2
2706 flowey.exe e 16 flowey_lib_common::publish_test_results 0
2707 flowey.exe e 16 flowey_lib_common::publish_test_results 1
2708 flowey.exe e 16 flowey_lib_common::publish_test_results 2
2709 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
2710 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
2711 shell: bash
2712 - id: flowey_lib_common__publish_test_results__3
2713 uses: actions/upload-artifact@v7
2714 with:
2715 name: aarch64-windows-unit-tests-unit-tests crypto (native)-junit-xml
2716 path: ${{ env.floweyvar1 }}
2717 name: 'publish test results: aarch64-windows-unit-tests-unit-tests crypto (native) (JUnit XML)'
2718 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
2719 - name: report test results to overall pipeline status
2720 run: |-
2721 flowey.exe e 16 flowey_lib_hvlite::build_nextest_unit_tests 4
2722 flowey.exe e 16 flowey_lib_hvlite::_jobs::build_and_run_nextest_unit_tests 0
2723 shell: bash
2724 - name: run doctests for aarch64-pc-windows-msvc
2725 run: flowey.exe e 16 flowey_lib_hvlite::_jobs::build_and_run_doc_tests 0
2726 shell: bash
2727 - name: 'validate cache entry: cargo-nextest'
2728 run: flowey.exe e 16 flowey_lib_common::cache 3
2729 shell: bash
2730 - name: 'validate cache entry: gh-release-download'
2731 run: flowey.exe e 16 flowey_lib_common::cache 7
2732 shell: bash
2733 job17:
2734 name: clippy [aarch64-linux], unit tests [aarch64-linux]
2735 runs-on:
2736 - self-hosted
2737 - 1ES.Pool=openvmm-gh-arm-westus2
2738 - 1ES.ImageOverride=ubuntu2404-arm64
2739 - JobId=job17-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}
2740 permissions:
2741 contents: read
2742 id-token: write
2743 if: github.event.pull_request.draft == false
2744 steps:
2745 - run: |
2746 set -x
2747 i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
2748 sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
2749 curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.95.0 -y
2750 . "$HOME/.cargo/env"
2751 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
2752 rustup show
2753 if: runner.os == 'Linux'
2754 name: rustup (Linux)
2755 shell: bash
2756 - run: |
2757 set -x
2758 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
2759 ./rustup-init.exe -y --default-toolchain=1.95.0
2760 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
2761 if: runner.os == 'Windows' && runner.arch == 'X64'
2762 name: rustup (Windows X64)
2763 shell: bash
2764 - run: |
2765 set -x
2766 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
2767 ./rustup-init.exe -y --default-toolchain=1.95.0
2768 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
2769 if: runner.os == 'Windows' && runner.arch == 'ARM64'
2770 name: rustup (Windows ARM64)
2771 shell: bash
2772 - uses: actions/checkout@v6
2773 with:
2774 path: flowey_bootstrap
2775 - name: Build flowey
2776 run: |
2777 set -x
2778 CARGO_INCREMENTAL=0 cargo build -p flowey_hvlite --target aarch64-unknown-linux-gnu --profile flowey-ci
2779 OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
2780 mkdir -p "$OutDirNormal"
2781 mv ./.github/workflows/openvmm-ci.yaml "$OutDirNormal/pipeline.yaml"
2782 mv target/aarch64-unknown-linux-gnu/flowey-ci/flowey_hvlite "$OutDirNormal/flowey"
2783 working-directory: flowey_bootstrap
2784 shell: bash
2785 - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH
2786 shell: bash
2787 name: 🌼📦 Add flowey to PATH
2788 - name: 🌼🔎 Self-check YAML
2789 run: |-
2790 ESCAPED_AGENT_TEMPDIR=$(
2791 cat <<'EOF' | sed 's/\\/\\\\/g'
2792 ${{ runner.temp }}
2793 EOF
2794 )
2795 flowey pipeline github --runtime $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci
2796 shell: bash
2797 - name: 🌼🛫 Initialize job
2798 run: |
2799 AgentTempDirNormal="${{ runner.temp }}"
2800 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
2801 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
2802
2803 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey
2804
2805 echo '"debug"' | flowey v 17 'FLOWEY_LOG' update
2806 echo "${{ runner.temp }}/work" | flowey v 17 '_internal_WORKING_DIR' --is-raw-string update
2807
2808 cat <<'EOF' | flowey v 17 'verbose' update
2809 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
2810 EOF
2811 shell: bash
2812 - name: add default cargo home to path
2813 run: flowey e 17 flowey_lib_common::install_rust 0
2814 shell: bash
2815 - name: install Rust
2816 run: flowey e 17 flowey_lib_common::install_rust 1
2817 shell: bash
2818 - name: detect active toolchain
2819 run: |-
2820 flowey e 17 flowey_lib_common::install_rust 2
2821 flowey e 17 flowey_lib_common::cfg_cargo_common_flags 0
2822 shell: bash
2823 - name: checking if packages need to be installed
2824 run: flowey e 17 flowey_lib_common::install_dist_pkg 0
2825 shell: bash
2826 - name: installing packages
2827 run: flowey e 17 flowey_lib_common::install_dist_pkg 1
2828 shell: bash
2829 - name: check if openvmm needs to be cloned
2830 run: |-
2831 flowey e 17 flowey_lib_common::git_checkout 0
2832 flowey v 17 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:489:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46 write-to-env github floweyvar10
2833 flowey v 17 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION
2834 shell: bash
2835 - id: flowey_lib_common__git_checkout__1
2836 uses: actions/checkout@v6
2837 with:
2838 fetch-depth: '1'
2839 path: repo0
2840 persist-credentials: ${{ env.floweyvar10 }}
2841 name: checkout repo openvmm
2842 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
2843 - name: report cloned repo directories
2844 run: |-
2845 flowey v 17 'flowey_lib_common::git_checkout:4:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.workspace <<EOF
2846 ${{ github.workspace }}
2847 EOF
2848 flowey e 17 flowey_lib_common::git_checkout 3
2849 flowey e 17 flowey_lib_hvlite::git_checkout_openvmm_repo 0
2850 shell: bash
2851 - name: set '-Dwarnings' in .cargo/config.toml
2852 run: flowey e 17 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
2853 shell: bash
2854 - name: create gh-release-download cache dir
2855 run: flowey e 17 flowey_lib_common::download_gh_release 0
2856 shell: bash
2857 - name: Pre-processing cache vars
2858 run: |-
2859 flowey e 17 flowey_lib_common::cache 4
2860 flowey v 17 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar8
2861 flowey v 17 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar9
2862 shell: bash
2863 - id: flowey_lib_common__cache__5
2864 uses: actions/cache@v5
2865 with:
2866 key: ${{ env.floweyvar8 }}
2867 path: ${{ env.floweyvar9 }}
2868 name: 'Restore cache: gh-release-download'
2869 - name: download artifacts from github releases
2870 run: |-
2871 flowey v 17 'flowey_lib_common::cache:12:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__5.outputs.cache-hit <<EOF
2872 ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
2873 EOF
2874 flowey e 17 flowey_lib_common::cache 6
2875 flowey e 17 flowey_lib_common::download_gh_release 1
2876 shell: bash
2877 - name: unpack protoc
2878 run: |-
2879 flowey e 17 flowey_lib_common::resolve_protoc 0
2880 flowey e 17 flowey_lib_hvlite::cfg_openvmm_magicpath 0
2881 shell: bash
2882 - name: symlink protoc
2883 run: |-
2884 flowey e 17 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
2885 flowey e 17 flowey_lib_hvlite::init_cross_build 0
2886 shell: bash
2887 - name: cargo clippy
2888 run: |-
2889 flowey e 17 flowey_lib_common::run_cargo_clippy 1
2890 flowey e 17 flowey_lib_hvlite::init_cross_build 2
2891 shell: bash
2892 - name: cargo build xtask
2893 run: |-
2894 flowey e 17 flowey_lib_common::run_cargo_build 0
2895 flowey e 17 flowey_lib_hvlite::run_cargo_build 0
2896 shell: bash
2897 - name: split debug symbols
2898 run: |-
2899 flowey e 17 flowey_lib_hvlite::run_split_debug_info 1
2900 flowey e 17 flowey_lib_hvlite::run_cargo_build 1
2901 flowey e 17 flowey_lib_hvlite::build_xtask 0
2902 shell: bash
2903 - name: determine clippy exclusions
2904 run: flowey e 17 flowey_lib_hvlite::_jobs::check_clippy 0
2905 shell: bash
2906 - name: cargo clippy
2907 run: flowey e 17 flowey_lib_common::run_cargo_clippy 0
2908 shell: bash
2909 - name: cargo clippy
2910 run: flowey e 17 flowey_lib_common::run_cargo_clippy 2
2911 shell: bash
2912 - name: cargo clippy
2913 run: flowey e 17 flowey_lib_common::run_cargo_clippy 4
2914 shell: bash
2915 - name: cargo clippy
2916 run: flowey e 17 flowey_lib_common::run_cargo_clippy 3
2917 shell: bash
2918 - name: create cargo-nextest cache dir
2919 run: |-
2920 flowey e 17 flowey_lib_common::download_cargo_nextest 0
2921 flowey e 17 flowey_lib_common::download_cargo_nextest 1
2922 flowey e 17 flowey_lib_common::download_cargo_nextest 2
2923 flowey e 17 flowey_lib_common::download_cargo_nextest 3
2924 shell: bash
2925 - name: Pre-processing cache vars
2926 run: |-
2927 flowey e 17 flowey_lib_common::cache 0
2928 flowey v 17 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar6
2929 flowey v 17 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar7
2930 shell: bash
2931 - id: flowey_lib_common__cache__1
2932 uses: actions/cache@v5
2933 with:
2934 key: ${{ env.floweyvar6 }}
2935 path: ${{ env.floweyvar7 }}
2936 name: 'Restore cache: cargo-nextest'
2937 - name: downloading cargo-nextest
2938 run: |-
2939 flowey v 17 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__1.outputs.cache-hit <<EOF
2940 ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
2941 EOF
2942 flowey e 17 flowey_lib_common::cache 2
2943 flowey e 17 flowey_lib_common::download_cargo_nextest 4
2944 shell: bash
2945 - name: report $CARGO_HOME
2946 run: flowey e 17 flowey_lib_common::install_rust 3
2947 shell: bash
2948 - name: installing cargo-nextest
2949 run: |-
2950 flowey e 17 flowey_lib_common::install_cargo_nextest 0
2951 flowey e 17 flowey_lib_hvlite::init_cross_build 1
2952 flowey e 17 flowey_lib_hvlite::run_cargo_nextest_run 0
2953 shell: bash
2954 - name: generate nextest command
2955 run: flowey e 17 flowey_lib_common::gen_cargo_nextest_run_cmd 1
2956 shell: bash
2957 - name: run 'unit-tests crypto (native)' nextest tests
2958 run: |-
2959 flowey e 17 flowey_lib_common::run_cargo_nextest_run 2
2960 flowey e 17 flowey_lib_common::run_cargo_nextest_run 3
2961 flowey e 17 flowey_lib_hvlite::build_nextest_unit_tests 2
2962 flowey e 17 flowey_lib_common::publish_test_results 5
2963 flowey e 17 flowey_lib_common::publish_test_results 6
2964 flowey e 17 flowey_lib_common::publish_test_results 4
2965 flowey v 17 'flowey_lib_common::publish_test_results:11:flowey_lib_common/src/publish_test_results.rs:95:47' --is-raw-string --condvar flowey_lib_common::publish_test_results:7:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env github floweyvar2
2966 flowey v 17 'flowey_lib_common::publish_test_results:7:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
2967 shell: bash
2968 - id: flowey_lib_common__publish_test_results__7
2969 uses: actions/upload-artifact@v7
2970 with:
2971 name: aarch64-linux-unit-tests-unit-tests crypto (native)-junit-xml
2972 path: ${{ env.floweyvar2 }}
2973 name: 'publish test results: aarch64-linux-unit-tests-unit-tests crypto (native) (JUnit XML)'
2974 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
2975 - name: generate nextest command
2976 run: flowey e 17 flowey_lib_common::gen_cargo_nextest_run_cmd 3
2977 shell: bash
2978 - name: run 'unit-tests crypto (rust)' nextest tests
2979 run: |-
2980 flowey e 17 flowey_lib_common::run_cargo_nextest_run 6
2981 flowey e 17 flowey_lib_common::run_cargo_nextest_run 7
2982 flowey e 17 flowey_lib_hvlite::build_nextest_unit_tests 3
2983 flowey e 17 flowey_lib_common::publish_test_results 8
2984 flowey e 17 flowey_lib_common::publish_test_results 9
2985 flowey e 17 flowey_lib_common::publish_test_results 10
2986 flowey v 17 'flowey_lib_common::publish_test_results:18:flowey_lib_common/src/publish_test_results.rs:95:47' --is-raw-string --condvar flowey_lib_common::publish_test_results:14:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env github floweyvar3
2987 flowey v 17 'flowey_lib_common::publish_test_results:14:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
2988 shell: bash
2989 - id: flowey_lib_common__publish_test_results__11
2990 uses: actions/upload-artifact@v7
2991 with:
2992 name: aarch64-linux-unit-tests-unit-tests crypto (rust)-junit-xml
2993 path: ${{ env.floweyvar3 }}
2994 name: 'publish test results: aarch64-linux-unit-tests-unit-tests crypto (rust) (JUnit XML)'
2995 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
2996 - name: generate nextest command
2997 run: flowey e 17 flowey_lib_common::gen_cargo_nextest_run_cmd 2
2998 shell: bash
2999 - name: run 'unit-tests crypto (openssl)' nextest tests
3000 run: |-
3001 flowey e 17 flowey_lib_common::run_cargo_nextest_run 4
3002 flowey e 17 flowey_lib_common::run_cargo_nextest_run 5
3003 flowey e 17 flowey_lib_hvlite::build_nextest_unit_tests 4
3004 flowey e 17 flowey_lib_common::publish_test_results 12
3005 flowey e 17 flowey_lib_common::publish_test_results 13
3006 flowey e 17 flowey_lib_common::publish_test_results 14
3007 flowey v 17 'flowey_lib_common::publish_test_results:25:flowey_lib_common/src/publish_test_results.rs:95:47' --is-raw-string --condvar flowey_lib_common::publish_test_results:21:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env github floweyvar4
3008 flowey v 17 'flowey_lib_common::publish_test_results:21:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
3009 shell: bash
3010 - id: flowey_lib_common__publish_test_results__15
3011 uses: actions/upload-artifact@v7
3012 with:
3013 name: aarch64-linux-unit-tests-unit-tests crypto (openssl)-junit-xml
3014 path: ${{ env.floweyvar4 }}
3015 name: 'publish test results: aarch64-linux-unit-tests-unit-tests crypto (openssl) (JUnit XML)'
3016 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
3017 - name: generate nextest command
3018 run: flowey e 17 flowey_lib_common::gen_cargo_nextest_run_cmd 0
3019 shell: bash
3020 - name: run 'unit-tests crypto (all)' nextest tests
3021 run: |-
3022 flowey e 17 flowey_lib_common::run_cargo_nextest_run 0
3023 flowey e 17 flowey_lib_common::run_cargo_nextest_run 1
3024 flowey e 17 flowey_lib_hvlite::build_nextest_unit_tests 5
3025 flowey e 17 flowey_lib_common::publish_test_results 16
3026 flowey e 17 flowey_lib_common::publish_test_results 17
3027 flowey e 17 flowey_lib_common::publish_test_results 18
3028 flowey v 17 'flowey_lib_common::publish_test_results:32:flowey_lib_common/src/publish_test_results.rs:95:47' --is-raw-string --condvar flowey_lib_common::publish_test_results:28:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env github floweyvar5
3029 flowey v 17 'flowey_lib_common::publish_test_results:28:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
3030 shell: bash
3031 - id: flowey_lib_common__publish_test_results__19
3032 uses: actions/upload-artifact@v7
3033 with:
3034 name: aarch64-linux-unit-tests-unit-tests crypto (all)-junit-xml
3035 path: ${{ env.floweyvar5 }}
3036 name: 'publish test results: aarch64-linux-unit-tests-unit-tests crypto (all) (JUnit XML)'
3037 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
3038 - name: cargo build xtask
3039 run: |-
3040 flowey e 17 flowey_lib_hvlite::init_cross_build 3
3041 flowey e 17 flowey_lib_common::run_cargo_build 1
3042 flowey e 17 flowey_lib_hvlite::run_cargo_build 2
3043 shell: bash
3044 - name: split debug symbols
3045 run: |-
3046 flowey e 17 flowey_lib_hvlite::run_split_debug_info 0
3047 flowey e 17 flowey_lib_hvlite::run_cargo_build 3
3048 flowey e 17 flowey_lib_hvlite::build_xtask 1
3049 shell: bash
3050 - name: determine unit test exclusions
3051 run: flowey e 17 flowey_lib_hvlite::build_nextest_unit_tests 0
3052 shell: bash
3053 - name: generate nextest command
3054 run: flowey e 17 flowey_lib_common::gen_cargo_nextest_run_cmd 4
3055 shell: bash
3056 - name: run 'unit-tests' nextest tests
3057 run: |-
3058 flowey e 17 flowey_lib_common::run_cargo_nextest_run 8
3059 flowey e 17 flowey_lib_common::run_cargo_nextest_run 9
3060 flowey e 17 flowey_lib_hvlite::build_nextest_unit_tests 1
3061 flowey e 17 flowey_lib_common::publish_test_results 0
3062 flowey e 17 flowey_lib_common::publish_test_results 1
3063 flowey e 17 flowey_lib_common::publish_test_results 2
3064 flowey v 17 'flowey_lib_common::publish_test_results:4:flowey_lib_common/src/publish_test_results.rs:95:47' --is-raw-string --condvar flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env github floweyvar1
3065 flowey v 17 'flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
3066 shell: bash
3067 - id: flowey_lib_common__publish_test_results__3
3068 uses: actions/upload-artifact@v7
3069 with:
3070 name: aarch64-linux-unit-tests-unit-tests-junit-xml
3071 path: ${{ env.floweyvar1 }}
3072 name: 'publish test results: aarch64-linux-unit-tests-unit-tests (JUnit XML)'
3073 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
3074 - name: report test results to overall pipeline status
3075 run: |-
3076 flowey e 17 flowey_lib_hvlite::build_nextest_unit_tests 6
3077 flowey e 17 flowey_lib_hvlite::_jobs::build_and_run_nextest_unit_tests 0
3078 shell: bash
3079 - name: run doctests for aarch64-unknown-linux-gnu
3080 run: flowey e 17 flowey_lib_hvlite::_jobs::build_and_run_doc_tests 0
3081 shell: bash
3082 - name: 'validate cache entry: cargo-nextest'
3083 run: flowey e 17 flowey_lib_common::cache 3
3084 shell: bash
3085 - name: 'validate cache entry: gh-release-download'
3086 run: flowey e 17 flowey_lib_common::cache 7
3087 shell: bash
3088 job18:
3089 name: clippy [aarch64-linux-musl, misc nostd], unit tests [aarch64-linux-musl]
3090 runs-on:
3091 - self-hosted
3092 - 1ES.Pool=openvmm-gh-arm-westus2
3093 - 1ES.ImageOverride=ubuntu2404-arm64
3094 - JobId=job18-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}
3095 permissions:
3096 contents: read
3097 id-token: write
3098 if: github.event.pull_request.draft == false
3099 steps:
3100 - run: |
3101 set -x
3102 i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
3103 sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
3104 curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.95.0 -y
3105 . "$HOME/.cargo/env"
3106 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
3107 rustup show
3108 if: runner.os == 'Linux'
3109 name: rustup (Linux)
3110 shell: bash
3111 - run: |
3112 set -x
3113 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
3114 ./rustup-init.exe -y --default-toolchain=1.95.0
3115 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
3116 if: runner.os == 'Windows' && runner.arch == 'X64'
3117 name: rustup (Windows X64)
3118 shell: bash
3119 - run: |
3120 set -x
3121 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
3122 ./rustup-init.exe -y --default-toolchain=1.95.0
3123 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
3124 if: runner.os == 'Windows' && runner.arch == 'ARM64'
3125 name: rustup (Windows ARM64)
3126 shell: bash
3127 - uses: actions/checkout@v6
3128 with:
3129 path: flowey_bootstrap
3130 - name: Build flowey
3131 run: |
3132 set -x
3133 CARGO_INCREMENTAL=0 cargo build -p flowey_hvlite --target aarch64-unknown-linux-gnu --profile flowey-ci
3134 OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
3135 mkdir -p "$OutDirNormal"
3136 mv ./.github/workflows/openvmm-ci.yaml "$OutDirNormal/pipeline.yaml"
3137 mv target/aarch64-unknown-linux-gnu/flowey-ci/flowey_hvlite "$OutDirNormal/flowey"
3138 working-directory: flowey_bootstrap
3139 shell: bash
3140 - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH
3141 shell: bash
3142 name: 🌼📦 Add flowey to PATH
3143 - name: 🌼🔎 Self-check YAML
3144 run: |-
3145 ESCAPED_AGENT_TEMPDIR=$(
3146 cat <<'EOF' | sed 's/\\/\\\\/g'
3147 ${{ runner.temp }}
3148 EOF
3149 )
3150 flowey pipeline github --runtime $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci
3151 shell: bash
3152 - name: 🌼🛫 Initialize job
3153 run: |
3154 AgentTempDirNormal="${{ runner.temp }}"
3155 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
3156 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
3157
3158 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey
3159
3160 echo '"debug"' | flowey v 18 'FLOWEY_LOG' update
3161 echo "${{ runner.temp }}/work" | flowey v 18 '_internal_WORKING_DIR' --is-raw-string update
3162
3163 cat <<'EOF' | flowey v 18 'verbose' update
3164 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
3165 EOF
3166 shell: bash
3167 - name: add default cargo home to path
3168 run: flowey e 18 flowey_lib_common::install_rust 0
3169 shell: bash
3170 - name: install Rust
3171 run: flowey e 18 flowey_lib_common::install_rust 1
3172 shell: bash
3173 - name: detect active toolchain
3174 run: |-
3175 flowey e 18 flowey_lib_common::install_rust 2
3176 flowey e 18 flowey_lib_common::cfg_cargo_common_flags 0
3177 shell: bash
3178 - name: check if openvmm needs to be cloned
3179 run: |-
3180 flowey e 18 flowey_lib_common::git_checkout 0
3181 flowey v 18 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:489:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46 write-to-env github floweyvar11
3182 flowey v 18 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION
3183 shell: bash
3184 - id: flowey_lib_common__git_checkout__1
3185 uses: actions/checkout@v6
3186 with:
3187 fetch-depth: '1'
3188 path: repo0
3189 persist-credentials: ${{ env.floweyvar11 }}
3190 name: checkout repo openvmm
3191 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
3192 - name: report cloned repo directories
3193 run: |-
3194 flowey 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
3195 ${{ github.workspace }}
3196 EOF
3197 flowey e 18 flowey_lib_common::git_checkout 3
3198 flowey e 18 flowey_lib_hvlite::git_checkout_openvmm_repo 0
3199 flowey e 18 flowey_lib_hvlite::cfg_openvmm_magicpath 0
3200 shell: bash
3201 - name: create gh-release-download cache dir
3202 run: flowey e 18 flowey_lib_common::download_gh_release 0
3203 shell: bash
3204 - name: Pre-processing cache vars
3205 run: |-
3206 flowey e 18 flowey_lib_common::cache 4
3207 flowey v 18 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar9
3208 flowey v 18 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar10
3209 shell: bash
3210 - id: flowey_lib_common__cache__5
3211 uses: actions/cache@v5
3212 with:
3213 key: ${{ env.floweyvar9 }}
3214 path: ${{ env.floweyvar10 }}
3215 name: 'Restore cache: gh-release-download'
3216 - name: download artifacts from github releases
3217 run: |-
3218 flowey 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
3219 ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
3220 EOF
3221 flowey e 18 flowey_lib_common::cache 6
3222 flowey e 18 flowey_lib_common::download_gh_release 1
3223 shell: bash
3224 - name: unpack openvmm-deps archive
3225 run: flowey e 18 flowey_lib_hvlite::resolve_openvmm_deps 0
3226 shell: bash
3227 - name: extract Aarch64 sysroot.tar.gz
3228 run: flowey e 18 flowey_lib_hvlite::init_openvmm_magicpath_openhcl_sysroot 0
3229 shell: bash
3230 - name: checking if packages need to be installed
3231 run: flowey e 18 flowey_lib_common::install_dist_pkg 0
3232 shell: bash
3233 - name: installing packages
3234 run: flowey e 18 flowey_lib_common::install_dist_pkg 1
3235 shell: bash
3236 - name: set '-Dwarnings' in .cargo/config.toml
3237 run: flowey e 18 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
3238 shell: bash
3239 - name: unpack protoc
3240 run: flowey e 18 flowey_lib_common::resolve_protoc 0
3241 shell: bash
3242 - name: symlink protoc
3243 run: |-
3244 flowey e 18 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
3245 flowey e 18 flowey_lib_hvlite::init_cross_build 2
3246 shell: bash
3247 - name: cargo clippy
3248 run: flowey e 18 flowey_lib_common::run_cargo_clippy 3
3249 shell: bash
3250 - name: cargo clippy
3251 run: flowey e 18 flowey_lib_common::run_cargo_clippy 5
3252 shell: bash
3253 - name: cargo clippy
3254 run: flowey e 18 flowey_lib_common::run_cargo_clippy 1
3255 shell: bash
3256 - name: cargo clippy
3257 run: flowey e 18 flowey_lib_common::run_cargo_clippy 7
3258 shell: bash
3259 - name: cargo clippy
3260 run: |-
3261 flowey e 18 flowey_lib_common::run_cargo_clippy 6
3262 flowey e 18 flowey_lib_hvlite::init_cross_build 0
3263 shell: bash
3264 - name: cargo build xtask
3265 run: |-
3266 flowey e 18 flowey_lib_common::run_cargo_build 0
3267 flowey e 18 flowey_lib_hvlite::run_cargo_build 0
3268 shell: bash
3269 - name: split debug symbols
3270 run: |-
3271 flowey e 18 flowey_lib_hvlite::run_split_debug_info 1
3272 flowey e 18 flowey_lib_hvlite::run_cargo_build 1
3273 flowey e 18 flowey_lib_hvlite::build_xtask 0
3274 shell: bash
3275 - name: determine clippy exclusions
3276 run: flowey e 18 flowey_lib_hvlite::_jobs::check_clippy 0
3277 shell: bash
3278 - name: cargo clippy
3279 run: flowey e 18 flowey_lib_common::run_cargo_clippy 0
3280 shell: bash
3281 - name: cargo clippy
3282 run: flowey e 18 flowey_lib_common::run_cargo_clippy 2
3283 shell: bash
3284 - name: cargo clippy
3285 run: flowey e 18 flowey_lib_common::run_cargo_clippy 4
3286 shell: bash
3287 - name: create cargo-nextest cache dir
3288 run: |-
3289 flowey e 18 flowey_lib_common::download_cargo_nextest 0
3290 flowey e 18 flowey_lib_common::download_cargo_nextest 1
3291 flowey e 18 flowey_lib_common::download_cargo_nextest 2
3292 flowey e 18 flowey_lib_common::download_cargo_nextest 3
3293 shell: bash
3294 - name: Pre-processing cache vars
3295 run: |-
3296 flowey e 18 flowey_lib_common::cache 0
3297 flowey v 18 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar7
3298 flowey v 18 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar8
3299 shell: bash
3300 - id: flowey_lib_common__cache__1
3301 uses: actions/cache@v5
3302 with:
3303 key: ${{ env.floweyvar7 }}
3304 path: ${{ env.floweyvar8 }}
3305 name: 'Restore cache: cargo-nextest'
3306 - name: downloading cargo-nextest
3307 run: |-
3308 flowey 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
3309 ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
3310 EOF
3311 flowey e 18 flowey_lib_common::cache 2
3312 flowey e 18 flowey_lib_common::download_cargo_nextest 4
3313 shell: bash
3314 - name: report $CARGO_HOME
3315 run: flowey e 18 flowey_lib_common::install_rust 3
3316 shell: bash
3317 - name: installing cargo-nextest
3318 run: |-
3319 flowey e 18 flowey_lib_common::install_cargo_nextest 0
3320 flowey e 18 flowey_lib_hvlite::init_cross_build 3
3321 flowey e 18 flowey_lib_hvlite::run_cargo_nextest_run 0
3322 shell: bash
3323 - name: generate nextest command
3324 run: flowey e 18 flowey_lib_common::gen_cargo_nextest_run_cmd 1
3325 shell: bash
3326 - name: run 'unit-tests crypto (native)' nextest tests
3327 run: |-
3328 flowey e 18 flowey_lib_common::run_cargo_nextest_run 2
3329 flowey e 18 flowey_lib_common::run_cargo_nextest_run 3
3330 flowey e 18 flowey_lib_hvlite::build_nextest_unit_tests 2
3331 flowey e 18 flowey_lib_common::publish_test_results 5
3332 flowey e 18 flowey_lib_common::publish_test_results 6
3333 flowey e 18 flowey_lib_common::publish_test_results 4
3334 flowey v 18 'flowey_lib_common::publish_test_results:11:flowey_lib_common/src/publish_test_results.rs:95:47' --is-raw-string --condvar flowey_lib_common::publish_test_results:7:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env github floweyvar2
3335 flowey v 18 'flowey_lib_common::publish_test_results:7:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
3336 shell: bash
3337 - id: flowey_lib_common__publish_test_results__7
3338 uses: actions/upload-artifact@v7
3339 with:
3340 name: aarch64-linux-musl-unit-tests-unit-tests crypto (native)-junit-xml
3341 path: ${{ env.floweyvar2 }}
3342 name: 'publish test results: aarch64-linux-musl-unit-tests-unit-tests crypto (native) (JUnit XML)'
3343 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
3344 - name: generate nextest command
3345 run: flowey e 18 flowey_lib_common::gen_cargo_nextest_run_cmd 3
3346 shell: bash
3347 - name: run 'unit-tests crypto (rust)' nextest tests
3348 run: |-
3349 flowey e 18 flowey_lib_common::run_cargo_nextest_run 6
3350 flowey e 18 flowey_lib_common::run_cargo_nextest_run 7
3351 flowey e 18 flowey_lib_hvlite::build_nextest_unit_tests 3
3352 flowey e 18 flowey_lib_common::publish_test_results 8
3353 flowey e 18 flowey_lib_common::publish_test_results 9
3354 flowey e 18 flowey_lib_common::publish_test_results 10
3355 flowey v 18 'flowey_lib_common::publish_test_results:18:flowey_lib_common/src/publish_test_results.rs:95:47' --is-raw-string --condvar flowey_lib_common::publish_test_results:14:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env github floweyvar3
3356 flowey v 18 'flowey_lib_common::publish_test_results:14:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
3357 shell: bash
3358 - id: flowey_lib_common__publish_test_results__11
3359 uses: actions/upload-artifact@v7
3360 with:
3361 name: aarch64-linux-musl-unit-tests-unit-tests crypto (rust)-junit-xml
3362 path: ${{ env.floweyvar3 }}
3363 name: 'publish test results: aarch64-linux-musl-unit-tests-unit-tests crypto (rust) (JUnit XML)'
3364 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
3365 - name: generate nextest command
3366 run: flowey e 18 flowey_lib_common::gen_cargo_nextest_run_cmd 2
3367 shell: bash
3368 - name: run 'unit-tests crypto (openssl)' nextest tests
3369 run: |-
3370 flowey e 18 flowey_lib_common::run_cargo_nextest_run 4
3371 flowey e 18 flowey_lib_common::run_cargo_nextest_run 5
3372 flowey e 18 flowey_lib_hvlite::build_nextest_unit_tests 4
3373 flowey e 18 flowey_lib_common::publish_test_results 12
3374 flowey e 18 flowey_lib_common::publish_test_results 13
3375 flowey e 18 flowey_lib_common::publish_test_results 14
3376 flowey v 18 'flowey_lib_common::publish_test_results:25:flowey_lib_common/src/publish_test_results.rs:95:47' --is-raw-string --condvar flowey_lib_common::publish_test_results:21:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env github floweyvar4
3377 flowey v 18 'flowey_lib_common::publish_test_results:21:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
3378 shell: bash
3379 - id: flowey_lib_common__publish_test_results__15
3380 uses: actions/upload-artifact@v7
3381 with:
3382 name: aarch64-linux-musl-unit-tests-unit-tests crypto (openssl)-junit-xml
3383 path: ${{ env.floweyvar4 }}
3384 name: 'publish test results: aarch64-linux-musl-unit-tests-unit-tests crypto (openssl) (JUnit XML)'
3385 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
3386 - name: generate nextest command
3387 run: flowey e 18 flowey_lib_common::gen_cargo_nextest_run_cmd 4
3388 shell: bash
3389 - name: run 'unit-tests crypto (symcrypt)' nextest tests
3390 run: |-
3391 flowey e 18 flowey_lib_common::run_cargo_nextest_run 8
3392 flowey e 18 flowey_lib_common::run_cargo_nextest_run 9
3393 flowey e 18 flowey_lib_hvlite::build_nextest_unit_tests 5
3394 flowey e 18 flowey_lib_common::publish_test_results 16
3395 flowey e 18 flowey_lib_common::publish_test_results 17
3396 flowey e 18 flowey_lib_common::publish_test_results 18
3397 flowey v 18 'flowey_lib_common::publish_test_results:32:flowey_lib_common/src/publish_test_results.rs:95:47' --is-raw-string --condvar flowey_lib_common::publish_test_results:28:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env github floweyvar5
3398 flowey v 18 'flowey_lib_common::publish_test_results:28:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
3399 shell: bash
3400 - id: flowey_lib_common__publish_test_results__19
3401 uses: actions/upload-artifact@v7
3402 with:
3403 name: aarch64-linux-musl-unit-tests-unit-tests crypto (symcrypt)-junit-xml
3404 path: ${{ env.floweyvar5 }}
3405 name: 'publish test results: aarch64-linux-musl-unit-tests-unit-tests crypto (symcrypt) (JUnit XML)'
3406 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
3407 - name: generate nextest command
3408 run: flowey e 18 flowey_lib_common::gen_cargo_nextest_run_cmd 0
3409 shell: bash
3410 - name: run 'unit-tests crypto (all)' nextest tests
3411 run: |-
3412 flowey e 18 flowey_lib_common::run_cargo_nextest_run 0
3413 flowey e 18 flowey_lib_common::run_cargo_nextest_run 1
3414 flowey e 18 flowey_lib_hvlite::build_nextest_unit_tests 6
3415 flowey e 18 flowey_lib_common::publish_test_results 20
3416 flowey e 18 flowey_lib_common::publish_test_results 21
3417 flowey e 18 flowey_lib_common::publish_test_results 22
3418 flowey v 18 'flowey_lib_common::publish_test_results:39:flowey_lib_common/src/publish_test_results.rs:95:47' --is-raw-string --condvar flowey_lib_common::publish_test_results:35:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env github floweyvar6
3419 flowey v 18 'flowey_lib_common::publish_test_results:35:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
3420 shell: bash
3421 - id: flowey_lib_common__publish_test_results__23
3422 uses: actions/upload-artifact@v7
3423 with:
3424 name: aarch64-linux-musl-unit-tests-unit-tests crypto (all)-junit-xml
3425 path: ${{ env.floweyvar6 }}
3426 name: 'publish test results: aarch64-linux-musl-unit-tests-unit-tests crypto (all) (JUnit XML)'
3427 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
3428 - name: cargo build xtask
3429 run: |-
3430 flowey e 18 flowey_lib_hvlite::init_cross_build 1
3431 flowey e 18 flowey_lib_common::run_cargo_build 1
3432 flowey e 18 flowey_lib_hvlite::run_cargo_build 2
3433 shell: bash
3434 - name: split debug symbols
3435 run: |-
3436 flowey e 18 flowey_lib_hvlite::run_split_debug_info 0
3437 flowey e 18 flowey_lib_hvlite::run_cargo_build 3
3438 flowey e 18 flowey_lib_hvlite::build_xtask 1
3439 shell: bash
3440 - name: determine unit test exclusions
3441 run: flowey e 18 flowey_lib_hvlite::build_nextest_unit_tests 0
3442 shell: bash
3443 - name: generate nextest command
3444 run: flowey e 18 flowey_lib_common::gen_cargo_nextest_run_cmd 5
3445 shell: bash
3446 - name: run 'unit-tests' nextest tests
3447 run: |-
3448 flowey e 18 flowey_lib_common::run_cargo_nextest_run 10
3449 flowey e 18 flowey_lib_common::run_cargo_nextest_run 11
3450 flowey e 18 flowey_lib_hvlite::build_nextest_unit_tests 1
3451 flowey e 18 flowey_lib_common::publish_test_results 0
3452 flowey e 18 flowey_lib_common::publish_test_results 1
3453 flowey e 18 flowey_lib_common::publish_test_results 2
3454 flowey 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
3455 flowey 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
3456 shell: bash
3457 - id: flowey_lib_common__publish_test_results__3
3458 uses: actions/upload-artifact@v7
3459 with:
3460 name: aarch64-linux-musl-unit-tests-unit-tests-junit-xml
3461 path: ${{ env.floweyvar1 }}
3462 name: 'publish test results: aarch64-linux-musl-unit-tests-unit-tests (JUnit XML)'
3463 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
3464 - name: report test results to overall pipeline status
3465 run: |-
3466 flowey e 18 flowey_lib_hvlite::build_nextest_unit_tests 7
3467 flowey e 18 flowey_lib_hvlite::_jobs::build_and_run_nextest_unit_tests 0
3468 shell: bash
3469 - name: run doctests for aarch64-unknown-linux-musl
3470 run: flowey e 18 flowey_lib_hvlite::_jobs::build_and_run_doc_tests 0
3471 shell: bash
3472 - name: 'validate cache entry: cargo-nextest'
3473 run: flowey e 18 flowey_lib_common::cache 3
3474 shell: bash
3475 - name: 'validate cache entry: gh-release-download'
3476 run: flowey e 18 flowey_lib_common::cache 7
3477 shell: bash
3478 job19:
3479 name: run vmm-tests [x64-windows-intel]
3480 runs-on:
3481 - self-hosted
3482 - 1ES.Pool=openvmm-gh-intel-westus3
3483 - 1ES.ImageOverride=win-amd64
3484 - JobId=job19-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}
3485 permissions:
3486 contents: read
3487 id-token: write
3488 needs:
3489 - job11
3490 - job2
3491 - job3
3492 - job7
3493 if: github.event.pull_request.draft == false
3494 steps:
3495 - name: 🌼📦 Download artifacts
3496 uses: actions/download-artifact@v8
3497 with:
3498 pattern: '{_internal-flowey-bootstrap-x86_64-windows-uid-13,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-vmgstool-dev,x64-windows-vmm-tests-archive}'
3499 path: ${{ runner.temp }}/used_artifacts/
3500 - run: echo "${{ runner.temp }}/used_artifacts/_internal-flowey-bootstrap-x86_64-windows-uid-13" >> $GITHUB_PATH
3501 shell: bash
3502 name: 🌼📦 Add flowey to PATH
3503 - name: 🌼🛫 Initialize job
3504 run: |
3505 AgentTempDirNormal="${{ runner.temp }}"
3506 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
3507 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
3508
3509 chmod +x $AgentTempDirNormal/used_artifacts/_internal-flowey-bootstrap-x86_64-windows-uid-13/flowey.exe
3510
3511 echo '"debug"' | flowey.exe v 19 'FLOWEY_LOG' update
3512 echo "${{ runner.temp }}/work" | flowey.exe v 19 '_internal_WORKING_DIR' --is-raw-string update
3513
3514 cat <<'EOF' | flowey.exe v 19 'verbose' update
3515 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
3516 EOF
3517 echo "${{ runner.temp }}\\used_artifacts\\x64-guest_test_uefi" | flowey.exe v 19 'artifact_use_from_x64-guest_test_uefi' --is-raw-string update
3518 echo "${{ runner.temp }}\\used_artifacts\\x64-linux-musl-pipette" | flowey.exe v 19 'artifact_use_from_x64-linux-musl-pipette' --is-raw-string update
3519 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
3520 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
3521 echo "${{ runner.temp }}\\used_artifacts\\x64-openhcl-igvm" | flowey.exe v 19 'artifact_use_from_x64-openhcl-igvm' --is-raw-string update
3522 echo "${{ runner.temp }}\\used_artifacts\\x64-tmks" | flowey.exe v 19 'artifact_use_from_x64-tmks' --is-raw-string update
3523 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-openvmm" | flowey.exe v 19 'artifact_use_from_x64-windows-openvmm' --is-raw-string update
3524 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-pipette" | flowey.exe v 19 'artifact_use_from_x64-windows-pipette' --is-raw-string update
3525 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-prep_steps" | flowey.exe v 19 'artifact_use_from_x64-windows-prep_steps' --is-raw-string update
3526 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
3527 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-tmk_vmm" | flowey.exe v 19 'artifact_use_from_x64-windows-tmk_vmm' --is-raw-string update
3528 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
3529 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-vmgstool" | flowey.exe v 19 'artifact_use_from_x64-windows-vmgstool' --is-raw-string update
3530 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-vmgstool-dev" | flowey.exe v 19 'artifact_use_from_x64-windows-vmgstool-dev' --is-raw-string update
3531 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
3532 shell: bash
3533 - name: create cargo-nextest cache dir
3534 run: |-
3535 flowey.exe e 19 flowey_lib_common::download_cargo_nextest 0
3536 flowey.exe e 19 flowey_lib_common::download_cargo_nextest 1
3537 flowey.exe e 19 flowey_lib_common::download_cargo_nextest 2
3538 flowey.exe e 19 flowey_lib_common::download_cargo_nextest 3
3539 shell: bash
3540 - name: Pre-processing cache vars
3541 run: |-
3542 flowey.exe e 19 flowey_lib_common::cache 0
3543 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
3544 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
3545 shell: bash
3546 - id: flowey_lib_common__cache__1
3547 uses: actions/cache@v5
3548 with:
3549 key: ${{ env.floweyvar4 }}
3550 path: ${{ env.floweyvar5 }}
3551 name: 'Restore cache: cargo-nextest'
3552 - name: downloading cargo-nextest
3553 run: |-
3554 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
3555 ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
3556 EOF
3557 flowey.exe e 19 flowey_lib_common::cache 2
3558 flowey.exe e 19 flowey_lib_common::download_cargo_nextest 4
3559 shell: bash
3560 - name: check if openvmm needs to be cloned
3561 run: |-
3562 flowey.exe e 19 flowey_lib_common::git_checkout 0
3563 flowey.exe v 19 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:489:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46 write-to-env github floweyvar3
3564 flowey.exe v 19 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION
3565 shell: bash
3566 - id: flowey_lib_common__git_checkout__1
3567 uses: actions/checkout@v6
3568 with:
3569 fetch-depth: '1'
3570 path: repo0
3571 persist-credentials: ${{ env.floweyvar3 }}
3572 name: checkout repo openvmm
3573 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
3574 - name: report cloned repo directories
3575 run: |-
3576 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
3577 ${{ github.workspace }}
3578 EOF
3579 flowey.exe e 19 flowey_lib_common::git_checkout 3
3580 flowey.exe e 19 flowey_lib_hvlite::git_checkout_openvmm_repo 0
3581 flowey.exe e 19 flowey_lib_hvlite::run_cargo_nextest_run 0
3582 flowey.exe e 19 flowey_core::pipeline::artifact::resolve 5
3583 flowey.exe e 19 flowey_core::pipeline::artifact::resolve 6
3584 flowey.exe e 19 flowey_core::pipeline::artifact::resolve 1
3585 flowey.exe e 19 flowey_core::pipeline::artifact::resolve 0
3586 flowey.exe e 19 flowey_core::pipeline::artifact::resolve 9
3587 flowey.exe e 19 flowey_core::pipeline::artifact::resolve 2
3588 flowey.exe e 19 flowey_core::pipeline::artifact::resolve 4
3589 flowey.exe e 19 flowey_core::pipeline::artifact::resolve 11
3590 flowey.exe e 19 flowey_core::pipeline::artifact::resolve 12
3591 flowey.exe e 19 flowey_core::pipeline::artifact::resolve 10
3592 flowey.exe e 19 flowey_core::pipeline::artifact::resolve 3
3593 flowey.exe e 19 flowey_core::pipeline::artifact::resolve 8
3594 shell: bash
3595 - name: creating new test content dir
3596 run: flowey.exe e 19 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 0
3597 shell: bash
3598 - name: resolve OpenHCL igvm artifact
3599 run: flowey.exe e 19 flowey_lib_hvlite::artifact_openhcl_igvm_from_recipe::resolve 0
3600 shell: bash
3601 - name: create gh-release-download cache dir
3602 run: flowey.exe e 19 flowey_lib_common::download_gh_release 0
3603 shell: bash
3604 - name: Pre-processing cache vars
3605 run: |-
3606 flowey.exe e 19 flowey_lib_common::cache 8
3607 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
3608 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
3609 shell: bash
3610 - id: flowey_lib_common__cache__9
3611 uses: actions/cache@v5
3612 with:
3613 key: ${{ env.floweyvar8 }}
3614 path: ${{ env.floweyvar9 }}
3615 name: 'Restore cache: gh-release-download'
3616 - name: download artifacts from github releases
3617 run: |-
3618 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
3619 ${{ steps.flowey_lib_common__cache__9.outputs.cache-hit }}
3620 EOF
3621 flowey.exe e 19 flowey_lib_common::cache 10
3622 flowey.exe e 19 flowey_lib_common::download_gh_release 1
3623 shell: bash
3624 - name: extract azcopy from archive
3625 run: flowey.exe e 19 flowey_lib_common::download_azcopy 0
3626 shell: bash
3627 - name: calculating required VMM tests disk images
3628 run: flowey.exe e 19 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 0
3629 shell: bash
3630 - name: downloading VMM test disk images
3631 run: |-
3632 flowey.exe e 19 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 1
3633 flowey.exe e 19 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 2
3634 shell: bash
3635 - name: create gh cache dir
3636 run: flowey.exe e 19 flowey_lib_common::download_gh_cli 0
3637 shell: bash
3638 - name: Pre-processing cache vars
3639 run: |-
3640 flowey.exe e 19 flowey_lib_common::cache 4
3641 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
3642 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
3643 shell: bash
3644 - id: flowey_lib_common__cache__5
3645 uses: actions/cache@v5
3646 with:
3647 key: ${{ env.floweyvar6 }}
3648 path: ${{ env.floweyvar7 }}
3649 name: 'Restore cache: gh-cli'
3650 - name: installing gh
3651 run: |-
3652 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
3653 ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
3654 EOF
3655 flowey.exe e 19 flowey_lib_common::cache 6
3656 flowey.exe e 19 flowey_lib_common::download_gh_cli 1
3657 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
3658 ${{ github.token }}
3659 EOF
3660 shell: bash
3661 - name: setup gh cli
3662 run: flowey.exe e 19 flowey_lib_common::use_gh_cli 0
3663 shell: bash
3664 - name: get latest completed action id
3665 run: flowey.exe e 19 flowey_lib_common::gh_latest_completed_workflow_id 0
3666 shell: bash
3667 - name: download artifacts from github actions run
3668 run: |-
3669 flowey.exe e 19 flowey_lib_common::download_gh_artifact 0
3670 flowey.exe e 19 flowey_lib_hvlite::download_release_igvm_files_from_gh::resolve 0
3671 shell: bash
3672 - name: unpack openvmm-test-initrd archives
3673 run: flowey.exe e 19 flowey_lib_hvlite::resolve_openvmm_test_initrd 0
3674 shell: bash
3675 - name: unpack openvmm-test-linux archives
3676 run: flowey.exe e 19 flowey_lib_hvlite::resolve_openvmm_test_linux_kernel 0
3677 shell: bash
3678 - name: unpack mu_msvm package (x64)
3679 run: flowey.exe e 19 flowey_lib_hvlite::download_uefi_mu_msvm 0
3680 shell: bash
3681 - name: unpack openvmm-test-virtio-win archive
3682 run: flowey.exe e 19 flowey_lib_hvlite::resolve_openvmm_test_virtio_win 0
3683 shell: bash
3684 - name: setting up vmm_tests env
3685 run: |-
3686 flowey.exe e 19 flowey_lib_hvlite::init_vmm_tests_env 0
3687 flowey.exe e 19 flowey_lib_hvlite::run_cargo_nextest_run 1
3688 flowey.exe e 19 flowey_core::pipeline::artifact::resolve 13
3689 flowey.exe e 19 flowey_lib_hvlite::test_nextest_vmm_tests_archive 0
3690 shell: bash
3691 - name: generate nextest command
3692 run: flowey.exe e 19 flowey_lib_common::gen_cargo_nextest_run_cmd 0
3693 shell: bash
3694 - name: install vmm tests deps (windows)
3695 run: flowey.exe e 19 flowey_lib_hvlite::install_vmm_tests_deps 0
3696 shell: bash
3697 - name: starting test_igvm_agent_rpc_server
3698 run: |-
3699 flowey.exe e 19 flowey_lib_hvlite::run_test_igvm_agent_rpc_server 0
3700 flowey.exe e 19 flowey_core::pipeline::artifact::resolve 7
3701 shell: bash
3702 - name: running vmm_test prep_steps
3703 run: flowey.exe e 19 flowey_lib_hvlite::run_prep_steps 0
3704 shell: bash
3705 - name: run 'vmm_tests' nextest tests
3706 run: |-
3707 flowey.exe e 19 flowey_lib_common::run_cargo_nextest_run 0
3708 flowey.exe e 19 flowey_lib_common::run_cargo_nextest_run 1
3709 flowey.exe e 19 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 1
3710 shell: bash
3711 - name: stopping test_igvm_agent_rpc_server
3712 run: |-
3713 flowey.exe e 19 flowey_lib_hvlite::stop_test_igvm_agent_rpc_server 0
3714 flowey.exe e 19 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 2
3715 flowey.exe e 19 flowey_lib_common::publish_test_results 4
3716 flowey.exe e 19 flowey_lib_common::publish_test_results 5
3717 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
3718 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
3719 shell: bash
3720 - id: flowey_lib_common__publish_test_results__6
3721 uses: actions/upload-artifact@v7
3722 with:
3723 name: x64-windows-intel-vmm-tests-logs
3724 path: ${{ env.floweyvar2 }}
3725 name: 'publish test results: x64-windows-intel-vmm-tests (logs)'
3726 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
3727 - name: 🦀 flowey rust steps
3728 run: |-
3729 flowey.exe e 19 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 3
3730 flowey.exe e 19 flowey_lib_common::publish_test_results 0
3731 flowey.exe e 19 flowey_lib_common::publish_test_results 1
3732 flowey.exe e 19 flowey_lib_common::publish_test_results 2
3733 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
3734 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
3735 shell: bash
3736 - id: flowey_lib_common__publish_test_results__3
3737 uses: actions/upload-artifact@v7
3738 with:
3739 name: x64-windows-intel-vmm-tests-junit-xml
3740 path: ${{ env.floweyvar1 }}
3741 name: 'publish test results: x64-windows-intel-vmm-tests (JUnit XML)'
3742 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
3743 - name: report test results to overall pipeline status
3744 run: flowey.exe e 19 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 4
3745 shell: bash
3746 - name: 'validate cache entry: cargo-nextest'
3747 run: flowey.exe e 19 flowey_lib_common::cache 3
3748 shell: bash
3749 - name: 'validate cache entry: gh-cli'
3750 run: flowey.exe e 19 flowey_lib_common::cache 7
3751 shell: bash
3752 - name: 'validate cache entry: gh-release-download'
3753 run: flowey.exe e 19 flowey_lib_common::cache 11
3754 shell: bash
3755 job2:
3756 name: build artifacts (shared VMM tests) [windows]
3757 runs-on:
3758 - self-hosted
3759 - 1ES.Pool=openvmm-gh-amd-westus3
3760 - 1ES.ImageOverride=win-amd64
3761 - JobId=job2-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}
3762 permissions:
3763 contents: read
3764 id-token: write
3765 if: github.event.pull_request.draft == false
3766 steps:
3767 - run: |
3768 set -x
3769 i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
3770 sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
3771 curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.95.0 -y
3772 . "$HOME/.cargo/env"
3773 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
3774 rustup show
3775 if: runner.os == 'Linux'
3776 name: rustup (Linux)
3777 shell: bash
3778 - run: |
3779 set -x
3780 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
3781 ./rustup-init.exe -y --default-toolchain=1.95.0
3782 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
3783 if: runner.os == 'Windows' && runner.arch == 'X64'
3784 name: rustup (Windows X64)
3785 shell: bash
3786 - run: |
3787 set -x
3788 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
3789 ./rustup-init.exe -y --default-toolchain=1.95.0
3790 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
3791 if: runner.os == 'Windows' && runner.arch == 'ARM64'
3792 name: rustup (Windows ARM64)
3793 shell: bash
3794 - uses: actions/checkout@v6
3795 with:
3796 path: flowey_bootstrap
3797 - name: Build flowey
3798 run: |
3799 set -x
3800 CARGO_INCREMENTAL=0 cargo build -p flowey_hvlite --target x86_64-pc-windows-msvc --profile flowey-ci
3801 OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
3802 mkdir -p "$OutDirNormal"
3803 mv ./.github/workflows/openvmm-ci.yaml "$OutDirNormal/pipeline.yaml"
3804 mv target/x86_64-pc-windows-msvc/flowey-ci/flowey_hvlite.exe "$OutDirNormal/flowey.exe"
3805 working-directory: flowey_bootstrap
3806 shell: bash
3807 - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH
3808 shell: bash
3809 name: 🌼📦 Add flowey to PATH
3810 - name: 🌼🔎 Self-check YAML
3811 run: |-
3812 ESCAPED_AGENT_TEMPDIR=$(
3813 cat <<'EOF' | sed 's/\\/\\\\/g'
3814 ${{ runner.temp }}
3815 EOF
3816 )
3817 flowey.exe pipeline github --runtime $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci
3818 shell: bash
3819 - name: 🌼🛫 Initialize job
3820 run: |
3821 AgentTempDirNormal="${{ runner.temp }}"
3822 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
3823 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
3824
3825 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe
3826
3827 echo '"debug"' | flowey.exe v 2 'FLOWEY_LOG' update
3828 echo "${{ runner.temp }}/work" | flowey.exe v 2 '_internal_WORKING_DIR' --is-raw-string update
3829
3830 cat <<'EOF' | flowey.exe v 2 'verbose' update
3831 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
3832 EOF
3833 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-pipette"
3834 echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-pipette" | flowey.exe v 2 'artifact_publish_from_aarch64-windows-pipette' --is-raw-string update
3835 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-pipette"
3836 echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-pipette" | flowey.exe v 2 'artifact_publish_from_x64-windows-pipette' --is-raw-string update
3837 shell: bash
3838 - name: add default cargo home to path
3839 run: flowey.exe e 2 flowey_lib_common::install_rust 0
3840 shell: bash
3841 - name: install Rust
3842 run: flowey.exe e 2 flowey_lib_common::install_rust 1
3843 shell: bash
3844 - name: detect active toolchain
3845 run: |-
3846 flowey.exe e 2 flowey_lib_common::install_rust 2
3847 flowey.exe e 2 flowey_lib_common::cfg_cargo_common_flags 0
3848 shell: bash
3849 - name: check if openvmm needs to be cloned
3850 run: |-
3851 flowey.exe e 2 flowey_lib_common::git_checkout 0
3852 flowey.exe v 2 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:489:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46 write-to-env github floweyvar1
3853 flowey.exe v 2 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION
3854 shell: bash
3855 - id: flowey_lib_common__git_checkout__1
3856 uses: actions/checkout@v6
3857 with:
3858 fetch-depth: '1'
3859 path: repo0
3860 persist-credentials: ${{ env.floweyvar1 }}
3861 name: checkout repo openvmm
3862 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
3863 - name: report cloned repo directories
3864 run: |-
3865 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
3866 ${{ github.workspace }}
3867 EOF
3868 flowey.exe e 2 flowey_lib_common::git_checkout 3
3869 flowey.exe e 2 flowey_lib_hvlite::git_checkout_openvmm_repo 0
3870 shell: bash
3871 - name: set '-Dwarnings' in .cargo/config.toml
3872 run: flowey.exe e 2 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
3873 shell: bash
3874 - name: create gh-release-download cache dir
3875 run: flowey.exe e 2 flowey_lib_common::download_gh_release 0
3876 shell: bash
3877 - name: Pre-processing cache vars
3878 run: |-
3879 flowey.exe e 2 flowey_lib_common::cache 0
3880 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
3881 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
3882 shell: bash
3883 - id: flowey_lib_common__cache__1
3884 uses: actions/cache@v5
3885 with:
3886 key: ${{ env.floweyvar2 }}
3887 path: ${{ env.floweyvar3 }}
3888 name: 'Restore cache: gh-release-download'
3889 - name: download artifacts from github releases
3890 run: |-
3891 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
3892 ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
3893 EOF
3894 flowey.exe e 2 flowey_lib_common::cache 2
3895 flowey.exe e 2 flowey_lib_common::download_gh_release 1
3896 shell: bash
3897 - name: unpack protoc
3898 run: |-
3899 flowey.exe e 2 flowey_lib_common::resolve_protoc 0
3900 flowey.exe e 2 flowey_lib_hvlite::cfg_openvmm_magicpath 0
3901 shell: bash
3902 - name: symlink protoc
3903 run: |-
3904 flowey.exe e 2 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
3905 flowey.exe e 2 flowey_lib_hvlite::init_cross_build 0
3906 shell: bash
3907 - name: cargo build pipette
3908 run: |-
3909 flowey.exe e 2 flowey_lib_common::run_cargo_build 0
3910 flowey.exe e 2 flowey_lib_hvlite::run_cargo_build 0
3911 flowey.exe e 2 flowey_lib_hvlite::build_pipette 0
3912 flowey.exe e 2 flowey_core::pipeline::artifact::publish 0
3913 flowey.exe e 2 flowey_lib_hvlite::init_cross_build 1
3914 shell: bash
3915 - name: cargo build pipette
3916 run: |-
3917 flowey.exe e 2 flowey_lib_common::run_cargo_build 1
3918 flowey.exe e 2 flowey_lib_hvlite::run_cargo_build 1
3919 flowey.exe e 2 flowey_lib_hvlite::build_pipette 1
3920 flowey.exe e 2 flowey_core::pipeline::artifact::publish 1
3921 shell: bash
3922 - name: 'validate cache entry: gh-release-download'
3923 run: flowey.exe e 2 flowey_lib_common::cache 3
3924 shell: bash
3925 - name: 🌼📦 Publish aarch64-windows-pipette
3926 uses: actions/upload-artifact@v7
3927 with:
3928 name: aarch64-windows-pipette
3929 path: ${{ runner.temp }}/publish_artifacts/aarch64-windows-pipette/
3930 include-hidden-files: true
3931 - name: 🌼📦 Publish x64-windows-pipette
3932 uses: actions/upload-artifact@v7
3933 with:
3934 name: x64-windows-pipette
3935 path: ${{ runner.temp }}/publish_artifacts/x64-windows-pipette/
3936 include-hidden-files: true
3937 job20:
3938 name: run vmm-tests [x64-windows-intel-mi-secure]
3939 runs-on:
3940 - self-hosted
3941 - 1ES.Pool=openvmm-gh-intel-westus3
3942 - 1ES.ImageOverride=win-amd64
3943 - JobId=job20-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}
3944 permissions:
3945 contents: read
3946 id-token: write
3947 needs:
3948 - job12
3949 - job2
3950 - job3
3951 - job7
3952 if: github.event.pull_request.draft == false
3953 steps:
3954 - name: 🌼📦 Download artifacts
3955 uses: actions/download-artifact@v8
3956 with:
3957 pattern: '{_internal-flowey-bootstrap-x86_64-windows-uid-13,x64-guest_test_uefi,x64-linux-musl-pipette,x64-linux-musl-tmk_vmm,x64-linux-tpm_guest_tests,x64-mi-secure-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-vmgstool-dev,x64-windows-vmm-tests-archive}'
3958 path: ${{ runner.temp }}/used_artifacts/
3959 - run: echo "${{ runner.temp }}/used_artifacts/_internal-flowey-bootstrap-x86_64-windows-uid-13" >> $GITHUB_PATH
3960 shell: bash
3961 name: 🌼📦 Add flowey to PATH
3962 - name: 🌼🛫 Initialize job
3963 run: |
3964 AgentTempDirNormal="${{ runner.temp }}"
3965 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
3966 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
3967
3968 chmod +x $AgentTempDirNormal/used_artifacts/_internal-flowey-bootstrap-x86_64-windows-uid-13/flowey.exe
3969
3970 echo '"debug"' | flowey.exe v 20 'FLOWEY_LOG' update
3971 echo "${{ runner.temp }}/work" | flowey.exe v 20 '_internal_WORKING_DIR' --is-raw-string update
3972
3973 cat <<'EOF' | flowey.exe v 20 'verbose' update
3974 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
3975 EOF
3976 echo "${{ runner.temp }}\\used_artifacts\\x64-guest_test_uefi" | flowey.exe v 20 'artifact_use_from_x64-guest_test_uefi' --is-raw-string update
3977 echo "${{ runner.temp }}\\used_artifacts\\x64-linux-musl-pipette" | flowey.exe v 20 'artifact_use_from_x64-linux-musl-pipette' --is-raw-string update
3978 echo "${{ runner.temp }}\\used_artifacts\\x64-linux-musl-tmk_vmm" | flowey.exe v 20 'artifact_use_from_x64-linux-musl-tmk_vmm' --is-raw-string update
3979 echo "${{ runner.temp }}\\used_artifacts\\x64-linux-tpm_guest_tests" | flowey.exe v 20 'artifact_use_from_x64-linux-tpm_guest_tests' --is-raw-string update
3980 echo "${{ runner.temp }}\\used_artifacts\\x64-mi-secure-openhcl-igvm" | flowey.exe v 20 'artifact_use_from_x64-mi-secure-openhcl-igvm' --is-raw-string update
3981 echo "${{ runner.temp }}\\used_artifacts\\x64-tmks" | flowey.exe v 20 'artifact_use_from_x64-tmks' --is-raw-string update
3982 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-openvmm" | flowey.exe v 20 'artifact_use_from_x64-windows-openvmm' --is-raw-string update
3983 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-pipette" | flowey.exe v 20 'artifact_use_from_x64-windows-pipette' --is-raw-string update
3984 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-prep_steps" | flowey.exe v 20 'artifact_use_from_x64-windows-prep_steps' --is-raw-string update
3985 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-test_igvm_agent_rpc_server" | flowey.exe v 20 'artifact_use_from_x64-windows-test_igvm_agent_rpc_server' --is-raw-string update
3986 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-tmk_vmm" | flowey.exe v 20 'artifact_use_from_x64-windows-tmk_vmm' --is-raw-string update
3987 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-tpm_guest_tests" | flowey.exe v 20 'artifact_use_from_x64-windows-tpm_guest_tests' --is-raw-string update
3988 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-vmgstool" | flowey.exe v 20 'artifact_use_from_x64-windows-vmgstool' --is-raw-string update
3989 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-vmgstool-dev" | flowey.exe v 20 'artifact_use_from_x64-windows-vmgstool-dev' --is-raw-string update
3990 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-vmm-tests-archive" | flowey.exe v 20 'artifact_use_from_x64-windows-vmm-tests-archive' --is-raw-string update
3991 shell: bash
3992 - name: create cargo-nextest cache dir
3993 run: |-
3994 flowey.exe e 20 flowey_lib_common::download_cargo_nextest 0
3995 flowey.exe e 20 flowey_lib_common::download_cargo_nextest 1
3996 flowey.exe e 20 flowey_lib_common::download_cargo_nextest 2
3997 flowey.exe e 20 flowey_lib_common::download_cargo_nextest 3
3998 shell: bash
3999 - name: Pre-processing cache vars
4000 run: |-
4001 flowey.exe e 20 flowey_lib_common::cache 0
4002 flowey.exe v 20 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar4
4003 flowey.exe v 20 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar5
4004 shell: bash
4005 - id: flowey_lib_common__cache__1
4006 uses: actions/cache@v5
4007 with:
4008 key: ${{ env.floweyvar4 }}
4009 path: ${{ env.floweyvar5 }}
4010 name: 'Restore cache: cargo-nextest'
4011 - name: downloading cargo-nextest
4012 run: |-
4013 flowey.exe v 20 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__1.outputs.cache-hit <<EOF
4014 ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
4015 EOF
4016 flowey.exe e 20 flowey_lib_common::cache 2
4017 flowey.exe e 20 flowey_lib_common::download_cargo_nextest 4
4018 shell: bash
4019 - name: check if openvmm needs to be cloned
4020 run: |-
4021 flowey.exe e 20 flowey_lib_common::git_checkout 0
4022 flowey.exe v 20 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:489:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46 write-to-env github floweyvar3
4023 flowey.exe v 20 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION
4024 shell: bash
4025 - id: flowey_lib_common__git_checkout__1
4026 uses: actions/checkout@v6
4027 with:
4028 fetch-depth: '1'
4029 path: repo0
4030 persist-credentials: ${{ env.floweyvar3 }}
4031 name: checkout repo openvmm
4032 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
4033 - name: report cloned repo directories
4034 run: |-
4035 flowey.exe v 20 'flowey_lib_common::git_checkout:4:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.workspace <<EOF
4036 ${{ github.workspace }}
4037 EOF
4038 flowey.exe e 20 flowey_lib_common::git_checkout 3
4039 flowey.exe e 20 flowey_lib_hvlite::git_checkout_openvmm_repo 0
4040 flowey.exe e 20 flowey_lib_hvlite::run_cargo_nextest_run 0
4041 flowey.exe e 20 flowey_core::pipeline::artifact::resolve 5
4042 flowey.exe e 20 flowey_core::pipeline::artifact::resolve 6
4043 flowey.exe e 20 flowey_core::pipeline::artifact::resolve 1
4044 flowey.exe e 20 flowey_core::pipeline::artifact::resolve 0
4045 flowey.exe e 20 flowey_core::pipeline::artifact::resolve 9
4046 flowey.exe e 20 flowey_core::pipeline::artifact::resolve 2
4047 flowey.exe e 20 flowey_core::pipeline::artifact::resolve 4
4048 flowey.exe e 20 flowey_core::pipeline::artifact::resolve 11
4049 flowey.exe e 20 flowey_core::pipeline::artifact::resolve 12
4050 flowey.exe e 20 flowey_core::pipeline::artifact::resolve 10
4051 flowey.exe e 20 flowey_core::pipeline::artifact::resolve 3
4052 flowey.exe e 20 flowey_core::pipeline::artifact::resolve 8
4053 shell: bash
4054 - name: creating new test content dir
4055 run: flowey.exe e 20 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 0
4056 shell: bash
4057 - name: resolve OpenHCL igvm artifact
4058 run: flowey.exe e 20 flowey_lib_hvlite::artifact_openhcl_igvm_from_recipe::resolve 0
4059 shell: bash
4060 - name: create gh-release-download cache dir
4061 run: flowey.exe e 20 flowey_lib_common::download_gh_release 0
4062 shell: bash
4063 - name: Pre-processing cache vars
4064 run: |-
4065 flowey.exe e 20 flowey_lib_common::cache 8
4066 flowey.exe v 20 'flowey_lib_common::cache:18:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar8
4067 flowey.exe v 20 'flowey_lib_common::cache:17:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar9
4068 shell: bash
4069 - id: flowey_lib_common__cache__9
4070 uses: actions/cache@v5
4071 with:
4072 key: ${{ env.floweyvar8 }}
4073 path: ${{ env.floweyvar9 }}
4074 name: 'Restore cache: gh-release-download'
4075 - name: download artifacts from github releases
4076 run: |-
4077 flowey.exe v 20 'flowey_lib_common::cache:20:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__9.outputs.cache-hit <<EOF
4078 ${{ steps.flowey_lib_common__cache__9.outputs.cache-hit }}
4079 EOF
4080 flowey.exe e 20 flowey_lib_common::cache 10
4081 flowey.exe e 20 flowey_lib_common::download_gh_release 1
4082 shell: bash
4083 - name: extract azcopy from archive
4084 run: flowey.exe e 20 flowey_lib_common::download_azcopy 0
4085 shell: bash
4086 - name: calculating required VMM tests disk images
4087 run: flowey.exe e 20 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 0
4088 shell: bash
4089 - name: downloading VMM test disk images
4090 run: |-
4091 flowey.exe e 20 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 1
4092 flowey.exe e 20 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 2
4093 shell: bash
4094 - name: create gh cache dir
4095 run: flowey.exe e 20 flowey_lib_common::download_gh_cli 0
4096 shell: bash
4097 - name: Pre-processing cache vars
4098 run: |-
4099 flowey.exe e 20 flowey_lib_common::cache 4
4100 flowey.exe v 20 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar6
4101 flowey.exe v 20 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar7
4102 shell: bash
4103 - id: flowey_lib_common__cache__5
4104 uses: actions/cache@v5
4105 with:
4106 key: ${{ env.floweyvar6 }}
4107 path: ${{ env.floweyvar7 }}
4108 name: 'Restore cache: gh-cli'
4109 - name: installing gh
4110 run: |-
4111 flowey.exe v 20 'flowey_lib_common::cache:12:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__5.outputs.cache-hit <<EOF
4112 ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
4113 EOF
4114 flowey.exe e 20 flowey_lib_common::cache 6
4115 flowey.exe e 20 flowey_lib_common::download_gh_cli 1
4116 flowey.exe v 20 'flowey_lib_hvlite::_jobs::cfg_common:0:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.token <<EOF
4117 ${{ github.token }}
4118 EOF
4119 shell: bash
4120 - name: setup gh cli
4121 run: flowey.exe e 20 flowey_lib_common::use_gh_cli 0
4122 shell: bash
4123 - name: get latest completed action id
4124 run: flowey.exe e 20 flowey_lib_common::gh_latest_completed_workflow_id 0
4125 shell: bash
4126 - name: download artifacts from github actions run
4127 run: |-
4128 flowey.exe e 20 flowey_lib_common::download_gh_artifact 0
4129 flowey.exe e 20 flowey_lib_hvlite::download_release_igvm_files_from_gh::resolve 0
4130 shell: bash
4131 - name: unpack openvmm-test-initrd archives
4132 run: flowey.exe e 20 flowey_lib_hvlite::resolve_openvmm_test_initrd 0
4133 shell: bash
4134 - name: unpack openvmm-test-linux archives
4135 run: flowey.exe e 20 flowey_lib_hvlite::resolve_openvmm_test_linux_kernel 0
4136 shell: bash
4137 - name: unpack mu_msvm package (x64)
4138 run: flowey.exe e 20 flowey_lib_hvlite::download_uefi_mu_msvm 0
4139 shell: bash
4140 - name: unpack openvmm-test-virtio-win archive
4141 run: flowey.exe e 20 flowey_lib_hvlite::resolve_openvmm_test_virtio_win 0
4142 shell: bash
4143 - name: setting up vmm_tests env
4144 run: |-
4145 flowey.exe e 20 flowey_lib_hvlite::init_vmm_tests_env 0
4146 flowey.exe e 20 flowey_lib_hvlite::run_cargo_nextest_run 1
4147 flowey.exe e 20 flowey_core::pipeline::artifact::resolve 13
4148 flowey.exe e 20 flowey_lib_hvlite::test_nextest_vmm_tests_archive 0
4149 shell: bash
4150 - name: generate nextest command
4151 run: flowey.exe e 20 flowey_lib_common::gen_cargo_nextest_run_cmd 0
4152 shell: bash
4153 - name: install vmm tests deps (windows)
4154 run: flowey.exe e 20 flowey_lib_hvlite::install_vmm_tests_deps 0
4155 shell: bash
4156 - name: starting test_igvm_agent_rpc_server
4157 run: flowey.exe e 20 flowey_lib_hvlite::run_test_igvm_agent_rpc_server 0
4158 shell: bash
4159 - name: run 'vmm_tests' nextest tests
4160 run: |-
4161 flowey.exe e 20 flowey_lib_common::run_cargo_nextest_run 0
4162 flowey.exe e 20 flowey_lib_common::run_cargo_nextest_run 1
4163 flowey.exe e 20 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 1
4164 shell: bash
4165 - name: stopping test_igvm_agent_rpc_server
4166 run: |-
4167 flowey.exe e 20 flowey_lib_hvlite::stop_test_igvm_agent_rpc_server 0
4168 flowey.exe e 20 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 2
4169 flowey.exe e 20 flowey_lib_common::publish_test_results 4
4170 flowey.exe e 20 flowey_lib_common::publish_test_results 5
4171 flowey.exe v 20 'flowey_lib_common::publish_test_results:9:flowey_lib_common/src/publish_test_results.rs:152:62' --is-raw-string --condvar flowey_lib_common::publish_test_results:7:flowey_lib_common/src/publish_test_results.rs:144:57 write-to-env github floweyvar2
4172 flowey.exe v 20 'flowey_lib_common::publish_test_results:7:flowey_lib_common/src/publish_test_results.rs:144:57' write-to-env github FLOWEY_CONDITION
4173 shell: bash
4174 - id: flowey_lib_common__publish_test_results__6
4175 uses: actions/upload-artifact@v7
4176 with:
4177 name: x64-windows-intel-mi-secure-vmm-tests-logs
4178 path: ${{ env.floweyvar2 }}
4179 name: 'publish test results: x64-windows-intel-mi-secure-vmm-tests (logs)'
4180 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
4181 - name: 🦀 flowey rust steps
4182 run: |-
4183 flowey.exe e 20 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 3
4184 flowey.exe e 20 flowey_lib_common::publish_test_results 0
4185 flowey.exe e 20 flowey_lib_common::publish_test_results 1
4186 flowey.exe e 20 flowey_lib_common::publish_test_results 2
4187 flowey.exe v 20 'flowey_lib_common::publish_test_results:4:flowey_lib_common/src/publish_test_results.rs:95:47' --is-raw-string --condvar flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env github floweyvar1
4188 flowey.exe v 20 'flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
4189 shell: bash
4190 - id: flowey_lib_common__publish_test_results__3
4191 uses: actions/upload-artifact@v7
4192 with:
4193 name: x64-windows-intel-mi-secure-vmm-tests-junit-xml
4194 path: ${{ env.floweyvar1 }}
4195 name: 'publish test results: x64-windows-intel-mi-secure-vmm-tests (JUnit XML)'
4196 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
4197 - name: report test results to overall pipeline status
4198 run: flowey.exe e 20 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 4
4199 shell: bash
4200 - name: 'validate cache entry: cargo-nextest'
4201 run: flowey.exe e 20 flowey_lib_common::cache 3
4202 shell: bash
4203 - name: 'validate cache entry: gh-cli'
4204 run: flowey.exe e 20 flowey_lib_common::cache 7
4205 shell: bash
4206 - name: 'validate cache entry: gh-release-download'
4207 run: flowey.exe e 20 flowey_lib_common::cache 11
4208 shell: bash
4209 job21:
4210 name: run vmm-tests [x64-windows-intel-tdx]
4211 runs-on:
4212 - self-hosted
4213 - Windows
4214 - X64
4215 - TDX
4216 - Baremetal
4217 permissions:
4218 contents: read
4219 id-token: write
4220 needs:
4221 - job11
4222 - job2
4223 - job3
4224 - job7
4225 if: github.event.pull_request.draft == false
4226 steps:
4227 - name: 🌼📦 Download artifacts
4228 uses: actions/download-artifact@v8
4229 with:
4230 pattern: '{_internal-flowey-bootstrap-x86_64-windows-uid-13,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-vmgstool-dev,x64-windows-vmm-tests-archive}'
4231 path: ${{ runner.temp }}/used_artifacts/
4232 - run: echo "${{ runner.temp }}/used_artifacts/_internal-flowey-bootstrap-x86_64-windows-uid-13" >> $GITHUB_PATH
4233 shell: bash
4234 name: 🌼📦 Add flowey to PATH
4235 - name: 🌼🛫 Initialize job
4236 run: |
4237 AgentTempDirNormal="${{ runner.temp }}"
4238 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
4239 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
4240
4241 chmod +x $AgentTempDirNormal/used_artifacts/_internal-flowey-bootstrap-x86_64-windows-uid-13/flowey.exe
4242
4243 echo '"debug"' | flowey.exe v 21 'FLOWEY_LOG' update
4244 echo "${{ runner.temp }}/work" | flowey.exe v 21 '_internal_WORKING_DIR' --is-raw-string update
4245
4246 cat <<'EOF' | flowey.exe v 21 'verbose' update
4247 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
4248 EOF
4249 echo "${{ runner.temp }}\\used_artifacts\\x64-guest_test_uefi" | flowey.exe v 21 'artifact_use_from_x64-guest_test_uefi' --is-raw-string update
4250 echo "${{ runner.temp }}\\used_artifacts\\x64-linux-musl-pipette" | flowey.exe v 21 'artifact_use_from_x64-linux-musl-pipette' --is-raw-string update
4251 echo "${{ runner.temp }}\\used_artifacts\\x64-linux-musl-tmk_vmm" | flowey.exe v 21 'artifact_use_from_x64-linux-musl-tmk_vmm' --is-raw-string update
4252 echo "${{ runner.temp }}\\used_artifacts\\x64-linux-tpm_guest_tests" | flowey.exe v 21 'artifact_use_from_x64-linux-tpm_guest_tests' --is-raw-string update
4253 echo "${{ runner.temp }}\\used_artifacts\\x64-openhcl-igvm" | flowey.exe v 21 'artifact_use_from_x64-openhcl-igvm' --is-raw-string update
4254 echo "${{ runner.temp }}\\used_artifacts\\x64-tmks" | flowey.exe v 21 'artifact_use_from_x64-tmks' --is-raw-string update
4255 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-openvmm" | flowey.exe v 21 'artifact_use_from_x64-windows-openvmm' --is-raw-string update
4256 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-pipette" | flowey.exe v 21 'artifact_use_from_x64-windows-pipette' --is-raw-string update
4257 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-prep_steps" | flowey.exe v 21 'artifact_use_from_x64-windows-prep_steps' --is-raw-string update
4258 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-test_igvm_agent_rpc_server" | flowey.exe v 21 'artifact_use_from_x64-windows-test_igvm_agent_rpc_server' --is-raw-string update
4259 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-tmk_vmm" | flowey.exe v 21 'artifact_use_from_x64-windows-tmk_vmm' --is-raw-string update
4260 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-tpm_guest_tests" | flowey.exe v 21 'artifact_use_from_x64-windows-tpm_guest_tests' --is-raw-string update
4261 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-vmgstool" | flowey.exe v 21 'artifact_use_from_x64-windows-vmgstool' --is-raw-string update
4262 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-vmgstool-dev" | flowey.exe v 21 'artifact_use_from_x64-windows-vmgstool-dev' --is-raw-string update
4263 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-vmm-tests-archive" | flowey.exe v 21 'artifact_use_from_x64-windows-vmm-tests-archive' --is-raw-string update
4264 shell: bash
4265 - name: create cargo-nextest cache dir
4266 run: |-
4267 flowey.exe e 21 flowey_lib_common::download_cargo_nextest 0
4268 flowey.exe e 21 flowey_lib_common::download_cargo_nextest 1
4269 flowey.exe e 21 flowey_lib_common::download_cargo_nextest 2
4270 flowey.exe e 21 flowey_lib_common::download_cargo_nextest 3
4271 shell: bash
4272 - name: Pre-processing cache vars
4273 run: |-
4274 flowey.exe e 21 flowey_lib_common::cache 0
4275 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
4276 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
4277 shell: bash
4278 - id: flowey_lib_common__cache__1
4279 uses: actions/cache@v5
4280 with:
4281 key: ${{ env.floweyvar4 }}
4282 path: ${{ env.floweyvar5 }}
4283 name: 'Restore cache: cargo-nextest'
4284 - name: downloading cargo-nextest
4285 run: |-
4286 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
4287 ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
4288 EOF
4289 flowey.exe e 21 flowey_lib_common::cache 2
4290 flowey.exe e 21 flowey_lib_common::download_cargo_nextest 4
4291 shell: bash
4292 - name: check if openvmm needs to be cloned
4293 run: |-
4294 flowey.exe e 21 flowey_lib_common::git_checkout 0
4295 flowey.exe v 21 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:489:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46 write-to-env github floweyvar3
4296 flowey.exe v 21 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION
4297 shell: bash
4298 - id: flowey_lib_common__git_checkout__1
4299 uses: actions/checkout@v6
4300 with:
4301 fetch-depth: '1'
4302 path: repo0
4303 persist-credentials: ${{ env.floweyvar3 }}
4304 name: checkout repo openvmm
4305 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
4306 - name: report cloned repo directories
4307 run: |-
4308 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
4309 ${{ github.workspace }}
4310 EOF
4311 flowey.exe e 21 flowey_lib_common::git_checkout 3
4312 flowey.exe e 21 flowey_lib_hvlite::git_checkout_openvmm_repo 0
4313 flowey.exe e 21 flowey_lib_hvlite::run_cargo_nextest_run 0
4314 flowey.exe e 21 flowey_core::pipeline::artifact::resolve 5
4315 flowey.exe e 21 flowey_core::pipeline::artifact::resolve 6
4316 flowey.exe e 21 flowey_core::pipeline::artifact::resolve 1
4317 flowey.exe e 21 flowey_core::pipeline::artifact::resolve 0
4318 flowey.exe e 21 flowey_core::pipeline::artifact::resolve 9
4319 flowey.exe e 21 flowey_core::pipeline::artifact::resolve 2
4320 flowey.exe e 21 flowey_core::pipeline::artifact::resolve 4
4321 flowey.exe e 21 flowey_core::pipeline::artifact::resolve 11
4322 flowey.exe e 21 flowey_core::pipeline::artifact::resolve 12
4323 flowey.exe e 21 flowey_core::pipeline::artifact::resolve 10
4324 flowey.exe e 21 flowey_core::pipeline::artifact::resolve 3
4325 flowey.exe e 21 flowey_core::pipeline::artifact::resolve 8
4326 shell: bash
4327 - name: creating new test content dir
4328 run: flowey.exe e 21 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 0
4329 shell: bash
4330 - name: resolve OpenHCL igvm artifact
4331 run: flowey.exe e 21 flowey_lib_hvlite::artifact_openhcl_igvm_from_recipe::resolve 0
4332 shell: bash
4333 - name: create gh-release-download cache dir
4334 run: flowey.exe e 21 flowey_lib_common::download_gh_release 0
4335 shell: bash
4336 - name: Pre-processing cache vars
4337 run: |-
4338 flowey.exe e 21 flowey_lib_common::cache 8
4339 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
4340 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
4341 shell: bash
4342 - id: flowey_lib_common__cache__9
4343 uses: actions/cache@v5
4344 with:
4345 key: ${{ env.floweyvar8 }}
4346 path: ${{ env.floweyvar9 }}
4347 name: 'Restore cache: gh-release-download'
4348 - name: download artifacts from github releases
4349 run: |-
4350 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
4351 ${{ steps.flowey_lib_common__cache__9.outputs.cache-hit }}
4352 EOF
4353 flowey.exe e 21 flowey_lib_common::cache 10
4354 flowey.exe e 21 flowey_lib_common::download_gh_release 1
4355 shell: bash
4356 - name: extract azcopy from archive
4357 run: flowey.exe e 21 flowey_lib_common::download_azcopy 0
4358 shell: bash
4359 - name: calculating required VMM tests disk images
4360 run: flowey.exe e 21 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 0
4361 shell: bash
4362 - name: downloading VMM test disk images
4363 run: |-
4364 flowey.exe e 21 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 1
4365 flowey.exe e 21 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 2
4366 shell: bash
4367 - name: create gh cache dir
4368 run: flowey.exe e 21 flowey_lib_common::download_gh_cli 0
4369 shell: bash
4370 - name: Pre-processing cache vars
4371 run: |-
4372 flowey.exe e 21 flowey_lib_common::cache 4
4373 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
4374 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
4375 shell: bash
4376 - id: flowey_lib_common__cache__5
4377 uses: actions/cache@v5
4378 with:
4379 key: ${{ env.floweyvar6 }}
4380 path: ${{ env.floweyvar7 }}
4381 name: 'Restore cache: gh-cli'
4382 - name: installing gh
4383 run: |-
4384 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
4385 ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
4386 EOF
4387 flowey.exe e 21 flowey_lib_common::cache 6
4388 flowey.exe e 21 flowey_lib_common::download_gh_cli 1
4389 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
4390 ${{ github.token }}
4391 EOF
4392 shell: bash
4393 - name: setup gh cli
4394 run: flowey.exe e 21 flowey_lib_common::use_gh_cli 0
4395 shell: bash
4396 - name: get latest completed action id
4397 run: flowey.exe e 21 flowey_lib_common::gh_latest_completed_workflow_id 0
4398 shell: bash
4399 - name: download artifacts from github actions run
4400 run: |-
4401 flowey.exe e 21 flowey_lib_common::download_gh_artifact 0
4402 flowey.exe e 21 flowey_lib_hvlite::download_release_igvm_files_from_gh::resolve 0
4403 shell: bash
4404 - name: unpack openvmm-test-initrd archives
4405 run: flowey.exe e 21 flowey_lib_hvlite::resolve_openvmm_test_initrd 0
4406 shell: bash
4407 - name: unpack openvmm-test-linux archives
4408 run: flowey.exe e 21 flowey_lib_hvlite::resolve_openvmm_test_linux_kernel 0
4409 shell: bash
4410 - name: unpack mu_msvm package (x64)
4411 run: flowey.exe e 21 flowey_lib_hvlite::download_uefi_mu_msvm 0
4412 shell: bash
4413 - name: unpack openvmm-test-virtio-win archive
4414 run: flowey.exe e 21 flowey_lib_hvlite::resolve_openvmm_test_virtio_win 0
4415 shell: bash
4416 - name: setting up vmm_tests env
4417 run: |-
4418 flowey.exe e 21 flowey_lib_hvlite::init_vmm_tests_env 0
4419 flowey.exe e 21 flowey_lib_hvlite::run_cargo_nextest_run 1
4420 flowey.exe e 21 flowey_core::pipeline::artifact::resolve 13
4421 flowey.exe e 21 flowey_lib_hvlite::test_nextest_vmm_tests_archive 0
4422 shell: bash
4423 - name: generate nextest command
4424 run: flowey.exe e 21 flowey_lib_common::gen_cargo_nextest_run_cmd 0
4425 shell: bash
4426 - name: install vmm tests deps (windows)
4427 run: flowey.exe e 21 flowey_lib_hvlite::install_vmm_tests_deps 0
4428 shell: bash
4429 - name: starting test_igvm_agent_rpc_server
4430 run: |-
4431 flowey.exe e 21 flowey_lib_hvlite::run_test_igvm_agent_rpc_server 0
4432 flowey.exe e 21 flowey_core::pipeline::artifact::resolve 7
4433 shell: bash
4434 - name: running vmm_test prep_steps
4435 run: flowey.exe e 21 flowey_lib_hvlite::run_prep_steps 0
4436 shell: bash
4437 - name: run 'vmm_tests' nextest tests
4438 run: |-
4439 flowey.exe e 21 flowey_lib_common::run_cargo_nextest_run 0
4440 flowey.exe e 21 flowey_lib_common::run_cargo_nextest_run 1
4441 flowey.exe e 21 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 1
4442 shell: bash
4443 - name: stopping test_igvm_agent_rpc_server
4444 run: |-
4445 flowey.exe e 21 flowey_lib_hvlite::stop_test_igvm_agent_rpc_server 0
4446 flowey.exe e 21 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 2
4447 flowey.exe e 21 flowey_lib_common::publish_test_results 4
4448 flowey.exe e 21 flowey_lib_common::publish_test_results 5
4449 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
4450 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
4451 shell: bash
4452 - id: flowey_lib_common__publish_test_results__6
4453 uses: actions/upload-artifact@v7
4454 with:
4455 name: x64-windows-intel-tdx-vmm-tests-logs
4456 path: ${{ env.floweyvar2 }}
4457 name: 'publish test results: x64-windows-intel-tdx-vmm-tests (logs)'
4458 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
4459 - name: 🦀 flowey rust steps
4460 run: |-
4461 flowey.exe e 21 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 3
4462 flowey.exe e 21 flowey_lib_common::publish_test_results 0
4463 flowey.exe e 21 flowey_lib_common::publish_test_results 1
4464 flowey.exe e 21 flowey_lib_common::publish_test_results 2
4465 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
4466 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
4467 shell: bash
4468 - id: flowey_lib_common__publish_test_results__3
4469 uses: actions/upload-artifact@v7
4470 with:
4471 name: x64-windows-intel-tdx-vmm-tests-junit-xml
4472 path: ${{ env.floweyvar1 }}
4473 name: 'publish test results: x64-windows-intel-tdx-vmm-tests (JUnit XML)'
4474 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
4475 - name: report test results to overall pipeline status
4476 run: flowey.exe e 21 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 4
4477 shell: bash
4478 - name: 'validate cache entry: cargo-nextest'
4479 run: flowey.exe e 21 flowey_lib_common::cache 3
4480 shell: bash
4481 - name: 'validate cache entry: gh-cli'
4482 run: flowey.exe e 21 flowey_lib_common::cache 7
4483 shell: bash
4484 - name: 'validate cache entry: gh-release-download'
4485 run: flowey.exe e 21 flowey_lib_common::cache 11
4486 shell: bash
4487 job22:
4488 name: run vmm-tests [x64-windows-amd]
4489 runs-on:
4490 - self-hosted
4491 - 1ES.Pool=openvmm-gh-amd-westus3
4492 - 1ES.ImageOverride=win-amd64
4493 - JobId=job22-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}
4494 permissions:
4495 contents: read
4496 id-token: write
4497 needs:
4498 - job11
4499 - job2
4500 - job3
4501 - job7
4502 if: github.event.pull_request.draft == false
4503 steps:
4504 - name: 🌼📦 Download artifacts
4505 uses: actions/download-artifact@v8
4506 with:
4507 pattern: '{_internal-flowey-bootstrap-x86_64-windows-uid-13,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-vmgstool-dev,x64-windows-vmm-tests-archive}'
4508 path: ${{ runner.temp }}/used_artifacts/
4509 - run: echo "${{ runner.temp }}/used_artifacts/_internal-flowey-bootstrap-x86_64-windows-uid-13" >> $GITHUB_PATH
4510 shell: bash
4511 name: 🌼📦 Add flowey to PATH
4512 - name: 🌼🛫 Initialize job
4513 run: |
4514 AgentTempDirNormal="${{ runner.temp }}"
4515 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
4516 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
4517
4518 chmod +x $AgentTempDirNormal/used_artifacts/_internal-flowey-bootstrap-x86_64-windows-uid-13/flowey.exe
4519
4520 echo '"debug"' | flowey.exe v 22 'FLOWEY_LOG' update
4521 echo "${{ runner.temp }}/work" | flowey.exe v 22 '_internal_WORKING_DIR' --is-raw-string update
4522
4523 cat <<'EOF' | flowey.exe v 22 'verbose' update
4524 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
4525 EOF
4526 echo "${{ runner.temp }}\\used_artifacts\\x64-guest_test_uefi" | flowey.exe v 22 'artifact_use_from_x64-guest_test_uefi' --is-raw-string update
4527 echo "${{ runner.temp }}\\used_artifacts\\x64-linux-musl-pipette" | flowey.exe v 22 'artifact_use_from_x64-linux-musl-pipette' --is-raw-string update
4528 echo "${{ runner.temp }}\\used_artifacts\\x64-linux-musl-tmk_vmm" | flowey.exe v 22 'artifact_use_from_x64-linux-musl-tmk_vmm' --is-raw-string update
4529 echo "${{ runner.temp }}\\used_artifacts\\x64-linux-tpm_guest_tests" | flowey.exe v 22 'artifact_use_from_x64-linux-tpm_guest_tests' --is-raw-string update
4530 echo "${{ runner.temp }}\\used_artifacts\\x64-openhcl-igvm" | flowey.exe v 22 'artifact_use_from_x64-openhcl-igvm' --is-raw-string update
4531 echo "${{ runner.temp }}\\used_artifacts\\x64-tmks" | flowey.exe v 22 'artifact_use_from_x64-tmks' --is-raw-string update
4532 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-openvmm" | flowey.exe v 22 'artifact_use_from_x64-windows-openvmm' --is-raw-string update
4533 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-pipette" | flowey.exe v 22 'artifact_use_from_x64-windows-pipette' --is-raw-string update
4534 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-prep_steps" | flowey.exe v 22 'artifact_use_from_x64-windows-prep_steps' --is-raw-string update
4535 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-test_igvm_agent_rpc_server" | flowey.exe v 22 'artifact_use_from_x64-windows-test_igvm_agent_rpc_server' --is-raw-string update
4536 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-tmk_vmm" | flowey.exe v 22 'artifact_use_from_x64-windows-tmk_vmm' --is-raw-string update
4537 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-tpm_guest_tests" | flowey.exe v 22 'artifact_use_from_x64-windows-tpm_guest_tests' --is-raw-string update
4538 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-vmgstool" | flowey.exe v 22 'artifact_use_from_x64-windows-vmgstool' --is-raw-string update
4539 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-vmgstool-dev" | flowey.exe v 22 'artifact_use_from_x64-windows-vmgstool-dev' --is-raw-string update
4540 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-vmm-tests-archive" | flowey.exe v 22 'artifact_use_from_x64-windows-vmm-tests-archive' --is-raw-string update
4541 shell: bash
4542 - name: create cargo-nextest cache dir
4543 run: |-
4544 flowey.exe e 22 flowey_lib_common::download_cargo_nextest 0
4545 flowey.exe e 22 flowey_lib_common::download_cargo_nextest 1
4546 flowey.exe e 22 flowey_lib_common::download_cargo_nextest 2
4547 flowey.exe e 22 flowey_lib_common::download_cargo_nextest 3
4548 shell: bash
4549 - name: Pre-processing cache vars
4550 run: |-
4551 flowey.exe e 22 flowey_lib_common::cache 0
4552 flowey.exe v 22 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar4
4553 flowey.exe v 22 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar5
4554 shell: bash
4555 - id: flowey_lib_common__cache__1
4556 uses: actions/cache@v5
4557 with:
4558 key: ${{ env.floweyvar4 }}
4559 path: ${{ env.floweyvar5 }}
4560 name: 'Restore cache: cargo-nextest'
4561 - name: downloading cargo-nextest
4562 run: |-
4563 flowey.exe v 22 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__1.outputs.cache-hit <<EOF
4564 ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
4565 EOF
4566 flowey.exe e 22 flowey_lib_common::cache 2
4567 flowey.exe e 22 flowey_lib_common::download_cargo_nextest 4
4568 shell: bash
4569 - name: check if openvmm needs to be cloned
4570 run: |-
4571 flowey.exe e 22 flowey_lib_common::git_checkout 0
4572 flowey.exe v 22 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:489:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46 write-to-env github floweyvar3
4573 flowey.exe v 22 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION
4574 shell: bash
4575 - id: flowey_lib_common__git_checkout__1
4576 uses: actions/checkout@v6
4577 with:
4578 fetch-depth: '1'
4579 path: repo0
4580 persist-credentials: ${{ env.floweyvar3 }}
4581 name: checkout repo openvmm
4582 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
4583 - name: report cloned repo directories
4584 run: |-
4585 flowey.exe 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
4586 ${{ github.workspace }}
4587 EOF
4588 flowey.exe e 22 flowey_lib_common::git_checkout 3
4589 flowey.exe e 22 flowey_lib_hvlite::git_checkout_openvmm_repo 0
4590 flowey.exe e 22 flowey_lib_hvlite::run_cargo_nextest_run 0
4591 flowey.exe e 22 flowey_core::pipeline::artifact::resolve 5
4592 flowey.exe e 22 flowey_core::pipeline::artifact::resolve 6
4593 flowey.exe e 22 flowey_core::pipeline::artifact::resolve 1
4594 flowey.exe e 22 flowey_core::pipeline::artifact::resolve 0
4595 flowey.exe e 22 flowey_core::pipeline::artifact::resolve 9
4596 flowey.exe e 22 flowey_core::pipeline::artifact::resolve 2
4597 flowey.exe e 22 flowey_core::pipeline::artifact::resolve 4
4598 flowey.exe e 22 flowey_core::pipeline::artifact::resolve 11
4599 flowey.exe e 22 flowey_core::pipeline::artifact::resolve 12
4600 flowey.exe e 22 flowey_core::pipeline::artifact::resolve 10
4601 flowey.exe e 22 flowey_core::pipeline::artifact::resolve 3
4602 flowey.exe e 22 flowey_core::pipeline::artifact::resolve 8
4603 shell: bash
4604 - name: creating new test content dir
4605 run: flowey.exe e 22 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 0
4606 shell: bash
4607 - name: resolve OpenHCL igvm artifact
4608 run: flowey.exe e 22 flowey_lib_hvlite::artifact_openhcl_igvm_from_recipe::resolve 0
4609 shell: bash
4610 - name: create gh-release-download cache dir
4611 run: flowey.exe e 22 flowey_lib_common::download_gh_release 0
4612 shell: bash
4613 - name: Pre-processing cache vars
4614 run: |-
4615 flowey.exe e 22 flowey_lib_common::cache 8
4616 flowey.exe v 22 'flowey_lib_common::cache:18:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar8
4617 flowey.exe v 22 'flowey_lib_common::cache:17:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar9
4618 shell: bash
4619 - id: flowey_lib_common__cache__9
4620 uses: actions/cache@v5
4621 with:
4622 key: ${{ env.floweyvar8 }}
4623 path: ${{ env.floweyvar9 }}
4624 name: 'Restore cache: gh-release-download'
4625 - name: download artifacts from github releases
4626 run: |-
4627 flowey.exe v 22 'flowey_lib_common::cache:20:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__9.outputs.cache-hit <<EOF
4628 ${{ steps.flowey_lib_common__cache__9.outputs.cache-hit }}
4629 EOF
4630 flowey.exe e 22 flowey_lib_common::cache 10
4631 flowey.exe e 22 flowey_lib_common::download_gh_release 1
4632 shell: bash
4633 - name: extract azcopy from archive
4634 run: flowey.exe e 22 flowey_lib_common::download_azcopy 0
4635 shell: bash
4636 - name: calculating required VMM tests disk images
4637 run: flowey.exe e 22 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 0
4638 shell: bash
4639 - name: downloading VMM test disk images
4640 run: |-
4641 flowey.exe e 22 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 1
4642 flowey.exe e 22 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 2
4643 shell: bash
4644 - name: create gh cache dir
4645 run: flowey.exe e 22 flowey_lib_common::download_gh_cli 0
4646 shell: bash
4647 - name: Pre-processing cache vars
4648 run: |-
4649 flowey.exe e 22 flowey_lib_common::cache 4
4650 flowey.exe v 22 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar6
4651 flowey.exe v 22 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar7
4652 shell: bash
4653 - id: flowey_lib_common__cache__5
4654 uses: actions/cache@v5
4655 with:
4656 key: ${{ env.floweyvar6 }}
4657 path: ${{ env.floweyvar7 }}
4658 name: 'Restore cache: gh-cli'
4659 - name: installing gh
4660 run: |-
4661 flowey.exe v 22 'flowey_lib_common::cache:12:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__5.outputs.cache-hit <<EOF
4662 ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
4663 EOF
4664 flowey.exe e 22 flowey_lib_common::cache 6
4665 flowey.exe e 22 flowey_lib_common::download_gh_cli 1
4666 flowey.exe v 22 'flowey_lib_hvlite::_jobs::cfg_common:0:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.token <<EOF
4667 ${{ github.token }}
4668 EOF
4669 shell: bash
4670 - name: setup gh cli
4671 run: flowey.exe e 22 flowey_lib_common::use_gh_cli 0
4672 shell: bash
4673 - name: get latest completed action id
4674 run: flowey.exe e 22 flowey_lib_common::gh_latest_completed_workflow_id 0
4675 shell: bash
4676 - name: download artifacts from github actions run
4677 run: |-
4678 flowey.exe e 22 flowey_lib_common::download_gh_artifact 0
4679 flowey.exe e 22 flowey_lib_hvlite::download_release_igvm_files_from_gh::resolve 0
4680 shell: bash
4681 - name: unpack openvmm-test-initrd archives
4682 run: flowey.exe e 22 flowey_lib_hvlite::resolve_openvmm_test_initrd 0
4683 shell: bash
4684 - name: unpack openvmm-test-linux archives
4685 run: flowey.exe e 22 flowey_lib_hvlite::resolve_openvmm_test_linux_kernel 0
4686 shell: bash
4687 - name: unpack mu_msvm package (x64)
4688 run: flowey.exe e 22 flowey_lib_hvlite::download_uefi_mu_msvm 0
4689 shell: bash
4690 - name: unpack openvmm-test-virtio-win archive
4691 run: flowey.exe e 22 flowey_lib_hvlite::resolve_openvmm_test_virtio_win 0
4692 shell: bash
4693 - name: setting up vmm_tests env
4694 run: |-
4695 flowey.exe e 22 flowey_lib_hvlite::init_vmm_tests_env 0
4696 flowey.exe e 22 flowey_lib_hvlite::run_cargo_nextest_run 1
4697 flowey.exe e 22 flowey_core::pipeline::artifact::resolve 13
4698 flowey.exe e 22 flowey_lib_hvlite::test_nextest_vmm_tests_archive 0
4699 shell: bash
4700 - name: generate nextest command
4701 run: flowey.exe e 22 flowey_lib_common::gen_cargo_nextest_run_cmd 0
4702 shell: bash
4703 - name: install vmm tests deps (windows)
4704 run: flowey.exe e 22 flowey_lib_hvlite::install_vmm_tests_deps 0
4705 shell: bash
4706 - name: starting test_igvm_agent_rpc_server
4707 run: |-
4708 flowey.exe e 22 flowey_lib_hvlite::run_test_igvm_agent_rpc_server 0
4709 flowey.exe e 22 flowey_core::pipeline::artifact::resolve 7
4710 shell: bash
4711 - name: running vmm_test prep_steps
4712 run: flowey.exe e 22 flowey_lib_hvlite::run_prep_steps 0
4713 shell: bash
4714 - name: run 'vmm_tests' nextest tests
4715 run: |-
4716 flowey.exe e 22 flowey_lib_common::run_cargo_nextest_run 0
4717 flowey.exe e 22 flowey_lib_common::run_cargo_nextest_run 1
4718 flowey.exe e 22 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 1
4719 shell: bash
4720 - name: stopping test_igvm_agent_rpc_server
4721 run: |-
4722 flowey.exe e 22 flowey_lib_hvlite::stop_test_igvm_agent_rpc_server 0
4723 flowey.exe e 22 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 2
4724 flowey.exe e 22 flowey_lib_common::publish_test_results 4
4725 flowey.exe e 22 flowey_lib_common::publish_test_results 5
4726 flowey.exe v 22 'flowey_lib_common::publish_test_results:9:flowey_lib_common/src/publish_test_results.rs:152:62' --is-raw-string --condvar flowey_lib_common::publish_test_results:7:flowey_lib_common/src/publish_test_results.rs:144:57 write-to-env github floweyvar2
4727 flowey.exe v 22 'flowey_lib_common::publish_test_results:7:flowey_lib_common/src/publish_test_results.rs:144:57' write-to-env github FLOWEY_CONDITION
4728 shell: bash
4729 - id: flowey_lib_common__publish_test_results__6
4730 uses: actions/upload-artifact@v7
4731 with:
4732 name: x64-windows-amd-vmm-tests-logs
4733 path: ${{ env.floweyvar2 }}
4734 name: 'publish test results: x64-windows-amd-vmm-tests (logs)'
4735 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
4736 - name: 🦀 flowey rust steps
4737 run: |-
4738 flowey.exe e 22 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 3
4739 flowey.exe e 22 flowey_lib_common::publish_test_results 0
4740 flowey.exe e 22 flowey_lib_common::publish_test_results 1
4741 flowey.exe e 22 flowey_lib_common::publish_test_results 2
4742 flowey.exe v 22 'flowey_lib_common::publish_test_results:4:flowey_lib_common/src/publish_test_results.rs:95:47' --is-raw-string --condvar flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env github floweyvar1
4743 flowey.exe v 22 'flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
4744 shell: bash
4745 - id: flowey_lib_common__publish_test_results__3
4746 uses: actions/upload-artifact@v7
4747 with:
4748 name: x64-windows-amd-vmm-tests-junit-xml
4749 path: ${{ env.floweyvar1 }}
4750 name: 'publish test results: x64-windows-amd-vmm-tests (JUnit XML)'
4751 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
4752 - name: report test results to overall pipeline status
4753 run: flowey.exe e 22 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 4
4754 shell: bash
4755 - name: 'validate cache entry: cargo-nextest'
4756 run: flowey.exe e 22 flowey_lib_common::cache 3
4757 shell: bash
4758 - name: 'validate cache entry: gh-cli'
4759 run: flowey.exe e 22 flowey_lib_common::cache 7
4760 shell: bash
4761 - name: 'validate cache entry: gh-release-download'
4762 run: flowey.exe e 22 flowey_lib_common::cache 11
4763 shell: bash
4764 job23:
4765 name: run vmm-tests [x64-windows-amd-snp]
4766 runs-on:
4767 - self-hosted
4768 - Windows
4769 - X64
4770 - SNP
4771 - Baremetal
4772 permissions:
4773 contents: read
4774 id-token: write
4775 needs:
4776 - job11
4777 - job2
4778 - job3
4779 - job7
4780 if: github.event.pull_request.draft == false
4781 steps:
4782 - name: 🌼📦 Download artifacts
4783 uses: actions/download-artifact@v8
4784 with:
4785 pattern: '{_internal-flowey-bootstrap-x86_64-windows-uid-13,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-vmgstool-dev,x64-windows-vmm-tests-archive}'
4786 path: ${{ runner.temp }}/used_artifacts/
4787 - run: echo "${{ runner.temp }}/used_artifacts/_internal-flowey-bootstrap-x86_64-windows-uid-13" >> $GITHUB_PATH
4788 shell: bash
4789 name: 🌼📦 Add flowey to PATH
4790 - name: 🌼🛫 Initialize job
4791 run: |
4792 AgentTempDirNormal="${{ runner.temp }}"
4793 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
4794 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
4795
4796 chmod +x $AgentTempDirNormal/used_artifacts/_internal-flowey-bootstrap-x86_64-windows-uid-13/flowey.exe
4797
4798 echo '"debug"' | flowey.exe v 23 'FLOWEY_LOG' update
4799 echo "${{ runner.temp }}/work" | flowey.exe v 23 '_internal_WORKING_DIR' --is-raw-string update
4800
4801 cat <<'EOF' | flowey.exe v 23 'verbose' update
4802 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
4803 EOF
4804 echo "${{ runner.temp }}\\used_artifacts\\x64-guest_test_uefi" | flowey.exe v 23 'artifact_use_from_x64-guest_test_uefi' --is-raw-string update
4805 echo "${{ runner.temp }}\\used_artifacts\\x64-linux-musl-pipette" | flowey.exe v 23 'artifact_use_from_x64-linux-musl-pipette' --is-raw-string update
4806 echo "${{ runner.temp }}\\used_artifacts\\x64-linux-musl-tmk_vmm" | flowey.exe v 23 'artifact_use_from_x64-linux-musl-tmk_vmm' --is-raw-string update
4807 echo "${{ runner.temp }}\\used_artifacts\\x64-linux-tpm_guest_tests" | flowey.exe v 23 'artifact_use_from_x64-linux-tpm_guest_tests' --is-raw-string update
4808 echo "${{ runner.temp }}\\used_artifacts\\x64-openhcl-igvm" | flowey.exe v 23 'artifact_use_from_x64-openhcl-igvm' --is-raw-string update
4809 echo "${{ runner.temp }}\\used_artifacts\\x64-tmks" | flowey.exe v 23 'artifact_use_from_x64-tmks' --is-raw-string update
4810 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-openvmm" | flowey.exe v 23 'artifact_use_from_x64-windows-openvmm' --is-raw-string update
4811 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-pipette" | flowey.exe v 23 'artifact_use_from_x64-windows-pipette' --is-raw-string update
4812 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-prep_steps" | flowey.exe v 23 'artifact_use_from_x64-windows-prep_steps' --is-raw-string update
4813 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-test_igvm_agent_rpc_server" | flowey.exe v 23 'artifact_use_from_x64-windows-test_igvm_agent_rpc_server' --is-raw-string update
4814 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-tmk_vmm" | flowey.exe v 23 'artifact_use_from_x64-windows-tmk_vmm' --is-raw-string update
4815 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-tpm_guest_tests" | flowey.exe v 23 'artifact_use_from_x64-windows-tpm_guest_tests' --is-raw-string update
4816 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-vmgstool" | flowey.exe v 23 'artifact_use_from_x64-windows-vmgstool' --is-raw-string update
4817 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-vmgstool-dev" | flowey.exe v 23 'artifact_use_from_x64-windows-vmgstool-dev' --is-raw-string update
4818 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-vmm-tests-archive" | flowey.exe v 23 'artifact_use_from_x64-windows-vmm-tests-archive' --is-raw-string update
4819 shell: bash
4820 - name: create cargo-nextest cache dir
4821 run: |-
4822 flowey.exe e 23 flowey_lib_common::download_cargo_nextest 0
4823 flowey.exe e 23 flowey_lib_common::download_cargo_nextest 1
4824 flowey.exe e 23 flowey_lib_common::download_cargo_nextest 2
4825 flowey.exe e 23 flowey_lib_common::download_cargo_nextest 3
4826 shell: bash
4827 - name: Pre-processing cache vars
4828 run: |-
4829 flowey.exe e 23 flowey_lib_common::cache 0
4830 flowey.exe v 23 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar4
4831 flowey.exe v 23 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar5
4832 shell: bash
4833 - id: flowey_lib_common__cache__1
4834 uses: actions/cache@v5
4835 with:
4836 key: ${{ env.floweyvar4 }}
4837 path: ${{ env.floweyvar5 }}
4838 name: 'Restore cache: cargo-nextest'
4839 - name: downloading cargo-nextest
4840 run: |-
4841 flowey.exe v 23 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__1.outputs.cache-hit <<EOF
4842 ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
4843 EOF
4844 flowey.exe e 23 flowey_lib_common::cache 2
4845 flowey.exe e 23 flowey_lib_common::download_cargo_nextest 4
4846 shell: bash
4847 - name: check if openvmm needs to be cloned
4848 run: |-
4849 flowey.exe e 23 flowey_lib_common::git_checkout 0
4850 flowey.exe v 23 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:489:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46 write-to-env github floweyvar3
4851 flowey.exe v 23 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION
4852 shell: bash
4853 - id: flowey_lib_common__git_checkout__1
4854 uses: actions/checkout@v6
4855 with:
4856 fetch-depth: '1'
4857 path: repo0
4858 persist-credentials: ${{ env.floweyvar3 }}
4859 name: checkout repo openvmm
4860 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
4861 - name: report cloned repo directories
4862 run: |-
4863 flowey.exe v 23 'flowey_lib_common::git_checkout:4:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.workspace <<EOF
4864 ${{ github.workspace }}
4865 EOF
4866 flowey.exe e 23 flowey_lib_common::git_checkout 3
4867 flowey.exe e 23 flowey_lib_hvlite::git_checkout_openvmm_repo 0
4868 flowey.exe e 23 flowey_lib_hvlite::run_cargo_nextest_run 0
4869 flowey.exe e 23 flowey_core::pipeline::artifact::resolve 5
4870 flowey.exe e 23 flowey_core::pipeline::artifact::resolve 6
4871 flowey.exe e 23 flowey_core::pipeline::artifact::resolve 1
4872 flowey.exe e 23 flowey_core::pipeline::artifact::resolve 0
4873 flowey.exe e 23 flowey_core::pipeline::artifact::resolve 9
4874 flowey.exe e 23 flowey_core::pipeline::artifact::resolve 2
4875 flowey.exe e 23 flowey_core::pipeline::artifact::resolve 4
4876 flowey.exe e 23 flowey_core::pipeline::artifact::resolve 11
4877 flowey.exe e 23 flowey_core::pipeline::artifact::resolve 12
4878 flowey.exe e 23 flowey_core::pipeline::artifact::resolve 10
4879 flowey.exe e 23 flowey_core::pipeline::artifact::resolve 3
4880 flowey.exe e 23 flowey_core::pipeline::artifact::resolve 8
4881 shell: bash
4882 - name: creating new test content dir
4883 run: flowey.exe e 23 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 0
4884 shell: bash
4885 - name: resolve OpenHCL igvm artifact
4886 run: flowey.exe e 23 flowey_lib_hvlite::artifact_openhcl_igvm_from_recipe::resolve 0
4887 shell: bash
4888 - name: create gh-release-download cache dir
4889 run: flowey.exe e 23 flowey_lib_common::download_gh_release 0
4890 shell: bash
4891 - name: Pre-processing cache vars
4892 run: |-
4893 flowey.exe e 23 flowey_lib_common::cache 8
4894 flowey.exe v 23 'flowey_lib_common::cache:18:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar8
4895 flowey.exe v 23 'flowey_lib_common::cache:17:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar9
4896 shell: bash
4897 - id: flowey_lib_common__cache__9
4898 uses: actions/cache@v5
4899 with:
4900 key: ${{ env.floweyvar8 }}
4901 path: ${{ env.floweyvar9 }}
4902 name: 'Restore cache: gh-release-download'
4903 - name: download artifacts from github releases
4904 run: |-
4905 flowey.exe v 23 'flowey_lib_common::cache:20:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__9.outputs.cache-hit <<EOF
4906 ${{ steps.flowey_lib_common__cache__9.outputs.cache-hit }}
4907 EOF
4908 flowey.exe e 23 flowey_lib_common::cache 10
4909 flowey.exe e 23 flowey_lib_common::download_gh_release 1
4910 shell: bash
4911 - name: extract azcopy from archive
4912 run: flowey.exe e 23 flowey_lib_common::download_azcopy 0
4913 shell: bash
4914 - name: calculating required VMM tests disk images
4915 run: flowey.exe e 23 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 0
4916 shell: bash
4917 - name: downloading VMM test disk images
4918 run: |-
4919 flowey.exe e 23 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 1
4920 flowey.exe e 23 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 2
4921 shell: bash
4922 - name: create gh cache dir
4923 run: flowey.exe e 23 flowey_lib_common::download_gh_cli 0
4924 shell: bash
4925 - name: Pre-processing cache vars
4926 run: |-
4927 flowey.exe e 23 flowey_lib_common::cache 4
4928 flowey.exe v 23 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar6
4929 flowey.exe v 23 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar7
4930 shell: bash
4931 - id: flowey_lib_common__cache__5
4932 uses: actions/cache@v5
4933 with:
4934 key: ${{ env.floweyvar6 }}
4935 path: ${{ env.floweyvar7 }}
4936 name: 'Restore cache: gh-cli'
4937 - name: installing gh
4938 run: |-
4939 flowey.exe v 23 'flowey_lib_common::cache:12:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__5.outputs.cache-hit <<EOF
4940 ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
4941 EOF
4942 flowey.exe e 23 flowey_lib_common::cache 6
4943 flowey.exe e 23 flowey_lib_common::download_gh_cli 1
4944 flowey.exe v 23 'flowey_lib_hvlite::_jobs::cfg_common:0:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.token <<EOF
4945 ${{ github.token }}
4946 EOF
4947 shell: bash
4948 - name: setup gh cli
4949 run: flowey.exe e 23 flowey_lib_common::use_gh_cli 0
4950 shell: bash
4951 - name: get latest completed action id
4952 run: flowey.exe e 23 flowey_lib_common::gh_latest_completed_workflow_id 0
4953 shell: bash
4954 - name: download artifacts from github actions run
4955 run: |-
4956 flowey.exe e 23 flowey_lib_common::download_gh_artifact 0
4957 flowey.exe e 23 flowey_lib_hvlite::download_release_igvm_files_from_gh::resolve 0
4958 shell: bash
4959 - name: unpack openvmm-test-initrd archives
4960 run: flowey.exe e 23 flowey_lib_hvlite::resolve_openvmm_test_initrd 0
4961 shell: bash
4962 - name: unpack openvmm-test-linux archives
4963 run: flowey.exe e 23 flowey_lib_hvlite::resolve_openvmm_test_linux_kernel 0
4964 shell: bash
4965 - name: unpack mu_msvm package (x64)
4966 run: flowey.exe e 23 flowey_lib_hvlite::download_uefi_mu_msvm 0
4967 shell: bash
4968 - name: unpack openvmm-test-virtio-win archive
4969 run: flowey.exe e 23 flowey_lib_hvlite::resolve_openvmm_test_virtio_win 0
4970 shell: bash
4971 - name: setting up vmm_tests env
4972 run: |-
4973 flowey.exe e 23 flowey_lib_hvlite::init_vmm_tests_env 0
4974 flowey.exe e 23 flowey_lib_hvlite::run_cargo_nextest_run 1
4975 flowey.exe e 23 flowey_core::pipeline::artifact::resolve 13
4976 flowey.exe e 23 flowey_lib_hvlite::test_nextest_vmm_tests_archive 0
4977 shell: bash
4978 - name: generate nextest command
4979 run: flowey.exe e 23 flowey_lib_common::gen_cargo_nextest_run_cmd 0
4980 shell: bash
4981 - name: install vmm tests deps (windows)
4982 run: flowey.exe e 23 flowey_lib_hvlite::install_vmm_tests_deps 0
4983 shell: bash
4984 - name: starting test_igvm_agent_rpc_server
4985 run: |-
4986 flowey.exe e 23 flowey_lib_hvlite::run_test_igvm_agent_rpc_server 0
4987 flowey.exe e 23 flowey_core::pipeline::artifact::resolve 7
4988 shell: bash
4989 - name: running vmm_test prep_steps
4990 run: flowey.exe e 23 flowey_lib_hvlite::run_prep_steps 0
4991 shell: bash
4992 - name: run 'vmm_tests' nextest tests
4993 run: |-
4994 flowey.exe e 23 flowey_lib_common::run_cargo_nextest_run 0
4995 flowey.exe e 23 flowey_lib_common::run_cargo_nextest_run 1
4996 flowey.exe e 23 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 1
4997 shell: bash
4998 - name: stopping test_igvm_agent_rpc_server
4999 run: |-
5000 flowey.exe e 23 flowey_lib_hvlite::stop_test_igvm_agent_rpc_server 0
5001 flowey.exe e 23 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 2
5002 flowey.exe e 23 flowey_lib_common::publish_test_results 4
5003 flowey.exe e 23 flowey_lib_common::publish_test_results 5
5004 flowey.exe v 23 'flowey_lib_common::publish_test_results:9:flowey_lib_common/src/publish_test_results.rs:152:62' --is-raw-string --condvar flowey_lib_common::publish_test_results:7:flowey_lib_common/src/publish_test_results.rs:144:57 write-to-env github floweyvar2
5005 flowey.exe v 23 'flowey_lib_common::publish_test_results:7:flowey_lib_common/src/publish_test_results.rs:144:57' write-to-env github FLOWEY_CONDITION
5006 shell: bash
5007 - id: flowey_lib_common__publish_test_results__6
5008 uses: actions/upload-artifact@v7
5009 with:
5010 name: x64-windows-amd-snp-vmm-tests-logs
5011 path: ${{ env.floweyvar2 }}
5012 name: 'publish test results: x64-windows-amd-snp-vmm-tests (logs)'
5013 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
5014 - name: 🦀 flowey rust steps
5015 run: |-
5016 flowey.exe e 23 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 3
5017 flowey.exe e 23 flowey_lib_common::publish_test_results 0
5018 flowey.exe e 23 flowey_lib_common::publish_test_results 1
5019 flowey.exe e 23 flowey_lib_common::publish_test_results 2
5020 flowey.exe v 23 'flowey_lib_common::publish_test_results:4:flowey_lib_common/src/publish_test_results.rs:95:47' --is-raw-string --condvar flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env github floweyvar1
5021 flowey.exe v 23 'flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
5022 shell: bash
5023 - id: flowey_lib_common__publish_test_results__3
5024 uses: actions/upload-artifact@v7
5025 with:
5026 name: x64-windows-amd-snp-vmm-tests-junit-xml
5027 path: ${{ env.floweyvar1 }}
5028 name: 'publish test results: x64-windows-amd-snp-vmm-tests (JUnit XML)'
5029 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
5030 - name: report test results to overall pipeline status
5031 run: flowey.exe e 23 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 4
5032 shell: bash
5033 - name: 'validate cache entry: cargo-nextest'
5034 run: flowey.exe e 23 flowey_lib_common::cache 3
5035 shell: bash
5036 - name: 'validate cache entry: gh-cli'
5037 run: flowey.exe e 23 flowey_lib_common::cache 7
5038 shell: bash
5039 - name: 'validate cache entry: gh-release-download'
5040 run: flowey.exe e 23 flowey_lib_common::cache 11
5041 shell: bash
5042 job24:
5043 name: run vmm-tests [x64-linux-amd-kvm]
5044 runs-on:
5045 - self-hosted
5046 - 1ES.Pool=openvmm-gh-amd-westus3
5047 - 1ES.ImageOverride=ubuntu2404-amd64
5048 - JobId=job24-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}
5049 permissions:
5050 contents: read
5051 id-token: write
5052 needs:
5053 - job2
5054 - job3
5055 - job9
5056 if: github.event.pull_request.draft == false
5057 steps:
5058 - name: 🌼📦 Download artifacts
5059 uses: actions/download-artifact@v8
5060 with:
5061 pattern: '{_internal-flowey-bootstrap-x86_64-linux-uid-11,x64-guest_test_uefi,x64-linux-musl-pipette,x64-linux-musl-tmk_vmm,x64-linux-openvmm,x64-linux-openvmm_vhost,x64-linux-prep_steps,x64-linux-vmm-tests-archive,x64-tmks,x64-windows-pipette}'
5062 path: ${{ runner.temp }}/used_artifacts/
5063 - run: echo "${{ runner.temp }}/used_artifacts/_internal-flowey-bootstrap-x86_64-linux-uid-11" >> $GITHUB_PATH
5064 shell: bash
5065 name: 🌼📦 Add flowey to PATH
5066 - name: 🌼🛫 Initialize job
5067 run: |
5068 AgentTempDirNormal="${{ runner.temp }}"
5069 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
5070 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
5071
5072 chmod +x $AgentTempDirNormal/used_artifacts/_internal-flowey-bootstrap-x86_64-linux-uid-11/flowey
5073
5074 echo '"debug"' | flowey v 24 'FLOWEY_LOG' update
5075 echo "${{ runner.temp }}/work" | flowey v 24 '_internal_WORKING_DIR' --is-raw-string update
5076
5077 cat <<'EOF' | flowey v 24 'verbose' update
5078 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
5079 EOF
5080 echo "$AgentTempDirNormal/used_artifacts/x64-guest_test_uefi" | flowey v 24 'artifact_use_from_x64-guest_test_uefi' --is-raw-string update
5081 echo "$AgentTempDirNormal/used_artifacts/x64-linux-musl-pipette" | flowey v 24 'artifact_use_from_x64-linux-musl-pipette' --is-raw-string update
5082 echo "$AgentTempDirNormal/used_artifacts/x64-linux-musl-tmk_vmm" | flowey v 24 'artifact_use_from_x64-linux-musl-tmk_vmm' --is-raw-string update
5083 echo "$AgentTempDirNormal/used_artifacts/x64-linux-openvmm" | flowey v 24 'artifact_use_from_x64-linux-openvmm' --is-raw-string update
5084 echo "$AgentTempDirNormal/used_artifacts/x64-linux-openvmm_vhost" | flowey v 24 'artifact_use_from_x64-linux-openvmm_vhost' --is-raw-string update
5085 echo "$AgentTempDirNormal/used_artifacts/x64-linux-prep_steps" | flowey v 24 'artifact_use_from_x64-linux-prep_steps' --is-raw-string update
5086 echo "$AgentTempDirNormal/used_artifacts/x64-linux-vmm-tests-archive" | flowey v 24 'artifact_use_from_x64-linux-vmm-tests-archive' --is-raw-string update
5087 echo "$AgentTempDirNormal/used_artifacts/x64-tmks" | flowey v 24 'artifact_use_from_x64-tmks' --is-raw-string update
5088 echo "$AgentTempDirNormal/used_artifacts/x64-windows-pipette" | flowey v 24 'artifact_use_from_x64-windows-pipette' --is-raw-string update
5089 shell: bash
5090 - name: creating new test content dir
5091 run: |-
5092 flowey e 24 flowey_core::pipeline::artifact::resolve 3
5093 flowey e 24 flowey_core::pipeline::artifact::resolve 4
5094 flowey e 24 flowey_core::pipeline::artifact::resolve 8
5095 flowey e 24 flowey_core::pipeline::artifact::resolve 1
5096 flowey e 24 flowey_core::pipeline::artifact::resolve 0
5097 flowey e 24 flowey_core::pipeline::artifact::resolve 2
5098 flowey e 24 flowey_core::pipeline::artifact::resolve 7
5099 flowey e 24 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 0
5100 shell: bash
5101 - name: checking if packages need to be installed
5102 run: flowey e 24 flowey_lib_common::install_dist_pkg 0
5103 shell: bash
5104 - name: installing packages
5105 run: flowey e 24 flowey_lib_common::install_dist_pkg 1
5106 shell: bash
5107 - name: create gh-release-download cache dir
5108 run: flowey e 24 flowey_lib_common::download_gh_release 0
5109 shell: bash
5110 - name: Pre-processing cache vars
5111 run: |-
5112 flowey e 24 flowey_lib_common::cache 8
5113 flowey v 24 'flowey_lib_common::cache:18:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar8
5114 flowey v 24 'flowey_lib_common::cache:17:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar9
5115 shell: bash
5116 - id: flowey_lib_common__cache__9
5117 uses: actions/cache@v5
5118 with:
5119 key: ${{ env.floweyvar8 }}
5120 path: ${{ env.floweyvar9 }}
5121 name: 'Restore cache: gh-release-download'
5122 - name: download artifacts from github releases
5123 run: |-
5124 flowey v 24 '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
5125 ${{ steps.flowey_lib_common__cache__9.outputs.cache-hit }}
5126 EOF
5127 flowey e 24 flowey_lib_common::cache 10
5128 flowey e 24 flowey_lib_common::download_gh_release 1
5129 shell: bash
5130 - name: extract azcopy from archive
5131 run: flowey e 24 flowey_lib_common::download_azcopy 0
5132 shell: bash
5133 - name: calculating required VMM tests disk images
5134 run: flowey e 24 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 0
5135 shell: bash
5136 - name: downloading VMM test disk images
5137 run: |-
5138 flowey e 24 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 1
5139 flowey e 24 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 2
5140 shell: bash
5141 - name: create gh cache dir
5142 run: flowey e 24 flowey_lib_common::download_gh_cli 0
5143 shell: bash
5144 - name: Pre-processing cache vars
5145 run: |-
5146 flowey e 24 flowey_lib_common::cache 4
5147 flowey v 24 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar6
5148 flowey v 24 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar7
5149 shell: bash
5150 - id: flowey_lib_common__cache__5
5151 uses: actions/cache@v5
5152 with:
5153 key: ${{ env.floweyvar6 }}
5154 path: ${{ env.floweyvar7 }}
5155 name: 'Restore cache: gh-cli'
5156 - name: installing gh
5157 run: |-
5158 flowey v 24 '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
5159 ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
5160 EOF
5161 flowey e 24 flowey_lib_common::cache 6
5162 flowey e 24 flowey_lib_common::download_gh_cli 1
5163 flowey v 24 '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
5164 ${{ github.token }}
5165 EOF
5166 shell: bash
5167 - name: setup gh cli
5168 run: flowey e 24 flowey_lib_common::use_gh_cli 0
5169 shell: bash
5170 - name: get latest completed action id
5171 run: flowey e 24 flowey_lib_common::gh_latest_completed_workflow_id 0
5172 shell: bash
5173 - name: download artifacts from github actions run
5174 run: |-
5175 flowey e 24 flowey_lib_common::download_gh_artifact 0
5176 flowey e 24 flowey_lib_hvlite::download_release_igvm_files_from_gh::resolve 0
5177 shell: bash
5178 - name: unpack openvmm-test-initrd archives
5179 run: flowey e 24 flowey_lib_hvlite::resolve_openvmm_test_initrd 0
5180 shell: bash
5181 - name: unpack openvmm-test-linux archives
5182 run: flowey e 24 flowey_lib_hvlite::resolve_openvmm_test_linux_kernel 0
5183 shell: bash
5184 - name: unpack mu_msvm package (x64)
5185 run: flowey e 24 flowey_lib_hvlite::download_uefi_mu_msvm 0
5186 shell: bash
5187 - name: unpack openvmm-test-virtio-win archive
5188 run: flowey e 24 flowey_lib_hvlite::resolve_openvmm_test_virtio_win 0
5189 shell: bash
5190 - name: setting up vmm_tests env
5191 run: flowey e 24 flowey_lib_hvlite::init_vmm_tests_env 0
5192 shell: bash
5193 - name: ensure hypervisor device is accessible
5194 run: flowey e 24 flowey_lib_hvlite::test_nextest_vmm_tests_archive 1
5195 shell: bash
5196 - name: ensure 2 MiB hugetlb pages are available
5197 run: flowey e 24 flowey_lib_hvlite::test_nextest_vmm_tests_archive 2
5198 shell: bash
5199 - name: create cargo-nextest cache dir
5200 run: |-
5201 flowey e 24 flowey_lib_common::download_cargo_nextest 0
5202 flowey e 24 flowey_lib_common::download_cargo_nextest 1
5203 flowey e 24 flowey_lib_common::download_cargo_nextest 2
5204 flowey e 24 flowey_lib_common::download_cargo_nextest 3
5205 shell: bash
5206 - name: Pre-processing cache vars
5207 run: |-
5208 flowey e 24 flowey_lib_common::cache 0
5209 flowey v 24 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar4
5210 flowey v 24 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar5
5211 shell: bash
5212 - id: flowey_lib_common__cache__1
5213 uses: actions/cache@v5
5214 with:
5215 key: ${{ env.floweyvar4 }}
5216 path: ${{ env.floweyvar5 }}
5217 name: 'Restore cache: cargo-nextest'
5218 - name: downloading cargo-nextest
5219 run: |-
5220 flowey v 24 '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
5221 ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
5222 EOF
5223 flowey e 24 flowey_lib_common::cache 2
5224 flowey e 24 flowey_lib_common::download_cargo_nextest 4
5225 shell: bash
5226 - name: check if openvmm needs to be cloned
5227 run: |-
5228 flowey e 24 flowey_lib_common::git_checkout 0
5229 flowey v 24 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:489:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46 write-to-env github floweyvar3
5230 flowey v 24 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION
5231 shell: bash
5232 - id: flowey_lib_common__git_checkout__1
5233 uses: actions/checkout@v6
5234 with:
5235 fetch-depth: '1'
5236 path: repo0
5237 persist-credentials: ${{ env.floweyvar3 }}
5238 name: checkout repo openvmm
5239 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
5240 - name: report cloned repo directories
5241 run: |-
5242 flowey v 24 'flowey_lib_common::git_checkout:4:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.workspace <<EOF
5243 ${{ github.workspace }}
5244 EOF
5245 flowey e 24 flowey_lib_common::git_checkout 3
5246 flowey e 24 flowey_lib_hvlite::git_checkout_openvmm_repo 0
5247 flowey e 24 flowey_lib_hvlite::run_cargo_nextest_run 0
5248 flowey e 24 flowey_lib_hvlite::test_nextest_vmm_tests_archive 0
5249 flowey e 24 flowey_lib_hvlite::run_cargo_nextest_run 1
5250 flowey e 24 flowey_core::pipeline::artifact::resolve 6
5251 flowey e 24 flowey_lib_hvlite::test_nextest_vmm_tests_archive 3
5252 shell: bash
5253 - name: generate nextest command
5254 run: flowey e 24 flowey_lib_common::gen_cargo_nextest_run_cmd 0
5255 shell: bash
5256 - name: install vmm tests deps (linux)
5257 run: |-
5258 flowey e 24 flowey_lib_hvlite::install_vmm_tests_deps 0
5259 flowey e 24 flowey_core::pipeline::artifact::resolve 5
5260 shell: bash
5261 - name: running vmm_test prep_steps
5262 run: flowey e 24 flowey_lib_hvlite::run_prep_steps 0
5263 shell: bash
5264 - name: run 'vmm_tests' nextest tests
5265 run: |-
5266 flowey e 24 flowey_lib_common::run_cargo_nextest_run 0
5267 flowey e 24 flowey_lib_common::run_cargo_nextest_run 1
5268 flowey e 24 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 1
5269 flowey e 24 flowey_lib_common::publish_test_results 4
5270 flowey e 24 flowey_lib_common::publish_test_results 5
5271 flowey v 24 '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
5272 flowey v 24 'flowey_lib_common::publish_test_results:7:flowey_lib_common/src/publish_test_results.rs:144:57' write-to-env github FLOWEY_CONDITION
5273 shell: bash
5274 - id: flowey_lib_common__publish_test_results__6
5275 uses: actions/upload-artifact@v7
5276 with:
5277 name: x64-linux-amd-kvm-vmm-tests-logs
5278 path: ${{ env.floweyvar2 }}
5279 name: 'publish test results: x64-linux-amd-kvm-vmm-tests (logs)'
5280 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
5281 - name: 🦀 flowey rust steps
5282 run: |-
5283 flowey e 24 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 2
5284 flowey e 24 flowey_lib_common::publish_test_results 0
5285 flowey e 24 flowey_lib_common::publish_test_results 1
5286 flowey e 24 flowey_lib_common::publish_test_results 2
5287 flowey v 24 '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
5288 flowey v 24 'flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
5289 shell: bash
5290 - id: flowey_lib_common__publish_test_results__3
5291 uses: actions/upload-artifact@v7
5292 with:
5293 name: x64-linux-amd-kvm-vmm-tests-junit-xml
5294 path: ${{ env.floweyvar1 }}
5295 name: 'publish test results: x64-linux-amd-kvm-vmm-tests (JUnit XML)'
5296 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
5297 - name: report test results to overall pipeline status
5298 run: flowey e 24 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 3
5299 shell: bash
5300 - name: 'validate cache entry: cargo-nextest'
5301 run: flowey e 24 flowey_lib_common::cache 3
5302 shell: bash
5303 - name: 'validate cache entry: gh-cli'
5304 run: flowey e 24 flowey_lib_common::cache 7
5305 shell: bash
5306 - name: 'validate cache entry: gh-release-download'
5307 run: flowey e 24 flowey_lib_common::cache 11
5308 shell: bash
5309 job25:
5310 name: run vmm-tests [x64-linux-intel-mshv]
5311 runs-on:
5312 - self-hosted
5313 - 1ES.Pool=openvmm-gh-intel-westus3
5314 - 1ES.ImageOverride=azurelinux3-amd64-dom0
5315 - JobId=job25-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}
5316 permissions:
5317 contents: read
5318 id-token: write
5319 needs:
5320 - job2
5321 - job3
5322 - job9
5323 if: github.event.pull_request.draft == false
5324 steps:
5325 - run: |
5326 set -x
5327 sudo tdnf install -y gcc glibc-devel
5328 curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.95.0 -y
5329 . "$HOME/.cargo/env"
5330 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
5331 rustup show
5332 if: runner.os == 'Linux'
5333 name: rustup (Linux)
5334 shell: bash
5335 - run: |
5336 set -x
5337 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
5338 ./rustup-init.exe -y --default-toolchain=1.95.0
5339 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
5340 if: runner.os == 'Windows' && runner.arch == 'X64'
5341 name: rustup (Windows X64)
5342 shell: bash
5343 - run: |
5344 set -x
5345 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
5346 ./rustup-init.exe -y --default-toolchain=1.95.0
5347 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
5348 if: runner.os == 'Windows' && runner.arch == 'ARM64'
5349 name: rustup (Windows ARM64)
5350 shell: bash
5351 - uses: actions/checkout@v6
5352 with:
5353 path: flowey_bootstrap
5354 - name: Build flowey
5355 run: |
5356 set -x
5357 CARGO_INCREMENTAL=0 cargo build -p flowey_hvlite --target x86_64-unknown-linux-gnu --profile flowey-ci
5358 OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
5359 mkdir -p "$OutDirNormal"
5360 mv ./.github/workflows/openvmm-ci.yaml "$OutDirNormal/pipeline.yaml"
5361 mv target/x86_64-unknown-linux-gnu/flowey-ci/flowey_hvlite "$OutDirNormal/flowey"
5362 working-directory: flowey_bootstrap
5363 shell: bash
5364 - name: 🌼📦 Download artifacts
5365 uses: actions/download-artifact@v8
5366 with:
5367 pattern: '{x64-guest_test_uefi,x64-linux-musl-openvmm,x64-linux-musl-openvmm_vhost,x64-linux-musl-pipette,x64-linux-musl-tmk_vmm,x64-linux-musl-vmm-tests-archive,x64-linux-prep_steps,x64-tmks,x64-windows-pipette}'
5368 path: ${{ runner.temp }}/used_artifacts/
5369 - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH
5370 shell: bash
5371 name: 🌼📦 Add flowey to PATH
5372 - name: 🌼🔎 Self-check YAML
5373 run: |-
5374 ESCAPED_AGENT_TEMPDIR=$(
5375 cat <<'EOF' | sed 's/\\/\\\\/g'
5376 ${{ runner.temp }}
5377 EOF
5378 )
5379 flowey pipeline github --runtime $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci
5380 shell: bash
5381 - name: 🌼🛫 Initialize job
5382 run: |
5383 AgentTempDirNormal="${{ runner.temp }}"
5384 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
5385 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
5386
5387 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey
5388
5389 echo '"debug"' | flowey v 25 'FLOWEY_LOG' update
5390 echo "${{ runner.temp }}/work" | flowey v 25 '_internal_WORKING_DIR' --is-raw-string update
5391
5392 cat <<'EOF' | flowey v 25 'verbose' update
5393 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
5394 EOF
5395 echo "$AgentTempDirNormal/used_artifacts/x64-guest_test_uefi" | flowey v 25 'artifact_use_from_x64-guest_test_uefi' --is-raw-string update
5396 echo "$AgentTempDirNormal/used_artifacts/x64-linux-musl-openvmm" | flowey v 25 'artifact_use_from_x64-linux-musl-openvmm' --is-raw-string update
5397 echo "$AgentTempDirNormal/used_artifacts/x64-linux-musl-openvmm_vhost" | flowey v 25 'artifact_use_from_x64-linux-musl-openvmm_vhost' --is-raw-string update
5398 echo "$AgentTempDirNormal/used_artifacts/x64-linux-musl-pipette" | flowey v 25 'artifact_use_from_x64-linux-musl-pipette' --is-raw-string update
5399 echo "$AgentTempDirNormal/used_artifacts/x64-linux-musl-tmk_vmm" | flowey v 25 'artifact_use_from_x64-linux-musl-tmk_vmm' --is-raw-string update
5400 echo "$AgentTempDirNormal/used_artifacts/x64-linux-musl-vmm-tests-archive" | flowey v 25 'artifact_use_from_x64-linux-musl-vmm-tests-archive' --is-raw-string update
5401 echo "$AgentTempDirNormal/used_artifacts/x64-linux-prep_steps" | flowey v 25 'artifact_use_from_x64-linux-prep_steps' --is-raw-string update
5402 echo "$AgentTempDirNormal/used_artifacts/x64-tmks" | flowey v 25 'artifact_use_from_x64-tmks' --is-raw-string update
5403 echo "$AgentTempDirNormal/used_artifacts/x64-windows-pipette" | flowey v 25 'artifact_use_from_x64-windows-pipette' --is-raw-string update
5404 shell: bash
5405 - name: creating new test content dir
5406 run: |-
5407 flowey e 25 flowey_core::pipeline::artifact::resolve 1
5408 flowey e 25 flowey_core::pipeline::artifact::resolve 2
5409 flowey e 25 flowey_core::pipeline::artifact::resolve 8
5410 flowey e 25 flowey_core::pipeline::artifact::resolve 3
5411 flowey e 25 flowey_core::pipeline::artifact::resolve 0
5412 flowey e 25 flowey_core::pipeline::artifact::resolve 4
5413 flowey e 25 flowey_core::pipeline::artifact::resolve 7
5414 flowey e 25 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 0
5415 shell: bash
5416 - name: checking if packages need to be installed
5417 run: flowey e 25 flowey_lib_common::install_dist_pkg 0
5418 shell: bash
5419 - name: installing packages
5420 run: flowey e 25 flowey_lib_common::install_dist_pkg 1
5421 shell: bash
5422 - name: create gh-release-download cache dir
5423 run: flowey e 25 flowey_lib_common::download_gh_release 0
5424 shell: bash
5425 - name: Pre-processing cache vars
5426 run: |-
5427 flowey e 25 flowey_lib_common::cache 8
5428 flowey v 25 'flowey_lib_common::cache:18:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar8
5429 flowey v 25 'flowey_lib_common::cache:17:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar9
5430 shell: bash
5431 - id: flowey_lib_common__cache__9
5432 uses: actions/cache@v5
5433 with:
5434 key: ${{ env.floweyvar8 }}
5435 path: ${{ env.floweyvar9 }}
5436 name: 'Restore cache: gh-release-download'
5437 - name: download artifacts from github releases
5438 run: |-
5439 flowey v 25 '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
5440 ${{ steps.flowey_lib_common__cache__9.outputs.cache-hit }}
5441 EOF
5442 flowey e 25 flowey_lib_common::cache 10
5443 flowey e 25 flowey_lib_common::download_gh_release 1
5444 shell: bash
5445 - name: extract azcopy from archive
5446 run: flowey e 25 flowey_lib_common::download_azcopy 0
5447 shell: bash
5448 - name: calculating required VMM tests disk images
5449 run: flowey e 25 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 0
5450 shell: bash
5451 - name: downloading VMM test disk images
5452 run: |-
5453 flowey e 25 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 1
5454 flowey e 25 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 2
5455 shell: bash
5456 - name: create gh cache dir
5457 run: flowey e 25 flowey_lib_common::download_gh_cli 0
5458 shell: bash
5459 - name: Pre-processing cache vars
5460 run: |-
5461 flowey e 25 flowey_lib_common::cache 4
5462 flowey v 25 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar6
5463 flowey v 25 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar7
5464 shell: bash
5465 - id: flowey_lib_common__cache__5
5466 uses: actions/cache@v5
5467 with:
5468 key: ${{ env.floweyvar6 }}
5469 path: ${{ env.floweyvar7 }}
5470 name: 'Restore cache: gh-cli'
5471 - name: installing gh
5472 run: |-
5473 flowey v 25 '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
5474 ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
5475 EOF
5476 flowey e 25 flowey_lib_common::cache 6
5477 flowey e 25 flowey_lib_common::download_gh_cli 1
5478 flowey v 25 '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
5479 ${{ github.token }}
5480 EOF
5481 shell: bash
5482 - name: setup gh cli
5483 run: flowey e 25 flowey_lib_common::use_gh_cli 0
5484 shell: bash
5485 - name: get latest completed action id
5486 run: flowey e 25 flowey_lib_common::gh_latest_completed_workflow_id 0
5487 shell: bash
5488 - name: download artifacts from github actions run
5489 run: |-
5490 flowey e 25 flowey_lib_common::download_gh_artifact 0
5491 flowey e 25 flowey_lib_hvlite::download_release_igvm_files_from_gh::resolve 0
5492 shell: bash
5493 - name: unpack openvmm-test-initrd archives
5494 run: flowey e 25 flowey_lib_hvlite::resolve_openvmm_test_initrd 0
5495 shell: bash
5496 - name: unpack openvmm-test-linux archives
5497 run: flowey e 25 flowey_lib_hvlite::resolve_openvmm_test_linux_kernel 0
5498 shell: bash
5499 - name: unpack mu_msvm package (x64)
5500 run: flowey e 25 flowey_lib_hvlite::download_uefi_mu_msvm 0
5501 shell: bash
5502 - name: unpack openvmm-test-virtio-win archive
5503 run: flowey e 25 flowey_lib_hvlite::resolve_openvmm_test_virtio_win 0
5504 shell: bash
5505 - name: setting up vmm_tests env
5506 run: flowey e 25 flowey_lib_hvlite::init_vmm_tests_env 0
5507 shell: bash
5508 - name: ensure hypervisor device is accessible
5509 run: flowey e 25 flowey_lib_hvlite::test_nextest_vmm_tests_archive 0
5510 shell: bash
5511 - name: create cargo-nextest cache dir
5512 run: |-
5513 flowey e 25 flowey_lib_common::download_cargo_nextest 0
5514 flowey e 25 flowey_lib_common::download_cargo_nextest 1
5515 flowey e 25 flowey_lib_common::download_cargo_nextest 2
5516 flowey e 25 flowey_lib_common::download_cargo_nextest 3
5517 shell: bash
5518 - name: Pre-processing cache vars
5519 run: |-
5520 flowey e 25 flowey_lib_common::cache 0
5521 flowey v 25 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar4
5522 flowey v 25 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar5
5523 shell: bash
5524 - id: flowey_lib_common__cache__1
5525 uses: actions/cache@v5
5526 with:
5527 key: ${{ env.floweyvar4 }}
5528 path: ${{ env.floweyvar5 }}
5529 name: 'Restore cache: cargo-nextest'
5530 - name: downloading cargo-nextest
5531 run: |-
5532 flowey v 25 '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
5533 ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
5534 EOF
5535 flowey e 25 flowey_lib_common::cache 2
5536 flowey e 25 flowey_lib_common::download_cargo_nextest 4
5537 shell: bash
5538 - name: check if openvmm needs to be cloned
5539 run: |-
5540 flowey e 25 flowey_lib_common::git_checkout 0
5541 flowey v 25 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:489:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46 write-to-env github floweyvar3
5542 flowey v 25 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION
5543 shell: bash
5544 - id: flowey_lib_common__git_checkout__1
5545 uses: actions/checkout@v6
5546 with:
5547 fetch-depth: '1'
5548 path: repo0
5549 persist-credentials: ${{ env.floweyvar3 }}
5550 name: checkout repo openvmm
5551 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
5552 - name: report cloned repo directories
5553 run: |-
5554 flowey v 25 'flowey_lib_common::git_checkout:4:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.workspace <<EOF
5555 ${{ github.workspace }}
5556 EOF
5557 flowey e 25 flowey_lib_common::git_checkout 3
5558 flowey e 25 flowey_lib_hvlite::git_checkout_openvmm_repo 0
5559 flowey e 25 flowey_lib_hvlite::run_cargo_nextest_run 0
5560 flowey e 25 flowey_lib_hvlite::run_cargo_nextest_run 1
5561 flowey e 25 flowey_core::pipeline::artifact::resolve 5
5562 flowey e 25 flowey_lib_hvlite::test_nextest_vmm_tests_archive 1
5563 shell: bash
5564 - name: generate nextest command
5565 run: flowey e 25 flowey_lib_common::gen_cargo_nextest_run_cmd 0
5566 shell: bash
5567 - name: install vmm tests deps (linux)
5568 run: |-
5569 flowey e 25 flowey_lib_hvlite::install_vmm_tests_deps 0
5570 flowey e 25 flowey_core::pipeline::artifact::resolve 6
5571 shell: bash
5572 - name: running vmm_test prep_steps
5573 run: flowey e 25 flowey_lib_hvlite::run_prep_steps 0
5574 shell: bash
5575 - name: run 'vmm_tests' nextest tests
5576 run: |-
5577 flowey e 25 flowey_lib_common::run_cargo_nextest_run 0
5578 flowey e 25 flowey_lib_common::run_cargo_nextest_run 1
5579 flowey e 25 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 1
5580 flowey e 25 flowey_lib_common::publish_test_results 4
5581 flowey e 25 flowey_lib_common::publish_test_results 5
5582 flowey v 25 '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
5583 flowey v 25 'flowey_lib_common::publish_test_results:7:flowey_lib_common/src/publish_test_results.rs:144:57' write-to-env github FLOWEY_CONDITION
5584 shell: bash
5585 - id: flowey_lib_common__publish_test_results__6
5586 uses: actions/upload-artifact@v7
5587 with:
5588 name: x64-linux-intel-mshv-vmm-tests-logs
5589 path: ${{ env.floweyvar2 }}
5590 name: 'publish test results: x64-linux-intel-mshv-vmm-tests (logs)'
5591 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
5592 - name: 🦀 flowey rust steps
5593 run: |-
5594 flowey e 25 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 2
5595 flowey e 25 flowey_lib_common::publish_test_results 0
5596 flowey e 25 flowey_lib_common::publish_test_results 1
5597 flowey e 25 flowey_lib_common::publish_test_results 2
5598 flowey v 25 '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
5599 flowey v 25 'flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
5600 shell: bash
5601 - id: flowey_lib_common__publish_test_results__3
5602 uses: actions/upload-artifact@v7
5603 with:
5604 name: x64-linux-intel-mshv-vmm-tests-junit-xml
5605 path: ${{ env.floweyvar1 }}
5606 name: 'publish test results: x64-linux-intel-mshv-vmm-tests (JUnit XML)'
5607 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
5608 - name: report test results to overall pipeline status
5609 run: flowey e 25 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 3
5610 shell: bash
5611 - name: 'validate cache entry: cargo-nextest'
5612 run: flowey e 25 flowey_lib_common::cache 3
5613 shell: bash
5614 - name: 'validate cache entry: gh-cli'
5615 run: flowey e 25 flowey_lib_common::cache 7
5616 shell: bash
5617 - name: 'validate cache entry: gh-release-download'
5618 run: flowey e 25 flowey_lib_common::cache 11
5619 shell: bash
5620 job26:
5621 name: run vmm-tests [aarch64-windows]
5622 runs-on:
5623 - self-hosted
5624 - Windows
5625 - ARM64
5626 - Baremetal
5627 permissions:
5628 contents: read
5629 id-token: write
5630 needs:
5631 - job10
5632 - job2
5633 - job3
5634 - job5
5635 if: github.event.pull_request.draft == false
5636 steps:
5637 - run: |
5638 set -x
5639 i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
5640 sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
5641 curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.95.0 -y
5642 . "$HOME/.cargo/env"
5643 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
5644 rustup show
5645 if: runner.os == 'Linux'
5646 name: rustup (Linux)
5647 shell: bash
5648 - run: |
5649 set -x
5650 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
5651 ./rustup-init.exe -y --default-toolchain=1.95.0
5652 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
5653 if: runner.os == 'Windows' && runner.arch == 'X64'
5654 name: rustup (Windows X64)
5655 shell: bash
5656 - run: |
5657 set -x
5658 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
5659 ./rustup-init.exe -y --default-toolchain=1.95.0
5660 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
5661 if: runner.os == 'Windows' && runner.arch == 'ARM64'
5662 name: rustup (Windows ARM64)
5663 shell: bash
5664 - uses: actions/checkout@v6
5665 with:
5666 path: flowey_bootstrap
5667 - name: Build flowey
5668 run: |
5669 set -x
5670 CARGO_INCREMENTAL=0 cargo build -p flowey_hvlite --target aarch64-pc-windows-msvc --profile flowey-ci
5671 OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
5672 mkdir -p "$OutDirNormal"
5673 mv ./.github/workflows/openvmm-ci.yaml "$OutDirNormal/pipeline.yaml"
5674 mv target/aarch64-pc-windows-msvc/flowey-ci/flowey_hvlite.exe "$OutDirNormal/flowey.exe"
5675 working-directory: flowey_bootstrap
5676 shell: bash
5677 - name: 🌼📦 Download artifacts
5678 uses: actions/download-artifact@v8
5679 with:
5680 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-vmgstool-dev,aarch64-windows-vmm-tests-archive}'
5681 path: ${{ runner.temp }}/used_artifacts/
5682 - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH
5683 shell: bash
5684 name: 🌼📦 Add flowey to PATH
5685 - name: 🌼🔎 Self-check YAML
5686 run: |-
5687 ESCAPED_AGENT_TEMPDIR=$(
5688 cat <<'EOF' | sed 's/\\/\\\\/g'
5689 ${{ runner.temp }}
5690 EOF
5691 )
5692 flowey.exe pipeline github --runtime $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci
5693 shell: bash
5694 - name: 🌼🛫 Initialize job
5695 run: |
5696 AgentTempDirNormal="${{ runner.temp }}"
5697 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
5698 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
5699
5700 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe
5701
5702 echo '"debug"' | flowey.exe v 26 'FLOWEY_LOG' update
5703 echo "${{ runner.temp }}/work" | flowey.exe v 26 '_internal_WORKING_DIR' --is-raw-string update
5704
5705 cat <<'EOF' | flowey.exe v 26 'verbose' update
5706 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
5707 EOF
5708 echo "${{ runner.temp }}\\used_artifacts\\aarch64-guest_test_uefi" | flowey.exe v 26 'artifact_use_from_aarch64-guest_test_uefi' --is-raw-string update
5709 echo "${{ runner.temp }}\\used_artifacts\\aarch64-linux-musl-pipette" | flowey.exe v 26 'artifact_use_from_aarch64-linux-musl-pipette' --is-raw-string update
5710 echo "${{ runner.temp }}\\used_artifacts\\aarch64-linux-musl-tmk_vmm" | flowey.exe v 26 'artifact_use_from_aarch64-linux-musl-tmk_vmm' --is-raw-string update
5711 echo "${{ runner.temp }}\\used_artifacts\\aarch64-openhcl-igvm" | flowey.exe v 26 'artifact_use_from_aarch64-openhcl-igvm' --is-raw-string update
5712 echo "${{ runner.temp }}\\used_artifacts\\aarch64-tmks" | flowey.exe v 26 'artifact_use_from_aarch64-tmks' --is-raw-string update
5713 echo "${{ runner.temp }}\\used_artifacts\\aarch64-windows-openvmm" | flowey.exe v 26 'artifact_use_from_aarch64-windows-openvmm' --is-raw-string update
5714 echo "${{ runner.temp }}\\used_artifacts\\aarch64-windows-pipette" | flowey.exe v 26 'artifact_use_from_aarch64-windows-pipette' --is-raw-string update
5715 echo "${{ runner.temp }}\\used_artifacts\\aarch64-windows-tmk_vmm" | flowey.exe v 26 'artifact_use_from_aarch64-windows-tmk_vmm' --is-raw-string update
5716 echo "${{ runner.temp }}\\used_artifacts\\aarch64-windows-vmgstool" | flowey.exe v 26 'artifact_use_from_aarch64-windows-vmgstool' --is-raw-string update
5717 echo "${{ runner.temp }}\\used_artifacts\\aarch64-windows-vmgstool-dev" | flowey.exe v 26 'artifact_use_from_aarch64-windows-vmgstool-dev' --is-raw-string update
5718 echo "${{ runner.temp }}\\used_artifacts\\aarch64-windows-vmm-tests-archive" | flowey.exe v 26 'artifact_use_from_aarch64-windows-vmm-tests-archive' --is-raw-string update
5719 shell: bash
5720 - name: create cargo-nextest cache dir
5721 run: |-
5722 flowey.exe e 26 flowey_lib_common::download_cargo_nextest 0
5723 flowey.exe e 26 flowey_lib_common::download_cargo_nextest 1
5724 flowey.exe e 26 flowey_lib_common::download_cargo_nextest 2
5725 flowey.exe e 26 flowey_lib_common::download_cargo_nextest 3
5726 shell: bash
5727 - name: Pre-processing cache vars
5728 run: |-
5729 flowey.exe e 26 flowey_lib_common::cache 0
5730 flowey.exe v 26 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar4
5731 flowey.exe v 26 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar5
5732 shell: bash
5733 - id: flowey_lib_common__cache__1
5734 uses: actions/cache@v5
5735 with:
5736 key: ${{ env.floweyvar4 }}
5737 path: ${{ env.floweyvar5 }}
5738 name: 'Restore cache: cargo-nextest'
5739 - name: downloading cargo-nextest
5740 run: |-
5741 flowey.exe v 26 '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
5742 ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
5743 EOF
5744 flowey.exe e 26 flowey_lib_common::cache 2
5745 flowey.exe e 26 flowey_lib_common::download_cargo_nextest 4
5746 shell: bash
5747 - name: check if openvmm needs to be cloned
5748 run: |-
5749 flowey.exe e 26 flowey_lib_common::git_checkout 0
5750 flowey.exe v 26 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:489:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46 write-to-env github floweyvar3
5751 flowey.exe v 26 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION
5752 shell: bash
5753 - id: flowey_lib_common__git_checkout__1
5754 uses: actions/checkout@v6
5755 with:
5756 fetch-depth: '1'
5757 path: repo0
5758 persist-credentials: ${{ env.floweyvar3 }}
5759 name: checkout repo openvmm
5760 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
5761 - name: report cloned repo directories
5762 run: |-
5763 flowey.exe v 26 'flowey_lib_common::git_checkout:4:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.workspace <<EOF
5764 ${{ github.workspace }}
5765 EOF
5766 flowey.exe e 26 flowey_lib_common::git_checkout 3
5767 flowey.exe e 26 flowey_lib_hvlite::git_checkout_openvmm_repo 0
5768 flowey.exe e 26 flowey_lib_hvlite::run_cargo_nextest_run 0
5769 flowey.exe e 26 flowey_core::pipeline::artifact::resolve 4
5770 flowey.exe e 26 flowey_core::pipeline::artifact::resolve 5
5771 flowey.exe e 26 flowey_core::pipeline::artifact::resolve 1
5772 flowey.exe e 26 flowey_core::pipeline::artifact::resolve 0
5773 flowey.exe e 26 flowey_core::pipeline::artifact::resolve 6
5774 flowey.exe e 26 flowey_core::pipeline::artifact::resolve 2
5775 flowey.exe e 26 flowey_core::pipeline::artifact::resolve 3
5776 flowey.exe e 26 flowey_core::pipeline::artifact::resolve 7
5777 flowey.exe e 26 flowey_core::pipeline::artifact::resolve 8
5778 shell: bash
5779 - name: creating new test content dir
5780 run: flowey.exe e 26 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 0
5781 shell: bash
5782 - name: resolve OpenHCL igvm artifact
5783 run: flowey.exe e 26 flowey_lib_hvlite::artifact_openhcl_igvm_from_recipe::resolve 0
5784 shell: bash
5785 - name: create gh-release-download cache dir
5786 run: flowey.exe e 26 flowey_lib_common::download_gh_release 0
5787 shell: bash
5788 - name: Pre-processing cache vars
5789 run: |-
5790 flowey.exe e 26 flowey_lib_common::cache 8
5791 flowey.exe v 26 'flowey_lib_common::cache:18:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar8
5792 flowey.exe v 26 'flowey_lib_common::cache:17:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar9
5793 shell: bash
5794 - id: flowey_lib_common__cache__9
5795 uses: actions/cache@v5
5796 with:
5797 key: ${{ env.floweyvar8 }}
5798 path: ${{ env.floweyvar9 }}
5799 name: 'Restore cache: gh-release-download'
5800 - name: download artifacts from github releases
5801 run: |-
5802 flowey.exe v 26 '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
5803 ${{ steps.flowey_lib_common__cache__9.outputs.cache-hit }}
5804 EOF
5805 flowey.exe e 26 flowey_lib_common::cache 10
5806 flowey.exe e 26 flowey_lib_common::download_gh_release 1
5807 shell: bash
5808 - name: extract azcopy from archive
5809 run: flowey.exe e 26 flowey_lib_common::download_azcopy 0
5810 shell: bash
5811 - name: calculating required VMM tests disk images
5812 run: flowey.exe e 26 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 0
5813 shell: bash
5814 - name: downloading VMM test disk images
5815 run: |-
5816 flowey.exe e 26 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 1
5817 flowey.exe e 26 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 2
5818 shell: bash
5819 - name: create gh cache dir
5820 run: flowey.exe e 26 flowey_lib_common::download_gh_cli 0
5821 shell: bash
5822 - name: Pre-processing cache vars
5823 run: |-
5824 flowey.exe e 26 flowey_lib_common::cache 4
5825 flowey.exe v 26 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar6
5826 flowey.exe v 26 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar7
5827 shell: bash
5828 - id: flowey_lib_common__cache__5
5829 uses: actions/cache@v5
5830 with:
5831 key: ${{ env.floweyvar6 }}
5832 path: ${{ env.floweyvar7 }}
5833 name: 'Restore cache: gh-cli'
5834 - name: installing gh
5835 run: |-
5836 flowey.exe v 26 '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
5837 ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
5838 EOF
5839 flowey.exe e 26 flowey_lib_common::cache 6
5840 flowey.exe e 26 flowey_lib_common::download_gh_cli 1
5841 flowey.exe v 26 '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
5842 ${{ github.token }}
5843 EOF
5844 shell: bash
5845 - name: setup gh cli
5846 run: flowey.exe e 26 flowey_lib_common::use_gh_cli 0
5847 shell: bash
5848 - name: get latest completed action id
5849 run: flowey.exe e 26 flowey_lib_common::gh_latest_completed_workflow_id 0
5850 shell: bash
5851 - name: download artifacts from github actions run
5852 run: |-
5853 flowey.exe e 26 flowey_lib_common::download_gh_artifact 0
5854 flowey.exe e 26 flowey_lib_hvlite::download_release_igvm_files_from_gh::resolve 0
5855 shell: bash
5856 - name: unpack openvmm-test-initrd archives
5857 run: flowey.exe e 26 flowey_lib_hvlite::resolve_openvmm_test_initrd 0
5858 shell: bash
5859 - name: unpack openvmm-test-linux archives
5860 run: flowey.exe e 26 flowey_lib_hvlite::resolve_openvmm_test_linux_kernel 0
5861 shell: bash
5862 - name: unpack mu_msvm package (aarch64)
5863 run: flowey.exe e 26 flowey_lib_hvlite::download_uefi_mu_msvm 0
5864 shell: bash
5865 - name: unpack openvmm-test-virtio-win archive
5866 run: flowey.exe e 26 flowey_lib_hvlite::resolve_openvmm_test_virtio_win 0
5867 shell: bash
5868 - name: setting up vmm_tests env
5869 run: |-
5870 flowey.exe e 26 flowey_lib_hvlite::init_vmm_tests_env 0
5871 flowey.exe e 26 flowey_lib_hvlite::run_cargo_nextest_run 1
5872 flowey.exe e 26 flowey_core::pipeline::artifact::resolve 9
5873 flowey.exe e 26 flowey_lib_hvlite::test_nextest_vmm_tests_archive 0
5874 shell: bash
5875 - name: generate nextest command
5876 run: flowey.exe e 26 flowey_lib_common::gen_cargo_nextest_run_cmd 0
5877 shell: bash
5878 - name: install vmm tests deps (windows)
5879 run: flowey.exe e 26 flowey_lib_hvlite::install_vmm_tests_deps 0
5880 shell: bash
5881 - name: starting test_igvm_agent_rpc_server
5882 run: flowey.exe e 26 flowey_lib_hvlite::run_test_igvm_agent_rpc_server 0
5883 shell: bash
5884 - name: run 'vmm_tests' nextest tests
5885 run: |-
5886 flowey.exe e 26 flowey_lib_common::run_cargo_nextest_run 0
5887 flowey.exe e 26 flowey_lib_common::run_cargo_nextest_run 1
5888 flowey.exe e 26 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 1
5889 shell: bash
5890 - name: stopping test_igvm_agent_rpc_server
5891 run: |-
5892 flowey.exe e 26 flowey_lib_hvlite::stop_test_igvm_agent_rpc_server 0
5893 flowey.exe e 26 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 2
5894 flowey.exe e 26 flowey_lib_common::publish_test_results 4
5895 flowey.exe e 26 flowey_lib_common::publish_test_results 5
5896 flowey.exe v 26 '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
5897 flowey.exe v 26 'flowey_lib_common::publish_test_results:7:flowey_lib_common/src/publish_test_results.rs:144:57' write-to-env github FLOWEY_CONDITION
5898 shell: bash
5899 - id: flowey_lib_common__publish_test_results__6
5900 uses: actions/upload-artifact@v7
5901 with:
5902 name: aarch64-windows-vmm-tests-logs
5903 path: ${{ env.floweyvar2 }}
5904 name: 'publish test results: aarch64-windows-vmm-tests (logs)'
5905 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
5906 - name: 🦀 flowey rust steps
5907 run: |-
5908 flowey.exe e 26 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 3
5909 flowey.exe e 26 flowey_lib_common::publish_test_results 0
5910 flowey.exe e 26 flowey_lib_common::publish_test_results 1
5911 flowey.exe e 26 flowey_lib_common::publish_test_results 2
5912 flowey.exe v 26 '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
5913 flowey.exe v 26 'flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
5914 shell: bash
5915 - id: flowey_lib_common__publish_test_results__3
5916 uses: actions/upload-artifact@v7
5917 with:
5918 name: aarch64-windows-vmm-tests-junit-xml
5919 path: ${{ env.floweyvar1 }}
5920 name: 'publish test results: aarch64-windows-vmm-tests (JUnit XML)'
5921 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
5922 - name: report test results to overall pipeline status
5923 run: flowey.exe e 26 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 4
5924 shell: bash
5925 - name: 'validate cache entry: cargo-nextest'
5926 run: flowey.exe e 26 flowey_lib_common::cache 3
5927 shell: bash
5928 - name: 'validate cache entry: gh-cli'
5929 run: flowey.exe e 26 flowey_lib_common::cache 7
5930 shell: bash
5931 - name: 'validate cache entry: gh-release-download'
5932 run: flowey.exe e 26 flowey_lib_common::cache 11
5933 shell: bash
5934 job27:
5935 name: test flowey local backend
5936 runs-on: ubuntu-latest
5937 permissions:
5938 contents: read
5939 id-token: write
5940 if: github.event.pull_request.draft == false
5941 steps:
5942 - run: |
5943 set -x
5944 i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
5945 sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
5946 curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.95.0 -y
5947 . "$HOME/.cargo/env"
5948 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
5949 rustup show
5950 if: runner.os == 'Linux'
5951 name: rustup (Linux)
5952 shell: bash
5953 - run: |
5954 set -x
5955 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
5956 ./rustup-init.exe -y --default-toolchain=1.95.0
5957 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
5958 if: runner.os == 'Windows' && runner.arch == 'X64'
5959 name: rustup (Windows X64)
5960 shell: bash
5961 - run: |
5962 set -x
5963 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
5964 ./rustup-init.exe -y --default-toolchain=1.95.0
5965 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
5966 if: runner.os == 'Windows' && runner.arch == 'ARM64'
5967 name: rustup (Windows ARM64)
5968 shell: bash
5969 - uses: actions/checkout@v6
5970 with:
5971 path: flowey_bootstrap
5972 - name: Build flowey
5973 run: |
5974 set -x
5975 CARGO_INCREMENTAL=0 cargo build -p flowey_hvlite --target x86_64-unknown-linux-gnu --profile flowey-ci
5976 OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
5977 mkdir -p "$OutDirNormal"
5978 mv ./.github/workflows/openvmm-ci.yaml "$OutDirNormal/pipeline.yaml"
5979 mv target/x86_64-unknown-linux-gnu/flowey-ci/flowey_hvlite "$OutDirNormal/flowey"
5980 working-directory: flowey_bootstrap
5981 shell: bash
5982 - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH
5983 shell: bash
5984 name: 🌼📦 Add flowey to PATH
5985 - name: 🌼🔎 Self-check YAML
5986 run: |-
5987 ESCAPED_AGENT_TEMPDIR=$(
5988 cat <<'EOF' | sed 's/\\/\\\\/g'
5989 ${{ runner.temp }}
5990 EOF
5991 )
5992 flowey pipeline github --runtime $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci
5993 shell: bash
5994 - name: 🌼🛫 Initialize job
5995 run: |
5996 AgentTempDirNormal="${{ runner.temp }}"
5997 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
5998 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
5999
6000 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey
6001
6002 echo '"debug"' | flowey v 27 'FLOWEY_LOG' update
6003 echo "${{ runner.temp }}/work" | flowey v 27 '_internal_WORKING_DIR' --is-raw-string update
6004
6005 cat <<'EOF' | flowey v 27 'verbose' update
6006 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
6007 EOF
6008 shell: bash
6009 - name: check if openvmm needs to be cloned
6010 run: |-
6011 flowey e 27 flowey_lib_common::git_checkout 0
6012 flowey v 27 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:489:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46 write-to-env github floweyvar1
6013 flowey v 27 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION
6014 shell: bash
6015 - id: flowey_lib_common__git_checkout__1
6016 uses: actions/checkout@v6
6017 with:
6018 fetch-depth: '1'
6019 path: repo0
6020 persist-credentials: ${{ env.floweyvar1 }}
6021 name: checkout repo openvmm
6022 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
6023 - name: report cloned repo directories
6024 run: |-
6025 flowey v 27 'flowey_lib_common::git_checkout:4:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.workspace <<EOF
6026 ${{ github.workspace }}
6027 EOF
6028 flowey e 27 flowey_lib_common::git_checkout 3
6029 flowey e 27 flowey_lib_hvlite::git_checkout_openvmm_repo 0
6030 shell: bash
6031 - name: add default cargo home to path
6032 run: flowey e 27 flowey_lib_common::install_rust 0
6033 shell: bash
6034 - name: install Rust
6035 run: flowey e 27 flowey_lib_common::install_rust 1
6036 shell: bash
6037 - name: detect active toolchain
6038 run: |-
6039 flowey e 27 flowey_lib_common::install_rust 2
6040 flowey v 27 'flowey_lib_hvlite::_jobs::test_local_flowey_build_igvm:3:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.token <<EOF
6041 ${{ github.token }}
6042 EOF
6043 shell: bash
6044 - name: test cargo xflowey build-igvm x64 --install-missing-deps
6045 run: flowey e 27 flowey_lib_hvlite::_jobs::test_local_flowey_build_igvm 1
6046 shell: bash
6047 job28:
6048 name: publish vmgstool
6049 runs-on: ubuntu-latest
6050 permissions:
6051 contents: write
6052 id-token: write
6053 needs:
6054 - job0
6055 - job1
6056 - job10
6057 - job11
6058 - job12
6059 - job13
6060 - job14
6061 - job15
6062 - job16
6063 - job17
6064 - job18
6065 - job19
6066 - job2
6067 - job20
6068 - job21
6069 - job22
6070 - job23
6071 - job24
6072 - job25
6073 - job26
6074 - job27
6075 - job3
6076 - job4
6077 - job5
6078 - job6
6079 - job7
6080 - job8
6081 - job9
6082 if: github.event.pull_request.draft == false
6083 steps:
6084 - name: 🌼📦 Download artifacts
6085 uses: actions/download-artifact@v8
6086 with:
6087 pattern: '{_internal-flowey-bootstrap-x86_64-linux-uid-11,aarch64-linux-vmgstool,aarch64-windows-vmgstool,x64-linux-vmgstool,x64-windows-vmgstool}'
6088 path: ${{ runner.temp }}/used_artifacts/
6089 - run: echo "${{ runner.temp }}/used_artifacts/_internal-flowey-bootstrap-x86_64-linux-uid-11" >> $GITHUB_PATH
6090 shell: bash
6091 name: 🌼📦 Add flowey to PATH
6092 - name: 🌼🛫 Initialize job
6093 run: |
6094 AgentTempDirNormal="${{ runner.temp }}"
6095 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
6096 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
6097
6098 chmod +x $AgentTempDirNormal/used_artifacts/_internal-flowey-bootstrap-x86_64-linux-uid-11/flowey
6099
6100 echo '"debug"' | flowey v 28 'FLOWEY_LOG' update
6101 echo "${{ runner.temp }}/work" | flowey v 28 '_internal_WORKING_DIR' --is-raw-string update
6102
6103 cat <<'EOF' | flowey v 28 'verbose' update
6104 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
6105 EOF
6106 echo "$AgentTempDirNormal/used_artifacts/aarch64-linux-vmgstool" | flowey v 28 'artifact_use_from_aarch64-linux-vmgstool' --is-raw-string update
6107 echo "$AgentTempDirNormal/used_artifacts/aarch64-windows-vmgstool" | flowey v 28 'artifact_use_from_aarch64-windows-vmgstool' --is-raw-string update
6108 echo "$AgentTempDirNormal/used_artifacts/x64-linux-vmgstool" | flowey v 28 'artifact_use_from_x64-linux-vmgstool' --is-raw-string update
6109 echo "$AgentTempDirNormal/used_artifacts/x64-windows-vmgstool" | flowey v 28 'artifact_use_from_x64-windows-vmgstool' --is-raw-string update
6110 shell: bash
6111 - name: create gh cache dir
6112 run: flowey e 28 flowey_lib_common::download_gh_cli 0
6113 shell: bash
6114 - name: Pre-processing cache vars
6115 run: |-
6116 flowey e 28 flowey_lib_common::cache 0
6117 flowey v 28 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar2
6118 flowey v 28 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar3
6119 shell: bash
6120 - id: flowey_lib_common__cache__1
6121 uses: actions/cache@v5
6122 with:
6123 key: ${{ env.floweyvar2 }}
6124 path: ${{ env.floweyvar3 }}
6125 name: 'Restore cache: gh-cli'
6126 - name: installing gh
6127 run: |-
6128 flowey v 28 '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
6129 ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
6130 EOF
6131 flowey e 28 flowey_lib_common::cache 2
6132 flowey e 28 flowey_lib_common::download_gh_cli 1
6133 flowey v 28 '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
6134 ${{ github.token }}
6135 EOF
6136 shell: bash
6137 - name: setup gh cli
6138 run: |-
6139 flowey e 28 flowey_lib_common::use_gh_cli 0
6140 flowey e 28 flowey_core::pipeline::artifact::resolve 1
6141 flowey e 28 flowey_core::pipeline::artifact::resolve 0
6142 flowey e 28 flowey_core::pipeline::artifact::resolve 3
6143 flowey e 28 flowey_core::pipeline::artifact::resolve 2
6144 shell: bash
6145 - name: enumerate vmgstool release files
6146 run: flowey e 28 flowey_lib_hvlite::_jobs::publish_vmgstool_gh_release 0
6147 shell: bash
6148 - name: check if openvmm needs to be cloned
6149 run: |-
6150 flowey e 28 flowey_lib_common::git_checkout 0
6151 flowey v 28 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:489:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46 write-to-env github floweyvar1
6152 flowey v 28 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION
6153 shell: bash
6154 - id: flowey_lib_common__git_checkout__1
6155 uses: actions/checkout@v6
6156 with:
6157 fetch-depth: '1'
6158 path: repo0
6159 persist-credentials: ${{ env.floweyvar1 }}
6160 name: checkout repo openvmm
6161 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
6162 - name: report cloned repo directories
6163 run: |-
6164 flowey v 28 'flowey_lib_common::git_checkout:4:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.workspace <<EOF
6165 ${{ github.workspace }}
6166 EOF
6167 flowey e 28 flowey_lib_common::git_checkout 3
6168 flowey e 28 flowey_lib_hvlite::git_checkout_openvmm_repo 0
6169 shell: bash
6170 - name: get current commit
6171 run: |-
6172 flowey e 28 flowey_lib_hvlite::_jobs::publish_vmgstool_gh_release 5
6173 flowey e 28 flowey_lib_hvlite::_jobs::publish_vmgstool_gh_release 1
6174 shell: bash
6175 - name: get cargo crate version
6176 run: |-
6177 flowey e 28 flowey_lib_common::get_cargo_crate_version 0
6178 flowey e 28 flowey_lib_hvlite::_jobs::publish_vmgstool_gh_release 2
6179 flowey e 28 flowey_lib_hvlite::_jobs::publish_vmgstool_gh_release 3
6180 flowey e 28 flowey_lib_hvlite::_jobs::publish_vmgstool_gh_release 4
6181 shell: bash
6182 - name: publish github releases
6183 run: flowey e 28 flowey_lib_common::publish_gh_release 0
6184 shell: bash
6185 - name: 'validate cache entry: gh-cli'
6186 run: flowey e 28 flowey_lib_common::cache 3
6187 shell: bash
6188 job3:
6189 name: build artifacts (shared VMM tests) [linux]
6190 runs-on:
6191 - self-hosted
6192 - 1ES.Pool=openvmm-gh-amd-westus3
6193 - 1ES.ImageOverride=ubuntu2404-amd64
6194 - JobId=job3-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}
6195 permissions:
6196 contents: read
6197 id-token: write
6198 if: github.event.pull_request.draft == false
6199 steps:
6200 - run: |
6201 set -x
6202 i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
6203 sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
6204 curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.95.0 -y
6205 . "$HOME/.cargo/env"
6206 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
6207 rustup show
6208 if: runner.os == 'Linux'
6209 name: rustup (Linux)
6210 shell: bash
6211 - run: |
6212 set -x
6213 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
6214 ./rustup-init.exe -y --default-toolchain=1.95.0
6215 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
6216 if: runner.os == 'Windows' && runner.arch == 'X64'
6217 name: rustup (Windows X64)
6218 shell: bash
6219 - run: |
6220 set -x
6221 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
6222 ./rustup-init.exe -y --default-toolchain=1.95.0
6223 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
6224 if: runner.os == 'Windows' && runner.arch == 'ARM64'
6225 name: rustup (Windows ARM64)
6226 shell: bash
6227 - uses: actions/checkout@v6
6228 with:
6229 path: flowey_bootstrap
6230 - name: Build flowey
6231 run: |
6232 set -x
6233 CARGO_INCREMENTAL=0 cargo build -p flowey_hvlite --target x86_64-unknown-linux-gnu --profile flowey-ci
6234 OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
6235 mkdir -p "$OutDirNormal"
6236 mv ./.github/workflows/openvmm-ci.yaml "$OutDirNormal/pipeline.yaml"
6237 mv target/x86_64-unknown-linux-gnu/flowey-ci/flowey_hvlite "$OutDirNormal/flowey"
6238 working-directory: flowey_bootstrap
6239 shell: bash
6240 - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH
6241 shell: bash
6242 name: 🌼📦 Add flowey to PATH
6243 - name: 🌼🔎 Self-check YAML
6244 run: |-
6245 ESCAPED_AGENT_TEMPDIR=$(
6246 cat <<'EOF' | sed 's/\\/\\\\/g'
6247 ${{ runner.temp }}
6248 EOF
6249 )
6250 flowey pipeline github --runtime $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci
6251 shell: bash
6252 - name: 🌼🛫 Initialize job
6253 run: |
6254 AgentTempDirNormal="${{ runner.temp }}"
6255 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
6256 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
6257
6258 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey
6259
6260 echo '"debug"' | flowey v 3 'FLOWEY_LOG' update
6261 echo "${{ runner.temp }}/work" | flowey v 3 '_internal_WORKING_DIR' --is-raw-string update
6262
6263 cat <<'EOF' | flowey v 3 'verbose' update
6264 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
6265 EOF
6266 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-guest_test_uefi"
6267 echo "$AgentTempDirNormal/publish_artifacts/aarch64-guest_test_uefi" | flowey v 3 'artifact_publish_from_aarch64-guest_test_uefi' --is-raw-string update
6268 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-musl-pipette"
6269 echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-musl-pipette" | flowey v 3 'artifact_publish_from_aarch64-linux-musl-pipette' --is-raw-string update
6270 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-musl-tmk_vmm"
6271 echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-musl-tmk_vmm" | flowey v 3 'artifact_publish_from_aarch64-linux-musl-tmk_vmm' --is-raw-string update
6272 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-tpm_guest_tests"
6273 echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-tpm_guest_tests" | flowey v 3 'artifact_publish_from_aarch64-linux-tpm_guest_tests' --is-raw-string update
6274 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-tmks"
6275 echo "$AgentTempDirNormal/publish_artifacts/aarch64-tmks" | flowey v 3 'artifact_publish_from_aarch64-tmks' --is-raw-string update
6276 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-guest_test_uefi"
6277 echo "$AgentTempDirNormal/publish_artifacts/x64-guest_test_uefi" | flowey v 3 'artifact_publish_from_x64-guest_test_uefi' --is-raw-string update
6278 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-musl-pipette"
6279 echo "$AgentTempDirNormal/publish_artifacts/x64-linux-musl-pipette" | flowey v 3 'artifact_publish_from_x64-linux-musl-pipette' --is-raw-string update
6280 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-musl-tmk_vmm"
6281 echo "$AgentTempDirNormal/publish_artifacts/x64-linux-musl-tmk_vmm" | flowey v 3 'artifact_publish_from_x64-linux-musl-tmk_vmm' --is-raw-string update
6282 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-tpm_guest_tests"
6283 echo "$AgentTempDirNormal/publish_artifacts/x64-linux-tpm_guest_tests" | flowey v 3 'artifact_publish_from_x64-linux-tpm_guest_tests' --is-raw-string update
6284 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-tmks"
6285 echo "$AgentTempDirNormal/publish_artifacts/x64-tmks" | flowey v 3 'artifact_publish_from_x64-tmks' --is-raw-string update
6286 shell: bash
6287 - name: add default cargo home to path
6288 run: flowey e 3 flowey_lib_common::install_rust 0
6289 shell: bash
6290 - name: install Rust
6291 run: flowey e 3 flowey_lib_common::install_rust 1
6292 shell: bash
6293 - name: detect active toolchain
6294 run: |-
6295 flowey e 3 flowey_lib_common::install_rust 2
6296 flowey e 3 flowey_lib_common::cfg_cargo_common_flags 0
6297 shell: bash
6298 - name: check if openvmm needs to be cloned
6299 run: |-
6300 flowey e 3 flowey_lib_common::git_checkout 0
6301 flowey v 3 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:489:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46 write-to-env github floweyvar1
6302 flowey v 3 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION
6303 shell: bash
6304 - id: flowey_lib_common__git_checkout__1
6305 uses: actions/checkout@v6
6306 with:
6307 fetch-depth: '1'
6308 path: repo0
6309 persist-credentials: ${{ env.floweyvar1 }}
6310 name: checkout repo openvmm
6311 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
6312 - name: report cloned repo directories
6313 run: |-
6314 flowey 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
6315 ${{ github.workspace }}
6316 EOF
6317 flowey e 3 flowey_lib_common::git_checkout 3
6318 flowey e 3 flowey_lib_hvlite::git_checkout_openvmm_repo 0
6319 shell: bash
6320 - name: set '-Dwarnings' in .cargo/config.toml
6321 run: flowey e 3 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
6322 shell: bash
6323 - name: create gh-release-download cache dir
6324 run: flowey e 3 flowey_lib_common::download_gh_release 0
6325 shell: bash
6326 - name: Pre-processing cache vars
6327 run: |-
6328 flowey e 3 flowey_lib_common::cache 0
6329 flowey v 3 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar2
6330 flowey v 3 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar3
6331 shell: bash
6332 - id: flowey_lib_common__cache__1
6333 uses: actions/cache@v5
6334 with:
6335 key: ${{ env.floweyvar2 }}
6336 path: ${{ env.floweyvar3 }}
6337 name: 'Restore cache: gh-release-download'
6338 - name: download artifacts from github releases
6339 run: |-
6340 flowey 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
6341 ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
6342 EOF
6343 flowey e 3 flowey_lib_common::cache 2
6344 flowey e 3 flowey_lib_common::download_gh_release 1
6345 shell: bash
6346 - name: checking if packages need to be installed
6347 run: flowey e 3 flowey_lib_common::install_dist_pkg 0
6348 shell: bash
6349 - name: installing packages
6350 run: flowey e 3 flowey_lib_common::install_dist_pkg 1
6351 shell: bash
6352 - name: unpack protoc
6353 run: |-
6354 flowey e 3 flowey_lib_common::resolve_protoc 0
6355 flowey e 3 flowey_lib_hvlite::cfg_openvmm_magicpath 0
6356 shell: bash
6357 - name: symlink protoc
6358 run: |-
6359 flowey e 3 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
6360 flowey e 3 flowey_lib_hvlite::init_cross_build 9
6361 shell: bash
6362 - name: cargo build guest_test_uefi
6363 run: |-
6364 flowey e 3 flowey_lib_common::run_cargo_build 1
6365 flowey e 3 flowey_lib_hvlite::run_cargo_build 1
6366 shell: bash
6367 - name: build guest_test_uefi.img
6368 run: |-
6369 flowey e 3 flowey_lib_hvlite::build_guest_test_uefi 0
6370 flowey e 3 flowey_core::pipeline::artifact::publish 7
6371 flowey e 3 flowey_lib_hvlite::init_cross_build 5
6372 flowey e 3 flowey_lib_hvlite::run_cargo_build 10
6373 flowey e 3 flowey_lib_hvlite::run_cargo_build 11
6374 shell: bash
6375 - name: cargo build simple_tmk
6376 run: |-
6377 flowey e 3 flowey_lib_common::run_cargo_build 4
6378 flowey e 3 flowey_lib_hvlite::run_cargo_build 12
6379 shell: bash
6380 - name: split debug symbols
6381 run: |-
6382 flowey e 3 flowey_lib_hvlite::run_split_debug_info 5
6383 flowey e 3 flowey_lib_hvlite::run_cargo_build 13
6384 flowey e 3 flowey_lib_hvlite::build_tmks 0
6385 flowey e 3 flowey_core::pipeline::artifact::publish 8
6386 flowey e 3 flowey_lib_hvlite::init_cross_build 6
6387 shell: bash
6388 - name: cargo build tpm_guest_tests
6389 run: |-
6390 flowey e 3 flowey_lib_common::run_cargo_build 9
6391 flowey e 3 flowey_lib_hvlite::run_cargo_build 20
6392 shell: bash
6393 - name: split debug symbols
6394 run: |-
6395 flowey e 3 flowey_lib_hvlite::run_split_debug_info 7
6396 flowey e 3 flowey_lib_hvlite::run_cargo_build 21
6397 flowey e 3 flowey_lib_hvlite::build_tpm_guest_tests 1
6398 flowey e 3 flowey_core::pipeline::artifact::publish 9
6399 shell: bash
6400 - name: unpack openvmm-deps archive
6401 run: flowey e 3 flowey_lib_hvlite::resolve_openvmm_deps 0
6402 shell: bash
6403 - name: extract X86_64 sysroot.tar.gz
6404 run: |-
6405 flowey e 3 flowey_lib_hvlite::init_openvmm_magicpath_openhcl_sysroot 0
6406 flowey e 3 flowey_lib_hvlite::init_cross_build 7
6407 shell: bash
6408 - name: cargo build pipette
6409 run: |-
6410 flowey e 3 flowey_lib_common::run_cargo_build 3
6411 flowey e 3 flowey_lib_hvlite::run_cargo_build 4
6412 shell: bash
6413 - name: split debug symbols
6414 run: |-
6415 flowey e 3 flowey_lib_hvlite::run_split_debug_info 4
6416 flowey e 3 flowey_lib_hvlite::run_cargo_build 5
6417 flowey e 3 flowey_lib_hvlite::build_pipette 1
6418 flowey e 3 flowey_core::pipeline::artifact::publish 0
6419 flowey e 3 flowey_lib_hvlite::init_cross_build 8
6420 shell: bash
6421 - name: cargo build tmk_vmm
6422 run: |-
6423 flowey e 3 flowey_lib_common::run_cargo_build 7
6424 flowey e 3 flowey_lib_hvlite::run_cargo_build 16
6425 shell: bash
6426 - name: split debug symbols
6427 run: |-
6428 flowey e 3 flowey_lib_hvlite::run_split_debug_info 6
6429 flowey e 3 flowey_lib_hvlite::run_cargo_build 17
6430 flowey e 3 flowey_lib_hvlite::build_tmk_vmm 1
6431 flowey e 3 flowey_core::pipeline::artifact::publish 1
6432 flowey e 3 flowey_lib_hvlite::init_cross_build 4
6433 shell: bash
6434 - name: cargo build guest_test_uefi
6435 run: |-
6436 flowey e 3 flowey_lib_common::run_cargo_build 0
6437 flowey e 3 flowey_lib_hvlite::run_cargo_build 0
6438 shell: bash
6439 - name: build guest_test_uefi.img
6440 run: |-
6441 flowey e 3 flowey_lib_hvlite::build_guest_test_uefi 1
6442 flowey e 3 flowey_core::pipeline::artifact::publish 2
6443 flowey e 3 flowey_lib_hvlite::init_cross_build 0
6444 flowey e 3 flowey_lib_hvlite::run_cargo_build 6
6445 flowey e 3 flowey_lib_hvlite::run_cargo_build 7
6446 shell: bash
6447 - name: cargo build simple_tmk
6448 run: |-
6449 flowey e 3 flowey_lib_common::run_cargo_build 5
6450 flowey e 3 flowey_lib_hvlite::run_cargo_build 8
6451 shell: bash
6452 - name: split debug symbols
6453 run: |-
6454 flowey e 3 flowey_lib_hvlite::run_split_debug_info 1
6455 flowey e 3 flowey_lib_hvlite::run_cargo_build 9
6456 flowey e 3 flowey_lib_hvlite::build_tmks 1
6457 flowey e 3 flowey_core::pipeline::artifact::publish 3
6458 flowey e 3 flowey_lib_hvlite::init_cross_build 1
6459 shell: bash
6460 - name: cargo build tpm_guest_tests
6461 run: |-
6462 flowey e 3 flowey_lib_common::run_cargo_build 8
6463 flowey e 3 flowey_lib_hvlite::run_cargo_build 18
6464 shell: bash
6465 - name: split debug symbols
6466 run: |-
6467 flowey e 3 flowey_lib_hvlite::run_split_debug_info 3
6468 flowey e 3 flowey_lib_hvlite::run_cargo_build 19
6469 flowey e 3 flowey_lib_hvlite::build_tpm_guest_tests 0
6470 flowey e 3 flowey_core::pipeline::artifact::publish 4
6471 shell: bash
6472 - name: extract Aarch64 sysroot.tar.gz
6473 run: |-
6474 flowey e 3 flowey_lib_hvlite::init_openvmm_magicpath_openhcl_sysroot 1
6475 flowey e 3 flowey_lib_hvlite::init_cross_build 3
6476 shell: bash
6477 - name: cargo build pipette
6478 run: |-
6479 flowey e 3 flowey_lib_common::run_cargo_build 2
6480 flowey e 3 flowey_lib_hvlite::run_cargo_build 2
6481 shell: bash
6482 - name: split debug symbols
6483 run: |-
6484 flowey e 3 flowey_lib_hvlite::run_split_debug_info 0
6485 flowey e 3 flowey_lib_hvlite::run_cargo_build 3
6486 flowey e 3 flowey_lib_hvlite::build_pipette 0
6487 flowey e 3 flowey_core::pipeline::artifact::publish 5
6488 flowey e 3 flowey_lib_hvlite::init_cross_build 2
6489 shell: bash
6490 - name: cargo build tmk_vmm
6491 run: |-
6492 flowey e 3 flowey_lib_common::run_cargo_build 6
6493 flowey e 3 flowey_lib_hvlite::run_cargo_build 14
6494 shell: bash
6495 - name: split debug symbols
6496 run: |-
6497 flowey e 3 flowey_lib_hvlite::run_split_debug_info 2
6498 flowey e 3 flowey_lib_hvlite::run_cargo_build 15
6499 flowey e 3 flowey_lib_hvlite::build_tmk_vmm 0
6500 flowey e 3 flowey_core::pipeline::artifact::publish 6
6501 shell: bash
6502 - name: 'validate cache entry: gh-release-download'
6503 run: flowey e 3 flowey_lib_common::cache 3
6504 shell: bash
6505 - name: 🌼📦 Publish aarch64-guest_test_uefi
6506 uses: actions/upload-artifact@v7
6507 with:
6508 name: aarch64-guest_test_uefi
6509 path: ${{ runner.temp }}/publish_artifacts/aarch64-guest_test_uefi/
6510 include-hidden-files: true
6511 - name: 🌼📦 Publish aarch64-linux-musl-pipette
6512 uses: actions/upload-artifact@v7
6513 with:
6514 name: aarch64-linux-musl-pipette
6515 path: ${{ runner.temp }}/publish_artifacts/aarch64-linux-musl-pipette/
6516 include-hidden-files: true
6517 - name: 🌼📦 Publish aarch64-linux-musl-tmk_vmm
6518 uses: actions/upload-artifact@v7
6519 with:
6520 name: aarch64-linux-musl-tmk_vmm
6521 path: ${{ runner.temp }}/publish_artifacts/aarch64-linux-musl-tmk_vmm/
6522 include-hidden-files: true
6523 - name: 🌼📦 Publish aarch64-linux-tpm_guest_tests
6524 uses: actions/upload-artifact@v7
6525 with:
6526 name: aarch64-linux-tpm_guest_tests
6527 path: ${{ runner.temp }}/publish_artifacts/aarch64-linux-tpm_guest_tests/
6528 include-hidden-files: true
6529 - name: 🌼📦 Publish aarch64-tmks
6530 uses: actions/upload-artifact@v7
6531 with:
6532 name: aarch64-tmks
6533 path: ${{ runner.temp }}/publish_artifacts/aarch64-tmks/
6534 include-hidden-files: true
6535 - name: 🌼📦 Publish x64-guest_test_uefi
6536 uses: actions/upload-artifact@v7
6537 with:
6538 name: x64-guest_test_uefi
6539 path: ${{ runner.temp }}/publish_artifacts/x64-guest_test_uefi/
6540 include-hidden-files: true
6541 - name: 🌼📦 Publish x64-linux-musl-pipette
6542 uses: actions/upload-artifact@v7
6543 with:
6544 name: x64-linux-musl-pipette
6545 path: ${{ runner.temp }}/publish_artifacts/x64-linux-musl-pipette/
6546 include-hidden-files: true
6547 - name: 🌼📦 Publish x64-linux-musl-tmk_vmm
6548 uses: actions/upload-artifact@v7
6549 with:
6550 name: x64-linux-musl-tmk_vmm
6551 path: ${{ runner.temp }}/publish_artifacts/x64-linux-musl-tmk_vmm/
6552 include-hidden-files: true
6553 - name: 🌼📦 Publish x64-linux-tpm_guest_tests
6554 uses: actions/upload-artifact@v7
6555 with:
6556 name: x64-linux-tpm_guest_tests
6557 path: ${{ runner.temp }}/publish_artifacts/x64-linux-tpm_guest_tests/
6558 include-hidden-files: true
6559 - name: 🌼📦 Publish x64-tmks
6560 uses: actions/upload-artifact@v7
6561 with:
6562 name: x64-tmks
6563 path: ${{ runner.temp }}/publish_artifacts/x64-tmks/
6564 include-hidden-files: true
6565 job4:
6566 name: build artifacts (not for VMM tests) [aarch64-windows]
6567 runs-on:
6568 - self-hosted
6569 - 1ES.Pool=openvmm-gh-amd-westus3
6570 - 1ES.ImageOverride=win-amd64
6571 - JobId=job4-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}
6572 permissions:
6573 contents: read
6574 id-token: write
6575 if: github.event.pull_request.draft == false
6576 steps:
6577 - run: |
6578 set -x
6579 i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
6580 sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
6581 curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.95.0 -y
6582 . "$HOME/.cargo/env"
6583 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
6584 rustup show
6585 if: runner.os == 'Linux'
6586 name: rustup (Linux)
6587 shell: bash
6588 - run: |
6589 set -x
6590 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
6591 ./rustup-init.exe -y --default-toolchain=1.95.0
6592 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
6593 if: runner.os == 'Windows' && runner.arch == 'X64'
6594 name: rustup (Windows X64)
6595 shell: bash
6596 - run: |
6597 set -x
6598 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
6599 ./rustup-init.exe -y --default-toolchain=1.95.0
6600 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
6601 if: runner.os == 'Windows' && runner.arch == 'ARM64'
6602 name: rustup (Windows ARM64)
6603 shell: bash
6604 - uses: actions/checkout@v6
6605 with:
6606 path: flowey_bootstrap
6607 - name: Build flowey
6608 run: |
6609 set -x
6610 CARGO_INCREMENTAL=0 cargo build -p flowey_hvlite --target x86_64-pc-windows-msvc --profile flowey-ci
6611 OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
6612 mkdir -p "$OutDirNormal"
6613 mv ./.github/workflows/openvmm-ci.yaml "$OutDirNormal/pipeline.yaml"
6614 mv target/x86_64-pc-windows-msvc/flowey-ci/flowey_hvlite.exe "$OutDirNormal/flowey.exe"
6615 working-directory: flowey_bootstrap
6616 shell: bash
6617 - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH
6618 shell: bash
6619 name: 🌼📦 Add flowey to PATH
6620 - name: 🌼🔎 Self-check YAML
6621 run: |-
6622 ESCAPED_AGENT_TEMPDIR=$(
6623 cat <<'EOF' | sed 's/\\/\\\\/g'
6624 ${{ runner.temp }}
6625 EOF
6626 )
6627 flowey.exe pipeline github --runtime $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci
6628 shell: bash
6629 - name: 🌼🛫 Initialize job
6630 run: |
6631 AgentTempDirNormal="${{ runner.temp }}"
6632 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
6633 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
6634
6635 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe
6636
6637 echo '"debug"' | flowey.exe v 4 'FLOWEY_LOG' update
6638 echo "${{ runner.temp }}/work" | flowey.exe v 4 '_internal_WORKING_DIR' --is-raw-string update
6639
6640 cat <<'EOF' | flowey.exe v 4 'verbose' update
6641 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
6642 EOF
6643 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-hypestv"
6644 echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-hypestv" | flowey.exe v 4 'artifact_publish_from_aarch64-windows-hypestv' --is-raw-string update
6645 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-igvmfilegen"
6646 echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-igvmfilegen" | flowey.exe v 4 'artifact_publish_from_aarch64-windows-igvmfilegen' --is-raw-string update
6647 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-ohcldiag-dev"
6648 echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-ohcldiag-dev" | flowey.exe v 4 'artifact_publish_from_aarch64-windows-ohcldiag-dev' --is-raw-string update
6649 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-vmgs_lib"
6650 echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-vmgs_lib" | flowey.exe v 4 'artifact_publish_from_aarch64-windows-vmgs_lib' --is-raw-string update
6651 shell: bash
6652 - name: add default cargo home to path
6653 run: flowey.exe e 4 flowey_lib_common::install_rust 0
6654 shell: bash
6655 - name: install Rust
6656 run: flowey.exe e 4 flowey_lib_common::install_rust 1
6657 shell: bash
6658 - name: detect active toolchain
6659 run: |-
6660 flowey.exe e 4 flowey_lib_common::install_rust 2
6661 flowey.exe e 4 flowey_lib_common::cfg_cargo_common_flags 0
6662 shell: bash
6663 - name: check if openvmm needs to be cloned
6664 run: |-
6665 flowey.exe e 4 flowey_lib_common::git_checkout 0
6666 flowey.exe v 4 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:489:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46 write-to-env github floweyvar1
6667 flowey.exe v 4 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION
6668 shell: bash
6669 - id: flowey_lib_common__git_checkout__1
6670 uses: actions/checkout@v6
6671 with:
6672 fetch-depth: '1'
6673 path: repo0
6674 persist-credentials: ${{ env.floweyvar1 }}
6675 name: checkout repo openvmm
6676 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
6677 - name: report cloned repo directories
6678 run: |-
6679 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
6680 ${{ github.workspace }}
6681 EOF
6682 flowey.exe e 4 flowey_lib_common::git_checkout 3
6683 flowey.exe e 4 flowey_lib_hvlite::git_checkout_openvmm_repo 0
6684 shell: bash
6685 - name: set '-Dwarnings' in .cargo/config.toml
6686 run: flowey.exe e 4 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
6687 shell: bash
6688 - name: create gh-release-download cache dir
6689 run: flowey.exe e 4 flowey_lib_common::download_gh_release 0
6690 shell: bash
6691 - name: Pre-processing cache vars
6692 run: |-
6693 flowey.exe e 4 flowey_lib_common::cache 0
6694 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
6695 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
6696 shell: bash
6697 - id: flowey_lib_common__cache__1
6698 uses: actions/cache@v5
6699 with:
6700 key: ${{ env.floweyvar2 }}
6701 path: ${{ env.floweyvar3 }}
6702 name: 'Restore cache: gh-release-download'
6703 - name: download artifacts from github releases
6704 run: |-
6705 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
6706 ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
6707 EOF
6708 flowey.exe e 4 flowey_lib_common::cache 2
6709 flowey.exe e 4 flowey_lib_common::download_gh_release 1
6710 shell: bash
6711 - name: unpack protoc
6712 run: |-
6713 flowey.exe e 4 flowey_lib_common::resolve_protoc 0
6714 flowey.exe e 4 flowey_lib_hvlite::cfg_openvmm_magicpath 0
6715 shell: bash
6716 - name: symlink protoc
6717 run: |-
6718 flowey.exe e 4 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
6719 flowey.exe e 4 flowey_lib_hvlite::init_cross_build 1
6720 shell: bash
6721 - name: cargo build hypestv
6722 run: |-
6723 flowey.exe e 4 flowey_lib_common::run_cargo_build 0
6724 flowey.exe e 4 flowey_lib_hvlite::run_cargo_build 0
6725 flowey.exe e 4 flowey_lib_hvlite::build_hypestv 0
6726 flowey.exe e 4 flowey_core::pipeline::artifact::publish 0
6727 flowey.exe e 4 flowey_lib_hvlite::init_cross_build 0
6728 shell: bash
6729 - name: cargo build vmgs_lib
6730 run: |-
6731 flowey.exe e 4 flowey_lib_common::run_cargo_build 3
6732 flowey.exe e 4 flowey_lib_hvlite::run_cargo_build 3
6733 flowey.exe e 4 flowey_lib_hvlite::build_and_test_vmgs_lib 0
6734 flowey.exe e 4 flowey_lib_hvlite::build_and_test_vmgs_lib 1
6735 flowey.exe e 4 flowey_core::pipeline::artifact::publish 1
6736 flowey.exe e 4 flowey_lib_hvlite::init_cross_build 2
6737 shell: bash
6738 - name: cargo build igvmfilegen
6739 run: |-
6740 flowey.exe e 4 flowey_lib_common::run_cargo_build 1
6741 flowey.exe e 4 flowey_lib_hvlite::run_cargo_build 1
6742 flowey.exe e 4 flowey_lib_hvlite::build_igvmfilegen 0
6743 flowey.exe e 4 flowey_core::pipeline::artifact::publish 2
6744 flowey.exe e 4 flowey_lib_hvlite::init_cross_build 3
6745 shell: bash
6746 - name: cargo build ohcldiag-dev
6747 run: |-
6748 flowey.exe e 4 flowey_lib_common::run_cargo_build 2
6749 flowey.exe e 4 flowey_lib_hvlite::run_cargo_build 2
6750 flowey.exe e 4 flowey_lib_hvlite::build_ohcldiag_dev 0
6751 flowey.exe e 4 flowey_core::pipeline::artifact::publish 3
6752 shell: bash
6753 - name: 'validate cache entry: gh-release-download'
6754 run: flowey.exe e 4 flowey_lib_common::cache 3
6755 shell: bash
6756 - name: 🌼📦 Publish aarch64-windows-hypestv
6757 uses: actions/upload-artifact@v7
6758 with:
6759 name: aarch64-windows-hypestv
6760 path: ${{ runner.temp }}/publish_artifacts/aarch64-windows-hypestv/
6761 include-hidden-files: true
6762 - name: 🌼📦 Publish aarch64-windows-igvmfilegen
6763 uses: actions/upload-artifact@v7
6764 with:
6765 name: aarch64-windows-igvmfilegen
6766 path: ${{ runner.temp }}/publish_artifacts/aarch64-windows-igvmfilegen/
6767 include-hidden-files: true
6768 - name: 🌼📦 Publish aarch64-windows-ohcldiag-dev
6769 uses: actions/upload-artifact@v7
6770 with:
6771 name: aarch64-windows-ohcldiag-dev
6772 path: ${{ runner.temp }}/publish_artifacts/aarch64-windows-ohcldiag-dev/
6773 include-hidden-files: true
6774 - name: 🌼📦 Publish aarch64-windows-vmgs_lib
6775 uses: actions/upload-artifact@v7
6776 with:
6777 name: aarch64-windows-vmgs_lib
6778 path: ${{ runner.temp }}/publish_artifacts/aarch64-windows-vmgs_lib/
6779 include-hidden-files: true
6780 job5:
6781 name: build artifacts (for VMM tests) [aarch64-windows]
6782 runs-on:
6783 - self-hosted
6784 - 1ES.Pool=openvmm-gh-amd-westus3
6785 - 1ES.ImageOverride=win-amd64
6786 - JobId=job5-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}
6787 permissions:
6788 contents: read
6789 id-token: write
6790 if: github.event.pull_request.draft == false
6791 steps:
6792 - run: |
6793 set -x
6794 i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
6795 sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
6796 curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.95.0 -y
6797 . "$HOME/.cargo/env"
6798 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
6799 rustup show
6800 if: runner.os == 'Linux'
6801 name: rustup (Linux)
6802 shell: bash
6803 - run: |
6804 set -x
6805 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
6806 ./rustup-init.exe -y --default-toolchain=1.95.0
6807 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
6808 if: runner.os == 'Windows' && runner.arch == 'X64'
6809 name: rustup (Windows X64)
6810 shell: bash
6811 - run: |
6812 set -x
6813 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
6814 ./rustup-init.exe -y --default-toolchain=1.95.0
6815 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
6816 if: runner.os == 'Windows' && runner.arch == 'ARM64'
6817 name: rustup (Windows ARM64)
6818 shell: bash
6819 - uses: actions/checkout@v6
6820 with:
6821 path: flowey_bootstrap
6822 - name: Build flowey
6823 run: |
6824 set -x
6825 CARGO_INCREMENTAL=0 cargo build -p flowey_hvlite --target x86_64-pc-windows-msvc --profile flowey-ci
6826 OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
6827 mkdir -p "$OutDirNormal"
6828 mv ./.github/workflows/openvmm-ci.yaml "$OutDirNormal/pipeline.yaml"
6829 mv target/x86_64-pc-windows-msvc/flowey-ci/flowey_hvlite.exe "$OutDirNormal/flowey.exe"
6830 working-directory: flowey_bootstrap
6831 shell: bash
6832 - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH
6833 shell: bash
6834 name: 🌼📦 Add flowey to PATH
6835 - name: 🌼🔎 Self-check YAML
6836 run: |-
6837 ESCAPED_AGENT_TEMPDIR=$(
6838 cat <<'EOF' | sed 's/\\/\\\\/g'
6839 ${{ runner.temp }}
6840 EOF
6841 )
6842 flowey.exe pipeline github --runtime $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci
6843 shell: bash
6844 - name: 🌼🛫 Initialize job
6845 run: |
6846 AgentTempDirNormal="${{ runner.temp }}"
6847 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
6848 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
6849
6850 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe
6851
6852 echo '"debug"' | flowey.exe v 5 'FLOWEY_LOG' update
6853 echo "${{ runner.temp }}/work" | flowey.exe v 5 '_internal_WORKING_DIR' --is-raw-string update
6854
6855 cat <<'EOF' | flowey.exe v 5 'verbose' update
6856 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
6857 EOF
6858 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-openvmm"
6859 echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-openvmm" | flowey.exe v 5 'artifact_publish_from_aarch64-windows-openvmm' --is-raw-string update
6860 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-prep_steps"
6861 echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-prep_steps" | flowey.exe v 5 'artifact_publish_from_aarch64-windows-prep_steps' --is-raw-string update
6862 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-test_igvm_agent_rpc_server"
6863 echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-test_igvm_agent_rpc_server" | flowey.exe v 5 'artifact_publish_from_aarch64-windows-test_igvm_agent_rpc_server' --is-raw-string update
6864 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-tmk_vmm"
6865 echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-tmk_vmm" | flowey.exe v 5 'artifact_publish_from_aarch64-windows-tmk_vmm' --is-raw-string update
6866 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-tpm_guest_tests"
6867 echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-tpm_guest_tests" | flowey.exe v 5 'artifact_publish_from_aarch64-windows-tpm_guest_tests' --is-raw-string update
6868 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-vmgstool"
6869 echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-vmgstool" | flowey.exe v 5 'artifact_publish_from_aarch64-windows-vmgstool' --is-raw-string update
6870 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-vmgstool-dev"
6871 echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-vmgstool-dev" | flowey.exe v 5 'artifact_publish_from_aarch64-windows-vmgstool-dev' --is-raw-string update
6872 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-vmm-tests-archive"
6873 echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-vmm-tests-archive" | flowey.exe v 5 'artifact_publish_from_aarch64-windows-vmm-tests-archive' --is-raw-string update
6874 shell: bash
6875 - name: add default cargo home to path
6876 run: flowey.exe e 5 flowey_lib_common::install_rust 0
6877 shell: bash
6878 - name: install Rust
6879 run: flowey.exe e 5 flowey_lib_common::install_rust 1
6880 shell: bash
6881 - name: detect active toolchain
6882 run: |-
6883 flowey.exe e 5 flowey_lib_common::install_rust 2
6884 flowey.exe e 5 flowey_lib_common::cfg_cargo_common_flags 0
6885 shell: bash
6886 - name: check if openvmm needs to be cloned
6887 run: |-
6888 flowey.exe e 5 flowey_lib_common::git_checkout 0
6889 flowey.exe v 5 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:489:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46 write-to-env github floweyvar1
6890 flowey.exe v 5 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION
6891 shell: bash
6892 - id: flowey_lib_common__git_checkout__1
6893 uses: actions/checkout@v6
6894 with:
6895 fetch-depth: '1'
6896 path: repo0
6897 persist-credentials: ${{ env.floweyvar1 }}
6898 name: checkout repo openvmm
6899 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
6900 - name: report cloned repo directories
6901 run: |-
6902 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
6903 ${{ github.workspace }}
6904 EOF
6905 flowey.exe e 5 flowey_lib_common::git_checkout 3
6906 flowey.exe e 5 flowey_lib_hvlite::git_checkout_openvmm_repo 0
6907 shell: bash
6908 - name: set '-Dwarnings' in .cargo/config.toml
6909 run: flowey.exe e 5 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
6910 shell: bash
6911 - name: create gh-release-download cache dir
6912 run: flowey.exe e 5 flowey_lib_common::download_gh_release 0
6913 shell: bash
6914 - name: Pre-processing cache vars
6915 run: |-
6916 flowey.exe e 5 flowey_lib_common::cache 4
6917 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
6918 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
6919 shell: bash
6920 - id: flowey_lib_common__cache__5
6921 uses: actions/cache@v5
6922 with:
6923 key: ${{ env.floweyvar4 }}
6924 path: ${{ env.floweyvar5 }}
6925 name: 'Restore cache: gh-release-download'
6926 - name: download artifacts from github releases
6927 run: |-
6928 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
6929 ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
6930 EOF
6931 flowey.exe e 5 flowey_lib_common::cache 6
6932 flowey.exe e 5 flowey_lib_common::download_gh_release 1
6933 shell: bash
6934 - name: unpack protoc
6935 run: |-
6936 flowey.exe e 5 flowey_lib_common::resolve_protoc 0
6937 flowey.exe e 5 flowey_lib_hvlite::cfg_openvmm_magicpath 0
6938 shell: bash
6939 - name: symlink protoc
6940 run: |-
6941 flowey.exe e 5 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
6942 flowey.exe e 5 flowey_lib_hvlite::init_cross_build 5
6943 shell: bash
6944 - name: cargo build openvmm
6945 run: |-
6946 flowey.exe e 5 flowey_lib_common::run_cargo_build 0
6947 flowey.exe e 5 flowey_lib_hvlite::run_cargo_build 0
6948 flowey.exe e 5 flowey_lib_hvlite::build_openvmm 0
6949 flowey.exe e 5 flowey_core::pipeline::artifact::publish 0
6950 flowey.exe e 5 flowey_lib_hvlite::init_cross_build 1
6951 shell: bash
6952 - name: cargo build tmk_vmm
6953 run: |-
6954 flowey.exe e 5 flowey_lib_common::run_cargo_build 3
6955 flowey.exe e 5 flowey_lib_hvlite::run_cargo_build 5
6956 flowey.exe e 5 flowey_lib_hvlite::build_tmk_vmm 0
6957 flowey.exe e 5 flowey_core::pipeline::artifact::publish 1
6958 flowey.exe e 5 flowey_lib_hvlite::init_cross_build 6
6959 shell: bash
6960 - name: cargo build prep_steps
6961 run: |-
6962 flowey.exe e 5 flowey_lib_common::run_cargo_build 1
6963 flowey.exe e 5 flowey_lib_hvlite::run_cargo_build 1
6964 flowey.exe e 5 flowey_lib_hvlite::build_prep_steps 0
6965 flowey.exe e 5 flowey_core::pipeline::artifact::publish 2
6966 flowey.exe e 5 flowey_lib_hvlite::init_cross_build 4
6967 shell: bash
6968 - name: cargo build vmgstool
6969 run: |-
6970 flowey.exe e 5 flowey_lib_common::run_cargo_build 6
6971 flowey.exe e 5 flowey_lib_hvlite::run_cargo_build 10
6972 flowey.exe e 5 flowey_lib_hvlite::build_vmgstool 0
6973 flowey.exe e 5 flowey_core::pipeline::artifact::publish 3
6974 flowey.exe e 5 flowey_lib_hvlite::init_cross_build 3
6975 shell: bash
6976 - name: cargo build vmgstool
6977 run: |-
6978 flowey.exe e 5 flowey_lib_common::run_cargo_build 5
6979 flowey.exe e 5 flowey_lib_hvlite::run_cargo_build 9
6980 flowey.exe e 5 flowey_lib_hvlite::build_vmgstool 1
6981 flowey.exe e 5 flowey_core::pipeline::artifact::publish 4
6982 flowey.exe e 5 flowey_lib_hvlite::init_cross_build 2
6983 flowey.exe e 5 flowey_lib_hvlite::run_cargo_build 6
6984 flowey.exe e 5 flowey_lib_hvlite::run_cargo_build 7
6985 shell: bash
6986 - name: cargo build tpm_guest_tests
6987 run: |-
6988 flowey.exe e 5 flowey_lib_common::run_cargo_build 4
6989 flowey.exe e 5 flowey_lib_hvlite::run_cargo_build 8
6990 flowey.exe e 5 flowey_lib_hvlite::build_tpm_guest_tests 0
6991 flowey.exe e 5 flowey_core::pipeline::artifact::publish 5
6992 flowey.exe e 5 flowey_lib_hvlite::init_cross_build 7
6993 flowey.exe e 5 flowey_lib_hvlite::run_cargo_build 2
6994 flowey.exe e 5 flowey_lib_hvlite::run_cargo_build 3
6995 shell: bash
6996 - name: cargo build test_igvm_agent_rpc_server
6997 run: |-
6998 flowey.exe e 5 flowey_lib_common::run_cargo_build 2
6999 flowey.exe e 5 flowey_lib_hvlite::run_cargo_build 4
7000 flowey.exe e 5 flowey_lib_hvlite::build_test_igvm_agent_rpc_server 0
7001 flowey.exe e 5 flowey_core::pipeline::artifact::publish 6
7002 shell: bash
7003 - name: create cargo-nextest cache dir
7004 run: |-
7005 flowey.exe e 5 flowey_lib_common::download_cargo_nextest 0
7006 flowey.exe e 5 flowey_lib_common::download_cargo_nextest 1
7007 flowey.exe e 5 flowey_lib_common::download_cargo_nextest 2
7008 flowey.exe e 5 flowey_lib_common::download_cargo_nextest 3
7009 shell: bash
7010 - name: Pre-processing cache vars
7011 run: |-
7012 flowey.exe e 5 flowey_lib_common::cache 0
7013 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
7014 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
7015 shell: bash
7016 - id: flowey_lib_common__cache__1
7017 uses: actions/cache@v5
7018 with:
7019 key: ${{ env.floweyvar2 }}
7020 path: ${{ env.floweyvar3 }}
7021 name: 'Restore cache: cargo-nextest'
7022 - name: downloading cargo-nextest
7023 run: |-
7024 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
7025 ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
7026 EOF
7027 flowey.exe e 5 flowey_lib_common::cache 2
7028 flowey.exe e 5 flowey_lib_common::download_cargo_nextest 4
7029 shell: bash
7030 - name: report $CARGO_HOME
7031 run: flowey.exe e 5 flowey_lib_common::install_rust 3
7032 shell: bash
7033 - name: installing cargo-nextest
7034 run: |-
7035 flowey.exe e 5 flowey_lib_common::install_cargo_nextest 0
7036 flowey.exe e 5 flowey_lib_hvlite::init_cross_build 0
7037 shell: bash
7038 - name: build + archive 'vmm_tests' nextests
7039 run: |-
7040 flowey.exe e 5 flowey_lib_common::run_cargo_nextest_archive 0
7041 flowey.exe e 5 flowey_lib_hvlite::build_nextest_vmm_tests 0
7042 flowey.exe e 5 flowey_core::pipeline::artifact::publish 7
7043 shell: bash
7044 - name: 'validate cache entry: cargo-nextest'
7045 run: flowey.exe e 5 flowey_lib_common::cache 3
7046 shell: bash
7047 - name: 'validate cache entry: gh-release-download'
7048 run: flowey.exe e 5 flowey_lib_common::cache 7
7049 shell: bash
7050 - name: 🌼📦 Publish aarch64-windows-openvmm
7051 uses: actions/upload-artifact@v7
7052 with:
7053 name: aarch64-windows-openvmm
7054 path: ${{ runner.temp }}/publish_artifacts/aarch64-windows-openvmm/
7055 include-hidden-files: true
7056 - name: 🌼📦 Publish aarch64-windows-prep_steps
7057 uses: actions/upload-artifact@v7
7058 with:
7059 name: aarch64-windows-prep_steps
7060 path: ${{ runner.temp }}/publish_artifacts/aarch64-windows-prep_steps/
7061 include-hidden-files: true
7062 - name: 🌼📦 Publish aarch64-windows-test_igvm_agent_rpc_server
7063 uses: actions/upload-artifact@v7
7064 with:
7065 name: aarch64-windows-test_igvm_agent_rpc_server
7066 path: ${{ runner.temp }}/publish_artifacts/aarch64-windows-test_igvm_agent_rpc_server/
7067 include-hidden-files: true
7068 - name: 🌼📦 Publish aarch64-windows-tmk_vmm
7069 uses: actions/upload-artifact@v7
7070 with:
7071 name: aarch64-windows-tmk_vmm
7072 path: ${{ runner.temp }}/publish_artifacts/aarch64-windows-tmk_vmm/
7073 include-hidden-files: true
7074 - name: 🌼📦 Publish aarch64-windows-tpm_guest_tests
7075 uses: actions/upload-artifact@v7
7076 with:
7077 name: aarch64-windows-tpm_guest_tests
7078 path: ${{ runner.temp }}/publish_artifacts/aarch64-windows-tpm_guest_tests/
7079 include-hidden-files: true
7080 - name: 🌼📦 Publish aarch64-windows-vmgstool
7081 uses: actions/upload-artifact@v7
7082 with:
7083 name: aarch64-windows-vmgstool
7084 path: ${{ runner.temp }}/publish_artifacts/aarch64-windows-vmgstool/
7085 include-hidden-files: true
7086 - name: 🌼📦 Publish aarch64-windows-vmgstool-dev
7087 uses: actions/upload-artifact@v7
7088 with:
7089 name: aarch64-windows-vmgstool-dev
7090 path: ${{ runner.temp }}/publish_artifacts/aarch64-windows-vmgstool-dev/
7091 include-hidden-files: true
7092 - name: 🌼📦 Publish aarch64-windows-vmm-tests-archive
7093 uses: actions/upload-artifact@v7
7094 with:
7095 name: aarch64-windows-vmm-tests-archive
7096 path: ${{ runner.temp }}/publish_artifacts/aarch64-windows-vmm-tests-archive/
7097 include-hidden-files: true
7098 job6:
7099 name: build artifacts (not for VMM tests) [x64-windows]
7100 runs-on:
7101 - self-hosted
7102 - 1ES.Pool=openvmm-gh-amd-westus3
7103 - 1ES.ImageOverride=win-amd64
7104 - JobId=job6-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}
7105 permissions:
7106 contents: read
7107 id-token: write
7108 if: github.event.pull_request.draft == false
7109 steps:
7110 - run: |
7111 set -x
7112 i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
7113 sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
7114 curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.95.0 -y
7115 . "$HOME/.cargo/env"
7116 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
7117 rustup show
7118 if: runner.os == 'Linux'
7119 name: rustup (Linux)
7120 shell: bash
7121 - run: |
7122 set -x
7123 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
7124 ./rustup-init.exe -y --default-toolchain=1.95.0
7125 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
7126 if: runner.os == 'Windows' && runner.arch == 'X64'
7127 name: rustup (Windows X64)
7128 shell: bash
7129 - run: |
7130 set -x
7131 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
7132 ./rustup-init.exe -y --default-toolchain=1.95.0
7133 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
7134 if: runner.os == 'Windows' && runner.arch == 'ARM64'
7135 name: rustup (Windows ARM64)
7136 shell: bash
7137 - uses: actions/checkout@v6
7138 with:
7139 path: flowey_bootstrap
7140 - name: Build flowey
7141 run: |
7142 set -x
7143 CARGO_INCREMENTAL=0 cargo build -p flowey_hvlite --target x86_64-pc-windows-msvc --profile flowey-ci
7144 OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
7145 mkdir -p "$OutDirNormal"
7146 mv ./.github/workflows/openvmm-ci.yaml "$OutDirNormal/pipeline.yaml"
7147 mv target/x86_64-pc-windows-msvc/flowey-ci/flowey_hvlite.exe "$OutDirNormal/flowey.exe"
7148 working-directory: flowey_bootstrap
7149 shell: bash
7150 - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH
7151 shell: bash
7152 name: 🌼📦 Add flowey to PATH
7153 - name: 🌼🔎 Self-check YAML
7154 run: |-
7155 ESCAPED_AGENT_TEMPDIR=$(
7156 cat <<'EOF' | sed 's/\\/\\\\/g'
7157 ${{ runner.temp }}
7158 EOF
7159 )
7160 flowey.exe pipeline github --runtime $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci
7161 shell: bash
7162 - name: 🌼🛫 Initialize job
7163 run: |
7164 AgentTempDirNormal="${{ runner.temp }}"
7165 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
7166 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
7167
7168 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe
7169
7170 echo '"debug"' | flowey.exe v 6 'FLOWEY_LOG' update
7171 echo "${{ runner.temp }}/work" | flowey.exe v 6 '_internal_WORKING_DIR' --is-raw-string update
7172
7173 cat <<'EOF' | flowey.exe v 6 'verbose' update
7174 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
7175 EOF
7176 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-hypestv"
7177 echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-hypestv" | flowey.exe v 6 'artifact_publish_from_x64-windows-hypestv' --is-raw-string update
7178 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-igvmfilegen"
7179 echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-igvmfilegen" | flowey.exe v 6 'artifact_publish_from_x64-windows-igvmfilegen' --is-raw-string update
7180 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-ohcldiag-dev"
7181 echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-ohcldiag-dev" | flowey.exe v 6 'artifact_publish_from_x64-windows-ohcldiag-dev' --is-raw-string update
7182 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-vmgs_lib"
7183 echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-vmgs_lib" | flowey.exe v 6 'artifact_publish_from_x64-windows-vmgs_lib' --is-raw-string update
7184 shell: bash
7185 - name: add default cargo home to path
7186 run: flowey.exe e 6 flowey_lib_common::install_rust 0
7187 shell: bash
7188 - name: install Rust
7189 run: flowey.exe e 6 flowey_lib_common::install_rust 1
7190 shell: bash
7191 - name: detect active toolchain
7192 run: |-
7193 flowey.exe e 6 flowey_lib_common::install_rust 2
7194 flowey.exe e 6 flowey_lib_common::cfg_cargo_common_flags 0
7195 shell: bash
7196 - name: check if openvmm needs to be cloned
7197 run: |-
7198 flowey.exe e 6 flowey_lib_common::git_checkout 0
7199 flowey.exe v 6 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:489:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46 write-to-env github floweyvar1
7200 flowey.exe v 6 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION
7201 shell: bash
7202 - id: flowey_lib_common__git_checkout__1
7203 uses: actions/checkout@v6
7204 with:
7205 fetch-depth: '1'
7206 path: repo0
7207 persist-credentials: ${{ env.floweyvar1 }}
7208 name: checkout repo openvmm
7209 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
7210 - name: report cloned repo directories
7211 run: |-
7212 flowey.exe 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
7213 ${{ github.workspace }}
7214 EOF
7215 flowey.exe e 6 flowey_lib_common::git_checkout 3
7216 flowey.exe e 6 flowey_lib_hvlite::git_checkout_openvmm_repo 0
7217 shell: bash
7218 - name: set '-Dwarnings' in .cargo/config.toml
7219 run: flowey.exe e 6 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
7220 shell: bash
7221 - name: create gh-release-download cache dir
7222 run: flowey.exe e 6 flowey_lib_common::download_gh_release 0
7223 shell: bash
7224 - name: Pre-processing cache vars
7225 run: |-
7226 flowey.exe e 6 flowey_lib_common::cache 0
7227 flowey.exe v 6 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar2
7228 flowey.exe v 6 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar3
7229 shell: bash
7230 - id: flowey_lib_common__cache__1
7231 uses: actions/cache@v5
7232 with:
7233 key: ${{ env.floweyvar2 }}
7234 path: ${{ env.floweyvar3 }}
7235 name: 'Restore cache: gh-release-download'
7236 - name: download artifacts from github releases
7237 run: |-
7238 flowey.exe 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
7239 ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
7240 EOF
7241 flowey.exe e 6 flowey_lib_common::cache 2
7242 flowey.exe e 6 flowey_lib_common::download_gh_release 1
7243 shell: bash
7244 - name: unpack protoc
7245 run: |-
7246 flowey.exe e 6 flowey_lib_common::resolve_protoc 0
7247 flowey.exe e 6 flowey_lib_hvlite::cfg_openvmm_magicpath 0
7248 shell: bash
7249 - name: symlink protoc
7250 run: |-
7251 flowey.exe e 6 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
7252 flowey.exe e 6 flowey_lib_hvlite::init_cross_build 1
7253 shell: bash
7254 - name: cargo build hypestv
7255 run: |-
7256 flowey.exe e 6 flowey_lib_common::run_cargo_build 0
7257 flowey.exe e 6 flowey_lib_hvlite::run_cargo_build 0
7258 flowey.exe e 6 flowey_lib_hvlite::build_hypestv 0
7259 flowey.exe e 6 flowey_core::pipeline::artifact::publish 0
7260 flowey.exe e 6 flowey_lib_hvlite::init_cross_build 0
7261 shell: bash
7262 - name: cargo build vmgs_lib
7263 run: |-
7264 flowey.exe e 6 flowey_lib_common::run_cargo_build 3
7265 flowey.exe e 6 flowey_lib_hvlite::run_cargo_build 3
7266 flowey.exe e 6 flowey_lib_hvlite::build_and_test_vmgs_lib 0
7267 shell: bash
7268 - name: test vmgs_lib
7269 run: |-
7270 flowey.exe e 6 flowey_lib_hvlite::build_and_test_vmgs_lib 1
7271 flowey.exe e 6 flowey_lib_hvlite::build_and_test_vmgs_lib 2
7272 flowey.exe e 6 flowey_core::pipeline::artifact::publish 1
7273 flowey.exe e 6 flowey_lib_hvlite::init_cross_build 2
7274 shell: bash
7275 - name: cargo build igvmfilegen
7276 run: |-
7277 flowey.exe e 6 flowey_lib_common::run_cargo_build 1
7278 flowey.exe e 6 flowey_lib_hvlite::run_cargo_build 1
7279 flowey.exe e 6 flowey_lib_hvlite::build_igvmfilegen 0
7280 flowey.exe e 6 flowey_core::pipeline::artifact::publish 2
7281 flowey.exe e 6 flowey_lib_hvlite::init_cross_build 3
7282 shell: bash
7283 - name: cargo build ohcldiag-dev
7284 run: |-
7285 flowey.exe e 6 flowey_lib_common::run_cargo_build 2
7286 flowey.exe e 6 flowey_lib_hvlite::run_cargo_build 2
7287 flowey.exe e 6 flowey_lib_hvlite::build_ohcldiag_dev 0
7288 flowey.exe e 6 flowey_core::pipeline::artifact::publish 3
7289 shell: bash
7290 - name: 'validate cache entry: gh-release-download'
7291 run: flowey.exe e 6 flowey_lib_common::cache 3
7292 shell: bash
7293 - name: 🌼📦 Publish x64-windows-hypestv
7294 uses: actions/upload-artifact@v7
7295 with:
7296 name: x64-windows-hypestv
7297 path: ${{ runner.temp }}/publish_artifacts/x64-windows-hypestv/
7298 include-hidden-files: true
7299 - name: 🌼📦 Publish x64-windows-igvmfilegen
7300 uses: actions/upload-artifact@v7
7301 with:
7302 name: x64-windows-igvmfilegen
7303 path: ${{ runner.temp }}/publish_artifacts/x64-windows-igvmfilegen/
7304 include-hidden-files: true
7305 - name: 🌼📦 Publish x64-windows-ohcldiag-dev
7306 uses: actions/upload-artifact@v7
7307 with:
7308 name: x64-windows-ohcldiag-dev
7309 path: ${{ runner.temp }}/publish_artifacts/x64-windows-ohcldiag-dev/
7310 include-hidden-files: true
7311 - name: 🌼📦 Publish x64-windows-vmgs_lib
7312 uses: actions/upload-artifact@v7
7313 with:
7314 name: x64-windows-vmgs_lib
7315 path: ${{ runner.temp }}/publish_artifacts/x64-windows-vmgs_lib/
7316 include-hidden-files: true
7317 job7:
7318 name: build artifacts (for VMM tests) [x64-windows]
7319 runs-on:
7320 - self-hosted
7321 - 1ES.Pool=openvmm-gh-amd-westus3
7322 - 1ES.ImageOverride=win-amd64
7323 - JobId=job7-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}
7324 permissions:
7325 contents: read
7326 id-token: write
7327 if: github.event.pull_request.draft == false
7328 steps:
7329 - run: |
7330 set -x
7331 i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
7332 sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
7333 curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.95.0 -y
7334 . "$HOME/.cargo/env"
7335 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
7336 rustup show
7337 if: runner.os == 'Linux'
7338 name: rustup (Linux)
7339 shell: bash
7340 - run: |
7341 set -x
7342 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
7343 ./rustup-init.exe -y --default-toolchain=1.95.0
7344 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
7345 if: runner.os == 'Windows' && runner.arch == 'X64'
7346 name: rustup (Windows X64)
7347 shell: bash
7348 - run: |
7349 set -x
7350 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
7351 ./rustup-init.exe -y --default-toolchain=1.95.0
7352 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
7353 if: runner.os == 'Windows' && runner.arch == 'ARM64'
7354 name: rustup (Windows ARM64)
7355 shell: bash
7356 - uses: actions/checkout@v6
7357 with:
7358 path: flowey_bootstrap
7359 - name: Build flowey
7360 run: |
7361 set -x
7362 CARGO_INCREMENTAL=0 cargo build -p flowey_hvlite --target x86_64-pc-windows-msvc --profile flowey-ci
7363 OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
7364 mkdir -p "$OutDirNormal"
7365 mv ./.github/workflows/openvmm-ci.yaml "$OutDirNormal/pipeline.yaml"
7366 mv target/x86_64-pc-windows-msvc/flowey-ci/flowey_hvlite.exe "$OutDirNormal/flowey.exe"
7367 working-directory: flowey_bootstrap
7368 shell: bash
7369 - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH
7370 shell: bash
7371 name: 🌼📦 Add flowey to PATH
7372 - name: 🌼🔎 Self-check YAML
7373 run: |-
7374 ESCAPED_AGENT_TEMPDIR=$(
7375 cat <<'EOF' | sed 's/\\/\\\\/g'
7376 ${{ runner.temp }}
7377 EOF
7378 )
7379 flowey.exe pipeline github --runtime $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci
7380 shell: bash
7381 - name: 🌼🛫 Initialize job
7382 run: |
7383 AgentTempDirNormal="${{ runner.temp }}"
7384 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
7385 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
7386
7387 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe
7388
7389 echo '"debug"' | flowey.exe v 7 'FLOWEY_LOG' update
7390 echo "${{ runner.temp }}/work" | flowey.exe v 7 '_internal_WORKING_DIR' --is-raw-string update
7391
7392 cat <<'EOF' | flowey.exe v 7 'verbose' update
7393 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
7394 EOF
7395 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-openvmm"
7396 echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-openvmm" | flowey.exe v 7 'artifact_publish_from_x64-windows-openvmm' --is-raw-string update
7397 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-prep_steps"
7398 echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-prep_steps" | flowey.exe v 7 'artifact_publish_from_x64-windows-prep_steps' --is-raw-string update
7399 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-test_igvm_agent_rpc_server"
7400 echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-test_igvm_agent_rpc_server" | flowey.exe v 7 'artifact_publish_from_x64-windows-test_igvm_agent_rpc_server' --is-raw-string update
7401 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-tmk_vmm"
7402 echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-tmk_vmm" | flowey.exe v 7 'artifact_publish_from_x64-windows-tmk_vmm' --is-raw-string update
7403 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-tpm_guest_tests"
7404 echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-tpm_guest_tests" | flowey.exe v 7 'artifact_publish_from_x64-windows-tpm_guest_tests' --is-raw-string update
7405 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-vmgstool"
7406 echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-vmgstool" | flowey.exe v 7 'artifact_publish_from_x64-windows-vmgstool' --is-raw-string update
7407 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-vmgstool-dev"
7408 echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-vmgstool-dev" | flowey.exe v 7 'artifact_publish_from_x64-windows-vmgstool-dev' --is-raw-string update
7409 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-vmm-tests-archive"
7410 echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-vmm-tests-archive" | flowey.exe v 7 'artifact_publish_from_x64-windows-vmm-tests-archive' --is-raw-string update
7411 shell: bash
7412 - name: add default cargo home to path
7413 run: flowey.exe e 7 flowey_lib_common::install_rust 0
7414 shell: bash
7415 - name: install Rust
7416 run: flowey.exe e 7 flowey_lib_common::install_rust 1
7417 shell: bash
7418 - name: detect active toolchain
7419 run: |-
7420 flowey.exe e 7 flowey_lib_common::install_rust 2
7421 flowey.exe e 7 flowey_lib_common::cfg_cargo_common_flags 0
7422 shell: bash
7423 - name: check if openvmm needs to be cloned
7424 run: |-
7425 flowey.exe e 7 flowey_lib_common::git_checkout 0
7426 flowey.exe v 7 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:489:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46 write-to-env github floweyvar1
7427 flowey.exe v 7 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION
7428 shell: bash
7429 - id: flowey_lib_common__git_checkout__1
7430 uses: actions/checkout@v6
7431 with:
7432 fetch-depth: '1'
7433 path: repo0
7434 persist-credentials: ${{ env.floweyvar1 }}
7435 name: checkout repo openvmm
7436 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
7437 - name: report cloned repo directories
7438 run: |-
7439 flowey.exe 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
7440 ${{ github.workspace }}
7441 EOF
7442 flowey.exe e 7 flowey_lib_common::git_checkout 3
7443 flowey.exe e 7 flowey_lib_hvlite::git_checkout_openvmm_repo 0
7444 shell: bash
7445 - name: set '-Dwarnings' in .cargo/config.toml
7446 run: flowey.exe e 7 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
7447 shell: bash
7448 - name: create gh-release-download cache dir
7449 run: flowey.exe e 7 flowey_lib_common::download_gh_release 0
7450 shell: bash
7451 - name: Pre-processing cache vars
7452 run: |-
7453 flowey.exe e 7 flowey_lib_common::cache 4
7454 flowey.exe v 7 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar4
7455 flowey.exe v 7 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar5
7456 shell: bash
7457 - id: flowey_lib_common__cache__5
7458 uses: actions/cache@v5
7459 with:
7460 key: ${{ env.floweyvar4 }}
7461 path: ${{ env.floweyvar5 }}
7462 name: 'Restore cache: gh-release-download'
7463 - name: download artifacts from github releases
7464 run: |-
7465 flowey.exe 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
7466 ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
7467 EOF
7468 flowey.exe e 7 flowey_lib_common::cache 6
7469 flowey.exe e 7 flowey_lib_common::download_gh_release 1
7470 shell: bash
7471 - name: unpack protoc
7472 run: |-
7473 flowey.exe e 7 flowey_lib_common::resolve_protoc 0
7474 flowey.exe e 7 flowey_lib_hvlite::cfg_openvmm_magicpath 0
7475 shell: bash
7476 - name: symlink protoc
7477 run: |-
7478 flowey.exe e 7 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
7479 flowey.exe e 7 flowey_lib_hvlite::init_cross_build 5
7480 shell: bash
7481 - name: cargo build openvmm
7482 run: |-
7483 flowey.exe e 7 flowey_lib_common::run_cargo_build 0
7484 flowey.exe e 7 flowey_lib_hvlite::run_cargo_build 0
7485 flowey.exe e 7 flowey_lib_hvlite::build_openvmm 0
7486 flowey.exe e 7 flowey_core::pipeline::artifact::publish 0
7487 flowey.exe e 7 flowey_lib_hvlite::init_cross_build 1
7488 shell: bash
7489 - name: cargo build tmk_vmm
7490 run: |-
7491 flowey.exe e 7 flowey_lib_common::run_cargo_build 3
7492 flowey.exe e 7 flowey_lib_hvlite::run_cargo_build 5
7493 flowey.exe e 7 flowey_lib_hvlite::build_tmk_vmm 0
7494 flowey.exe e 7 flowey_core::pipeline::artifact::publish 1
7495 flowey.exe e 7 flowey_lib_hvlite::init_cross_build 6
7496 shell: bash
7497 - name: cargo build prep_steps
7498 run: |-
7499 flowey.exe e 7 flowey_lib_common::run_cargo_build 1
7500 flowey.exe e 7 flowey_lib_hvlite::run_cargo_build 1
7501 flowey.exe e 7 flowey_lib_hvlite::build_prep_steps 0
7502 flowey.exe e 7 flowey_core::pipeline::artifact::publish 2
7503 flowey.exe e 7 flowey_lib_hvlite::init_cross_build 4
7504 shell: bash
7505 - name: cargo build vmgstool
7506 run: |-
7507 flowey.exe e 7 flowey_lib_common::run_cargo_build 6
7508 flowey.exe e 7 flowey_lib_hvlite::run_cargo_build 10
7509 flowey.exe e 7 flowey_lib_hvlite::build_vmgstool 0
7510 flowey.exe e 7 flowey_core::pipeline::artifact::publish 3
7511 flowey.exe e 7 flowey_lib_hvlite::init_cross_build 3
7512 shell: bash
7513 - name: cargo build vmgstool
7514 run: |-
7515 flowey.exe e 7 flowey_lib_common::run_cargo_build 5
7516 flowey.exe e 7 flowey_lib_hvlite::run_cargo_build 9
7517 flowey.exe e 7 flowey_lib_hvlite::build_vmgstool 1
7518 flowey.exe e 7 flowey_core::pipeline::artifact::publish 4
7519 flowey.exe e 7 flowey_lib_hvlite::init_cross_build 2
7520 flowey.exe e 7 flowey_lib_hvlite::run_cargo_build 6
7521 flowey.exe e 7 flowey_lib_hvlite::run_cargo_build 7
7522 shell: bash
7523 - name: cargo build tpm_guest_tests
7524 run: |-
7525 flowey.exe e 7 flowey_lib_common::run_cargo_build 4
7526 flowey.exe e 7 flowey_lib_hvlite::run_cargo_build 8
7527 flowey.exe e 7 flowey_lib_hvlite::build_tpm_guest_tests 0
7528 flowey.exe e 7 flowey_core::pipeline::artifact::publish 5
7529 flowey.exe e 7 flowey_lib_hvlite::init_cross_build 7
7530 flowey.exe e 7 flowey_lib_hvlite::run_cargo_build 2
7531 flowey.exe e 7 flowey_lib_hvlite::run_cargo_build 3
7532 shell: bash
7533 - name: cargo build test_igvm_agent_rpc_server
7534 run: |-
7535 flowey.exe e 7 flowey_lib_common::run_cargo_build 2
7536 flowey.exe e 7 flowey_lib_hvlite::run_cargo_build 4
7537 flowey.exe e 7 flowey_lib_hvlite::build_test_igvm_agent_rpc_server 0
7538 flowey.exe e 7 flowey_core::pipeline::artifact::publish 6
7539 shell: bash
7540 - name: create cargo-nextest cache dir
7541 run: |-
7542 flowey.exe e 7 flowey_lib_common::download_cargo_nextest 0
7543 flowey.exe e 7 flowey_lib_common::download_cargo_nextest 1
7544 flowey.exe e 7 flowey_lib_common::download_cargo_nextest 2
7545 flowey.exe e 7 flowey_lib_common::download_cargo_nextest 3
7546 shell: bash
7547 - name: Pre-processing cache vars
7548 run: |-
7549 flowey.exe e 7 flowey_lib_common::cache 0
7550 flowey.exe v 7 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar2
7551 flowey.exe v 7 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar3
7552 shell: bash
7553 - id: flowey_lib_common__cache__1
7554 uses: actions/cache@v5
7555 with:
7556 key: ${{ env.floweyvar2 }}
7557 path: ${{ env.floweyvar3 }}
7558 name: 'Restore cache: cargo-nextest'
7559 - name: downloading cargo-nextest
7560 run: |-
7561 flowey.exe 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
7562 ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
7563 EOF
7564 flowey.exe e 7 flowey_lib_common::cache 2
7565 flowey.exe e 7 flowey_lib_common::download_cargo_nextest 4
7566 shell: bash
7567 - name: report $CARGO_HOME
7568 run: flowey.exe e 7 flowey_lib_common::install_rust 3
7569 shell: bash
7570 - name: installing cargo-nextest
7571 run: |-
7572 flowey.exe e 7 flowey_lib_common::install_cargo_nextest 0
7573 flowey.exe e 7 flowey_lib_hvlite::init_cross_build 0
7574 shell: bash
7575 - name: build + archive 'vmm_tests' nextests
7576 run: |-
7577 flowey.exe e 7 flowey_lib_common::run_cargo_nextest_archive 0
7578 flowey.exe e 7 flowey_lib_hvlite::build_nextest_vmm_tests 0
7579 flowey.exe e 7 flowey_core::pipeline::artifact::publish 7
7580 shell: bash
7581 - name: 'validate cache entry: cargo-nextest'
7582 run: flowey.exe e 7 flowey_lib_common::cache 3
7583 shell: bash
7584 - name: 'validate cache entry: gh-release-download'
7585 run: flowey.exe e 7 flowey_lib_common::cache 7
7586 shell: bash
7587 - name: 🌼📦 Publish x64-windows-openvmm
7588 uses: actions/upload-artifact@v7
7589 with:
7590 name: x64-windows-openvmm
7591 path: ${{ runner.temp }}/publish_artifacts/x64-windows-openvmm/
7592 include-hidden-files: true
7593 - name: 🌼📦 Publish x64-windows-prep_steps
7594 uses: actions/upload-artifact@v7
7595 with:
7596 name: x64-windows-prep_steps
7597 path: ${{ runner.temp }}/publish_artifacts/x64-windows-prep_steps/
7598 include-hidden-files: true
7599 - name: 🌼📦 Publish x64-windows-test_igvm_agent_rpc_server
7600 uses: actions/upload-artifact@v7
7601 with:
7602 name: x64-windows-test_igvm_agent_rpc_server
7603 path: ${{ runner.temp }}/publish_artifacts/x64-windows-test_igvm_agent_rpc_server/
7604 include-hidden-files: true
7605 - name: 🌼📦 Publish x64-windows-tmk_vmm
7606 uses: actions/upload-artifact@v7
7607 with:
7608 name: x64-windows-tmk_vmm
7609 path: ${{ runner.temp }}/publish_artifacts/x64-windows-tmk_vmm/
7610 include-hidden-files: true
7611 - name: 🌼📦 Publish x64-windows-tpm_guest_tests
7612 uses: actions/upload-artifact@v7
7613 with:
7614 name: x64-windows-tpm_guest_tests
7615 path: ${{ runner.temp }}/publish_artifacts/x64-windows-tpm_guest_tests/
7616 include-hidden-files: true
7617 - name: 🌼📦 Publish x64-windows-vmgstool
7618 uses: actions/upload-artifact@v7
7619 with:
7620 name: x64-windows-vmgstool
7621 path: ${{ runner.temp }}/publish_artifacts/x64-windows-vmgstool/
7622 include-hidden-files: true
7623 - name: 🌼📦 Publish x64-windows-vmgstool-dev
7624 uses: actions/upload-artifact@v7
7625 with:
7626 name: x64-windows-vmgstool-dev
7627 path: ${{ runner.temp }}/publish_artifacts/x64-windows-vmgstool-dev/
7628 include-hidden-files: true
7629 - name: 🌼📦 Publish x64-windows-vmm-tests-archive
7630 uses: actions/upload-artifact@v7
7631 with:
7632 name: x64-windows-vmm-tests-archive
7633 path: ${{ runner.temp }}/publish_artifacts/x64-windows-vmm-tests-archive/
7634 include-hidden-files: true
7635 - name: 🌼🧼 Redact bootstrap var db
7636 run: rm $AgentTempDirNormal/bootstrapped-flowey/job7.json
7637 shell: bash
7638 - name: 🌼🥾 Publish bootstrapped flowey
7639 uses: actions/upload-artifact@v7
7640 with:
7641 name: _internal-flowey-bootstrap-x86_64-windows-uid-13
7642 path: ${{ runner.temp }}/bootstrapped-flowey
7643 job8:
7644 name: build artifacts (for VMM tests) [aarch64-linux]
7645 runs-on:
7646 - self-hosted
7647 - 1ES.Pool=openvmm-gh-amd-westus3
7648 - 1ES.ImageOverride=ubuntu2404-amd64
7649 - JobId=job8-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}
7650 permissions:
7651 contents: read
7652 id-token: write
7653 if: github.event.pull_request.draft == false
7654 steps:
7655 - run: |
7656 set -x
7657 i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
7658 sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
7659 curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.95.0 -y
7660 . "$HOME/.cargo/env"
7661 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
7662 rustup show
7663 if: runner.os == 'Linux'
7664 name: rustup (Linux)
7665 shell: bash
7666 - run: |
7667 set -x
7668 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
7669 ./rustup-init.exe -y --default-toolchain=1.95.0
7670 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
7671 if: runner.os == 'Windows' && runner.arch == 'X64'
7672 name: rustup (Windows X64)
7673 shell: bash
7674 - run: |
7675 set -x
7676 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
7677 ./rustup-init.exe -y --default-toolchain=1.95.0
7678 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
7679 if: runner.os == 'Windows' && runner.arch == 'ARM64'
7680 name: rustup (Windows ARM64)
7681 shell: bash
7682 - uses: actions/checkout@v6
7683 with:
7684 path: flowey_bootstrap
7685 - name: Build flowey
7686 run: |
7687 set -x
7688 CARGO_INCREMENTAL=0 cargo build -p flowey_hvlite --target x86_64-unknown-linux-gnu --profile flowey-ci
7689 OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
7690 mkdir -p "$OutDirNormal"
7691 mv ./.github/workflows/openvmm-ci.yaml "$OutDirNormal/pipeline.yaml"
7692 mv target/x86_64-unknown-linux-gnu/flowey-ci/flowey_hvlite "$OutDirNormal/flowey"
7693 working-directory: flowey_bootstrap
7694 shell: bash
7695 - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH
7696 shell: bash
7697 name: 🌼📦 Add flowey to PATH
7698 - name: 🌼🔎 Self-check YAML
7699 run: |-
7700 ESCAPED_AGENT_TEMPDIR=$(
7701 cat <<'EOF' | sed 's/\\/\\\\/g'
7702 ${{ runner.temp }}
7703 EOF
7704 )
7705 flowey pipeline github --runtime $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci
7706 shell: bash
7707 - name: 🌼🛫 Initialize job
7708 run: |
7709 AgentTempDirNormal="${{ runner.temp }}"
7710 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
7711 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
7712
7713 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey
7714
7715 echo '"debug"' | flowey v 8 'FLOWEY_LOG' update
7716 echo "${{ runner.temp }}/work" | flowey v 8 '_internal_WORKING_DIR' --is-raw-string update
7717
7718 cat <<'EOF' | flowey v 8 'verbose' update
7719 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
7720 EOF
7721 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-igvmfilegen"
7722 echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-igvmfilegen" | flowey v 8 'artifact_publish_from_aarch64-linux-igvmfilegen' --is-raw-string update
7723 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-musl-openvmm"
7724 echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-musl-openvmm" | flowey v 8 'artifact_publish_from_aarch64-linux-musl-openvmm' --is-raw-string update
7725 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-musl-openvmm_vhost"
7726 echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-musl-openvmm_vhost" | flowey v 8 'artifact_publish_from_aarch64-linux-musl-openvmm_vhost' --is-raw-string update
7727 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-ohcldiag-dev"
7728 echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-ohcldiag-dev" | flowey v 8 'artifact_publish_from_aarch64-linux-ohcldiag-dev' --is-raw-string update
7729 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-openvmm"
7730 echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-openvmm" | flowey v 8 'artifact_publish_from_aarch64-linux-openvmm' --is-raw-string update
7731 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-openvmm_vhost"
7732 echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-openvmm_vhost" | flowey v 8 'artifact_publish_from_aarch64-linux-openvmm_vhost' --is-raw-string update
7733 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-prep_steps"
7734 echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-prep_steps" | flowey v 8 'artifact_publish_from_aarch64-linux-prep_steps' --is-raw-string update
7735 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-vmgs_lib"
7736 echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-vmgs_lib" | flowey v 8 'artifact_publish_from_aarch64-linux-vmgs_lib' --is-raw-string update
7737 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-vmgstool"
7738 echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-vmgstool" | flowey v 8 'artifact_publish_from_aarch64-linux-vmgstool' --is-raw-string update
7739 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-vmgstool-dev"
7740 echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-vmgstool-dev" | flowey v 8 'artifact_publish_from_aarch64-linux-vmgstool-dev' --is-raw-string update
7741 shell: bash
7742 - name: add default cargo home to path
7743 run: flowey e 8 flowey_lib_common::install_rust 0
7744 shell: bash
7745 - name: install Rust
7746 run: flowey e 8 flowey_lib_common::install_rust 1
7747 shell: bash
7748 - name: detect active toolchain
7749 run: |-
7750 flowey e 8 flowey_lib_common::install_rust 2
7751 flowey e 8 flowey_lib_common::cfg_cargo_common_flags 0
7752 shell: bash
7753 - name: checking if packages need to be installed
7754 run: flowey e 8 flowey_lib_common::install_dist_pkg 0
7755 shell: bash
7756 - name: installing packages
7757 run: flowey e 8 flowey_lib_common::install_dist_pkg 1
7758 shell: bash
7759 - name: check if openvmm needs to be cloned
7760 run: |-
7761 flowey e 8 flowey_lib_common::git_checkout 0
7762 flowey v 8 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:489:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46 write-to-env github floweyvar1
7763 flowey v 8 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION
7764 shell: bash
7765 - id: flowey_lib_common__git_checkout__1
7766 uses: actions/checkout@v6
7767 with:
7768 fetch-depth: '1'
7769 path: repo0
7770 persist-credentials: ${{ env.floweyvar1 }}
7771 name: checkout repo openvmm
7772 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
7773 - name: report cloned repo directories
7774 run: |-
7775 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
7776 ${{ github.workspace }}
7777 EOF
7778 flowey e 8 flowey_lib_common::git_checkout 3
7779 flowey e 8 flowey_lib_hvlite::git_checkout_openvmm_repo 0
7780 shell: bash
7781 - name: set '-Dwarnings' in .cargo/config.toml
7782 run: flowey e 8 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
7783 shell: bash
7784 - name: create gh-release-download cache dir
7785 run: flowey e 8 flowey_lib_common::download_gh_release 0
7786 shell: bash
7787 - name: Pre-processing cache vars
7788 run: |-
7789 flowey e 8 flowey_lib_common::cache 0
7790 flowey v 8 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar2
7791 flowey v 8 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar3
7792 shell: bash
7793 - id: flowey_lib_common__cache__1
7794 uses: actions/cache@v5
7795 with:
7796 key: ${{ env.floweyvar2 }}
7797 path: ${{ env.floweyvar3 }}
7798 name: 'Restore cache: gh-release-download'
7799 - name: download artifacts from github releases
7800 run: |-
7801 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
7802 ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
7803 EOF
7804 flowey e 8 flowey_lib_common::cache 2
7805 flowey e 8 flowey_lib_common::download_gh_release 1
7806 shell: bash
7807 - name: unpack protoc
7808 run: |-
7809 flowey e 8 flowey_lib_common::resolve_protoc 0
7810 flowey e 8 flowey_lib_hvlite::cfg_openvmm_magicpath 0
7811 shell: bash
7812 - name: symlink protoc
7813 run: |-
7814 flowey e 8 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
7815 flowey e 8 flowey_lib_hvlite::init_cross_build 0
7816 shell: bash
7817 - name: cargo build openvmm
7818 run: |-
7819 flowey e 8 flowey_lib_common::run_cargo_build 2
7820 flowey e 8 flowey_lib_hvlite::run_cargo_build 4
7821 shell: bash
7822 - name: split debug symbols
7823 run: |-
7824 flowey e 8 flowey_lib_hvlite::run_split_debug_info 1
7825 flowey e 8 flowey_lib_hvlite::run_cargo_build 5
7826 flowey e 8 flowey_lib_hvlite::build_openvmm 0
7827 flowey e 8 flowey_core::pipeline::artifact::publish 0
7828 flowey e 8 flowey_lib_hvlite::init_cross_build 2
7829 shell: bash
7830 - name: cargo build openvmm_vhost
7831 run: |-
7832 flowey e 8 flowey_lib_common::run_cargo_build 4
7833 flowey e 8 flowey_lib_hvlite::run_cargo_build 8
7834 shell: bash
7835 - name: split debug symbols
7836 run: |-
7837 flowey e 8 flowey_lib_hvlite::run_split_debug_info 3
7838 flowey e 8 flowey_lib_hvlite::run_cargo_build 9
7839 flowey e 8 flowey_lib_hvlite::build_openvmm_vhost 0
7840 flowey e 8 flowey_core::pipeline::artifact::publish 1
7841 flowey e 8 flowey_lib_hvlite::init_cross_build 5
7842 shell: bash
7843 - name: cargo build vmgstool
7844 run: |-
7845 flowey e 8 flowey_lib_common::run_cargo_build 9
7846 flowey e 8 flowey_lib_hvlite::run_cargo_build 17
7847 shell: bash
7848 - name: split debug symbols
7849 run: |-
7850 flowey e 8 flowey_lib_hvlite::run_split_debug_info 8
7851 flowey e 8 flowey_lib_hvlite::run_cargo_build 18
7852 flowey e 8 flowey_lib_hvlite::build_vmgstool 0
7853 flowey e 8 flowey_core::pipeline::artifact::publish 2
7854 flowey e 8 flowey_lib_hvlite::init_cross_build 4
7855 shell: bash
7856 - name: cargo build vmgstool
7857 run: |-
7858 flowey e 8 flowey_lib_common::run_cargo_build 8
7859 flowey e 8 flowey_lib_hvlite::run_cargo_build 15
7860 shell: bash
7861 - name: split debug symbols
7862 run: |-
7863 flowey e 8 flowey_lib_hvlite::run_split_debug_info 7
7864 flowey e 8 flowey_lib_hvlite::run_cargo_build 16
7865 flowey e 8 flowey_lib_hvlite::build_vmgstool 1
7866 flowey e 8 flowey_core::pipeline::artifact::publish 3
7867 flowey e 8 flowey_lib_hvlite::init_cross_build 3
7868 shell: bash
7869 - name: cargo build vmgs_lib
7870 run: |-
7871 flowey e 8 flowey_lib_common::run_cargo_build 7
7872 flowey e 8 flowey_lib_hvlite::run_cargo_build 14
7873 flowey e 8 flowey_lib_hvlite::build_and_test_vmgs_lib 0
7874 flowey e 8 flowey_lib_hvlite::build_and_test_vmgs_lib 1
7875 flowey e 8 flowey_core::pipeline::artifact::publish 4
7876 flowey e 8 flowey_lib_hvlite::init_cross_build 1
7877 shell: bash
7878 - name: cargo build igvmfilegen
7879 run: |-
7880 flowey e 8 flowey_lib_common::run_cargo_build 0
7881 flowey e 8 flowey_lib_hvlite::run_cargo_build 0
7882 shell: bash
7883 - name: split debug symbols
7884 run: |-
7885 flowey e 8 flowey_lib_hvlite::run_split_debug_info 6
7886 flowey e 8 flowey_lib_hvlite::run_cargo_build 1
7887 flowey e 8 flowey_lib_hvlite::build_igvmfilegen 0
7888 flowey e 8 flowey_core::pipeline::artifact::publish 5
7889 flowey e 8 flowey_lib_hvlite::init_cross_build 6
7890 shell: bash
7891 - name: cargo build ohcldiag-dev
7892 run: |-
7893 flowey e 8 flowey_lib_common::run_cargo_build 1
7894 flowey e 8 flowey_lib_hvlite::run_cargo_build 2
7895 shell: bash
7896 - name: split debug symbols
7897 run: |-
7898 flowey e 8 flowey_lib_hvlite::run_split_debug_info 0
7899 flowey e 8 flowey_lib_hvlite::run_cargo_build 3
7900 flowey e 8 flowey_lib_hvlite::build_ohcldiag_dev 0
7901 flowey e 8 flowey_core::pipeline::artifact::publish 6
7902 shell: bash
7903 - name: unpack openvmm-deps archive
7904 run: flowey e 8 flowey_lib_hvlite::resolve_openvmm_deps 0
7905 shell: bash
7906 - name: extract Aarch64 sysroot.tar.gz
7907 run: |-
7908 flowey e 8 flowey_lib_hvlite::init_openvmm_magicpath_openhcl_sysroot 0
7909 flowey e 8 flowey_lib_hvlite::init_cross_build 7
7910 shell: bash
7911 - name: cargo build openvmm
7912 run: |-
7913 flowey e 8 flowey_lib_common::run_cargo_build 3
7914 flowey e 8 flowey_lib_hvlite::run_cargo_build 6
7915 shell: bash
7916 - name: split debug symbols
7917 run: |-
7918 flowey e 8 flowey_lib_hvlite::run_split_debug_info 2
7919 flowey e 8 flowey_lib_hvlite::run_cargo_build 7
7920 flowey e 8 flowey_lib_hvlite::build_openvmm 1
7921 flowey e 8 flowey_core::pipeline::artifact::publish 7
7922 flowey e 8 flowey_lib_hvlite::init_cross_build 8
7923 shell: bash
7924 - name: cargo build openvmm_vhost
7925 run: |-
7926 flowey e 8 flowey_lib_common::run_cargo_build 5
7927 flowey e 8 flowey_lib_hvlite::run_cargo_build 10
7928 shell: bash
7929 - name: split debug symbols
7930 run: |-
7931 flowey e 8 flowey_lib_hvlite::run_split_debug_info 4
7932 flowey e 8 flowey_lib_hvlite::run_cargo_build 11
7933 flowey e 8 flowey_lib_hvlite::build_openvmm_vhost 1
7934 flowey e 8 flowey_core::pipeline::artifact::publish 8
7935 flowey e 8 flowey_lib_hvlite::init_cross_build 9
7936 shell: bash
7937 - name: cargo build prep_steps
7938 run: |-
7939 flowey e 8 flowey_lib_common::run_cargo_build 6
7940 flowey e 8 flowey_lib_hvlite::run_cargo_build 12
7941 shell: bash
7942 - name: split debug symbols
7943 run: |-
7944 flowey e 8 flowey_lib_hvlite::run_split_debug_info 5
7945 flowey e 8 flowey_lib_hvlite::run_cargo_build 13
7946 flowey e 8 flowey_lib_hvlite::build_prep_steps 0
7947 flowey e 8 flowey_core::pipeline::artifact::publish 9
7948 shell: bash
7949 - name: 'validate cache entry: gh-release-download'
7950 run: flowey e 8 flowey_lib_common::cache 3
7951 shell: bash
7952 - name: 🌼📦 Publish aarch64-linux-igvmfilegen
7953 uses: actions/upload-artifact@v7
7954 with:
7955 name: aarch64-linux-igvmfilegen
7956 path: ${{ runner.temp }}/publish_artifacts/aarch64-linux-igvmfilegen/
7957 include-hidden-files: true
7958 - name: 🌼📦 Publish aarch64-linux-musl-openvmm
7959 uses: actions/upload-artifact@v7
7960 with:
7961 name: aarch64-linux-musl-openvmm
7962 path: ${{ runner.temp }}/publish_artifacts/aarch64-linux-musl-openvmm/
7963 include-hidden-files: true
7964 - name: 🌼📦 Publish aarch64-linux-musl-openvmm_vhost
7965 uses: actions/upload-artifact@v7
7966 with:
7967 name: aarch64-linux-musl-openvmm_vhost
7968 path: ${{ runner.temp }}/publish_artifacts/aarch64-linux-musl-openvmm_vhost/
7969 include-hidden-files: true
7970 - name: 🌼📦 Publish aarch64-linux-ohcldiag-dev
7971 uses: actions/upload-artifact@v7
7972 with:
7973 name: aarch64-linux-ohcldiag-dev
7974 path: ${{ runner.temp }}/publish_artifacts/aarch64-linux-ohcldiag-dev/
7975 include-hidden-files: true
7976 - name: 🌼📦 Publish aarch64-linux-openvmm
7977 uses: actions/upload-artifact@v7
7978 with:
7979 name: aarch64-linux-openvmm
7980 path: ${{ runner.temp }}/publish_artifacts/aarch64-linux-openvmm/
7981 include-hidden-files: true
7982 - name: 🌼📦 Publish aarch64-linux-openvmm_vhost
7983 uses: actions/upload-artifact@v7
7984 with:
7985 name: aarch64-linux-openvmm_vhost
7986 path: ${{ runner.temp }}/publish_artifacts/aarch64-linux-openvmm_vhost/
7987 include-hidden-files: true
7988 - name: 🌼📦 Publish aarch64-linux-prep_steps
7989 uses: actions/upload-artifact@v7
7990 with:
7991 name: aarch64-linux-prep_steps
7992 path: ${{ runner.temp }}/publish_artifacts/aarch64-linux-prep_steps/
7993 include-hidden-files: true
7994 - name: 🌼📦 Publish aarch64-linux-vmgs_lib
7995 uses: actions/upload-artifact@v7
7996 with:
7997 name: aarch64-linux-vmgs_lib
7998 path: ${{ runner.temp }}/publish_artifacts/aarch64-linux-vmgs_lib/
7999 include-hidden-files: true
8000 - name: 🌼📦 Publish aarch64-linux-vmgstool
8001 uses: actions/upload-artifact@v7
8002 with:
8003 name: aarch64-linux-vmgstool
8004 path: ${{ runner.temp }}/publish_artifacts/aarch64-linux-vmgstool/
8005 include-hidden-files: true
8006 - name: 🌼📦 Publish aarch64-linux-vmgstool-dev
8007 uses: actions/upload-artifact@v7
8008 with:
8009 name: aarch64-linux-vmgstool-dev
8010 path: ${{ runner.temp }}/publish_artifacts/aarch64-linux-vmgstool-dev/
8011 include-hidden-files: true
8012 job9:
8013 name: build artifacts (for VMM tests) [x64-linux]
8014 runs-on:
8015 - self-hosted
8016 - 1ES.Pool=openvmm-gh-amd-westus3
8017 - 1ES.ImageOverride=ubuntu2404-amd64
8018 - JobId=job9-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}
8019 permissions:
8020 contents: read
8021 id-token: write
8022 if: github.event.pull_request.draft == false
8023 steps:
8024 - run: |
8025 set -x
8026 i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
8027 sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
8028 curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.95.0 -y
8029 . "$HOME/.cargo/env"
8030 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
8031 rustup show
8032 if: runner.os == 'Linux'
8033 name: rustup (Linux)
8034 shell: bash
8035 - run: |
8036 set -x
8037 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
8038 ./rustup-init.exe -y --default-toolchain=1.95.0
8039 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
8040 if: runner.os == 'Windows' && runner.arch == 'X64'
8041 name: rustup (Windows X64)
8042 shell: bash
8043 - run: |
8044 set -x
8045 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
8046 ./rustup-init.exe -y --default-toolchain=1.95.0
8047 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
8048 if: runner.os == 'Windows' && runner.arch == 'ARM64'
8049 name: rustup (Windows ARM64)
8050 shell: bash
8051 - uses: actions/checkout@v6
8052 with:
8053 path: flowey_bootstrap
8054 - name: Build flowey
8055 run: |
8056 set -x
8057 CARGO_INCREMENTAL=0 cargo build -p flowey_hvlite --target x86_64-unknown-linux-gnu --profile flowey-ci
8058 OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
8059 mkdir -p "$OutDirNormal"
8060 mv ./.github/workflows/openvmm-ci.yaml "$OutDirNormal/pipeline.yaml"
8061 mv target/x86_64-unknown-linux-gnu/flowey-ci/flowey_hvlite "$OutDirNormal/flowey"
8062 working-directory: flowey_bootstrap
8063 shell: bash
8064 - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH
8065 shell: bash
8066 name: 🌼📦 Add flowey to PATH
8067 - name: 🌼🔎 Self-check YAML
8068 run: |-
8069 ESCAPED_AGENT_TEMPDIR=$(
8070 cat <<'EOF' | sed 's/\\/\\\\/g'
8071 ${{ runner.temp }}
8072 EOF
8073 )
8074 flowey pipeline github --runtime $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci
8075 shell: bash
8076 - name: 🌼🛫 Initialize job
8077 run: |
8078 AgentTempDirNormal="${{ runner.temp }}"
8079 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
8080 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
8081
8082 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey
8083
8084 echo '"debug"' | flowey v 9 'FLOWEY_LOG' update
8085 echo "${{ runner.temp }}/work" | flowey v 9 '_internal_WORKING_DIR' --is-raw-string update
8086
8087 cat <<'EOF' | flowey v 9 'verbose' update
8088 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
8089 EOF
8090 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-igvmfilegen"
8091 echo "$AgentTempDirNormal/publish_artifacts/x64-linux-igvmfilegen" | flowey v 9 'artifact_publish_from_x64-linux-igvmfilegen' --is-raw-string update
8092 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-musl-openvmm"
8093 echo "$AgentTempDirNormal/publish_artifacts/x64-linux-musl-openvmm" | flowey v 9 'artifact_publish_from_x64-linux-musl-openvmm' --is-raw-string update
8094 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-musl-openvmm_vhost"
8095 echo "$AgentTempDirNormal/publish_artifacts/x64-linux-musl-openvmm_vhost" | flowey v 9 'artifact_publish_from_x64-linux-musl-openvmm_vhost' --is-raw-string update
8096 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-musl-vmm-tests-archive"
8097 echo "$AgentTempDirNormal/publish_artifacts/x64-linux-musl-vmm-tests-archive" | flowey v 9 'artifact_publish_from_x64-linux-musl-vmm-tests-archive' --is-raw-string update
8098 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-ohcldiag-dev"
8099 echo "$AgentTempDirNormal/publish_artifacts/x64-linux-ohcldiag-dev" | flowey v 9 'artifact_publish_from_x64-linux-ohcldiag-dev' --is-raw-string update
8100 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-openvmm"
8101 echo "$AgentTempDirNormal/publish_artifacts/x64-linux-openvmm" | flowey v 9 'artifact_publish_from_x64-linux-openvmm' --is-raw-string update
8102 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-openvmm_vhost"
8103 echo "$AgentTempDirNormal/publish_artifacts/x64-linux-openvmm_vhost" | flowey v 9 'artifact_publish_from_x64-linux-openvmm_vhost' --is-raw-string update
8104 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-prep_steps"
8105 echo "$AgentTempDirNormal/publish_artifacts/x64-linux-prep_steps" | flowey v 9 'artifact_publish_from_x64-linux-prep_steps' --is-raw-string update
8106 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-vmgs_lib"
8107 echo "$AgentTempDirNormal/publish_artifacts/x64-linux-vmgs_lib" | flowey v 9 'artifact_publish_from_x64-linux-vmgs_lib' --is-raw-string update
8108 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-vmgstool"
8109 echo "$AgentTempDirNormal/publish_artifacts/x64-linux-vmgstool" | flowey v 9 'artifact_publish_from_x64-linux-vmgstool' --is-raw-string update
8110 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-vmgstool-dev"
8111 echo "$AgentTempDirNormal/publish_artifacts/x64-linux-vmgstool-dev" | flowey v 9 'artifact_publish_from_x64-linux-vmgstool-dev' --is-raw-string update
8112 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-vmm-tests-archive"
8113 echo "$AgentTempDirNormal/publish_artifacts/x64-linux-vmm-tests-archive" | flowey v 9 'artifact_publish_from_x64-linux-vmm-tests-archive' --is-raw-string update
8114 shell: bash
8115 - name: add default cargo home to path
8116 run: flowey e 9 flowey_lib_common::install_rust 0
8117 shell: bash
8118 - name: install Rust
8119 run: flowey e 9 flowey_lib_common::install_rust 1
8120 shell: bash
8121 - name: detect active toolchain
8122 run: |-
8123 flowey e 9 flowey_lib_common::install_rust 2
8124 flowey e 9 flowey_lib_common::cfg_cargo_common_flags 0
8125 shell: bash
8126 - name: checking if packages need to be installed
8127 run: flowey e 9 flowey_lib_common::install_dist_pkg 0
8128 shell: bash
8129 - name: installing packages
8130 run: flowey e 9 flowey_lib_common::install_dist_pkg 1
8131 shell: bash
8132 - name: check if openvmm needs to be cloned
8133 run: |-
8134 flowey e 9 flowey_lib_common::git_checkout 0
8135 flowey v 9 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:489:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46 write-to-env github floweyvar1
8136 flowey v 9 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION
8137 shell: bash
8138 - id: flowey_lib_common__git_checkout__1
8139 uses: actions/checkout@v6
8140 with:
8141 fetch-depth: '1'
8142 path: repo0
8143 persist-credentials: ${{ env.floweyvar1 }}
8144 name: checkout repo openvmm
8145 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
8146 - name: report cloned repo directories
8147 run: |-
8148 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
8149 ${{ github.workspace }}
8150 EOF
8151 flowey e 9 flowey_lib_common::git_checkout 3
8152 flowey e 9 flowey_lib_hvlite::git_checkout_openvmm_repo 0
8153 shell: bash
8154 - name: set '-Dwarnings' in .cargo/config.toml
8155 run: flowey e 9 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
8156 shell: bash
8157 - name: create gh-release-download cache dir
8158 run: flowey e 9 flowey_lib_common::download_gh_release 0
8159 shell: bash
8160 - name: Pre-processing cache vars
8161 run: |-
8162 flowey e 9 flowey_lib_common::cache 4
8163 flowey v 9 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar4
8164 flowey v 9 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar5
8165 shell: bash
8166 - id: flowey_lib_common__cache__5
8167 uses: actions/cache@v5
8168 with:
8169 key: ${{ env.floweyvar4 }}
8170 path: ${{ env.floweyvar5 }}
8171 name: 'Restore cache: gh-release-download'
8172 - name: download artifacts from github releases
8173 run: |-
8174 flowey v 9 'flowey_lib_common::cache:12:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__5.outputs.cache-hit <<EOF
8175 ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
8176 EOF
8177 flowey e 9 flowey_lib_common::cache 6
8178 flowey e 9 flowey_lib_common::download_gh_release 1
8179 shell: bash
8180 - name: unpack protoc
8181 run: |-
8182 flowey e 9 flowey_lib_common::resolve_protoc 0
8183 flowey e 9 flowey_lib_hvlite::cfg_openvmm_magicpath 0
8184 shell: bash
8185 - name: symlink protoc
8186 run: |-
8187 flowey e 9 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
8188 flowey e 9 flowey_lib_hvlite::init_cross_build 1
8189 shell: bash
8190 - name: cargo build openvmm
8191 run: |-
8192 flowey e 9 flowey_lib_common::run_cargo_build 2
8193 flowey e 9 flowey_lib_hvlite::run_cargo_build 4
8194 shell: bash
8195 - name: split debug symbols
8196 run: |-
8197 flowey e 9 flowey_lib_hvlite::run_split_debug_info 1
8198 flowey e 9 flowey_lib_hvlite::run_cargo_build 5
8199 flowey e 9 flowey_lib_hvlite::build_openvmm 0
8200 flowey e 9 flowey_core::pipeline::artifact::publish 0
8201 flowey e 9 flowey_lib_hvlite::init_cross_build 3
8202 shell: bash
8203 - name: cargo build openvmm_vhost
8204 run: |-
8205 flowey e 9 flowey_lib_common::run_cargo_build 4
8206 flowey e 9 flowey_lib_hvlite::run_cargo_build 8
8207 shell: bash
8208 - name: split debug symbols
8209 run: |-
8210 flowey e 9 flowey_lib_hvlite::run_split_debug_info 3
8211 flowey e 9 flowey_lib_hvlite::run_cargo_build 9
8212 flowey e 9 flowey_lib_hvlite::build_openvmm_vhost 0
8213 flowey e 9 flowey_core::pipeline::artifact::publish 1
8214 flowey e 9 flowey_lib_hvlite::init_cross_build 6
8215 shell: bash
8216 - name: cargo build vmgstool
8217 run: |-
8218 flowey e 9 flowey_lib_common::run_cargo_build 9
8219 flowey e 9 flowey_lib_hvlite::run_cargo_build 17
8220 shell: bash
8221 - name: split debug symbols
8222 run: |-
8223 flowey e 9 flowey_lib_hvlite::run_split_debug_info 8
8224 flowey e 9 flowey_lib_hvlite::run_cargo_build 18
8225 flowey e 9 flowey_lib_hvlite::build_vmgstool 0
8226 flowey e 9 flowey_core::pipeline::artifact::publish 2
8227 flowey e 9 flowey_lib_hvlite::init_cross_build 5
8228 shell: bash
8229 - name: cargo build vmgstool
8230 run: |-
8231 flowey e 9 flowey_lib_common::run_cargo_build 8
8232 flowey e 9 flowey_lib_hvlite::run_cargo_build 15
8233 shell: bash
8234 - name: split debug symbols
8235 run: |-
8236 flowey e 9 flowey_lib_hvlite::run_split_debug_info 7
8237 flowey e 9 flowey_lib_hvlite::run_cargo_build 16
8238 flowey e 9 flowey_lib_hvlite::build_vmgstool 1
8239 flowey e 9 flowey_core::pipeline::artifact::publish 3
8240 flowey e 9 flowey_lib_hvlite::init_cross_build 4
8241 shell: bash
8242 - name: cargo build vmgs_lib
8243 run: |-
8244 flowey e 9 flowey_lib_common::run_cargo_build 7
8245 flowey e 9 flowey_lib_hvlite::run_cargo_build 14
8246 flowey e 9 flowey_lib_hvlite::build_and_test_vmgs_lib 0
8247 shell: bash
8248 - name: test vmgs_lib
8249 run: |-
8250 flowey e 9 flowey_lib_hvlite::build_and_test_vmgs_lib 1
8251 flowey e 9 flowey_lib_hvlite::build_and_test_vmgs_lib 2
8252 flowey e 9 flowey_core::pipeline::artifact::publish 4
8253 flowey e 9 flowey_lib_hvlite::init_cross_build 2
8254 shell: bash
8255 - name: cargo build igvmfilegen
8256 run: |-
8257 flowey e 9 flowey_lib_common::run_cargo_build 0
8258 flowey e 9 flowey_lib_hvlite::run_cargo_build 0
8259 shell: bash
8260 - name: split debug symbols
8261 run: |-
8262 flowey e 9 flowey_lib_hvlite::run_split_debug_info 6
8263 flowey e 9 flowey_lib_hvlite::run_cargo_build 1
8264 flowey e 9 flowey_lib_hvlite::build_igvmfilegen 0
8265 flowey e 9 flowey_core::pipeline::artifact::publish 5
8266 flowey e 9 flowey_lib_hvlite::init_cross_build 7
8267 shell: bash
8268 - name: cargo build ohcldiag-dev
8269 run: |-
8270 flowey e 9 flowey_lib_common::run_cargo_build 1
8271 flowey e 9 flowey_lib_hvlite::run_cargo_build 2
8272 shell: bash
8273 - name: split debug symbols
8274 run: |-
8275 flowey e 9 flowey_lib_hvlite::run_split_debug_info 0
8276 flowey e 9 flowey_lib_hvlite::run_cargo_build 3
8277 flowey e 9 flowey_lib_hvlite::build_ohcldiag_dev 0
8278 flowey e 9 flowey_core::pipeline::artifact::publish 6
8279 shell: bash
8280 - name: unpack openvmm-deps archive
8281 run: flowey e 9 flowey_lib_hvlite::resolve_openvmm_deps 0
8282 shell: bash
8283 - name: extract X86_64 sysroot.tar.gz
8284 run: |-
8285 flowey e 9 flowey_lib_hvlite::init_openvmm_magicpath_openhcl_sysroot 0
8286 flowey e 9 flowey_lib_hvlite::init_cross_build 9
8287 shell: bash
8288 - name: cargo build openvmm
8289 run: |-
8290 flowey e 9 flowey_lib_common::run_cargo_build 3
8291 flowey e 9 flowey_lib_hvlite::run_cargo_build 6
8292 shell: bash
8293 - name: split debug symbols
8294 run: |-
8295 flowey e 9 flowey_lib_hvlite::run_split_debug_info 2
8296 flowey e 9 flowey_lib_hvlite::run_cargo_build 7
8297 flowey e 9 flowey_lib_hvlite::build_openvmm 1
8298 flowey e 9 flowey_core::pipeline::artifact::publish 7
8299 flowey e 9 flowey_lib_hvlite::init_cross_build 10
8300 shell: bash
8301 - name: cargo build openvmm_vhost
8302 run: |-
8303 flowey e 9 flowey_lib_common::run_cargo_build 5
8304 flowey e 9 flowey_lib_hvlite::run_cargo_build 10
8305 shell: bash
8306 - name: split debug symbols
8307 run: |-
8308 flowey e 9 flowey_lib_hvlite::run_split_debug_info 4
8309 flowey e 9 flowey_lib_hvlite::run_cargo_build 11
8310 flowey e 9 flowey_lib_hvlite::build_openvmm_vhost 1
8311 flowey e 9 flowey_core::pipeline::artifact::publish 8
8312 flowey e 9 flowey_lib_hvlite::init_cross_build 11
8313 shell: bash
8314 - name: cargo build prep_steps
8315 run: |-
8316 flowey e 9 flowey_lib_common::run_cargo_build 6
8317 flowey e 9 flowey_lib_hvlite::run_cargo_build 12
8318 shell: bash
8319 - name: split debug symbols
8320 run: |-
8321 flowey e 9 flowey_lib_hvlite::run_split_debug_info 5
8322 flowey e 9 flowey_lib_hvlite::run_cargo_build 13
8323 flowey e 9 flowey_lib_hvlite::build_prep_steps 0
8324 flowey e 9 flowey_core::pipeline::artifact::publish 9
8325 shell: bash
8326 - name: create cargo-nextest cache dir
8327 run: |-
8328 flowey e 9 flowey_lib_common::download_cargo_nextest 0
8329 flowey e 9 flowey_lib_common::download_cargo_nextest 1
8330 flowey e 9 flowey_lib_common::download_cargo_nextest 2
8331 flowey e 9 flowey_lib_common::download_cargo_nextest 3
8332 shell: bash
8333 - name: Pre-processing cache vars
8334 run: |-
8335 flowey e 9 flowey_lib_common::cache 0
8336 flowey v 9 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar2
8337 flowey v 9 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar3
8338 shell: bash
8339 - id: flowey_lib_common__cache__1
8340 uses: actions/cache@v5
8341 with:
8342 key: ${{ env.floweyvar2 }}
8343 path: ${{ env.floweyvar3 }}
8344 name: 'Restore cache: cargo-nextest'
8345 - name: downloading cargo-nextest
8346 run: |-
8347 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
8348 ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
8349 EOF
8350 flowey e 9 flowey_lib_common::cache 2
8351 flowey e 9 flowey_lib_common::download_cargo_nextest 4
8352 shell: bash
8353 - name: report $CARGO_HOME
8354 run: flowey e 9 flowey_lib_common::install_rust 3
8355 shell: bash
8356 - name: installing cargo-nextest
8357 run: |-
8358 flowey e 9 flowey_lib_common::install_cargo_nextest 0
8359 flowey e 9 flowey_lib_hvlite::init_cross_build 0
8360 shell: bash
8361 - name: build + archive 'vmm_tests' nextests
8362 run: |-
8363 flowey e 9 flowey_lib_common::run_cargo_nextest_archive 0
8364 flowey e 9 flowey_lib_hvlite::build_nextest_vmm_tests 0
8365 flowey e 9 flowey_core::pipeline::artifact::publish 10
8366 flowey e 9 flowey_lib_hvlite::init_cross_build 8
8367 shell: bash
8368 - name: build + archive 'vmm_tests' nextests
8369 run: |-
8370 flowey e 9 flowey_lib_common::run_cargo_nextest_archive 1
8371 flowey e 9 flowey_lib_hvlite::build_nextest_vmm_tests 1
8372 flowey e 9 flowey_core::pipeline::artifact::publish 11
8373 shell: bash
8374 - name: 'validate cache entry: cargo-nextest'
8375 run: flowey e 9 flowey_lib_common::cache 3
8376 shell: bash
8377 - name: 'validate cache entry: gh-release-download'
8378 run: flowey e 9 flowey_lib_common::cache 7
8379 shell: bash
8380 - name: 🌼📦 Publish x64-linux-igvmfilegen
8381 uses: actions/upload-artifact@v7
8382 with:
8383 name: x64-linux-igvmfilegen
8384 path: ${{ runner.temp }}/publish_artifacts/x64-linux-igvmfilegen/
8385 include-hidden-files: true
8386 - name: 🌼📦 Publish x64-linux-musl-openvmm
8387 uses: actions/upload-artifact@v7
8388 with:
8389 name: x64-linux-musl-openvmm
8390 path: ${{ runner.temp }}/publish_artifacts/x64-linux-musl-openvmm/
8391 include-hidden-files: true
8392 - name: 🌼📦 Publish x64-linux-musl-openvmm_vhost
8393 uses: actions/upload-artifact@v7
8394 with:
8395 name: x64-linux-musl-openvmm_vhost
8396 path: ${{ runner.temp }}/publish_artifacts/x64-linux-musl-openvmm_vhost/
8397 include-hidden-files: true
8398 - name: 🌼📦 Publish x64-linux-musl-vmm-tests-archive
8399 uses: actions/upload-artifact@v7
8400 with:
8401 name: x64-linux-musl-vmm-tests-archive
8402 path: ${{ runner.temp }}/publish_artifacts/x64-linux-musl-vmm-tests-archive/
8403 include-hidden-files: true
8404 - name: 🌼📦 Publish x64-linux-ohcldiag-dev
8405 uses: actions/upload-artifact@v7
8406 with:
8407 name: x64-linux-ohcldiag-dev
8408 path: ${{ runner.temp }}/publish_artifacts/x64-linux-ohcldiag-dev/
8409 include-hidden-files: true
8410 - name: 🌼📦 Publish x64-linux-openvmm
8411 uses: actions/upload-artifact@v7
8412 with:
8413 name: x64-linux-openvmm
8414 path: ${{ runner.temp }}/publish_artifacts/x64-linux-openvmm/
8415 include-hidden-files: true
8416 - name: 🌼📦 Publish x64-linux-openvmm_vhost
8417 uses: actions/upload-artifact@v7
8418 with:
8419 name: x64-linux-openvmm_vhost
8420 path: ${{ runner.temp }}/publish_artifacts/x64-linux-openvmm_vhost/
8421 include-hidden-files: true
8422 - name: 🌼📦 Publish x64-linux-prep_steps
8423 uses: actions/upload-artifact@v7
8424 with:
8425 name: x64-linux-prep_steps
8426 path: ${{ runner.temp }}/publish_artifacts/x64-linux-prep_steps/
8427 include-hidden-files: true
8428 - name: 🌼📦 Publish x64-linux-vmgs_lib
8429 uses: actions/upload-artifact@v7
8430 with:
8431 name: x64-linux-vmgs_lib
8432 path: ${{ runner.temp }}/publish_artifacts/x64-linux-vmgs_lib/
8433 include-hidden-files: true
8434 - name: 🌼📦 Publish x64-linux-vmgstool
8435 uses: actions/upload-artifact@v7
8436 with:
8437 name: x64-linux-vmgstool
8438 path: ${{ runner.temp }}/publish_artifacts/x64-linux-vmgstool/
8439 include-hidden-files: true
8440 - name: 🌼📦 Publish x64-linux-vmgstool-dev
8441 uses: actions/upload-artifact@v7
8442 with:
8443 name: x64-linux-vmgstool-dev
8444 path: ${{ runner.temp }}/publish_artifacts/x64-linux-vmgstool-dev/
8445 include-hidden-files: true
8446 - name: 🌼📦 Publish x64-linux-vmm-tests-archive
8447 uses: actions/upload-artifact@v7
8448 with:
8449 name: x64-linux-vmm-tests-archive
8450 path: ${{ runner.temp }}/publish_artifacts/x64-linux-vmm-tests-archive/
8451 include-hidden-files: true
8452 - name: 🌼🧼 Redact bootstrap var db
8453 run: rm $AgentTempDirNormal/bootstrapped-flowey/job9.json
8454 shell: bash
8455 - name: 🌼🥾 Publish bootstrapped flowey
8456 uses: actions/upload-artifact@v7
8457 with:
8458 name: _internal-flowey-bootstrap-x86_64-linux-uid-11
8459 path: ${{ runner.temp }}/bootstrapped-flowey