microsoft/openvmm

Public

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

CodeCommitsIssuesPull requestsActionsInsightsSecurity
copilot/apply-async-process-wait-functionality

Branches

Tags

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

Clone

HTTPS

Download ZIP

.github/workflows/openvmm-ci.yaml

8285lines Β· 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 (none)' 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 (none)-junit-xml
1657 path: ${{ env.floweyvar1 }}
1658 name: 'publish test results: x64-windows-unit-tests-unit-tests crypto (none) (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 (none)' 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 (none)-junit-xml
1937 path: ${{ env.floweyvar2 }}
1938 name: 'publish test results: x64-linux-unit-tests-unit-tests crypto (none) (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 (none)' 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 (none)-junit-xml
2306 path: ${{ env.floweyvar2 }}
2307 name: 'publish test results: x64-linux-musl-unit-tests-unit-tests crypto (none) (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 (none)' 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 (none)-junit-xml
2716 path: ${{ env.floweyvar1 }}
2717 name: 'publish test results: aarch64-windows-unit-tests-unit-tests crypto (none) (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 (none)' 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 (none)-junit-xml
2972 path: ${{ env.floweyvar2 }}
2973 name: 'publish test results: aarch64-linux-unit-tests-unit-tests crypto (none) (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 (none)' 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 (none)-junit-xml
3341 path: ${{ env.floweyvar2 }}
3342 name: 'publish test results: aarch64-linux-musl-unit-tests-unit-tests crypto (none) (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-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-vmm-tests-archive" | flowey.exe v 19 'artifact_use_from_x64-windows-vmm-tests-archive' --is-raw-string update
3531 shell: bash
3532 - name: create cargo-nextest cache dir
3533 run: |-
3534 flowey.exe e 19 flowey_lib_common::download_cargo_nextest 0
3535 flowey.exe e 19 flowey_lib_common::download_cargo_nextest 1
3536 flowey.exe e 19 flowey_lib_common::download_cargo_nextest 2
3537 flowey.exe e 19 flowey_lib_common::download_cargo_nextest 3
3538 shell: bash
3539 - name: Pre-processing cache vars
3540 run: |-
3541 flowey.exe e 19 flowey_lib_common::cache 0
3542 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
3543 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
3544 shell: bash
3545 - id: flowey_lib_common__cache__1
3546 uses: actions/cache@v5
3547 with:
3548 key: ${{ env.floweyvar4 }}
3549 path: ${{ env.floweyvar5 }}
3550 name: 'Restore cache: cargo-nextest'
3551 - name: downloading cargo-nextest
3552 run: |-
3553 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
3554 ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
3555 EOF
3556 flowey.exe e 19 flowey_lib_common::cache 2
3557 flowey.exe e 19 flowey_lib_common::download_cargo_nextest 4
3558 shell: bash
3559 - name: check if openvmm needs to be cloned
3560 run: |-
3561 flowey.exe e 19 flowey_lib_common::git_checkout 0
3562 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
3563 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
3564 shell: bash
3565 - id: flowey_lib_common__git_checkout__1
3566 uses: actions/checkout@v6
3567 with:
3568 fetch-depth: '1'
3569 path: repo0
3570 persist-credentials: ${{ env.floweyvar3 }}
3571 name: checkout repo openvmm
3572 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
3573 - name: report cloned repo directories
3574 run: |-
3575 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
3576 ${{ github.workspace }}
3577 EOF
3578 flowey.exe e 19 flowey_lib_common::git_checkout 3
3579 flowey.exe e 19 flowey_lib_hvlite::git_checkout_openvmm_repo 0
3580 flowey.exe e 19 flowey_lib_hvlite::run_cargo_nextest_run 0
3581 flowey.exe e 19 flowey_core::pipeline::artifact::resolve 5
3582 flowey.exe e 19 flowey_core::pipeline::artifact::resolve 6
3583 flowey.exe e 19 flowey_core::pipeline::artifact::resolve 1
3584 flowey.exe e 19 flowey_core::pipeline::artifact::resolve 0
3585 flowey.exe e 19 flowey_core::pipeline::artifact::resolve 9
3586 flowey.exe e 19 flowey_core::pipeline::artifact::resolve 2
3587 flowey.exe e 19 flowey_core::pipeline::artifact::resolve 4
3588 flowey.exe e 19 flowey_core::pipeline::artifact::resolve 11
3589 flowey.exe e 19 flowey_core::pipeline::artifact::resolve 10
3590 flowey.exe e 19 flowey_core::pipeline::artifact::resolve 3
3591 flowey.exe e 19 flowey_core::pipeline::artifact::resolve 8
3592 shell: bash
3593 - name: creating new test content dir
3594 run: flowey.exe e 19 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 0
3595 shell: bash
3596 - name: resolve OpenHCL igvm artifact
3597 run: flowey.exe e 19 flowey_lib_hvlite::artifact_openhcl_igvm_from_recipe::resolve 0
3598 shell: bash
3599 - name: create gh-release-download cache dir
3600 run: flowey.exe e 19 flowey_lib_common::download_gh_release 0
3601 shell: bash
3602 - name: Pre-processing cache vars
3603 run: |-
3604 flowey.exe e 19 flowey_lib_common::cache 8
3605 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
3606 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
3607 shell: bash
3608 - id: flowey_lib_common__cache__9
3609 uses: actions/cache@v5
3610 with:
3611 key: ${{ env.floweyvar8 }}
3612 path: ${{ env.floweyvar9 }}
3613 name: 'Restore cache: gh-release-download'
3614 - name: download artifacts from github releases
3615 run: |-
3616 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
3617 ${{ steps.flowey_lib_common__cache__9.outputs.cache-hit }}
3618 EOF
3619 flowey.exe e 19 flowey_lib_common::cache 10
3620 flowey.exe e 19 flowey_lib_common::download_gh_release 1
3621 shell: bash
3622 - name: extract azcopy from archive
3623 run: flowey.exe e 19 flowey_lib_common::download_azcopy 0
3624 shell: bash
3625 - name: calculating required VMM tests disk images
3626 run: flowey.exe e 19 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 0
3627 shell: bash
3628 - name: downloading VMM test disk images
3629 run: |-
3630 flowey.exe e 19 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 1
3631 flowey.exe e 19 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 2
3632 shell: bash
3633 - name: create gh cache dir
3634 run: flowey.exe e 19 flowey_lib_common::download_gh_cli 0
3635 shell: bash
3636 - name: Pre-processing cache vars
3637 run: |-
3638 flowey.exe e 19 flowey_lib_common::cache 4
3639 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
3640 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
3641 shell: bash
3642 - id: flowey_lib_common__cache__5
3643 uses: actions/cache@v5
3644 with:
3645 key: ${{ env.floweyvar6 }}
3646 path: ${{ env.floweyvar7 }}
3647 name: 'Restore cache: gh-cli'
3648 - name: installing gh
3649 run: |-
3650 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
3651 ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
3652 EOF
3653 flowey.exe e 19 flowey_lib_common::cache 6
3654 flowey.exe e 19 flowey_lib_common::download_gh_cli 1
3655 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
3656 ${{ github.token }}
3657 EOF
3658 shell: bash
3659 - name: setup gh cli
3660 run: flowey.exe e 19 flowey_lib_common::use_gh_cli 0
3661 shell: bash
3662 - name: get latest completed action id
3663 run: flowey.exe e 19 flowey_lib_common::gh_latest_completed_workflow_id 0
3664 shell: bash
3665 - name: download artifacts from github actions run
3666 run: |-
3667 flowey.exe e 19 flowey_lib_common::download_gh_artifact 0
3668 flowey.exe e 19 flowey_lib_hvlite::download_release_igvm_files_from_gh::resolve 0
3669 shell: bash
3670 - name: unpack openvmm-test-initrd archives
3671 run: flowey.exe e 19 flowey_lib_hvlite::resolve_openvmm_test_initrd 0
3672 shell: bash
3673 - name: unpack openvmm-test-linux archives
3674 run: flowey.exe e 19 flowey_lib_hvlite::resolve_openvmm_test_linux_kernel 0
3675 shell: bash
3676 - name: unpack mu_msvm package (x64)
3677 run: flowey.exe e 19 flowey_lib_hvlite::download_uefi_mu_msvm 0
3678 shell: bash
3679 - name: setting up vmm_tests env
3680 run: |-
3681 flowey.exe e 19 flowey_lib_hvlite::init_vmm_tests_env 0
3682 flowey.exe e 19 flowey_lib_hvlite::run_cargo_nextest_run 1
3683 flowey.exe e 19 flowey_core::pipeline::artifact::resolve 12
3684 flowey.exe e 19 flowey_lib_hvlite::test_nextest_vmm_tests_archive 0
3685 shell: bash
3686 - name: generate nextest command
3687 run: flowey.exe e 19 flowey_lib_common::gen_cargo_nextest_run_cmd 0
3688 shell: bash
3689 - name: install vmm tests deps (windows)
3690 run: flowey.exe e 19 flowey_lib_hvlite::install_vmm_tests_deps 0
3691 shell: bash
3692 - name: starting test_igvm_agent_rpc_server
3693 run: flowey.exe e 19 flowey_lib_hvlite::run_test_igvm_agent_rpc_server 0
3694 shell: bash
3695 - name: run 'vmm_tests' nextest tests
3696 run: |-
3697 flowey.exe e 19 flowey_lib_common::run_cargo_nextest_run 0
3698 flowey.exe e 19 flowey_lib_common::run_cargo_nextest_run 1
3699 flowey.exe e 19 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 1
3700 shell: bash
3701 - name: stopping test_igvm_agent_rpc_server
3702 run: |-
3703 flowey.exe e 19 flowey_lib_hvlite::stop_test_igvm_agent_rpc_server 0
3704 flowey.exe e 19 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 2
3705 flowey.exe e 19 flowey_lib_common::publish_test_results 4
3706 flowey.exe e 19 flowey_lib_common::publish_test_results 5
3707 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
3708 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
3709 shell: bash
3710 - id: flowey_lib_common__publish_test_results__6
3711 uses: actions/upload-artifact@v7
3712 with:
3713 name: x64-windows-intel-vmm-tests-logs
3714 path: ${{ env.floweyvar2 }}
3715 name: 'publish test results: x64-windows-intel-vmm-tests (logs)'
3716 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
3717 - name: πŸ¦€ flowey rust steps
3718 run: |-
3719 flowey.exe e 19 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 3
3720 flowey.exe e 19 flowey_lib_common::publish_test_results 0
3721 flowey.exe e 19 flowey_lib_common::publish_test_results 1
3722 flowey.exe e 19 flowey_lib_common::publish_test_results 2
3723 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
3724 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
3725 shell: bash
3726 - id: flowey_lib_common__publish_test_results__3
3727 uses: actions/upload-artifact@v7
3728 with:
3729 name: x64-windows-intel-vmm-tests-junit-xml
3730 path: ${{ env.floweyvar1 }}
3731 name: 'publish test results: x64-windows-intel-vmm-tests (JUnit XML)'
3732 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
3733 - name: report test results to overall pipeline status
3734 run: flowey.exe e 19 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 4
3735 shell: bash
3736 - name: 'validate cache entry: cargo-nextest'
3737 run: flowey.exe e 19 flowey_lib_common::cache 3
3738 shell: bash
3739 - name: 'validate cache entry: gh-cli'
3740 run: flowey.exe e 19 flowey_lib_common::cache 7
3741 shell: bash
3742 - name: 'validate cache entry: gh-release-download'
3743 run: flowey.exe e 19 flowey_lib_common::cache 11
3744 shell: bash
3745 job2:
3746 name: build artifacts (shared VMM tests) [windows]
3747 runs-on:
3748 - self-hosted
3749 - 1ES.Pool=openvmm-gh-amd-westus3
3750 - 1ES.ImageOverride=win-amd64
3751 - JobId=job2-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}
3752 permissions:
3753 contents: read
3754 id-token: write
3755 if: github.event.pull_request.draft == false
3756 steps:
3757 - run: |
3758 set -x
3759 i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
3760 sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
3761 curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.95.0 -y
3762 . "$HOME/.cargo/env"
3763 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
3764 rustup show
3765 if: runner.os == 'Linux'
3766 name: rustup (Linux)
3767 shell: bash
3768 - run: |
3769 set -x
3770 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
3771 ./rustup-init.exe -y --default-toolchain=1.95.0
3772 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
3773 if: runner.os == 'Windows' && runner.arch == 'X64'
3774 name: rustup (Windows X64)
3775 shell: bash
3776 - run: |
3777 set -x
3778 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
3779 ./rustup-init.exe -y --default-toolchain=1.95.0
3780 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
3781 if: runner.os == 'Windows' && runner.arch == 'ARM64'
3782 name: rustup (Windows ARM64)
3783 shell: bash
3784 - uses: actions/checkout@v6
3785 with:
3786 path: flowey_bootstrap
3787 - name: Build flowey
3788 run: |
3789 set -x
3790 CARGO_INCREMENTAL=0 cargo build -p flowey_hvlite --target x86_64-pc-windows-msvc --profile flowey-ci
3791 OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
3792 mkdir -p "$OutDirNormal"
3793 mv ./.github/workflows/openvmm-ci.yaml "$OutDirNormal/pipeline.yaml"
3794 mv target/x86_64-pc-windows-msvc/flowey-ci/flowey_hvlite.exe "$OutDirNormal/flowey.exe"
3795 working-directory: flowey_bootstrap
3796 shell: bash
3797 - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH
3798 shell: bash
3799 name: πŸŒΌπŸ“¦ Add flowey to PATH
3800 - name: πŸŒΌπŸ”Ž Self-check YAML
3801 run: |-
3802 ESCAPED_AGENT_TEMPDIR=$(
3803 cat <<'EOF' | sed 's/\\/\\\\/g'
3804 ${{ runner.temp }}
3805 EOF
3806 )
3807 flowey.exe pipeline github --runtime $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci
3808 shell: bash
3809 - name: πŸŒΌπŸ›« Initialize job
3810 run: |
3811 AgentTempDirNormal="${{ runner.temp }}"
3812 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
3813 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
3814
3815 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe
3816
3817 echo '"debug"' | flowey.exe v 2 'FLOWEY_LOG' update
3818 echo "${{ runner.temp }}/work" | flowey.exe v 2 '_internal_WORKING_DIR' --is-raw-string update
3819
3820 cat <<'EOF' | flowey.exe v 2 'verbose' update
3821 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
3822 EOF
3823 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-pipette"
3824 echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-pipette" | flowey.exe v 2 'artifact_publish_from_aarch64-windows-pipette' --is-raw-string update
3825 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-pipette"
3826 echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-pipette" | flowey.exe v 2 'artifact_publish_from_x64-windows-pipette' --is-raw-string update
3827 shell: bash
3828 - name: add default cargo home to path
3829 run: flowey.exe e 2 flowey_lib_common::install_rust 0
3830 shell: bash
3831 - name: install Rust
3832 run: flowey.exe e 2 flowey_lib_common::install_rust 1
3833 shell: bash
3834 - name: detect active toolchain
3835 run: |-
3836 flowey.exe e 2 flowey_lib_common::install_rust 2
3837 flowey.exe e 2 flowey_lib_common::cfg_cargo_common_flags 0
3838 shell: bash
3839 - name: check if openvmm needs to be cloned
3840 run: |-
3841 flowey.exe e 2 flowey_lib_common::git_checkout 0
3842 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
3843 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
3844 shell: bash
3845 - id: flowey_lib_common__git_checkout__1
3846 uses: actions/checkout@v6
3847 with:
3848 fetch-depth: '1'
3849 path: repo0
3850 persist-credentials: ${{ env.floweyvar1 }}
3851 name: checkout repo openvmm
3852 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
3853 - name: report cloned repo directories
3854 run: |-
3855 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
3856 ${{ github.workspace }}
3857 EOF
3858 flowey.exe e 2 flowey_lib_common::git_checkout 3
3859 flowey.exe e 2 flowey_lib_hvlite::git_checkout_openvmm_repo 0
3860 shell: bash
3861 - name: set '-Dwarnings' in .cargo/config.toml
3862 run: flowey.exe e 2 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
3863 shell: bash
3864 - name: create gh-release-download cache dir
3865 run: flowey.exe e 2 flowey_lib_common::download_gh_release 0
3866 shell: bash
3867 - name: Pre-processing cache vars
3868 run: |-
3869 flowey.exe e 2 flowey_lib_common::cache 0
3870 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
3871 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
3872 shell: bash
3873 - id: flowey_lib_common__cache__1
3874 uses: actions/cache@v5
3875 with:
3876 key: ${{ env.floweyvar2 }}
3877 path: ${{ env.floweyvar3 }}
3878 name: 'Restore cache: gh-release-download'
3879 - name: download artifacts from github releases
3880 run: |-
3881 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
3882 ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
3883 EOF
3884 flowey.exe e 2 flowey_lib_common::cache 2
3885 flowey.exe e 2 flowey_lib_common::download_gh_release 1
3886 shell: bash
3887 - name: unpack protoc
3888 run: |-
3889 flowey.exe e 2 flowey_lib_common::resolve_protoc 0
3890 flowey.exe e 2 flowey_lib_hvlite::cfg_openvmm_magicpath 0
3891 shell: bash
3892 - name: symlink protoc
3893 run: |-
3894 flowey.exe e 2 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
3895 flowey.exe e 2 flowey_lib_hvlite::init_cross_build 0
3896 shell: bash
3897 - name: cargo build pipette
3898 run: |-
3899 flowey.exe e 2 flowey_lib_common::run_cargo_build 0
3900 flowey.exe e 2 flowey_lib_hvlite::run_cargo_build 0
3901 flowey.exe e 2 flowey_lib_hvlite::build_pipette 0
3902 flowey.exe e 2 flowey_core::pipeline::artifact::publish 0
3903 flowey.exe e 2 flowey_lib_hvlite::init_cross_build 1
3904 shell: bash
3905 - name: cargo build pipette
3906 run: |-
3907 flowey.exe e 2 flowey_lib_common::run_cargo_build 1
3908 flowey.exe e 2 flowey_lib_hvlite::run_cargo_build 1
3909 flowey.exe e 2 flowey_lib_hvlite::build_pipette 1
3910 flowey.exe e 2 flowey_core::pipeline::artifact::publish 1
3911 shell: bash
3912 - name: 'validate cache entry: gh-release-download'
3913 run: flowey.exe e 2 flowey_lib_common::cache 3
3914 shell: bash
3915 - name: πŸŒΌπŸ“¦ Publish aarch64-windows-pipette
3916 uses: actions/upload-artifact@v7
3917 with:
3918 name: aarch64-windows-pipette
3919 path: ${{ runner.temp }}/publish_artifacts/aarch64-windows-pipette/
3920 include-hidden-files: true
3921 - name: πŸŒΌπŸ“¦ Publish x64-windows-pipette
3922 uses: actions/upload-artifact@v7
3923 with:
3924 name: x64-windows-pipette
3925 path: ${{ runner.temp }}/publish_artifacts/x64-windows-pipette/
3926 include-hidden-files: true
3927 job20:
3928 name: run vmm-tests [x64-windows-intel-mi-secure]
3929 runs-on:
3930 - self-hosted
3931 - 1ES.Pool=openvmm-gh-intel-westus3
3932 - 1ES.ImageOverride=win-amd64
3933 - JobId=job20-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}
3934 permissions:
3935 contents: read
3936 id-token: write
3937 needs:
3938 - job12
3939 - job2
3940 - job3
3941 - job7
3942 if: github.event.pull_request.draft == false
3943 steps:
3944 - name: πŸŒΌπŸ“¦ Download artifacts
3945 uses: actions/download-artifact@v8
3946 with:
3947 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-vmm-tests-archive}'
3948 path: ${{ runner.temp }}/used_artifacts/
3949 - run: echo "${{ runner.temp }}/used_artifacts/_internal-flowey-bootstrap-x86_64-windows-uid-13" >> $GITHUB_PATH
3950 shell: bash
3951 name: πŸŒΌπŸ“¦ Add flowey to PATH
3952 - name: πŸŒΌπŸ›« Initialize job
3953 run: |
3954 AgentTempDirNormal="${{ runner.temp }}"
3955 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
3956 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
3957
3958 chmod +x $AgentTempDirNormal/used_artifacts/_internal-flowey-bootstrap-x86_64-windows-uid-13/flowey.exe
3959
3960 echo '"debug"' | flowey.exe v 20 'FLOWEY_LOG' update
3961 echo "${{ runner.temp }}/work" | flowey.exe v 20 '_internal_WORKING_DIR' --is-raw-string update
3962
3963 cat <<'EOF' | flowey.exe v 20 'verbose' update
3964 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
3965 EOF
3966 echo "${{ runner.temp }}\\used_artifacts\\x64-guest_test_uefi" | flowey.exe v 20 'artifact_use_from_x64-guest_test_uefi' --is-raw-string update
3967 echo "${{ runner.temp }}\\used_artifacts\\x64-linux-musl-pipette" | flowey.exe v 20 'artifact_use_from_x64-linux-musl-pipette' --is-raw-string update
3968 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
3969 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
3970 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
3971 echo "${{ runner.temp }}\\used_artifacts\\x64-tmks" | flowey.exe v 20 'artifact_use_from_x64-tmks' --is-raw-string update
3972 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-openvmm" | flowey.exe v 20 'artifact_use_from_x64-windows-openvmm' --is-raw-string update
3973 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-pipette" | flowey.exe v 20 'artifact_use_from_x64-windows-pipette' --is-raw-string update
3974 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-prep_steps" | flowey.exe v 20 'artifact_use_from_x64-windows-prep_steps' --is-raw-string update
3975 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
3976 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-tmk_vmm" | flowey.exe v 20 'artifact_use_from_x64-windows-tmk_vmm' --is-raw-string update
3977 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
3978 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-vmgstool" | flowey.exe v 20 'artifact_use_from_x64-windows-vmgstool' --is-raw-string update
3979 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
3980 shell: bash
3981 - name: create cargo-nextest cache dir
3982 run: |-
3983 flowey.exe e 20 flowey_lib_common::download_cargo_nextest 0
3984 flowey.exe e 20 flowey_lib_common::download_cargo_nextest 1
3985 flowey.exe e 20 flowey_lib_common::download_cargo_nextest 2
3986 flowey.exe e 20 flowey_lib_common::download_cargo_nextest 3
3987 shell: bash
3988 - name: Pre-processing cache vars
3989 run: |-
3990 flowey.exe e 20 flowey_lib_common::cache 0
3991 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
3992 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
3993 shell: bash
3994 - id: flowey_lib_common__cache__1
3995 uses: actions/cache@v5
3996 with:
3997 key: ${{ env.floweyvar4 }}
3998 path: ${{ env.floweyvar5 }}
3999 name: 'Restore cache: cargo-nextest'
4000 - name: downloading cargo-nextest
4001 run: |-
4002 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
4003 ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
4004 EOF
4005 flowey.exe e 20 flowey_lib_common::cache 2
4006 flowey.exe e 20 flowey_lib_common::download_cargo_nextest 4
4007 shell: bash
4008 - name: check if openvmm needs to be cloned
4009 run: |-
4010 flowey.exe e 20 flowey_lib_common::git_checkout 0
4011 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
4012 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
4013 shell: bash
4014 - id: flowey_lib_common__git_checkout__1
4015 uses: actions/checkout@v6
4016 with:
4017 fetch-depth: '1'
4018 path: repo0
4019 persist-credentials: ${{ env.floweyvar3 }}
4020 name: checkout repo openvmm
4021 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
4022 - name: report cloned repo directories
4023 run: |-
4024 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
4025 ${{ github.workspace }}
4026 EOF
4027 flowey.exe e 20 flowey_lib_common::git_checkout 3
4028 flowey.exe e 20 flowey_lib_hvlite::git_checkout_openvmm_repo 0
4029 flowey.exe e 20 flowey_lib_hvlite::run_cargo_nextest_run 0
4030 flowey.exe e 20 flowey_core::pipeline::artifact::resolve 5
4031 flowey.exe e 20 flowey_core::pipeline::artifact::resolve 6
4032 flowey.exe e 20 flowey_core::pipeline::artifact::resolve 1
4033 flowey.exe e 20 flowey_core::pipeline::artifact::resolve 0
4034 flowey.exe e 20 flowey_core::pipeline::artifact::resolve 9
4035 flowey.exe e 20 flowey_core::pipeline::artifact::resolve 2
4036 flowey.exe e 20 flowey_core::pipeline::artifact::resolve 4
4037 flowey.exe e 20 flowey_core::pipeline::artifact::resolve 11
4038 flowey.exe e 20 flowey_core::pipeline::artifact::resolve 10
4039 flowey.exe e 20 flowey_core::pipeline::artifact::resolve 3
4040 flowey.exe e 20 flowey_core::pipeline::artifact::resolve 8
4041 shell: bash
4042 - name: creating new test content dir
4043 run: flowey.exe e 20 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 0
4044 shell: bash
4045 - name: resolve OpenHCL igvm artifact
4046 run: flowey.exe e 20 flowey_lib_hvlite::artifact_openhcl_igvm_from_recipe::resolve 0
4047 shell: bash
4048 - name: create gh-release-download cache dir
4049 run: flowey.exe e 20 flowey_lib_common::download_gh_release 0
4050 shell: bash
4051 - name: Pre-processing cache vars
4052 run: |-
4053 flowey.exe e 20 flowey_lib_common::cache 8
4054 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
4055 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
4056 shell: bash
4057 - id: flowey_lib_common__cache__9
4058 uses: actions/cache@v5
4059 with:
4060 key: ${{ env.floweyvar8 }}
4061 path: ${{ env.floweyvar9 }}
4062 name: 'Restore cache: gh-release-download'
4063 - name: download artifacts from github releases
4064 run: |-
4065 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
4066 ${{ steps.flowey_lib_common__cache__9.outputs.cache-hit }}
4067 EOF
4068 flowey.exe e 20 flowey_lib_common::cache 10
4069 flowey.exe e 20 flowey_lib_common::download_gh_release 1
4070 shell: bash
4071 - name: extract azcopy from archive
4072 run: flowey.exe e 20 flowey_lib_common::download_azcopy 0
4073 shell: bash
4074 - name: calculating required VMM tests disk images
4075 run: flowey.exe e 20 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 0
4076 shell: bash
4077 - name: downloading VMM test disk images
4078 run: |-
4079 flowey.exe e 20 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 1
4080 flowey.exe e 20 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 2
4081 shell: bash
4082 - name: create gh cache dir
4083 run: flowey.exe e 20 flowey_lib_common::download_gh_cli 0
4084 shell: bash
4085 - name: Pre-processing cache vars
4086 run: |-
4087 flowey.exe e 20 flowey_lib_common::cache 4
4088 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
4089 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
4090 shell: bash
4091 - id: flowey_lib_common__cache__5
4092 uses: actions/cache@v5
4093 with:
4094 key: ${{ env.floweyvar6 }}
4095 path: ${{ env.floweyvar7 }}
4096 name: 'Restore cache: gh-cli'
4097 - name: installing gh
4098 run: |-
4099 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
4100 ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
4101 EOF
4102 flowey.exe e 20 flowey_lib_common::cache 6
4103 flowey.exe e 20 flowey_lib_common::download_gh_cli 1
4104 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
4105 ${{ github.token }}
4106 EOF
4107 shell: bash
4108 - name: setup gh cli
4109 run: flowey.exe e 20 flowey_lib_common::use_gh_cli 0
4110 shell: bash
4111 - name: get latest completed action id
4112 run: flowey.exe e 20 flowey_lib_common::gh_latest_completed_workflow_id 0
4113 shell: bash
4114 - name: download artifacts from github actions run
4115 run: |-
4116 flowey.exe e 20 flowey_lib_common::download_gh_artifact 0
4117 flowey.exe e 20 flowey_lib_hvlite::download_release_igvm_files_from_gh::resolve 0
4118 shell: bash
4119 - name: unpack openvmm-test-initrd archives
4120 run: flowey.exe e 20 flowey_lib_hvlite::resolve_openvmm_test_initrd 0
4121 shell: bash
4122 - name: unpack openvmm-test-linux archives
4123 run: flowey.exe e 20 flowey_lib_hvlite::resolve_openvmm_test_linux_kernel 0
4124 shell: bash
4125 - name: unpack mu_msvm package (x64)
4126 run: flowey.exe e 20 flowey_lib_hvlite::download_uefi_mu_msvm 0
4127 shell: bash
4128 - name: setting up vmm_tests env
4129 run: |-
4130 flowey.exe e 20 flowey_lib_hvlite::init_vmm_tests_env 0
4131 flowey.exe e 20 flowey_lib_hvlite::run_cargo_nextest_run 1
4132 flowey.exe e 20 flowey_core::pipeline::artifact::resolve 12
4133 flowey.exe e 20 flowey_lib_hvlite::test_nextest_vmm_tests_archive 0
4134 shell: bash
4135 - name: generate nextest command
4136 run: flowey.exe e 20 flowey_lib_common::gen_cargo_nextest_run_cmd 0
4137 shell: bash
4138 - name: install vmm tests deps (windows)
4139 run: flowey.exe e 20 flowey_lib_hvlite::install_vmm_tests_deps 0
4140 shell: bash
4141 - name: starting test_igvm_agent_rpc_server
4142 run: flowey.exe e 20 flowey_lib_hvlite::run_test_igvm_agent_rpc_server 0
4143 shell: bash
4144 - name: run 'vmm_tests' nextest tests
4145 run: |-
4146 flowey.exe e 20 flowey_lib_common::run_cargo_nextest_run 0
4147 flowey.exe e 20 flowey_lib_common::run_cargo_nextest_run 1
4148 flowey.exe e 20 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 1
4149 shell: bash
4150 - name: stopping test_igvm_agent_rpc_server
4151 run: |-
4152 flowey.exe e 20 flowey_lib_hvlite::stop_test_igvm_agent_rpc_server 0
4153 flowey.exe e 20 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 2
4154 flowey.exe e 20 flowey_lib_common::publish_test_results 4
4155 flowey.exe e 20 flowey_lib_common::publish_test_results 5
4156 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
4157 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
4158 shell: bash
4159 - id: flowey_lib_common__publish_test_results__6
4160 uses: actions/upload-artifact@v7
4161 with:
4162 name: x64-windows-intel-mi-secure-vmm-tests-logs
4163 path: ${{ env.floweyvar2 }}
4164 name: 'publish test results: x64-windows-intel-mi-secure-vmm-tests (logs)'
4165 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
4166 - name: πŸ¦€ flowey rust steps
4167 run: |-
4168 flowey.exe e 20 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 3
4169 flowey.exe e 20 flowey_lib_common::publish_test_results 0
4170 flowey.exe e 20 flowey_lib_common::publish_test_results 1
4171 flowey.exe e 20 flowey_lib_common::publish_test_results 2
4172 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
4173 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
4174 shell: bash
4175 - id: flowey_lib_common__publish_test_results__3
4176 uses: actions/upload-artifact@v7
4177 with:
4178 name: x64-windows-intel-mi-secure-vmm-tests-junit-xml
4179 path: ${{ env.floweyvar1 }}
4180 name: 'publish test results: x64-windows-intel-mi-secure-vmm-tests (JUnit XML)'
4181 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
4182 - name: report test results to overall pipeline status
4183 run: flowey.exe e 20 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 4
4184 shell: bash
4185 - name: 'validate cache entry: cargo-nextest'
4186 run: flowey.exe e 20 flowey_lib_common::cache 3
4187 shell: bash
4188 - name: 'validate cache entry: gh-cli'
4189 run: flowey.exe e 20 flowey_lib_common::cache 7
4190 shell: bash
4191 - name: 'validate cache entry: gh-release-download'
4192 run: flowey.exe e 20 flowey_lib_common::cache 11
4193 shell: bash
4194 job21:
4195 name: run vmm-tests [x64-windows-intel-tdx]
4196 runs-on:
4197 - self-hosted
4198 - Windows
4199 - X64
4200 - TDX
4201 - Baremetal
4202 permissions:
4203 contents: read
4204 id-token: write
4205 needs:
4206 - job11
4207 - job2
4208 - job3
4209 - job7
4210 if: github.event.pull_request.draft == false
4211 steps:
4212 - name: πŸŒΌπŸ“¦ Download artifacts
4213 uses: actions/download-artifact@v8
4214 with:
4215 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-vmm-tests-archive}'
4216 path: ${{ runner.temp }}/used_artifacts/
4217 - run: echo "${{ runner.temp }}/used_artifacts/_internal-flowey-bootstrap-x86_64-windows-uid-13" >> $GITHUB_PATH
4218 shell: bash
4219 name: πŸŒΌπŸ“¦ Add flowey to PATH
4220 - name: πŸŒΌπŸ›« Initialize job
4221 run: |
4222 AgentTempDirNormal="${{ runner.temp }}"
4223 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
4224 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
4225
4226 chmod +x $AgentTempDirNormal/used_artifacts/_internal-flowey-bootstrap-x86_64-windows-uid-13/flowey.exe
4227
4228 echo '"debug"' | flowey.exe v 21 'FLOWEY_LOG' update
4229 echo "${{ runner.temp }}/work" | flowey.exe v 21 '_internal_WORKING_DIR' --is-raw-string update
4230
4231 cat <<'EOF' | flowey.exe v 21 'verbose' update
4232 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
4233 EOF
4234 echo "${{ runner.temp }}\\used_artifacts\\x64-guest_test_uefi" | flowey.exe v 21 'artifact_use_from_x64-guest_test_uefi' --is-raw-string update
4235 echo "${{ runner.temp }}\\used_artifacts\\x64-linux-musl-pipette" | flowey.exe v 21 'artifact_use_from_x64-linux-musl-pipette' --is-raw-string update
4236 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
4237 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
4238 echo "${{ runner.temp }}\\used_artifacts\\x64-openhcl-igvm" | flowey.exe v 21 'artifact_use_from_x64-openhcl-igvm' --is-raw-string update
4239 echo "${{ runner.temp }}\\used_artifacts\\x64-tmks" | flowey.exe v 21 'artifact_use_from_x64-tmks' --is-raw-string update
4240 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-openvmm" | flowey.exe v 21 'artifact_use_from_x64-windows-openvmm' --is-raw-string update
4241 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-pipette" | flowey.exe v 21 'artifact_use_from_x64-windows-pipette' --is-raw-string update
4242 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-prep_steps" | flowey.exe v 21 'artifact_use_from_x64-windows-prep_steps' --is-raw-string update
4243 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
4244 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-tmk_vmm" | flowey.exe v 21 'artifact_use_from_x64-windows-tmk_vmm' --is-raw-string update
4245 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
4246 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-vmgstool" | flowey.exe v 21 'artifact_use_from_x64-windows-vmgstool' --is-raw-string update
4247 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
4248 shell: bash
4249 - name: create cargo-nextest cache dir
4250 run: |-
4251 flowey.exe e 21 flowey_lib_common::download_cargo_nextest 0
4252 flowey.exe e 21 flowey_lib_common::download_cargo_nextest 1
4253 flowey.exe e 21 flowey_lib_common::download_cargo_nextest 2
4254 flowey.exe e 21 flowey_lib_common::download_cargo_nextest 3
4255 shell: bash
4256 - name: Pre-processing cache vars
4257 run: |-
4258 flowey.exe e 21 flowey_lib_common::cache 0
4259 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
4260 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
4261 shell: bash
4262 - id: flowey_lib_common__cache__1
4263 uses: actions/cache@v5
4264 with:
4265 key: ${{ env.floweyvar4 }}
4266 path: ${{ env.floweyvar5 }}
4267 name: 'Restore cache: cargo-nextest'
4268 - name: downloading cargo-nextest
4269 run: |-
4270 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
4271 ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
4272 EOF
4273 flowey.exe e 21 flowey_lib_common::cache 2
4274 flowey.exe e 21 flowey_lib_common::download_cargo_nextest 4
4275 shell: bash
4276 - name: check if openvmm needs to be cloned
4277 run: |-
4278 flowey.exe e 21 flowey_lib_common::git_checkout 0
4279 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
4280 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
4281 shell: bash
4282 - id: flowey_lib_common__git_checkout__1
4283 uses: actions/checkout@v6
4284 with:
4285 fetch-depth: '1'
4286 path: repo0
4287 persist-credentials: ${{ env.floweyvar3 }}
4288 name: checkout repo openvmm
4289 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
4290 - name: report cloned repo directories
4291 run: |-
4292 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
4293 ${{ github.workspace }}
4294 EOF
4295 flowey.exe e 21 flowey_lib_common::git_checkout 3
4296 flowey.exe e 21 flowey_lib_hvlite::git_checkout_openvmm_repo 0
4297 flowey.exe e 21 flowey_lib_hvlite::run_cargo_nextest_run 0
4298 flowey.exe e 21 flowey_core::pipeline::artifact::resolve 5
4299 flowey.exe e 21 flowey_core::pipeline::artifact::resolve 6
4300 flowey.exe e 21 flowey_core::pipeline::artifact::resolve 1
4301 flowey.exe e 21 flowey_core::pipeline::artifact::resolve 0
4302 flowey.exe e 21 flowey_core::pipeline::artifact::resolve 9
4303 flowey.exe e 21 flowey_core::pipeline::artifact::resolve 2
4304 flowey.exe e 21 flowey_core::pipeline::artifact::resolve 4
4305 flowey.exe e 21 flowey_core::pipeline::artifact::resolve 11
4306 flowey.exe e 21 flowey_core::pipeline::artifact::resolve 10
4307 flowey.exe e 21 flowey_core::pipeline::artifact::resolve 3
4308 flowey.exe e 21 flowey_core::pipeline::artifact::resolve 8
4309 shell: bash
4310 - name: creating new test content dir
4311 run: flowey.exe e 21 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 0
4312 shell: bash
4313 - name: resolve OpenHCL igvm artifact
4314 run: flowey.exe e 21 flowey_lib_hvlite::artifact_openhcl_igvm_from_recipe::resolve 0
4315 shell: bash
4316 - name: create gh-release-download cache dir
4317 run: flowey.exe e 21 flowey_lib_common::download_gh_release 0
4318 shell: bash
4319 - name: Pre-processing cache vars
4320 run: |-
4321 flowey.exe e 21 flowey_lib_common::cache 8
4322 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
4323 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
4324 shell: bash
4325 - id: flowey_lib_common__cache__9
4326 uses: actions/cache@v5
4327 with:
4328 key: ${{ env.floweyvar8 }}
4329 path: ${{ env.floweyvar9 }}
4330 name: 'Restore cache: gh-release-download'
4331 - name: download artifacts from github releases
4332 run: |-
4333 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
4334 ${{ steps.flowey_lib_common__cache__9.outputs.cache-hit }}
4335 EOF
4336 flowey.exe e 21 flowey_lib_common::cache 10
4337 flowey.exe e 21 flowey_lib_common::download_gh_release 1
4338 shell: bash
4339 - name: extract azcopy from archive
4340 run: flowey.exe e 21 flowey_lib_common::download_azcopy 0
4341 shell: bash
4342 - name: calculating required VMM tests disk images
4343 run: flowey.exe e 21 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 0
4344 shell: bash
4345 - name: downloading VMM test disk images
4346 run: |-
4347 flowey.exe e 21 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 1
4348 flowey.exe e 21 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 2
4349 shell: bash
4350 - name: create gh cache dir
4351 run: flowey.exe e 21 flowey_lib_common::download_gh_cli 0
4352 shell: bash
4353 - name: Pre-processing cache vars
4354 run: |-
4355 flowey.exe e 21 flowey_lib_common::cache 4
4356 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
4357 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
4358 shell: bash
4359 - id: flowey_lib_common__cache__5
4360 uses: actions/cache@v5
4361 with:
4362 key: ${{ env.floweyvar6 }}
4363 path: ${{ env.floweyvar7 }}
4364 name: 'Restore cache: gh-cli'
4365 - name: installing gh
4366 run: |-
4367 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
4368 ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
4369 EOF
4370 flowey.exe e 21 flowey_lib_common::cache 6
4371 flowey.exe e 21 flowey_lib_common::download_gh_cli 1
4372 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
4373 ${{ github.token }}
4374 EOF
4375 shell: bash
4376 - name: setup gh cli
4377 run: flowey.exe e 21 flowey_lib_common::use_gh_cli 0
4378 shell: bash
4379 - name: get latest completed action id
4380 run: flowey.exe e 21 flowey_lib_common::gh_latest_completed_workflow_id 0
4381 shell: bash
4382 - name: download artifacts from github actions run
4383 run: |-
4384 flowey.exe e 21 flowey_lib_common::download_gh_artifact 0
4385 flowey.exe e 21 flowey_lib_hvlite::download_release_igvm_files_from_gh::resolve 0
4386 shell: bash
4387 - name: unpack openvmm-test-initrd archives
4388 run: flowey.exe e 21 flowey_lib_hvlite::resolve_openvmm_test_initrd 0
4389 shell: bash
4390 - name: unpack openvmm-test-linux archives
4391 run: flowey.exe e 21 flowey_lib_hvlite::resolve_openvmm_test_linux_kernel 0
4392 shell: bash
4393 - name: unpack mu_msvm package (x64)
4394 run: flowey.exe e 21 flowey_lib_hvlite::download_uefi_mu_msvm 0
4395 shell: bash
4396 - name: setting up vmm_tests env
4397 run: |-
4398 flowey.exe e 21 flowey_lib_hvlite::init_vmm_tests_env 0
4399 flowey.exe e 21 flowey_lib_hvlite::run_cargo_nextest_run 1
4400 flowey.exe e 21 flowey_core::pipeline::artifact::resolve 12
4401 flowey.exe e 21 flowey_lib_hvlite::test_nextest_vmm_tests_archive 0
4402 shell: bash
4403 - name: generate nextest command
4404 run: flowey.exe e 21 flowey_lib_common::gen_cargo_nextest_run_cmd 0
4405 shell: bash
4406 - name: install vmm tests deps (windows)
4407 run: flowey.exe e 21 flowey_lib_hvlite::install_vmm_tests_deps 0
4408 shell: bash
4409 - name: starting test_igvm_agent_rpc_server
4410 run: |-
4411 flowey.exe e 21 flowey_lib_hvlite::run_test_igvm_agent_rpc_server 0
4412 flowey.exe e 21 flowey_core::pipeline::artifact::resolve 7
4413 shell: bash
4414 - name: running vmm_test prep_steps
4415 run: flowey.exe e 21 flowey_lib_hvlite::run_prep_steps 0
4416 shell: bash
4417 - name: run 'vmm_tests' nextest tests
4418 run: |-
4419 flowey.exe e 21 flowey_lib_common::run_cargo_nextest_run 0
4420 flowey.exe e 21 flowey_lib_common::run_cargo_nextest_run 1
4421 flowey.exe e 21 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 1
4422 shell: bash
4423 - name: stopping test_igvm_agent_rpc_server
4424 run: |-
4425 flowey.exe e 21 flowey_lib_hvlite::stop_test_igvm_agent_rpc_server 0
4426 flowey.exe e 21 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 2
4427 flowey.exe e 21 flowey_lib_common::publish_test_results 4
4428 flowey.exe e 21 flowey_lib_common::publish_test_results 5
4429 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
4430 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
4431 shell: bash
4432 - id: flowey_lib_common__publish_test_results__6
4433 uses: actions/upload-artifact@v7
4434 with:
4435 name: x64-windows-intel-tdx-vmm-tests-logs
4436 path: ${{ env.floweyvar2 }}
4437 name: 'publish test results: x64-windows-intel-tdx-vmm-tests (logs)'
4438 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
4439 - name: πŸ¦€ flowey rust steps
4440 run: |-
4441 flowey.exe e 21 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 3
4442 flowey.exe e 21 flowey_lib_common::publish_test_results 0
4443 flowey.exe e 21 flowey_lib_common::publish_test_results 1
4444 flowey.exe e 21 flowey_lib_common::publish_test_results 2
4445 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
4446 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
4447 shell: bash
4448 - id: flowey_lib_common__publish_test_results__3
4449 uses: actions/upload-artifact@v7
4450 with:
4451 name: x64-windows-intel-tdx-vmm-tests-junit-xml
4452 path: ${{ env.floweyvar1 }}
4453 name: 'publish test results: x64-windows-intel-tdx-vmm-tests (JUnit XML)'
4454 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
4455 - name: report test results to overall pipeline status
4456 run: flowey.exe e 21 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 4
4457 shell: bash
4458 - name: 'validate cache entry: cargo-nextest'
4459 run: flowey.exe e 21 flowey_lib_common::cache 3
4460 shell: bash
4461 - name: 'validate cache entry: gh-cli'
4462 run: flowey.exe e 21 flowey_lib_common::cache 7
4463 shell: bash
4464 - name: 'validate cache entry: gh-release-download'
4465 run: flowey.exe e 21 flowey_lib_common::cache 11
4466 shell: bash
4467 job22:
4468 name: run vmm-tests [x64-windows-amd]
4469 runs-on:
4470 - self-hosted
4471 - 1ES.Pool=openvmm-gh-amd-westus3
4472 - 1ES.ImageOverride=win-amd64
4473 - JobId=job22-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}
4474 permissions:
4475 contents: read
4476 id-token: write
4477 needs:
4478 - job11
4479 - job2
4480 - job3
4481 - job7
4482 if: github.event.pull_request.draft == false
4483 steps:
4484 - name: πŸŒΌπŸ“¦ Download artifacts
4485 uses: actions/download-artifact@v8
4486 with:
4487 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-vmm-tests-archive}'
4488 path: ${{ runner.temp }}/used_artifacts/
4489 - run: echo "${{ runner.temp }}/used_artifacts/_internal-flowey-bootstrap-x86_64-windows-uid-13" >> $GITHUB_PATH
4490 shell: bash
4491 name: πŸŒΌπŸ“¦ Add flowey to PATH
4492 - name: πŸŒΌπŸ›« Initialize job
4493 run: |
4494 AgentTempDirNormal="${{ runner.temp }}"
4495 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
4496 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
4497
4498 chmod +x $AgentTempDirNormal/used_artifacts/_internal-flowey-bootstrap-x86_64-windows-uid-13/flowey.exe
4499
4500 echo '"debug"' | flowey.exe v 22 'FLOWEY_LOG' update
4501 echo "${{ runner.temp }}/work" | flowey.exe v 22 '_internal_WORKING_DIR' --is-raw-string update
4502
4503 cat <<'EOF' | flowey.exe v 22 'verbose' update
4504 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
4505 EOF
4506 echo "${{ runner.temp }}\\used_artifacts\\x64-guest_test_uefi" | flowey.exe v 22 'artifact_use_from_x64-guest_test_uefi' --is-raw-string update
4507 echo "${{ runner.temp }}\\used_artifacts\\x64-linux-musl-pipette" | flowey.exe v 22 'artifact_use_from_x64-linux-musl-pipette' --is-raw-string update
4508 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
4509 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
4510 echo "${{ runner.temp }}\\used_artifacts\\x64-openhcl-igvm" | flowey.exe v 22 'artifact_use_from_x64-openhcl-igvm' --is-raw-string update
4511 echo "${{ runner.temp }}\\used_artifacts\\x64-tmks" | flowey.exe v 22 'artifact_use_from_x64-tmks' --is-raw-string update
4512 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-openvmm" | flowey.exe v 22 'artifact_use_from_x64-windows-openvmm' --is-raw-string update
4513 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-pipette" | flowey.exe v 22 'artifact_use_from_x64-windows-pipette' --is-raw-string update
4514 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-prep_steps" | flowey.exe v 22 'artifact_use_from_x64-windows-prep_steps' --is-raw-string update
4515 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
4516 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-tmk_vmm" | flowey.exe v 22 'artifact_use_from_x64-windows-tmk_vmm' --is-raw-string update
4517 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
4518 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-vmgstool" | flowey.exe v 22 'artifact_use_from_x64-windows-vmgstool' --is-raw-string update
4519 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
4520 shell: bash
4521 - name: create cargo-nextest cache dir
4522 run: |-
4523 flowey.exe e 22 flowey_lib_common::download_cargo_nextest 0
4524 flowey.exe e 22 flowey_lib_common::download_cargo_nextest 1
4525 flowey.exe e 22 flowey_lib_common::download_cargo_nextest 2
4526 flowey.exe e 22 flowey_lib_common::download_cargo_nextest 3
4527 shell: bash
4528 - name: Pre-processing cache vars
4529 run: |-
4530 flowey.exe e 22 flowey_lib_common::cache 0
4531 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
4532 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
4533 shell: bash
4534 - id: flowey_lib_common__cache__1
4535 uses: actions/cache@v5
4536 with:
4537 key: ${{ env.floweyvar4 }}
4538 path: ${{ env.floweyvar5 }}
4539 name: 'Restore cache: cargo-nextest'
4540 - name: downloading cargo-nextest
4541 run: |-
4542 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
4543 ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
4544 EOF
4545 flowey.exe e 22 flowey_lib_common::cache 2
4546 flowey.exe e 22 flowey_lib_common::download_cargo_nextest 4
4547 shell: bash
4548 - name: check if openvmm needs to be cloned
4549 run: |-
4550 flowey.exe e 22 flowey_lib_common::git_checkout 0
4551 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
4552 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
4553 shell: bash
4554 - id: flowey_lib_common__git_checkout__1
4555 uses: actions/checkout@v6
4556 with:
4557 fetch-depth: '1'
4558 path: repo0
4559 persist-credentials: ${{ env.floweyvar3 }}
4560 name: checkout repo openvmm
4561 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
4562 - name: report cloned repo directories
4563 run: |-
4564 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
4565 ${{ github.workspace }}
4566 EOF
4567 flowey.exe e 22 flowey_lib_common::git_checkout 3
4568 flowey.exe e 22 flowey_lib_hvlite::git_checkout_openvmm_repo 0
4569 flowey.exe e 22 flowey_lib_hvlite::run_cargo_nextest_run 0
4570 flowey.exe e 22 flowey_core::pipeline::artifact::resolve 11
4571 flowey.exe e 22 flowey_core::pipeline::artifact::resolve 10
4572 flowey.exe e 22 flowey_core::pipeline::artifact::resolve 3
4573 flowey.exe e 22 flowey_core::pipeline::artifact::resolve 8
4574 flowey.exe e 22 flowey_core::pipeline::artifact::resolve 5
4575 flowey.exe e 22 flowey_core::pipeline::artifact::resolve 6
4576 flowey.exe e 22 flowey_core::pipeline::artifact::resolve 1
4577 flowey.exe e 22 flowey_core::pipeline::artifact::resolve 0
4578 flowey.exe e 22 flowey_core::pipeline::artifact::resolve 9
4579 flowey.exe e 22 flowey_core::pipeline::artifact::resolve 2
4580 flowey.exe e 22 flowey_core::pipeline::artifact::resolve 4
4581 shell: bash
4582 - name: creating new test content dir
4583 run: flowey.exe e 22 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 0
4584 shell: bash
4585 - name: resolve OpenHCL igvm artifact
4586 run: flowey.exe e 22 flowey_lib_hvlite::artifact_openhcl_igvm_from_recipe::resolve 0
4587 shell: bash
4588 - name: create gh-release-download cache dir
4589 run: flowey.exe e 22 flowey_lib_common::download_gh_release 0
4590 shell: bash
4591 - name: Pre-processing cache vars
4592 run: |-
4593 flowey.exe e 22 flowey_lib_common::cache 8
4594 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
4595 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
4596 shell: bash
4597 - id: flowey_lib_common__cache__9
4598 uses: actions/cache@v5
4599 with:
4600 key: ${{ env.floweyvar8 }}
4601 path: ${{ env.floweyvar9 }}
4602 name: 'Restore cache: gh-release-download'
4603 - name: download artifacts from github releases
4604 run: |-
4605 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
4606 ${{ steps.flowey_lib_common__cache__9.outputs.cache-hit }}
4607 EOF
4608 flowey.exe e 22 flowey_lib_common::cache 10
4609 flowey.exe e 22 flowey_lib_common::download_gh_release 1
4610 shell: bash
4611 - name: extract azcopy from archive
4612 run: flowey.exe e 22 flowey_lib_common::download_azcopy 0
4613 shell: bash
4614 - name: calculating required VMM tests disk images
4615 run: flowey.exe e 22 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 0
4616 shell: bash
4617 - name: downloading VMM test disk images
4618 run: |-
4619 flowey.exe e 22 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 1
4620 flowey.exe e 22 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 2
4621 shell: bash
4622 - name: create gh cache dir
4623 run: flowey.exe e 22 flowey_lib_common::download_gh_cli 0
4624 shell: bash
4625 - name: Pre-processing cache vars
4626 run: |-
4627 flowey.exe e 22 flowey_lib_common::cache 4
4628 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
4629 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
4630 shell: bash
4631 - id: flowey_lib_common__cache__5
4632 uses: actions/cache@v5
4633 with:
4634 key: ${{ env.floweyvar6 }}
4635 path: ${{ env.floweyvar7 }}
4636 name: 'Restore cache: gh-cli'
4637 - name: installing gh
4638 run: |-
4639 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
4640 ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
4641 EOF
4642 flowey.exe e 22 flowey_lib_common::cache 6
4643 flowey.exe e 22 flowey_lib_common::download_gh_cli 1
4644 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
4645 ${{ github.token }}
4646 EOF
4647 shell: bash
4648 - name: setup gh cli
4649 run: flowey.exe e 22 flowey_lib_common::use_gh_cli 0
4650 shell: bash
4651 - name: get latest completed action id
4652 run: flowey.exe e 22 flowey_lib_common::gh_latest_completed_workflow_id 0
4653 shell: bash
4654 - name: download artifacts from github actions run
4655 run: |-
4656 flowey.exe e 22 flowey_lib_common::download_gh_artifact 0
4657 flowey.exe e 22 flowey_lib_hvlite::download_release_igvm_files_from_gh::resolve 0
4658 shell: bash
4659 - name: unpack openvmm-test-initrd archives
4660 run: flowey.exe e 22 flowey_lib_hvlite::resolve_openvmm_test_initrd 0
4661 shell: bash
4662 - name: unpack openvmm-test-linux archives
4663 run: flowey.exe e 22 flowey_lib_hvlite::resolve_openvmm_test_linux_kernel 0
4664 shell: bash
4665 - name: unpack mu_msvm package (x64)
4666 run: flowey.exe e 22 flowey_lib_hvlite::download_uefi_mu_msvm 0
4667 shell: bash
4668 - name: setting up vmm_tests env
4669 run: |-
4670 flowey.exe e 22 flowey_lib_hvlite::init_vmm_tests_env 0
4671 flowey.exe e 22 flowey_lib_hvlite::run_cargo_nextest_run 1
4672 flowey.exe e 22 flowey_core::pipeline::artifact::resolve 12
4673 flowey.exe e 22 flowey_lib_hvlite::test_nextest_vmm_tests_archive 0
4674 shell: bash
4675 - name: generate nextest command
4676 run: flowey.exe e 22 flowey_lib_common::gen_cargo_nextest_run_cmd 0
4677 shell: bash
4678 - name: install vmm tests deps (windows)
4679 run: flowey.exe e 22 flowey_lib_hvlite::install_vmm_tests_deps 0
4680 shell: bash
4681 - name: starting test_igvm_agent_rpc_server
4682 run: flowey.exe e 22 flowey_lib_hvlite::run_test_igvm_agent_rpc_server 0
4683 shell: bash
4684 - name: run 'vmm_tests' nextest tests
4685 run: |-
4686 flowey.exe e 22 flowey_lib_common::run_cargo_nextest_run 0
4687 flowey.exe e 22 flowey_lib_common::run_cargo_nextest_run 1
4688 flowey.exe e 22 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 1
4689 shell: bash
4690 - name: stopping test_igvm_agent_rpc_server
4691 run: |-
4692 flowey.exe e 22 flowey_lib_hvlite::stop_test_igvm_agent_rpc_server 0
4693 flowey.exe e 22 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 2
4694 flowey.exe e 22 flowey_lib_common::publish_test_results 4
4695 flowey.exe e 22 flowey_lib_common::publish_test_results 5
4696 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
4697 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
4698 shell: bash
4699 - id: flowey_lib_common__publish_test_results__6
4700 uses: actions/upload-artifact@v7
4701 with:
4702 name: x64-windows-amd-vmm-tests-logs
4703 path: ${{ env.floweyvar2 }}
4704 name: 'publish test results: x64-windows-amd-vmm-tests (logs)'
4705 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
4706 - name: πŸ¦€ flowey rust steps
4707 run: |-
4708 flowey.exe e 22 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 3
4709 flowey.exe e 22 flowey_lib_common::publish_test_results 0
4710 flowey.exe e 22 flowey_lib_common::publish_test_results 1
4711 flowey.exe e 22 flowey_lib_common::publish_test_results 2
4712 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
4713 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
4714 shell: bash
4715 - id: flowey_lib_common__publish_test_results__3
4716 uses: actions/upload-artifact@v7
4717 with:
4718 name: x64-windows-amd-vmm-tests-junit-xml
4719 path: ${{ env.floweyvar1 }}
4720 name: 'publish test results: x64-windows-amd-vmm-tests (JUnit XML)'
4721 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
4722 - name: report test results to overall pipeline status
4723 run: flowey.exe e 22 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 4
4724 shell: bash
4725 - name: 'validate cache entry: cargo-nextest'
4726 run: flowey.exe e 22 flowey_lib_common::cache 3
4727 shell: bash
4728 - name: 'validate cache entry: gh-cli'
4729 run: flowey.exe e 22 flowey_lib_common::cache 7
4730 shell: bash
4731 - name: 'validate cache entry: gh-release-download'
4732 run: flowey.exe e 22 flowey_lib_common::cache 11
4733 shell: bash
4734 job23:
4735 name: run vmm-tests [x64-windows-amd-snp]
4736 runs-on:
4737 - self-hosted
4738 - Windows
4739 - X64
4740 - SNP
4741 - Baremetal
4742 permissions:
4743 contents: read
4744 id-token: write
4745 needs:
4746 - job11
4747 - job2
4748 - job3
4749 - job7
4750 if: github.event.pull_request.draft == false
4751 steps:
4752 - name: πŸŒΌπŸ“¦ Download artifacts
4753 uses: actions/download-artifact@v8
4754 with:
4755 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-vmm-tests-archive}'
4756 path: ${{ runner.temp }}/used_artifacts/
4757 - run: echo "${{ runner.temp }}/used_artifacts/_internal-flowey-bootstrap-x86_64-windows-uid-13" >> $GITHUB_PATH
4758 shell: bash
4759 name: πŸŒΌπŸ“¦ Add flowey to PATH
4760 - name: πŸŒΌπŸ›« Initialize job
4761 run: |
4762 AgentTempDirNormal="${{ runner.temp }}"
4763 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
4764 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
4765
4766 chmod +x $AgentTempDirNormal/used_artifacts/_internal-flowey-bootstrap-x86_64-windows-uid-13/flowey.exe
4767
4768 echo '"debug"' | flowey.exe v 23 'FLOWEY_LOG' update
4769 echo "${{ runner.temp }}/work" | flowey.exe v 23 '_internal_WORKING_DIR' --is-raw-string update
4770
4771 cat <<'EOF' | flowey.exe v 23 'verbose' update
4772 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
4773 EOF
4774 echo "${{ runner.temp }}\\used_artifacts\\x64-guest_test_uefi" | flowey.exe v 23 'artifact_use_from_x64-guest_test_uefi' --is-raw-string update
4775 echo "${{ runner.temp }}\\used_artifacts\\x64-linux-musl-pipette" | flowey.exe v 23 'artifact_use_from_x64-linux-musl-pipette' --is-raw-string update
4776 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
4777 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
4778 echo "${{ runner.temp }}\\used_artifacts\\x64-openhcl-igvm" | flowey.exe v 23 'artifact_use_from_x64-openhcl-igvm' --is-raw-string update
4779 echo "${{ runner.temp }}\\used_artifacts\\x64-tmks" | flowey.exe v 23 'artifact_use_from_x64-tmks' --is-raw-string update
4780 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-openvmm" | flowey.exe v 23 'artifact_use_from_x64-windows-openvmm' --is-raw-string update
4781 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-pipette" | flowey.exe v 23 'artifact_use_from_x64-windows-pipette' --is-raw-string update
4782 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-prep_steps" | flowey.exe v 23 'artifact_use_from_x64-windows-prep_steps' --is-raw-string update
4783 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
4784 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-tmk_vmm" | flowey.exe v 23 'artifact_use_from_x64-windows-tmk_vmm' --is-raw-string update
4785 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
4786 echo "${{ runner.temp }}\\used_artifacts\\x64-windows-vmgstool" | flowey.exe v 23 'artifact_use_from_x64-windows-vmgstool' --is-raw-string update
4787 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
4788 shell: bash
4789 - name: create cargo-nextest cache dir
4790 run: |-
4791 flowey.exe e 23 flowey_lib_common::download_cargo_nextest 0
4792 flowey.exe e 23 flowey_lib_common::download_cargo_nextest 1
4793 flowey.exe e 23 flowey_lib_common::download_cargo_nextest 2
4794 flowey.exe e 23 flowey_lib_common::download_cargo_nextest 3
4795 shell: bash
4796 - name: Pre-processing cache vars
4797 run: |-
4798 flowey.exe e 23 flowey_lib_common::cache 0
4799 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
4800 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
4801 shell: bash
4802 - id: flowey_lib_common__cache__1
4803 uses: actions/cache@v5
4804 with:
4805 key: ${{ env.floweyvar4 }}
4806 path: ${{ env.floweyvar5 }}
4807 name: 'Restore cache: cargo-nextest'
4808 - name: downloading cargo-nextest
4809 run: |-
4810 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
4811 ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
4812 EOF
4813 flowey.exe e 23 flowey_lib_common::cache 2
4814 flowey.exe e 23 flowey_lib_common::download_cargo_nextest 4
4815 shell: bash
4816 - name: check if openvmm needs to be cloned
4817 run: |-
4818 flowey.exe e 23 flowey_lib_common::git_checkout 0
4819 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
4820 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
4821 shell: bash
4822 - id: flowey_lib_common__git_checkout__1
4823 uses: actions/checkout@v6
4824 with:
4825 fetch-depth: '1'
4826 path: repo0
4827 persist-credentials: ${{ env.floweyvar3 }}
4828 name: checkout repo openvmm
4829 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
4830 - name: report cloned repo directories
4831 run: |-
4832 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
4833 ${{ github.workspace }}
4834 EOF
4835 flowey.exe e 23 flowey_lib_common::git_checkout 3
4836 flowey.exe e 23 flowey_lib_hvlite::git_checkout_openvmm_repo 0
4837 flowey.exe e 23 flowey_lib_hvlite::run_cargo_nextest_run 0
4838 flowey.exe e 23 flowey_core::pipeline::artifact::resolve 5
4839 flowey.exe e 23 flowey_core::pipeline::artifact::resolve 6
4840 flowey.exe e 23 flowey_core::pipeline::artifact::resolve 1
4841 flowey.exe e 23 flowey_core::pipeline::artifact::resolve 0
4842 flowey.exe e 23 flowey_core::pipeline::artifact::resolve 9
4843 flowey.exe e 23 flowey_core::pipeline::artifact::resolve 2
4844 flowey.exe e 23 flowey_core::pipeline::artifact::resolve 4
4845 flowey.exe e 23 flowey_core::pipeline::artifact::resolve 11
4846 flowey.exe e 23 flowey_core::pipeline::artifact::resolve 10
4847 flowey.exe e 23 flowey_core::pipeline::artifact::resolve 3
4848 flowey.exe e 23 flowey_core::pipeline::artifact::resolve 8
4849 shell: bash
4850 - name: creating new test content dir
4851 run: flowey.exe e 23 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 0
4852 shell: bash
4853 - name: resolve OpenHCL igvm artifact
4854 run: flowey.exe e 23 flowey_lib_hvlite::artifact_openhcl_igvm_from_recipe::resolve 0
4855 shell: bash
4856 - name: create gh-release-download cache dir
4857 run: flowey.exe e 23 flowey_lib_common::download_gh_release 0
4858 shell: bash
4859 - name: Pre-processing cache vars
4860 run: |-
4861 flowey.exe e 23 flowey_lib_common::cache 8
4862 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
4863 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
4864 shell: bash
4865 - id: flowey_lib_common__cache__9
4866 uses: actions/cache@v5
4867 with:
4868 key: ${{ env.floweyvar8 }}
4869 path: ${{ env.floweyvar9 }}
4870 name: 'Restore cache: gh-release-download'
4871 - name: download artifacts from github releases
4872 run: |-
4873 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
4874 ${{ steps.flowey_lib_common__cache__9.outputs.cache-hit }}
4875 EOF
4876 flowey.exe e 23 flowey_lib_common::cache 10
4877 flowey.exe e 23 flowey_lib_common::download_gh_release 1
4878 shell: bash
4879 - name: extract azcopy from archive
4880 run: flowey.exe e 23 flowey_lib_common::download_azcopy 0
4881 shell: bash
4882 - name: calculating required VMM tests disk images
4883 run: flowey.exe e 23 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 0
4884 shell: bash
4885 - name: downloading VMM test disk images
4886 run: |-
4887 flowey.exe e 23 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 1
4888 flowey.exe e 23 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 2
4889 shell: bash
4890 - name: create gh cache dir
4891 run: flowey.exe e 23 flowey_lib_common::download_gh_cli 0
4892 shell: bash
4893 - name: Pre-processing cache vars
4894 run: |-
4895 flowey.exe e 23 flowey_lib_common::cache 4
4896 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
4897 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
4898 shell: bash
4899 - id: flowey_lib_common__cache__5
4900 uses: actions/cache@v5
4901 with:
4902 key: ${{ env.floweyvar6 }}
4903 path: ${{ env.floweyvar7 }}
4904 name: 'Restore cache: gh-cli'
4905 - name: installing gh
4906 run: |-
4907 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
4908 ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
4909 EOF
4910 flowey.exe e 23 flowey_lib_common::cache 6
4911 flowey.exe e 23 flowey_lib_common::download_gh_cli 1
4912 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
4913 ${{ github.token }}
4914 EOF
4915 shell: bash
4916 - name: setup gh cli
4917 run: flowey.exe e 23 flowey_lib_common::use_gh_cli 0
4918 shell: bash
4919 - name: get latest completed action id
4920 run: flowey.exe e 23 flowey_lib_common::gh_latest_completed_workflow_id 0
4921 shell: bash
4922 - name: download artifacts from github actions run
4923 run: |-
4924 flowey.exe e 23 flowey_lib_common::download_gh_artifact 0
4925 flowey.exe e 23 flowey_lib_hvlite::download_release_igvm_files_from_gh::resolve 0
4926 shell: bash
4927 - name: unpack openvmm-test-initrd archives
4928 run: flowey.exe e 23 flowey_lib_hvlite::resolve_openvmm_test_initrd 0
4929 shell: bash
4930 - name: unpack openvmm-test-linux archives
4931 run: flowey.exe e 23 flowey_lib_hvlite::resolve_openvmm_test_linux_kernel 0
4932 shell: bash
4933 - name: unpack mu_msvm package (x64)
4934 run: flowey.exe e 23 flowey_lib_hvlite::download_uefi_mu_msvm 0
4935 shell: bash
4936 - name: setting up vmm_tests env
4937 run: |-
4938 flowey.exe e 23 flowey_lib_hvlite::init_vmm_tests_env 0
4939 flowey.exe e 23 flowey_lib_hvlite::run_cargo_nextest_run 1
4940 flowey.exe e 23 flowey_core::pipeline::artifact::resolve 12
4941 flowey.exe e 23 flowey_lib_hvlite::test_nextest_vmm_tests_archive 0
4942 shell: bash
4943 - name: generate nextest command
4944 run: flowey.exe e 23 flowey_lib_common::gen_cargo_nextest_run_cmd 0
4945 shell: bash
4946 - name: install vmm tests deps (windows)
4947 run: flowey.exe e 23 flowey_lib_hvlite::install_vmm_tests_deps 0
4948 shell: bash
4949 - name: starting test_igvm_agent_rpc_server
4950 run: |-
4951 flowey.exe e 23 flowey_lib_hvlite::run_test_igvm_agent_rpc_server 0
4952 flowey.exe e 23 flowey_core::pipeline::artifact::resolve 7
4953 shell: bash
4954 - name: running vmm_test prep_steps
4955 run: flowey.exe e 23 flowey_lib_hvlite::run_prep_steps 0
4956 shell: bash
4957 - name: run 'vmm_tests' nextest tests
4958 run: |-
4959 flowey.exe e 23 flowey_lib_common::run_cargo_nextest_run 0
4960 flowey.exe e 23 flowey_lib_common::run_cargo_nextest_run 1
4961 flowey.exe e 23 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 1
4962 shell: bash
4963 - name: stopping test_igvm_agent_rpc_server
4964 run: |-
4965 flowey.exe e 23 flowey_lib_hvlite::stop_test_igvm_agent_rpc_server 0
4966 flowey.exe e 23 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 2
4967 flowey.exe e 23 flowey_lib_common::publish_test_results 4
4968 flowey.exe e 23 flowey_lib_common::publish_test_results 5
4969 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
4970 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
4971 shell: bash
4972 - id: flowey_lib_common__publish_test_results__6
4973 uses: actions/upload-artifact@v7
4974 with:
4975 name: x64-windows-amd-snp-vmm-tests-logs
4976 path: ${{ env.floweyvar2 }}
4977 name: 'publish test results: x64-windows-amd-snp-vmm-tests (logs)'
4978 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
4979 - name: πŸ¦€ flowey rust steps
4980 run: |-
4981 flowey.exe e 23 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 3
4982 flowey.exe e 23 flowey_lib_common::publish_test_results 0
4983 flowey.exe e 23 flowey_lib_common::publish_test_results 1
4984 flowey.exe e 23 flowey_lib_common::publish_test_results 2
4985 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
4986 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
4987 shell: bash
4988 - id: flowey_lib_common__publish_test_results__3
4989 uses: actions/upload-artifact@v7
4990 with:
4991 name: x64-windows-amd-snp-vmm-tests-junit-xml
4992 path: ${{ env.floweyvar1 }}
4993 name: 'publish test results: x64-windows-amd-snp-vmm-tests (JUnit XML)'
4994 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
4995 - name: report test results to overall pipeline status
4996 run: flowey.exe e 23 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 4
4997 shell: bash
4998 - name: 'validate cache entry: cargo-nextest'
4999 run: flowey.exe e 23 flowey_lib_common::cache 3
5000 shell: bash
5001 - name: 'validate cache entry: gh-cli'
5002 run: flowey.exe e 23 flowey_lib_common::cache 7
5003 shell: bash
5004 - name: 'validate cache entry: gh-release-download'
5005 run: flowey.exe e 23 flowey_lib_common::cache 11
5006 shell: bash
5007 job24:
5008 name: run vmm-tests [x64-linux-amd-kvm]
5009 runs-on:
5010 - self-hosted
5011 - 1ES.Pool=openvmm-gh-amd-westus3
5012 - 1ES.ImageOverride=ubuntu2404-amd64
5013 - JobId=job24-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}
5014 permissions:
5015 contents: read
5016 id-token: write
5017 needs:
5018 - job2
5019 - job3
5020 - job9
5021 if: github.event.pull_request.draft == false
5022 steps:
5023 - name: πŸŒΌπŸ“¦ Download artifacts
5024 uses: actions/download-artifact@v8
5025 with:
5026 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-vmm-tests-archive,x64-tmks,x64-windows-pipette}'
5027 path: ${{ runner.temp }}/used_artifacts/
5028 - run: echo "${{ runner.temp }}/used_artifacts/_internal-flowey-bootstrap-x86_64-linux-uid-11" >> $GITHUB_PATH
5029 shell: bash
5030 name: πŸŒΌπŸ“¦ Add flowey to PATH
5031 - name: πŸŒΌπŸ›« Initialize job
5032 run: |
5033 AgentTempDirNormal="${{ runner.temp }}"
5034 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
5035 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
5036
5037 chmod +x $AgentTempDirNormal/used_artifacts/_internal-flowey-bootstrap-x86_64-linux-uid-11/flowey
5038
5039 echo '"debug"' | flowey v 24 'FLOWEY_LOG' update
5040 echo "${{ runner.temp }}/work" | flowey v 24 '_internal_WORKING_DIR' --is-raw-string update
5041
5042 cat <<'EOF' | flowey v 24 'verbose' update
5043 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
5044 EOF
5045 echo "$AgentTempDirNormal/used_artifacts/x64-guest_test_uefi" | flowey v 24 'artifact_use_from_x64-guest_test_uefi' --is-raw-string update
5046 echo "$AgentTempDirNormal/used_artifacts/x64-linux-musl-pipette" | flowey v 24 'artifact_use_from_x64-linux-musl-pipette' --is-raw-string update
5047 echo "$AgentTempDirNormal/used_artifacts/x64-linux-musl-tmk_vmm" | flowey v 24 'artifact_use_from_x64-linux-musl-tmk_vmm' --is-raw-string update
5048 echo "$AgentTempDirNormal/used_artifacts/x64-linux-openvmm" | flowey v 24 'artifact_use_from_x64-linux-openvmm' --is-raw-string update
5049 echo "$AgentTempDirNormal/used_artifacts/x64-linux-openvmm_vhost" | flowey v 24 'artifact_use_from_x64-linux-openvmm_vhost' --is-raw-string update
5050 echo "$AgentTempDirNormal/used_artifacts/x64-linux-vmm-tests-archive" | flowey v 24 'artifact_use_from_x64-linux-vmm-tests-archive' --is-raw-string update
5051 echo "$AgentTempDirNormal/used_artifacts/x64-tmks" | flowey v 24 'artifact_use_from_x64-tmks' --is-raw-string update
5052 echo "$AgentTempDirNormal/used_artifacts/x64-windows-pipette" | flowey v 24 'artifact_use_from_x64-windows-pipette' --is-raw-string update
5053 shell: bash
5054 - name: creating new test content dir
5055 run: |-
5056 flowey e 24 flowey_core::pipeline::artifact::resolve 3
5057 flowey e 24 flowey_core::pipeline::artifact::resolve 4
5058 flowey e 24 flowey_core::pipeline::artifact::resolve 7
5059 flowey e 24 flowey_core::pipeline::artifact::resolve 1
5060 flowey e 24 flowey_core::pipeline::artifact::resolve 0
5061 flowey e 24 flowey_core::pipeline::artifact::resolve 2
5062 flowey e 24 flowey_core::pipeline::artifact::resolve 6
5063 flowey e 24 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 0
5064 shell: bash
5065 - name: checking if packages need to be installed
5066 run: flowey e 24 flowey_lib_common::install_dist_pkg 0
5067 shell: bash
5068 - name: installing packages
5069 run: flowey e 24 flowey_lib_common::install_dist_pkg 1
5070 shell: bash
5071 - name: create gh-release-download cache dir
5072 run: flowey e 24 flowey_lib_common::download_gh_release 0
5073 shell: bash
5074 - name: Pre-processing cache vars
5075 run: |-
5076 flowey e 24 flowey_lib_common::cache 8
5077 flowey v 24 'flowey_lib_common::cache:18:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar8
5078 flowey v 24 'flowey_lib_common::cache:17:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar9
5079 shell: bash
5080 - id: flowey_lib_common__cache__9
5081 uses: actions/cache@v5
5082 with:
5083 key: ${{ env.floweyvar8 }}
5084 path: ${{ env.floweyvar9 }}
5085 name: 'Restore cache: gh-release-download'
5086 - name: download artifacts from github releases
5087 run: |-
5088 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
5089 ${{ steps.flowey_lib_common__cache__9.outputs.cache-hit }}
5090 EOF
5091 flowey e 24 flowey_lib_common::cache 10
5092 flowey e 24 flowey_lib_common::download_gh_release 1
5093 shell: bash
5094 - name: extract azcopy from archive
5095 run: flowey e 24 flowey_lib_common::download_azcopy 0
5096 shell: bash
5097 - name: calculating required VMM tests disk images
5098 run: flowey e 24 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 0
5099 shell: bash
5100 - name: downloading VMM test disk images
5101 run: |-
5102 flowey e 24 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 1
5103 flowey e 24 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 2
5104 shell: bash
5105 - name: create gh cache dir
5106 run: flowey e 24 flowey_lib_common::download_gh_cli 0
5107 shell: bash
5108 - name: Pre-processing cache vars
5109 run: |-
5110 flowey e 24 flowey_lib_common::cache 4
5111 flowey v 24 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar6
5112 flowey v 24 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar7
5113 shell: bash
5114 - id: flowey_lib_common__cache__5
5115 uses: actions/cache@v5
5116 with:
5117 key: ${{ env.floweyvar6 }}
5118 path: ${{ env.floweyvar7 }}
5119 name: 'Restore cache: gh-cli'
5120 - name: installing gh
5121 run: |-
5122 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
5123 ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
5124 EOF
5125 flowey e 24 flowey_lib_common::cache 6
5126 flowey e 24 flowey_lib_common::download_gh_cli 1
5127 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
5128 ${{ github.token }}
5129 EOF
5130 shell: bash
5131 - name: setup gh cli
5132 run: flowey e 24 flowey_lib_common::use_gh_cli 0
5133 shell: bash
5134 - name: get latest completed action id
5135 run: flowey e 24 flowey_lib_common::gh_latest_completed_workflow_id 0
5136 shell: bash
5137 - name: download artifacts from github actions run
5138 run: |-
5139 flowey e 24 flowey_lib_common::download_gh_artifact 0
5140 flowey e 24 flowey_lib_hvlite::download_release_igvm_files_from_gh::resolve 0
5141 shell: bash
5142 - name: unpack openvmm-test-initrd archives
5143 run: flowey e 24 flowey_lib_hvlite::resolve_openvmm_test_initrd 0
5144 shell: bash
5145 - name: unpack openvmm-test-linux archives
5146 run: flowey e 24 flowey_lib_hvlite::resolve_openvmm_test_linux_kernel 0
5147 shell: bash
5148 - name: unpack mu_msvm package (x64)
5149 run: flowey e 24 flowey_lib_hvlite::download_uefi_mu_msvm 0
5150 shell: bash
5151 - name: setting up vmm_tests env
5152 run: flowey e 24 flowey_lib_hvlite::init_vmm_tests_env 0
5153 shell: bash
5154 - name: ensure hypervisor device is accessible
5155 run: flowey e 24 flowey_lib_hvlite::test_nextest_vmm_tests_archive 1
5156 shell: bash
5157 - name: ensure 2 MiB hugetlb pages are available
5158 run: flowey e 24 flowey_lib_hvlite::test_nextest_vmm_tests_archive 2
5159 shell: bash
5160 - name: create cargo-nextest cache dir
5161 run: |-
5162 flowey e 24 flowey_lib_common::download_cargo_nextest 0
5163 flowey e 24 flowey_lib_common::download_cargo_nextest 1
5164 flowey e 24 flowey_lib_common::download_cargo_nextest 2
5165 flowey e 24 flowey_lib_common::download_cargo_nextest 3
5166 shell: bash
5167 - name: Pre-processing cache vars
5168 run: |-
5169 flowey e 24 flowey_lib_common::cache 0
5170 flowey v 24 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar4
5171 flowey v 24 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar5
5172 shell: bash
5173 - id: flowey_lib_common__cache__1
5174 uses: actions/cache@v5
5175 with:
5176 key: ${{ env.floweyvar4 }}
5177 path: ${{ env.floweyvar5 }}
5178 name: 'Restore cache: cargo-nextest'
5179 - name: downloading cargo-nextest
5180 run: |-
5181 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
5182 ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
5183 EOF
5184 flowey e 24 flowey_lib_common::cache 2
5185 flowey e 24 flowey_lib_common::download_cargo_nextest 4
5186 shell: bash
5187 - name: check if openvmm needs to be cloned
5188 run: |-
5189 flowey e 24 flowey_lib_common::git_checkout 0
5190 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
5191 flowey v 24 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION
5192 shell: bash
5193 - id: flowey_lib_common__git_checkout__1
5194 uses: actions/checkout@v6
5195 with:
5196 fetch-depth: '1'
5197 path: repo0
5198 persist-credentials: ${{ env.floweyvar3 }}
5199 name: checkout repo openvmm
5200 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
5201 - name: report cloned repo directories
5202 run: |-
5203 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
5204 ${{ github.workspace }}
5205 EOF
5206 flowey e 24 flowey_lib_common::git_checkout 3
5207 flowey e 24 flowey_lib_hvlite::git_checkout_openvmm_repo 0
5208 flowey e 24 flowey_lib_hvlite::run_cargo_nextest_run 0
5209 flowey e 24 flowey_lib_hvlite::test_nextest_vmm_tests_archive 0
5210 flowey e 24 flowey_lib_hvlite::run_cargo_nextest_run 1
5211 flowey e 24 flowey_core::pipeline::artifact::resolve 5
5212 flowey e 24 flowey_lib_hvlite::test_nextest_vmm_tests_archive 3
5213 shell: bash
5214 - name: generate nextest command
5215 run: flowey e 24 flowey_lib_common::gen_cargo_nextest_run_cmd 0
5216 shell: bash
5217 - name: install vmm tests deps (linux)
5218 run: flowey e 24 flowey_lib_hvlite::install_vmm_tests_deps 0
5219 shell: bash
5220 - name: run 'vmm_tests' nextest tests
5221 run: |-
5222 flowey e 24 flowey_lib_common::run_cargo_nextest_run 0
5223 flowey e 24 flowey_lib_common::run_cargo_nextest_run 1
5224 flowey e 24 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 1
5225 flowey e 24 flowey_lib_common::publish_test_results 4
5226 flowey e 24 flowey_lib_common::publish_test_results 5
5227 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
5228 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
5229 shell: bash
5230 - id: flowey_lib_common__publish_test_results__6
5231 uses: actions/upload-artifact@v7
5232 with:
5233 name: x64-linux-amd-kvm-vmm-tests-logs
5234 path: ${{ env.floweyvar2 }}
5235 name: 'publish test results: x64-linux-amd-kvm-vmm-tests (logs)'
5236 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
5237 - name: πŸ¦€ flowey rust steps
5238 run: |-
5239 flowey e 24 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 2
5240 flowey e 24 flowey_lib_common::publish_test_results 0
5241 flowey e 24 flowey_lib_common::publish_test_results 1
5242 flowey e 24 flowey_lib_common::publish_test_results 2
5243 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
5244 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
5245 shell: bash
5246 - id: flowey_lib_common__publish_test_results__3
5247 uses: actions/upload-artifact@v7
5248 with:
5249 name: x64-linux-amd-kvm-vmm-tests-junit-xml
5250 path: ${{ env.floweyvar1 }}
5251 name: 'publish test results: x64-linux-amd-kvm-vmm-tests (JUnit XML)'
5252 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
5253 - name: report test results to overall pipeline status
5254 run: flowey e 24 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 3
5255 shell: bash
5256 - name: 'validate cache entry: cargo-nextest'
5257 run: flowey e 24 flowey_lib_common::cache 3
5258 shell: bash
5259 - name: 'validate cache entry: gh-cli'
5260 run: flowey e 24 flowey_lib_common::cache 7
5261 shell: bash
5262 - name: 'validate cache entry: gh-release-download'
5263 run: flowey e 24 flowey_lib_common::cache 11
5264 shell: bash
5265 job25:
5266 name: run vmm-tests [x64-linux-intel-mshv]
5267 runs-on:
5268 - self-hosted
5269 - 1ES.Pool=openvmm-gh-intel-westus3
5270 - 1ES.ImageOverride=azurelinux3-amd64-dom0
5271 - JobId=job25-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}
5272 permissions:
5273 contents: read
5274 id-token: write
5275 needs:
5276 - job2
5277 - job3
5278 - job9
5279 if: github.event.pull_request.draft == false
5280 steps:
5281 - run: |
5282 set -x
5283 sudo tdnf install -y gcc glibc-devel
5284 curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.95.0 -y
5285 . "$HOME/.cargo/env"
5286 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
5287 rustup show
5288 if: runner.os == 'Linux'
5289 name: rustup (Linux)
5290 shell: bash
5291 - run: |
5292 set -x
5293 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
5294 ./rustup-init.exe -y --default-toolchain=1.95.0
5295 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
5296 if: runner.os == 'Windows' && runner.arch == 'X64'
5297 name: rustup (Windows X64)
5298 shell: bash
5299 - run: |
5300 set -x
5301 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
5302 ./rustup-init.exe -y --default-toolchain=1.95.0
5303 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
5304 if: runner.os == 'Windows' && runner.arch == 'ARM64'
5305 name: rustup (Windows ARM64)
5306 shell: bash
5307 - uses: actions/checkout@v6
5308 with:
5309 path: flowey_bootstrap
5310 - name: Build flowey
5311 run: |
5312 set -x
5313 CARGO_INCREMENTAL=0 cargo build -p flowey_hvlite --target x86_64-unknown-linux-gnu --profile flowey-ci
5314 OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
5315 mkdir -p "$OutDirNormal"
5316 mv ./.github/workflows/openvmm-ci.yaml "$OutDirNormal/pipeline.yaml"
5317 mv target/x86_64-unknown-linux-gnu/flowey-ci/flowey_hvlite "$OutDirNormal/flowey"
5318 working-directory: flowey_bootstrap
5319 shell: bash
5320 - name: πŸŒΌπŸ“¦ Download artifacts
5321 uses: actions/download-artifact@v8
5322 with:
5323 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-tmks,x64-windows-pipette}'
5324 path: ${{ runner.temp }}/used_artifacts/
5325 - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH
5326 shell: bash
5327 name: πŸŒΌπŸ“¦ Add flowey to PATH
5328 - name: πŸŒΌπŸ”Ž Self-check YAML
5329 run: |-
5330 ESCAPED_AGENT_TEMPDIR=$(
5331 cat <<'EOF' | sed 's/\\/\\\\/g'
5332 ${{ runner.temp }}
5333 EOF
5334 )
5335 flowey pipeline github --runtime $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci
5336 shell: bash
5337 - name: πŸŒΌπŸ›« Initialize job
5338 run: |
5339 AgentTempDirNormal="${{ runner.temp }}"
5340 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
5341 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
5342
5343 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey
5344
5345 echo '"debug"' | flowey v 25 'FLOWEY_LOG' update
5346 echo "${{ runner.temp }}/work" | flowey v 25 '_internal_WORKING_DIR' --is-raw-string update
5347
5348 cat <<'EOF' | flowey v 25 'verbose' update
5349 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
5350 EOF
5351 echo "$AgentTempDirNormal/used_artifacts/x64-guest_test_uefi" | flowey v 25 'artifact_use_from_x64-guest_test_uefi' --is-raw-string update
5352 echo "$AgentTempDirNormal/used_artifacts/x64-linux-musl-openvmm" | flowey v 25 'artifact_use_from_x64-linux-musl-openvmm' --is-raw-string update
5353 echo "$AgentTempDirNormal/used_artifacts/x64-linux-musl-openvmm_vhost" | flowey v 25 'artifact_use_from_x64-linux-musl-openvmm_vhost' --is-raw-string update
5354 echo "$AgentTempDirNormal/used_artifacts/x64-linux-musl-pipette" | flowey v 25 'artifact_use_from_x64-linux-musl-pipette' --is-raw-string update
5355 echo "$AgentTempDirNormal/used_artifacts/x64-linux-musl-tmk_vmm" | flowey v 25 'artifact_use_from_x64-linux-musl-tmk_vmm' --is-raw-string update
5356 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
5357 echo "$AgentTempDirNormal/used_artifacts/x64-tmks" | flowey v 25 'artifact_use_from_x64-tmks' --is-raw-string update
5358 echo "$AgentTempDirNormal/used_artifacts/x64-windows-pipette" | flowey v 25 'artifact_use_from_x64-windows-pipette' --is-raw-string update
5359 shell: bash
5360 - name: creating new test content dir
5361 run: |-
5362 flowey e 25 flowey_core::pipeline::artifact::resolve 1
5363 flowey e 25 flowey_core::pipeline::artifact::resolve 2
5364 flowey e 25 flowey_core::pipeline::artifact::resolve 7
5365 flowey e 25 flowey_core::pipeline::artifact::resolve 3
5366 flowey e 25 flowey_core::pipeline::artifact::resolve 0
5367 flowey e 25 flowey_core::pipeline::artifact::resolve 4
5368 flowey e 25 flowey_core::pipeline::artifact::resolve 6
5369 flowey e 25 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 0
5370 shell: bash
5371 - name: checking if packages need to be installed
5372 run: flowey e 25 flowey_lib_common::install_dist_pkg 0
5373 shell: bash
5374 - name: installing packages
5375 run: flowey e 25 flowey_lib_common::install_dist_pkg 1
5376 shell: bash
5377 - name: create gh-release-download cache dir
5378 run: flowey e 25 flowey_lib_common::download_gh_release 0
5379 shell: bash
5380 - name: Pre-processing cache vars
5381 run: |-
5382 flowey e 25 flowey_lib_common::cache 8
5383 flowey v 25 'flowey_lib_common::cache:18:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar8
5384 flowey v 25 'flowey_lib_common::cache:17:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar9
5385 shell: bash
5386 - id: flowey_lib_common__cache__9
5387 uses: actions/cache@v5
5388 with:
5389 key: ${{ env.floweyvar8 }}
5390 path: ${{ env.floweyvar9 }}
5391 name: 'Restore cache: gh-release-download'
5392 - name: download artifacts from github releases
5393 run: |-
5394 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
5395 ${{ steps.flowey_lib_common__cache__9.outputs.cache-hit }}
5396 EOF
5397 flowey e 25 flowey_lib_common::cache 10
5398 flowey e 25 flowey_lib_common::download_gh_release 1
5399 shell: bash
5400 - name: extract azcopy from archive
5401 run: flowey e 25 flowey_lib_common::download_azcopy 0
5402 shell: bash
5403 - name: calculating required VMM tests disk images
5404 run: flowey e 25 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 0
5405 shell: bash
5406 - name: downloading VMM test disk images
5407 run: |-
5408 flowey e 25 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 1
5409 flowey e 25 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 2
5410 shell: bash
5411 - name: create gh cache dir
5412 run: flowey e 25 flowey_lib_common::download_gh_cli 0
5413 shell: bash
5414 - name: Pre-processing cache vars
5415 run: |-
5416 flowey e 25 flowey_lib_common::cache 4
5417 flowey v 25 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar6
5418 flowey v 25 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar7
5419 shell: bash
5420 - id: flowey_lib_common__cache__5
5421 uses: actions/cache@v5
5422 with:
5423 key: ${{ env.floweyvar6 }}
5424 path: ${{ env.floweyvar7 }}
5425 name: 'Restore cache: gh-cli'
5426 - name: installing gh
5427 run: |-
5428 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
5429 ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
5430 EOF
5431 flowey e 25 flowey_lib_common::cache 6
5432 flowey e 25 flowey_lib_common::download_gh_cli 1
5433 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
5434 ${{ github.token }}
5435 EOF
5436 shell: bash
5437 - name: setup gh cli
5438 run: flowey e 25 flowey_lib_common::use_gh_cli 0
5439 shell: bash
5440 - name: get latest completed action id
5441 run: flowey e 25 flowey_lib_common::gh_latest_completed_workflow_id 0
5442 shell: bash
5443 - name: download artifacts from github actions run
5444 run: |-
5445 flowey e 25 flowey_lib_common::download_gh_artifact 0
5446 flowey e 25 flowey_lib_hvlite::download_release_igvm_files_from_gh::resolve 0
5447 shell: bash
5448 - name: unpack openvmm-test-initrd archives
5449 run: flowey e 25 flowey_lib_hvlite::resolve_openvmm_test_initrd 0
5450 shell: bash
5451 - name: unpack openvmm-test-linux archives
5452 run: flowey e 25 flowey_lib_hvlite::resolve_openvmm_test_linux_kernel 0
5453 shell: bash
5454 - name: unpack mu_msvm package (x64)
5455 run: flowey e 25 flowey_lib_hvlite::download_uefi_mu_msvm 0
5456 shell: bash
5457 - name: setting up vmm_tests env
5458 run: flowey e 25 flowey_lib_hvlite::init_vmm_tests_env 0
5459 shell: bash
5460 - name: ensure hypervisor device is accessible
5461 run: flowey e 25 flowey_lib_hvlite::test_nextest_vmm_tests_archive 0
5462 shell: bash
5463 - name: create cargo-nextest cache dir
5464 run: |-
5465 flowey e 25 flowey_lib_common::download_cargo_nextest 0
5466 flowey e 25 flowey_lib_common::download_cargo_nextest 1
5467 flowey e 25 flowey_lib_common::download_cargo_nextest 2
5468 flowey e 25 flowey_lib_common::download_cargo_nextest 3
5469 shell: bash
5470 - name: Pre-processing cache vars
5471 run: |-
5472 flowey e 25 flowey_lib_common::cache 0
5473 flowey v 25 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar4
5474 flowey v 25 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar5
5475 shell: bash
5476 - id: flowey_lib_common__cache__1
5477 uses: actions/cache@v5
5478 with:
5479 key: ${{ env.floweyvar4 }}
5480 path: ${{ env.floweyvar5 }}
5481 name: 'Restore cache: cargo-nextest'
5482 - name: downloading cargo-nextest
5483 run: |-
5484 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
5485 ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
5486 EOF
5487 flowey e 25 flowey_lib_common::cache 2
5488 flowey e 25 flowey_lib_common::download_cargo_nextest 4
5489 shell: bash
5490 - name: check if openvmm needs to be cloned
5491 run: |-
5492 flowey e 25 flowey_lib_common::git_checkout 0
5493 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
5494 flowey v 25 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION
5495 shell: bash
5496 - id: flowey_lib_common__git_checkout__1
5497 uses: actions/checkout@v6
5498 with:
5499 fetch-depth: '1'
5500 path: repo0
5501 persist-credentials: ${{ env.floweyvar3 }}
5502 name: checkout repo openvmm
5503 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
5504 - name: report cloned repo directories
5505 run: |-
5506 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
5507 ${{ github.workspace }}
5508 EOF
5509 flowey e 25 flowey_lib_common::git_checkout 3
5510 flowey e 25 flowey_lib_hvlite::git_checkout_openvmm_repo 0
5511 flowey e 25 flowey_lib_hvlite::run_cargo_nextest_run 0
5512 flowey e 25 flowey_lib_hvlite::run_cargo_nextest_run 1
5513 flowey e 25 flowey_core::pipeline::artifact::resolve 5
5514 flowey e 25 flowey_lib_hvlite::test_nextest_vmm_tests_archive 1
5515 shell: bash
5516 - name: generate nextest command
5517 run: flowey e 25 flowey_lib_common::gen_cargo_nextest_run_cmd 0
5518 shell: bash
5519 - name: install vmm tests deps (linux)
5520 run: flowey e 25 flowey_lib_hvlite::install_vmm_tests_deps 0
5521 shell: bash
5522 - name: run 'vmm_tests' nextest tests
5523 run: |-
5524 flowey e 25 flowey_lib_common::run_cargo_nextest_run 0
5525 flowey e 25 flowey_lib_common::run_cargo_nextest_run 1
5526 flowey e 25 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 1
5527 flowey e 25 flowey_lib_common::publish_test_results 4
5528 flowey e 25 flowey_lib_common::publish_test_results 5
5529 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
5530 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
5531 shell: bash
5532 - id: flowey_lib_common__publish_test_results__6
5533 uses: actions/upload-artifact@v7
5534 with:
5535 name: x64-linux-intel-mshv-vmm-tests-logs
5536 path: ${{ env.floweyvar2 }}
5537 name: 'publish test results: x64-linux-intel-mshv-vmm-tests (logs)'
5538 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
5539 - name: πŸ¦€ flowey rust steps
5540 run: |-
5541 flowey e 25 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 2
5542 flowey e 25 flowey_lib_common::publish_test_results 0
5543 flowey e 25 flowey_lib_common::publish_test_results 1
5544 flowey e 25 flowey_lib_common::publish_test_results 2
5545 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
5546 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
5547 shell: bash
5548 - id: flowey_lib_common__publish_test_results__3
5549 uses: actions/upload-artifact@v7
5550 with:
5551 name: x64-linux-intel-mshv-vmm-tests-junit-xml
5552 path: ${{ env.floweyvar1 }}
5553 name: 'publish test results: x64-linux-intel-mshv-vmm-tests (JUnit XML)'
5554 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
5555 - name: report test results to overall pipeline status
5556 run: flowey e 25 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 3
5557 shell: bash
5558 - name: 'validate cache entry: cargo-nextest'
5559 run: flowey e 25 flowey_lib_common::cache 3
5560 shell: bash
5561 - name: 'validate cache entry: gh-cli'
5562 run: flowey e 25 flowey_lib_common::cache 7
5563 shell: bash
5564 - name: 'validate cache entry: gh-release-download'
5565 run: flowey e 25 flowey_lib_common::cache 11
5566 shell: bash
5567 job26:
5568 name: run vmm-tests [aarch64-windows]
5569 runs-on:
5570 - self-hosted
5571 - Windows
5572 - ARM64
5573 - Baremetal
5574 permissions:
5575 contents: read
5576 id-token: write
5577 needs:
5578 - job10
5579 - job2
5580 - job3
5581 - job5
5582 if: github.event.pull_request.draft == false
5583 steps:
5584 - run: |
5585 set -x
5586 i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
5587 sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
5588 curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.95.0 -y
5589 . "$HOME/.cargo/env"
5590 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
5591 rustup show
5592 if: runner.os == 'Linux'
5593 name: rustup (Linux)
5594 shell: bash
5595 - run: |
5596 set -x
5597 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
5598 ./rustup-init.exe -y --default-toolchain=1.95.0
5599 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
5600 if: runner.os == 'Windows' && runner.arch == 'X64'
5601 name: rustup (Windows X64)
5602 shell: bash
5603 - run: |
5604 set -x
5605 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
5606 ./rustup-init.exe -y --default-toolchain=1.95.0
5607 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
5608 if: runner.os == 'Windows' && runner.arch == 'ARM64'
5609 name: rustup (Windows ARM64)
5610 shell: bash
5611 - uses: actions/checkout@v6
5612 with:
5613 path: flowey_bootstrap
5614 - name: Build flowey
5615 run: |
5616 set -x
5617 CARGO_INCREMENTAL=0 cargo build -p flowey_hvlite --target aarch64-pc-windows-msvc --profile flowey-ci
5618 OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
5619 mkdir -p "$OutDirNormal"
5620 mv ./.github/workflows/openvmm-ci.yaml "$OutDirNormal/pipeline.yaml"
5621 mv target/aarch64-pc-windows-msvc/flowey-ci/flowey_hvlite.exe "$OutDirNormal/flowey.exe"
5622 working-directory: flowey_bootstrap
5623 shell: bash
5624 - name: πŸŒΌπŸ“¦ Download artifacts
5625 uses: actions/download-artifact@v8
5626 with:
5627 pattern: '{aarch64-guest_test_uefi,aarch64-linux-musl-pipette,aarch64-linux-musl-tmk_vmm,aarch64-openhcl-igvm,aarch64-tmks,aarch64-windows-openvmm,aarch64-windows-pipette,aarch64-windows-tmk_vmm,aarch64-windows-vmgstool,aarch64-windows-vmm-tests-archive}'
5628 path: ${{ runner.temp }}/used_artifacts/
5629 - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH
5630 shell: bash
5631 name: πŸŒΌπŸ“¦ Add flowey to PATH
5632 - name: πŸŒΌπŸ”Ž Self-check YAML
5633 run: |-
5634 ESCAPED_AGENT_TEMPDIR=$(
5635 cat <<'EOF' | sed 's/\\/\\\\/g'
5636 ${{ runner.temp }}
5637 EOF
5638 )
5639 flowey.exe pipeline github --runtime $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci
5640 shell: bash
5641 - name: πŸŒΌπŸ›« Initialize job
5642 run: |
5643 AgentTempDirNormal="${{ runner.temp }}"
5644 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
5645 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
5646
5647 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe
5648
5649 echo '"debug"' | flowey.exe v 26 'FLOWEY_LOG' update
5650 echo "${{ runner.temp }}/work" | flowey.exe v 26 '_internal_WORKING_DIR' --is-raw-string update
5651
5652 cat <<'EOF' | flowey.exe v 26 'verbose' update
5653 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
5654 EOF
5655 echo "${{ runner.temp }}\\used_artifacts\\aarch64-guest_test_uefi" | flowey.exe v 26 'artifact_use_from_aarch64-guest_test_uefi' --is-raw-string update
5656 echo "${{ runner.temp }}\\used_artifacts\\aarch64-linux-musl-pipette" | flowey.exe v 26 'artifact_use_from_aarch64-linux-musl-pipette' --is-raw-string update
5657 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
5658 echo "${{ runner.temp }}\\used_artifacts\\aarch64-openhcl-igvm" | flowey.exe v 26 'artifact_use_from_aarch64-openhcl-igvm' --is-raw-string update
5659 echo "${{ runner.temp }}\\used_artifacts\\aarch64-tmks" | flowey.exe v 26 'artifact_use_from_aarch64-tmks' --is-raw-string update
5660 echo "${{ runner.temp }}\\used_artifacts\\aarch64-windows-openvmm" | flowey.exe v 26 'artifact_use_from_aarch64-windows-openvmm' --is-raw-string update
5661 echo "${{ runner.temp }}\\used_artifacts\\aarch64-windows-pipette" | flowey.exe v 26 'artifact_use_from_aarch64-windows-pipette' --is-raw-string update
5662 echo "${{ runner.temp }}\\used_artifacts\\aarch64-windows-tmk_vmm" | flowey.exe v 26 'artifact_use_from_aarch64-windows-tmk_vmm' --is-raw-string update
5663 echo "${{ runner.temp }}\\used_artifacts\\aarch64-windows-vmgstool" | flowey.exe v 26 'artifact_use_from_aarch64-windows-vmgstool' --is-raw-string update
5664 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
5665 shell: bash
5666 - name: create cargo-nextest cache dir
5667 run: |-
5668 flowey.exe e 26 flowey_lib_common::download_cargo_nextest 0
5669 flowey.exe e 26 flowey_lib_common::download_cargo_nextest 1
5670 flowey.exe e 26 flowey_lib_common::download_cargo_nextest 2
5671 flowey.exe e 26 flowey_lib_common::download_cargo_nextest 3
5672 shell: bash
5673 - name: Pre-processing cache vars
5674 run: |-
5675 flowey.exe e 26 flowey_lib_common::cache 0
5676 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
5677 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
5678 shell: bash
5679 - id: flowey_lib_common__cache__1
5680 uses: actions/cache@v5
5681 with:
5682 key: ${{ env.floweyvar4 }}
5683 path: ${{ env.floweyvar5 }}
5684 name: 'Restore cache: cargo-nextest'
5685 - name: downloading cargo-nextest
5686 run: |-
5687 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
5688 ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
5689 EOF
5690 flowey.exe e 26 flowey_lib_common::cache 2
5691 flowey.exe e 26 flowey_lib_common::download_cargo_nextest 4
5692 shell: bash
5693 - name: check if openvmm needs to be cloned
5694 run: |-
5695 flowey.exe e 26 flowey_lib_common::git_checkout 0
5696 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
5697 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
5698 shell: bash
5699 - id: flowey_lib_common__git_checkout__1
5700 uses: actions/checkout@v6
5701 with:
5702 fetch-depth: '1'
5703 path: repo0
5704 persist-credentials: ${{ env.floweyvar3 }}
5705 name: checkout repo openvmm
5706 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
5707 - name: report cloned repo directories
5708 run: |-
5709 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
5710 ${{ github.workspace }}
5711 EOF
5712 flowey.exe e 26 flowey_lib_common::git_checkout 3
5713 flowey.exe e 26 flowey_lib_hvlite::git_checkout_openvmm_repo 0
5714 flowey.exe e 26 flowey_lib_hvlite::run_cargo_nextest_run 0
5715 flowey.exe e 26 flowey_core::pipeline::artifact::resolve 4
5716 flowey.exe e 26 flowey_core::pipeline::artifact::resolve 5
5717 flowey.exe e 26 flowey_core::pipeline::artifact::resolve 1
5718 flowey.exe e 26 flowey_core::pipeline::artifact::resolve 0
5719 flowey.exe e 26 flowey_core::pipeline::artifact::resolve 6
5720 flowey.exe e 26 flowey_core::pipeline::artifact::resolve 2
5721 flowey.exe e 26 flowey_core::pipeline::artifact::resolve 3
5722 flowey.exe e 26 flowey_core::pipeline::artifact::resolve 7
5723 shell: bash
5724 - name: creating new test content dir
5725 run: flowey.exe e 26 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 0
5726 shell: bash
5727 - name: resolve OpenHCL igvm artifact
5728 run: flowey.exe e 26 flowey_lib_hvlite::artifact_openhcl_igvm_from_recipe::resolve 0
5729 shell: bash
5730 - name: create gh-release-download cache dir
5731 run: flowey.exe e 26 flowey_lib_common::download_gh_release 0
5732 shell: bash
5733 - name: Pre-processing cache vars
5734 run: |-
5735 flowey.exe e 26 flowey_lib_common::cache 8
5736 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
5737 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
5738 shell: bash
5739 - id: flowey_lib_common__cache__9
5740 uses: actions/cache@v5
5741 with:
5742 key: ${{ env.floweyvar8 }}
5743 path: ${{ env.floweyvar9 }}
5744 name: 'Restore cache: gh-release-download'
5745 - name: download artifacts from github releases
5746 run: |-
5747 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
5748 ${{ steps.flowey_lib_common__cache__9.outputs.cache-hit }}
5749 EOF
5750 flowey.exe e 26 flowey_lib_common::cache 10
5751 flowey.exe e 26 flowey_lib_common::download_gh_release 1
5752 shell: bash
5753 - name: extract azcopy from archive
5754 run: flowey.exe e 26 flowey_lib_common::download_azcopy 0
5755 shell: bash
5756 - name: calculating required VMM tests disk images
5757 run: flowey.exe e 26 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 0
5758 shell: bash
5759 - name: downloading VMM test disk images
5760 run: |-
5761 flowey.exe e 26 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 1
5762 flowey.exe e 26 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 2
5763 shell: bash
5764 - name: create gh cache dir
5765 run: flowey.exe e 26 flowey_lib_common::download_gh_cli 0
5766 shell: bash
5767 - name: Pre-processing cache vars
5768 run: |-
5769 flowey.exe e 26 flowey_lib_common::cache 4
5770 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
5771 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
5772 shell: bash
5773 - id: flowey_lib_common__cache__5
5774 uses: actions/cache@v5
5775 with:
5776 key: ${{ env.floweyvar6 }}
5777 path: ${{ env.floweyvar7 }}
5778 name: 'Restore cache: gh-cli'
5779 - name: installing gh
5780 run: |-
5781 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
5782 ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
5783 EOF
5784 flowey.exe e 26 flowey_lib_common::cache 6
5785 flowey.exe e 26 flowey_lib_common::download_gh_cli 1
5786 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
5787 ${{ github.token }}
5788 EOF
5789 shell: bash
5790 - name: setup gh cli
5791 run: flowey.exe e 26 flowey_lib_common::use_gh_cli 0
5792 shell: bash
5793 - name: get latest completed action id
5794 run: flowey.exe e 26 flowey_lib_common::gh_latest_completed_workflow_id 0
5795 shell: bash
5796 - name: download artifacts from github actions run
5797 run: |-
5798 flowey.exe e 26 flowey_lib_common::download_gh_artifact 0
5799 flowey.exe e 26 flowey_lib_hvlite::download_release_igvm_files_from_gh::resolve 0
5800 shell: bash
5801 - name: unpack openvmm-test-initrd archives
5802 run: flowey.exe e 26 flowey_lib_hvlite::resolve_openvmm_test_initrd 0
5803 shell: bash
5804 - name: unpack openvmm-test-linux archives
5805 run: flowey.exe e 26 flowey_lib_hvlite::resolve_openvmm_test_linux_kernel 0
5806 shell: bash
5807 - name: unpack mu_msvm package (aarch64)
5808 run: flowey.exe e 26 flowey_lib_hvlite::download_uefi_mu_msvm 0
5809 shell: bash
5810 - name: setting up vmm_tests env
5811 run: |-
5812 flowey.exe e 26 flowey_lib_hvlite::init_vmm_tests_env 0
5813 flowey.exe e 26 flowey_lib_hvlite::run_cargo_nextest_run 1
5814 flowey.exe e 26 flowey_core::pipeline::artifact::resolve 8
5815 flowey.exe e 26 flowey_lib_hvlite::test_nextest_vmm_tests_archive 0
5816 shell: bash
5817 - name: generate nextest command
5818 run: flowey.exe e 26 flowey_lib_common::gen_cargo_nextest_run_cmd 0
5819 shell: bash
5820 - name: install vmm tests deps (windows)
5821 run: flowey.exe e 26 flowey_lib_hvlite::install_vmm_tests_deps 0
5822 shell: bash
5823 - name: starting test_igvm_agent_rpc_server
5824 run: flowey.exe e 26 flowey_lib_hvlite::run_test_igvm_agent_rpc_server 0
5825 shell: bash
5826 - name: run 'vmm_tests' nextest tests
5827 run: |-
5828 flowey.exe e 26 flowey_lib_common::run_cargo_nextest_run 0
5829 flowey.exe e 26 flowey_lib_common::run_cargo_nextest_run 1
5830 flowey.exe e 26 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 1
5831 shell: bash
5832 - name: stopping test_igvm_agent_rpc_server
5833 run: |-
5834 flowey.exe e 26 flowey_lib_hvlite::stop_test_igvm_agent_rpc_server 0
5835 flowey.exe e 26 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 2
5836 flowey.exe e 26 flowey_lib_common::publish_test_results 4
5837 flowey.exe e 26 flowey_lib_common::publish_test_results 5
5838 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
5839 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
5840 shell: bash
5841 - id: flowey_lib_common__publish_test_results__6
5842 uses: actions/upload-artifact@v7
5843 with:
5844 name: aarch64-windows-vmm-tests-logs
5845 path: ${{ env.floweyvar2 }}
5846 name: 'publish test results: aarch64-windows-vmm-tests (logs)'
5847 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
5848 - name: πŸ¦€ flowey rust steps
5849 run: |-
5850 flowey.exe e 26 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 3
5851 flowey.exe e 26 flowey_lib_common::publish_test_results 0
5852 flowey.exe e 26 flowey_lib_common::publish_test_results 1
5853 flowey.exe e 26 flowey_lib_common::publish_test_results 2
5854 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
5855 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
5856 shell: bash
5857 - id: flowey_lib_common__publish_test_results__3
5858 uses: actions/upload-artifact@v7
5859 with:
5860 name: aarch64-windows-vmm-tests-junit-xml
5861 path: ${{ env.floweyvar1 }}
5862 name: 'publish test results: aarch64-windows-vmm-tests (JUnit XML)'
5863 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
5864 - name: report test results to overall pipeline status
5865 run: flowey.exe e 26 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 4
5866 shell: bash
5867 - name: 'validate cache entry: cargo-nextest'
5868 run: flowey.exe e 26 flowey_lib_common::cache 3
5869 shell: bash
5870 - name: 'validate cache entry: gh-cli'
5871 run: flowey.exe e 26 flowey_lib_common::cache 7
5872 shell: bash
5873 - name: 'validate cache entry: gh-release-download'
5874 run: flowey.exe e 26 flowey_lib_common::cache 11
5875 shell: bash
5876 job27:
5877 name: test flowey local backend
5878 runs-on: ubuntu-latest
5879 permissions:
5880 contents: read
5881 id-token: write
5882 if: github.event.pull_request.draft == false
5883 steps:
5884 - run: |
5885 set -x
5886 i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
5887 sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
5888 curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.95.0 -y
5889 . "$HOME/.cargo/env"
5890 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
5891 rustup show
5892 if: runner.os == 'Linux'
5893 name: rustup (Linux)
5894 shell: bash
5895 - run: |
5896 set -x
5897 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
5898 ./rustup-init.exe -y --default-toolchain=1.95.0
5899 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
5900 if: runner.os == 'Windows' && runner.arch == 'X64'
5901 name: rustup (Windows X64)
5902 shell: bash
5903 - run: |
5904 set -x
5905 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
5906 ./rustup-init.exe -y --default-toolchain=1.95.0
5907 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
5908 if: runner.os == 'Windows' && runner.arch == 'ARM64'
5909 name: rustup (Windows ARM64)
5910 shell: bash
5911 - uses: actions/checkout@v6
5912 with:
5913 path: flowey_bootstrap
5914 - name: Build flowey
5915 run: |
5916 set -x
5917 CARGO_INCREMENTAL=0 cargo build -p flowey_hvlite --target x86_64-unknown-linux-gnu --profile flowey-ci
5918 OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
5919 mkdir -p "$OutDirNormal"
5920 mv ./.github/workflows/openvmm-ci.yaml "$OutDirNormal/pipeline.yaml"
5921 mv target/x86_64-unknown-linux-gnu/flowey-ci/flowey_hvlite "$OutDirNormal/flowey"
5922 working-directory: flowey_bootstrap
5923 shell: bash
5924 - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH
5925 shell: bash
5926 name: πŸŒΌπŸ“¦ Add flowey to PATH
5927 - name: πŸŒΌπŸ”Ž Self-check YAML
5928 run: |-
5929 ESCAPED_AGENT_TEMPDIR=$(
5930 cat <<'EOF' | sed 's/\\/\\\\/g'
5931 ${{ runner.temp }}
5932 EOF
5933 )
5934 flowey pipeline github --runtime $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci
5935 shell: bash
5936 - name: πŸŒΌπŸ›« Initialize job
5937 run: |
5938 AgentTempDirNormal="${{ runner.temp }}"
5939 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
5940 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
5941
5942 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey
5943
5944 echo '"debug"' | flowey v 27 'FLOWEY_LOG' update
5945 echo "${{ runner.temp }}/work" | flowey v 27 '_internal_WORKING_DIR' --is-raw-string update
5946
5947 cat <<'EOF' | flowey v 27 'verbose' update
5948 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
5949 EOF
5950 shell: bash
5951 - name: check if openvmm needs to be cloned
5952 run: |-
5953 flowey e 27 flowey_lib_common::git_checkout 0
5954 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
5955 flowey v 27 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION
5956 shell: bash
5957 - id: flowey_lib_common__git_checkout__1
5958 uses: actions/checkout@v6
5959 with:
5960 fetch-depth: '1'
5961 path: repo0
5962 persist-credentials: ${{ env.floweyvar1 }}
5963 name: checkout repo openvmm
5964 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
5965 - name: report cloned repo directories
5966 run: |-
5967 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
5968 ${{ github.workspace }}
5969 EOF
5970 flowey e 27 flowey_lib_common::git_checkout 3
5971 flowey e 27 flowey_lib_hvlite::git_checkout_openvmm_repo 0
5972 shell: bash
5973 - name: add default cargo home to path
5974 run: flowey e 27 flowey_lib_common::install_rust 0
5975 shell: bash
5976 - name: install Rust
5977 run: flowey e 27 flowey_lib_common::install_rust 1
5978 shell: bash
5979 - name: detect active toolchain
5980 run: |-
5981 flowey e 27 flowey_lib_common::install_rust 2
5982 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
5983 ${{ github.token }}
5984 EOF
5985 shell: bash
5986 - name: test cargo xflowey build-igvm x64 --install-missing-deps
5987 run: flowey e 27 flowey_lib_hvlite::_jobs::test_local_flowey_build_igvm 1
5988 shell: bash
5989 job28:
5990 name: publish vmgstool
5991 runs-on: ubuntu-latest
5992 permissions:
5993 contents: write
5994 id-token: write
5995 needs:
5996 - job0
5997 - job1
5998 - job10
5999 - job11
6000 - job12
6001 - job13
6002 - job14
6003 - job15
6004 - job16
6005 - job17
6006 - job18
6007 - job19
6008 - job2
6009 - job20
6010 - job21
6011 - job22
6012 - job23
6013 - job24
6014 - job25
6015 - job26
6016 - job27
6017 - job3
6018 - job4
6019 - job5
6020 - job6
6021 - job7
6022 - job8
6023 - job9
6024 if: github.event.pull_request.draft == false
6025 steps:
6026 - name: πŸŒΌπŸ“¦ Download artifacts
6027 uses: actions/download-artifact@v8
6028 with:
6029 pattern: '{_internal-flowey-bootstrap-x86_64-linux-uid-11,aarch64-linux-vmgstool,aarch64-windows-vmgstool,x64-linux-vmgstool,x64-windows-vmgstool}'
6030 path: ${{ runner.temp }}/used_artifacts/
6031 - run: echo "${{ runner.temp }}/used_artifacts/_internal-flowey-bootstrap-x86_64-linux-uid-11" >> $GITHUB_PATH
6032 shell: bash
6033 name: πŸŒΌπŸ“¦ Add flowey to PATH
6034 - name: πŸŒΌπŸ›« Initialize job
6035 run: |
6036 AgentTempDirNormal="${{ runner.temp }}"
6037 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
6038 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
6039
6040 chmod +x $AgentTempDirNormal/used_artifacts/_internal-flowey-bootstrap-x86_64-linux-uid-11/flowey
6041
6042 echo '"debug"' | flowey v 28 'FLOWEY_LOG' update
6043 echo "${{ runner.temp }}/work" | flowey v 28 '_internal_WORKING_DIR' --is-raw-string update
6044
6045 cat <<'EOF' | flowey v 28 'verbose' update
6046 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
6047 EOF
6048 echo "$AgentTempDirNormal/used_artifacts/aarch64-linux-vmgstool" | flowey v 28 'artifact_use_from_aarch64-linux-vmgstool' --is-raw-string update
6049 echo "$AgentTempDirNormal/used_artifacts/aarch64-windows-vmgstool" | flowey v 28 'artifact_use_from_aarch64-windows-vmgstool' --is-raw-string update
6050 echo "$AgentTempDirNormal/used_artifacts/x64-linux-vmgstool" | flowey v 28 'artifact_use_from_x64-linux-vmgstool' --is-raw-string update
6051 echo "$AgentTempDirNormal/used_artifacts/x64-windows-vmgstool" | flowey v 28 'artifact_use_from_x64-windows-vmgstool' --is-raw-string update
6052 shell: bash
6053 - name: create gh cache dir
6054 run: flowey e 28 flowey_lib_common::download_gh_cli 0
6055 shell: bash
6056 - name: Pre-processing cache vars
6057 run: |-
6058 flowey e 28 flowey_lib_common::cache 0
6059 flowey v 28 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar2
6060 flowey v 28 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar3
6061 shell: bash
6062 - id: flowey_lib_common__cache__1
6063 uses: actions/cache@v5
6064 with:
6065 key: ${{ env.floweyvar2 }}
6066 path: ${{ env.floweyvar3 }}
6067 name: 'Restore cache: gh-cli'
6068 - name: installing gh
6069 run: |-
6070 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
6071 ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
6072 EOF
6073 flowey e 28 flowey_lib_common::cache 2
6074 flowey e 28 flowey_lib_common::download_gh_cli 1
6075 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
6076 ${{ github.token }}
6077 EOF
6078 shell: bash
6079 - name: setup gh cli
6080 run: |-
6081 flowey e 28 flowey_lib_common::use_gh_cli 0
6082 flowey e 28 flowey_core::pipeline::artifact::resolve 1
6083 flowey e 28 flowey_core::pipeline::artifact::resolve 0
6084 flowey e 28 flowey_core::pipeline::artifact::resolve 3
6085 flowey e 28 flowey_core::pipeline::artifact::resolve 2
6086 shell: bash
6087 - name: enumerate vmgstool release files
6088 run: flowey e 28 flowey_lib_hvlite::_jobs::publish_vmgstool_gh_release 0
6089 shell: bash
6090 - name: check if openvmm needs to be cloned
6091 run: |-
6092 flowey e 28 flowey_lib_common::git_checkout 0
6093 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
6094 flowey v 28 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION
6095 shell: bash
6096 - id: flowey_lib_common__git_checkout__1
6097 uses: actions/checkout@v6
6098 with:
6099 fetch-depth: '1'
6100 path: repo0
6101 persist-credentials: ${{ env.floweyvar1 }}
6102 name: checkout repo openvmm
6103 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
6104 - name: report cloned repo directories
6105 run: |-
6106 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
6107 ${{ github.workspace }}
6108 EOF
6109 flowey e 28 flowey_lib_common::git_checkout 3
6110 flowey e 28 flowey_lib_hvlite::git_checkout_openvmm_repo 0
6111 shell: bash
6112 - name: get current commit
6113 run: |-
6114 flowey e 28 flowey_lib_hvlite::_jobs::publish_vmgstool_gh_release 5
6115 flowey e 28 flowey_lib_hvlite::_jobs::publish_vmgstool_gh_release 1
6116 shell: bash
6117 - name: get cargo crate version
6118 run: |-
6119 flowey e 28 flowey_lib_common::get_cargo_crate_version 0
6120 flowey e 28 flowey_lib_hvlite::_jobs::publish_vmgstool_gh_release 2
6121 flowey e 28 flowey_lib_hvlite::_jobs::publish_vmgstool_gh_release 3
6122 flowey e 28 flowey_lib_hvlite::_jobs::publish_vmgstool_gh_release 4
6123 shell: bash
6124 - name: publish github releases
6125 run: flowey e 28 flowey_lib_common::publish_gh_release 0
6126 shell: bash
6127 - name: 'validate cache entry: gh-cli'
6128 run: flowey e 28 flowey_lib_common::cache 3
6129 shell: bash
6130 job3:
6131 name: build artifacts (shared VMM tests) [linux]
6132 runs-on:
6133 - self-hosted
6134 - 1ES.Pool=openvmm-gh-amd-westus3
6135 - 1ES.ImageOverride=ubuntu2404-amd64
6136 - JobId=job3-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}
6137 permissions:
6138 contents: read
6139 id-token: write
6140 if: github.event.pull_request.draft == false
6141 steps:
6142 - run: |
6143 set -x
6144 i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
6145 sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
6146 curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.95.0 -y
6147 . "$HOME/.cargo/env"
6148 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
6149 rustup show
6150 if: runner.os == 'Linux'
6151 name: rustup (Linux)
6152 shell: bash
6153 - run: |
6154 set -x
6155 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
6156 ./rustup-init.exe -y --default-toolchain=1.95.0
6157 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
6158 if: runner.os == 'Windows' && runner.arch == 'X64'
6159 name: rustup (Windows X64)
6160 shell: bash
6161 - run: |
6162 set -x
6163 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
6164 ./rustup-init.exe -y --default-toolchain=1.95.0
6165 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
6166 if: runner.os == 'Windows' && runner.arch == 'ARM64'
6167 name: rustup (Windows ARM64)
6168 shell: bash
6169 - uses: actions/checkout@v6
6170 with:
6171 path: flowey_bootstrap
6172 - name: Build flowey
6173 run: |
6174 set -x
6175 CARGO_INCREMENTAL=0 cargo build -p flowey_hvlite --target x86_64-unknown-linux-gnu --profile flowey-ci
6176 OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
6177 mkdir -p "$OutDirNormal"
6178 mv ./.github/workflows/openvmm-ci.yaml "$OutDirNormal/pipeline.yaml"
6179 mv target/x86_64-unknown-linux-gnu/flowey-ci/flowey_hvlite "$OutDirNormal/flowey"
6180 working-directory: flowey_bootstrap
6181 shell: bash
6182 - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH
6183 shell: bash
6184 name: πŸŒΌπŸ“¦ Add flowey to PATH
6185 - name: πŸŒΌπŸ”Ž Self-check YAML
6186 run: |-
6187 ESCAPED_AGENT_TEMPDIR=$(
6188 cat <<'EOF' | sed 's/\\/\\\\/g'
6189 ${{ runner.temp }}
6190 EOF
6191 )
6192 flowey pipeline github --runtime $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci
6193 shell: bash
6194 - name: πŸŒΌπŸ›« Initialize job
6195 run: |
6196 AgentTempDirNormal="${{ runner.temp }}"
6197 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
6198 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
6199
6200 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey
6201
6202 echo '"debug"' | flowey v 3 'FLOWEY_LOG' update
6203 echo "${{ runner.temp }}/work" | flowey v 3 '_internal_WORKING_DIR' --is-raw-string update
6204
6205 cat <<'EOF' | flowey v 3 'verbose' update
6206 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
6207 EOF
6208 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-guest_test_uefi"
6209 echo "$AgentTempDirNormal/publish_artifacts/aarch64-guest_test_uefi" | flowey v 3 'artifact_publish_from_aarch64-guest_test_uefi' --is-raw-string update
6210 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-musl-pipette"
6211 echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-musl-pipette" | flowey v 3 'artifact_publish_from_aarch64-linux-musl-pipette' --is-raw-string update
6212 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-musl-tmk_vmm"
6213 echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-musl-tmk_vmm" | flowey v 3 'artifact_publish_from_aarch64-linux-musl-tmk_vmm' --is-raw-string update
6214 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-tpm_guest_tests"
6215 echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-tpm_guest_tests" | flowey v 3 'artifact_publish_from_aarch64-linux-tpm_guest_tests' --is-raw-string update
6216 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-tmks"
6217 echo "$AgentTempDirNormal/publish_artifacts/aarch64-tmks" | flowey v 3 'artifact_publish_from_aarch64-tmks' --is-raw-string update
6218 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-guest_test_uefi"
6219 echo "$AgentTempDirNormal/publish_artifacts/x64-guest_test_uefi" | flowey v 3 'artifact_publish_from_x64-guest_test_uefi' --is-raw-string update
6220 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-musl-pipette"
6221 echo "$AgentTempDirNormal/publish_artifacts/x64-linux-musl-pipette" | flowey v 3 'artifact_publish_from_x64-linux-musl-pipette' --is-raw-string update
6222 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-musl-tmk_vmm"
6223 echo "$AgentTempDirNormal/publish_artifacts/x64-linux-musl-tmk_vmm" | flowey v 3 'artifact_publish_from_x64-linux-musl-tmk_vmm' --is-raw-string update
6224 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-tpm_guest_tests"
6225 echo "$AgentTempDirNormal/publish_artifacts/x64-linux-tpm_guest_tests" | flowey v 3 'artifact_publish_from_x64-linux-tpm_guest_tests' --is-raw-string update
6226 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-tmks"
6227 echo "$AgentTempDirNormal/publish_artifacts/x64-tmks" | flowey v 3 'artifact_publish_from_x64-tmks' --is-raw-string update
6228 shell: bash
6229 - name: add default cargo home to path
6230 run: flowey e 3 flowey_lib_common::install_rust 0
6231 shell: bash
6232 - name: install Rust
6233 run: flowey e 3 flowey_lib_common::install_rust 1
6234 shell: bash
6235 - name: detect active toolchain
6236 run: |-
6237 flowey e 3 flowey_lib_common::install_rust 2
6238 flowey e 3 flowey_lib_common::cfg_cargo_common_flags 0
6239 shell: bash
6240 - name: check if openvmm needs to be cloned
6241 run: |-
6242 flowey e 3 flowey_lib_common::git_checkout 0
6243 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
6244 flowey v 3 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION
6245 shell: bash
6246 - id: flowey_lib_common__git_checkout__1
6247 uses: actions/checkout@v6
6248 with:
6249 fetch-depth: '1'
6250 path: repo0
6251 persist-credentials: ${{ env.floweyvar1 }}
6252 name: checkout repo openvmm
6253 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
6254 - name: report cloned repo directories
6255 run: |-
6256 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
6257 ${{ github.workspace }}
6258 EOF
6259 flowey e 3 flowey_lib_common::git_checkout 3
6260 flowey e 3 flowey_lib_hvlite::git_checkout_openvmm_repo 0
6261 shell: bash
6262 - name: set '-Dwarnings' in .cargo/config.toml
6263 run: flowey e 3 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
6264 shell: bash
6265 - name: create gh-release-download cache dir
6266 run: flowey e 3 flowey_lib_common::download_gh_release 0
6267 shell: bash
6268 - name: Pre-processing cache vars
6269 run: |-
6270 flowey e 3 flowey_lib_common::cache 0
6271 flowey v 3 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar2
6272 flowey v 3 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar3
6273 shell: bash
6274 - id: flowey_lib_common__cache__1
6275 uses: actions/cache@v5
6276 with:
6277 key: ${{ env.floweyvar2 }}
6278 path: ${{ env.floweyvar3 }}
6279 name: 'Restore cache: gh-release-download'
6280 - name: download artifacts from github releases
6281 run: |-
6282 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
6283 ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
6284 EOF
6285 flowey e 3 flowey_lib_common::cache 2
6286 flowey e 3 flowey_lib_common::download_gh_release 1
6287 shell: bash
6288 - name: checking if packages need to be installed
6289 run: flowey e 3 flowey_lib_common::install_dist_pkg 0
6290 shell: bash
6291 - name: installing packages
6292 run: flowey e 3 flowey_lib_common::install_dist_pkg 1
6293 shell: bash
6294 - name: unpack protoc
6295 run: |-
6296 flowey e 3 flowey_lib_common::resolve_protoc 0
6297 flowey e 3 flowey_lib_hvlite::cfg_openvmm_magicpath 0
6298 shell: bash
6299 - name: symlink protoc
6300 run: |-
6301 flowey e 3 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
6302 flowey e 3 flowey_lib_hvlite::init_cross_build 9
6303 shell: bash
6304 - name: cargo build guest_test_uefi
6305 run: |-
6306 flowey e 3 flowey_lib_common::run_cargo_build 1
6307 flowey e 3 flowey_lib_hvlite::run_cargo_build 1
6308 shell: bash
6309 - name: build guest_test_uefi.img
6310 run: |-
6311 flowey e 3 flowey_lib_hvlite::build_guest_test_uefi 0
6312 flowey e 3 flowey_core::pipeline::artifact::publish 7
6313 flowey e 3 flowey_lib_hvlite::init_cross_build 5
6314 flowey e 3 flowey_lib_hvlite::run_cargo_build 10
6315 flowey e 3 flowey_lib_hvlite::run_cargo_build 11
6316 shell: bash
6317 - name: cargo build simple_tmk
6318 run: |-
6319 flowey e 3 flowey_lib_common::run_cargo_build 4
6320 flowey e 3 flowey_lib_hvlite::run_cargo_build 12
6321 shell: bash
6322 - name: split debug symbols
6323 run: |-
6324 flowey e 3 flowey_lib_hvlite::run_split_debug_info 5
6325 flowey e 3 flowey_lib_hvlite::run_cargo_build 13
6326 flowey e 3 flowey_lib_hvlite::build_tmks 0
6327 flowey e 3 flowey_core::pipeline::artifact::publish 8
6328 flowey e 3 flowey_lib_hvlite::init_cross_build 6
6329 shell: bash
6330 - name: cargo build tpm_guest_tests
6331 run: |-
6332 flowey e 3 flowey_lib_common::run_cargo_build 9
6333 flowey e 3 flowey_lib_hvlite::run_cargo_build 20
6334 shell: bash
6335 - name: split debug symbols
6336 run: |-
6337 flowey e 3 flowey_lib_hvlite::run_split_debug_info 7
6338 flowey e 3 flowey_lib_hvlite::run_cargo_build 21
6339 flowey e 3 flowey_lib_hvlite::build_tpm_guest_tests 1
6340 flowey e 3 flowey_core::pipeline::artifact::publish 9
6341 shell: bash
6342 - name: unpack openvmm-deps archive
6343 run: flowey e 3 flowey_lib_hvlite::resolve_openvmm_deps 0
6344 shell: bash
6345 - name: extract X86_64 sysroot.tar.gz
6346 run: |-
6347 flowey e 3 flowey_lib_hvlite::init_openvmm_magicpath_openhcl_sysroot 0
6348 flowey e 3 flowey_lib_hvlite::init_cross_build 7
6349 shell: bash
6350 - name: cargo build pipette
6351 run: |-
6352 flowey e 3 flowey_lib_common::run_cargo_build 3
6353 flowey e 3 flowey_lib_hvlite::run_cargo_build 4
6354 shell: bash
6355 - name: split debug symbols
6356 run: |-
6357 flowey e 3 flowey_lib_hvlite::run_split_debug_info 4
6358 flowey e 3 flowey_lib_hvlite::run_cargo_build 5
6359 flowey e 3 flowey_lib_hvlite::build_pipette 1
6360 flowey e 3 flowey_core::pipeline::artifact::publish 0
6361 flowey e 3 flowey_lib_hvlite::init_cross_build 8
6362 shell: bash
6363 - name: cargo build tmk_vmm
6364 run: |-
6365 flowey e 3 flowey_lib_common::run_cargo_build 7
6366 flowey e 3 flowey_lib_hvlite::run_cargo_build 16
6367 shell: bash
6368 - name: split debug symbols
6369 run: |-
6370 flowey e 3 flowey_lib_hvlite::run_split_debug_info 6
6371 flowey e 3 flowey_lib_hvlite::run_cargo_build 17
6372 flowey e 3 flowey_lib_hvlite::build_tmk_vmm 1
6373 flowey e 3 flowey_core::pipeline::artifact::publish 1
6374 flowey e 3 flowey_lib_hvlite::init_cross_build 4
6375 shell: bash
6376 - name: cargo build guest_test_uefi
6377 run: |-
6378 flowey e 3 flowey_lib_common::run_cargo_build 0
6379 flowey e 3 flowey_lib_hvlite::run_cargo_build 0
6380 shell: bash
6381 - name: build guest_test_uefi.img
6382 run: |-
6383 flowey e 3 flowey_lib_hvlite::build_guest_test_uefi 1
6384 flowey e 3 flowey_core::pipeline::artifact::publish 2
6385 flowey e 3 flowey_lib_hvlite::init_cross_build 0
6386 flowey e 3 flowey_lib_hvlite::run_cargo_build 6
6387 flowey e 3 flowey_lib_hvlite::run_cargo_build 7
6388 shell: bash
6389 - name: cargo build simple_tmk
6390 run: |-
6391 flowey e 3 flowey_lib_common::run_cargo_build 5
6392 flowey e 3 flowey_lib_hvlite::run_cargo_build 8
6393 shell: bash
6394 - name: split debug symbols
6395 run: |-
6396 flowey e 3 flowey_lib_hvlite::run_split_debug_info 1
6397 flowey e 3 flowey_lib_hvlite::run_cargo_build 9
6398 flowey e 3 flowey_lib_hvlite::build_tmks 1
6399 flowey e 3 flowey_core::pipeline::artifact::publish 3
6400 flowey e 3 flowey_lib_hvlite::init_cross_build 1
6401 shell: bash
6402 - name: cargo build tpm_guest_tests
6403 run: |-
6404 flowey e 3 flowey_lib_common::run_cargo_build 8
6405 flowey e 3 flowey_lib_hvlite::run_cargo_build 18
6406 shell: bash
6407 - name: split debug symbols
6408 run: |-
6409 flowey e 3 flowey_lib_hvlite::run_split_debug_info 3
6410 flowey e 3 flowey_lib_hvlite::run_cargo_build 19
6411 flowey e 3 flowey_lib_hvlite::build_tpm_guest_tests 0
6412 flowey e 3 flowey_core::pipeline::artifact::publish 4
6413 shell: bash
6414 - name: extract Aarch64 sysroot.tar.gz
6415 run: |-
6416 flowey e 3 flowey_lib_hvlite::init_openvmm_magicpath_openhcl_sysroot 1
6417 flowey e 3 flowey_lib_hvlite::init_cross_build 3
6418 shell: bash
6419 - name: cargo build pipette
6420 run: |-
6421 flowey e 3 flowey_lib_common::run_cargo_build 2
6422 flowey e 3 flowey_lib_hvlite::run_cargo_build 2
6423 shell: bash
6424 - name: split debug symbols
6425 run: |-
6426 flowey e 3 flowey_lib_hvlite::run_split_debug_info 0
6427 flowey e 3 flowey_lib_hvlite::run_cargo_build 3
6428 flowey e 3 flowey_lib_hvlite::build_pipette 0
6429 flowey e 3 flowey_core::pipeline::artifact::publish 5
6430 flowey e 3 flowey_lib_hvlite::init_cross_build 2
6431 shell: bash
6432 - name: cargo build tmk_vmm
6433 run: |-
6434 flowey e 3 flowey_lib_common::run_cargo_build 6
6435 flowey e 3 flowey_lib_hvlite::run_cargo_build 14
6436 shell: bash
6437 - name: split debug symbols
6438 run: |-
6439 flowey e 3 flowey_lib_hvlite::run_split_debug_info 2
6440 flowey e 3 flowey_lib_hvlite::run_cargo_build 15
6441 flowey e 3 flowey_lib_hvlite::build_tmk_vmm 0
6442 flowey e 3 flowey_core::pipeline::artifact::publish 6
6443 shell: bash
6444 - name: 'validate cache entry: gh-release-download'
6445 run: flowey e 3 flowey_lib_common::cache 3
6446 shell: bash
6447 - name: πŸŒΌπŸ“¦ Publish aarch64-guest_test_uefi
6448 uses: actions/upload-artifact@v7
6449 with:
6450 name: aarch64-guest_test_uefi
6451 path: ${{ runner.temp }}/publish_artifacts/aarch64-guest_test_uefi/
6452 include-hidden-files: true
6453 - name: πŸŒΌπŸ“¦ Publish aarch64-linux-musl-pipette
6454 uses: actions/upload-artifact@v7
6455 with:
6456 name: aarch64-linux-musl-pipette
6457 path: ${{ runner.temp }}/publish_artifacts/aarch64-linux-musl-pipette/
6458 include-hidden-files: true
6459 - name: πŸŒΌπŸ“¦ Publish aarch64-linux-musl-tmk_vmm
6460 uses: actions/upload-artifact@v7
6461 with:
6462 name: aarch64-linux-musl-tmk_vmm
6463 path: ${{ runner.temp }}/publish_artifacts/aarch64-linux-musl-tmk_vmm/
6464 include-hidden-files: true
6465 - name: πŸŒΌπŸ“¦ Publish aarch64-linux-tpm_guest_tests
6466 uses: actions/upload-artifact@v7
6467 with:
6468 name: aarch64-linux-tpm_guest_tests
6469 path: ${{ runner.temp }}/publish_artifacts/aarch64-linux-tpm_guest_tests/
6470 include-hidden-files: true
6471 - name: πŸŒΌπŸ“¦ Publish aarch64-tmks
6472 uses: actions/upload-artifact@v7
6473 with:
6474 name: aarch64-tmks
6475 path: ${{ runner.temp }}/publish_artifacts/aarch64-tmks/
6476 include-hidden-files: true
6477 - name: πŸŒΌπŸ“¦ Publish x64-guest_test_uefi
6478 uses: actions/upload-artifact@v7
6479 with:
6480 name: x64-guest_test_uefi
6481 path: ${{ runner.temp }}/publish_artifacts/x64-guest_test_uefi/
6482 include-hidden-files: true
6483 - name: πŸŒΌπŸ“¦ Publish x64-linux-musl-pipette
6484 uses: actions/upload-artifact@v7
6485 with:
6486 name: x64-linux-musl-pipette
6487 path: ${{ runner.temp }}/publish_artifacts/x64-linux-musl-pipette/
6488 include-hidden-files: true
6489 - name: πŸŒΌπŸ“¦ Publish x64-linux-musl-tmk_vmm
6490 uses: actions/upload-artifact@v7
6491 with:
6492 name: x64-linux-musl-tmk_vmm
6493 path: ${{ runner.temp }}/publish_artifacts/x64-linux-musl-tmk_vmm/
6494 include-hidden-files: true
6495 - name: πŸŒΌπŸ“¦ Publish x64-linux-tpm_guest_tests
6496 uses: actions/upload-artifact@v7
6497 with:
6498 name: x64-linux-tpm_guest_tests
6499 path: ${{ runner.temp }}/publish_artifacts/x64-linux-tpm_guest_tests/
6500 include-hidden-files: true
6501 - name: πŸŒΌπŸ“¦ Publish x64-tmks
6502 uses: actions/upload-artifact@v7
6503 with:
6504 name: x64-tmks
6505 path: ${{ runner.temp }}/publish_artifacts/x64-tmks/
6506 include-hidden-files: true
6507 job4:
6508 name: build artifacts (not for VMM tests) [aarch64-windows]
6509 runs-on:
6510 - self-hosted
6511 - 1ES.Pool=openvmm-gh-amd-westus3
6512 - 1ES.ImageOverride=win-amd64
6513 - JobId=job4-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}
6514 permissions:
6515 contents: read
6516 id-token: write
6517 if: github.event.pull_request.draft == false
6518 steps:
6519 - run: |
6520 set -x
6521 i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
6522 sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
6523 curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.95.0 -y
6524 . "$HOME/.cargo/env"
6525 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
6526 rustup show
6527 if: runner.os == 'Linux'
6528 name: rustup (Linux)
6529 shell: bash
6530 - run: |
6531 set -x
6532 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
6533 ./rustup-init.exe -y --default-toolchain=1.95.0
6534 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
6535 if: runner.os == 'Windows' && runner.arch == 'X64'
6536 name: rustup (Windows X64)
6537 shell: bash
6538 - run: |
6539 set -x
6540 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
6541 ./rustup-init.exe -y --default-toolchain=1.95.0
6542 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
6543 if: runner.os == 'Windows' && runner.arch == 'ARM64'
6544 name: rustup (Windows ARM64)
6545 shell: bash
6546 - uses: actions/checkout@v6
6547 with:
6548 path: flowey_bootstrap
6549 - name: Build flowey
6550 run: |
6551 set -x
6552 CARGO_INCREMENTAL=0 cargo build -p flowey_hvlite --target x86_64-pc-windows-msvc --profile flowey-ci
6553 OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
6554 mkdir -p "$OutDirNormal"
6555 mv ./.github/workflows/openvmm-ci.yaml "$OutDirNormal/pipeline.yaml"
6556 mv target/x86_64-pc-windows-msvc/flowey-ci/flowey_hvlite.exe "$OutDirNormal/flowey.exe"
6557 working-directory: flowey_bootstrap
6558 shell: bash
6559 - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH
6560 shell: bash
6561 name: πŸŒΌπŸ“¦ Add flowey to PATH
6562 - name: πŸŒΌπŸ”Ž Self-check YAML
6563 run: |-
6564 ESCAPED_AGENT_TEMPDIR=$(
6565 cat <<'EOF' | sed 's/\\/\\\\/g'
6566 ${{ runner.temp }}
6567 EOF
6568 )
6569 flowey.exe pipeline github --runtime $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci
6570 shell: bash
6571 - name: πŸŒΌπŸ›« Initialize job
6572 run: |
6573 AgentTempDirNormal="${{ runner.temp }}"
6574 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
6575 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
6576
6577 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe
6578
6579 echo '"debug"' | flowey.exe v 4 'FLOWEY_LOG' update
6580 echo "${{ runner.temp }}/work" | flowey.exe v 4 '_internal_WORKING_DIR' --is-raw-string update
6581
6582 cat <<'EOF' | flowey.exe v 4 'verbose' update
6583 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
6584 EOF
6585 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-hypestv"
6586 echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-hypestv" | flowey.exe v 4 'artifact_publish_from_aarch64-windows-hypestv' --is-raw-string update
6587 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-igvmfilegen"
6588 echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-igvmfilegen" | flowey.exe v 4 'artifact_publish_from_aarch64-windows-igvmfilegen' --is-raw-string update
6589 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-ohcldiag-dev"
6590 echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-ohcldiag-dev" | flowey.exe v 4 'artifact_publish_from_aarch64-windows-ohcldiag-dev' --is-raw-string update
6591 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-vmgs_lib"
6592 echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-vmgs_lib" | flowey.exe v 4 'artifact_publish_from_aarch64-windows-vmgs_lib' --is-raw-string update
6593 shell: bash
6594 - name: add default cargo home to path
6595 run: flowey.exe e 4 flowey_lib_common::install_rust 0
6596 shell: bash
6597 - name: install Rust
6598 run: flowey.exe e 4 flowey_lib_common::install_rust 1
6599 shell: bash
6600 - name: detect active toolchain
6601 run: |-
6602 flowey.exe e 4 flowey_lib_common::install_rust 2
6603 flowey.exe e 4 flowey_lib_common::cfg_cargo_common_flags 0
6604 shell: bash
6605 - name: check if openvmm needs to be cloned
6606 run: |-
6607 flowey.exe e 4 flowey_lib_common::git_checkout 0
6608 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
6609 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
6610 shell: bash
6611 - id: flowey_lib_common__git_checkout__1
6612 uses: actions/checkout@v6
6613 with:
6614 fetch-depth: '1'
6615 path: repo0
6616 persist-credentials: ${{ env.floweyvar1 }}
6617 name: checkout repo openvmm
6618 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
6619 - name: report cloned repo directories
6620 run: |-
6621 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
6622 ${{ github.workspace }}
6623 EOF
6624 flowey.exe e 4 flowey_lib_common::git_checkout 3
6625 flowey.exe e 4 flowey_lib_hvlite::git_checkout_openvmm_repo 0
6626 shell: bash
6627 - name: set '-Dwarnings' in .cargo/config.toml
6628 run: flowey.exe e 4 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
6629 shell: bash
6630 - name: create gh-release-download cache dir
6631 run: flowey.exe e 4 flowey_lib_common::download_gh_release 0
6632 shell: bash
6633 - name: Pre-processing cache vars
6634 run: |-
6635 flowey.exe e 4 flowey_lib_common::cache 0
6636 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
6637 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
6638 shell: bash
6639 - id: flowey_lib_common__cache__1
6640 uses: actions/cache@v5
6641 with:
6642 key: ${{ env.floweyvar2 }}
6643 path: ${{ env.floweyvar3 }}
6644 name: 'Restore cache: gh-release-download'
6645 - name: download artifacts from github releases
6646 run: |-
6647 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
6648 ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
6649 EOF
6650 flowey.exe e 4 flowey_lib_common::cache 2
6651 flowey.exe e 4 flowey_lib_common::download_gh_release 1
6652 shell: bash
6653 - name: unpack protoc
6654 run: |-
6655 flowey.exe e 4 flowey_lib_common::resolve_protoc 0
6656 flowey.exe e 4 flowey_lib_hvlite::cfg_openvmm_magicpath 0
6657 shell: bash
6658 - name: symlink protoc
6659 run: |-
6660 flowey.exe e 4 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
6661 flowey.exe e 4 flowey_lib_hvlite::init_cross_build 1
6662 shell: bash
6663 - name: cargo build hypestv
6664 run: |-
6665 flowey.exe e 4 flowey_lib_common::run_cargo_build 0
6666 flowey.exe e 4 flowey_lib_hvlite::run_cargo_build 0
6667 flowey.exe e 4 flowey_lib_hvlite::build_hypestv 0
6668 flowey.exe e 4 flowey_core::pipeline::artifact::publish 0
6669 flowey.exe e 4 flowey_lib_hvlite::init_cross_build 0
6670 shell: bash
6671 - name: cargo build vmgs_lib
6672 run: |-
6673 flowey.exe e 4 flowey_lib_common::run_cargo_build 3
6674 flowey.exe e 4 flowey_lib_hvlite::run_cargo_build 3
6675 flowey.exe e 4 flowey_lib_hvlite::build_and_test_vmgs_lib 0
6676 flowey.exe e 4 flowey_lib_hvlite::build_and_test_vmgs_lib 1
6677 flowey.exe e 4 flowey_core::pipeline::artifact::publish 1
6678 flowey.exe e 4 flowey_lib_hvlite::init_cross_build 2
6679 shell: bash
6680 - name: cargo build igvmfilegen
6681 run: |-
6682 flowey.exe e 4 flowey_lib_common::run_cargo_build 1
6683 flowey.exe e 4 flowey_lib_hvlite::run_cargo_build 1
6684 flowey.exe e 4 flowey_lib_hvlite::build_igvmfilegen 0
6685 flowey.exe e 4 flowey_core::pipeline::artifact::publish 2
6686 flowey.exe e 4 flowey_lib_hvlite::init_cross_build 3
6687 shell: bash
6688 - name: cargo build ohcldiag-dev
6689 run: |-
6690 flowey.exe e 4 flowey_lib_common::run_cargo_build 2
6691 flowey.exe e 4 flowey_lib_hvlite::run_cargo_build 2
6692 flowey.exe e 4 flowey_lib_hvlite::build_ohcldiag_dev 0
6693 flowey.exe e 4 flowey_core::pipeline::artifact::publish 3
6694 shell: bash
6695 - name: 'validate cache entry: gh-release-download'
6696 run: flowey.exe e 4 flowey_lib_common::cache 3
6697 shell: bash
6698 - name: πŸŒΌπŸ“¦ Publish aarch64-windows-hypestv
6699 uses: actions/upload-artifact@v7
6700 with:
6701 name: aarch64-windows-hypestv
6702 path: ${{ runner.temp }}/publish_artifacts/aarch64-windows-hypestv/
6703 include-hidden-files: true
6704 - name: πŸŒΌπŸ“¦ Publish aarch64-windows-igvmfilegen
6705 uses: actions/upload-artifact@v7
6706 with:
6707 name: aarch64-windows-igvmfilegen
6708 path: ${{ runner.temp }}/publish_artifacts/aarch64-windows-igvmfilegen/
6709 include-hidden-files: true
6710 - name: πŸŒΌπŸ“¦ Publish aarch64-windows-ohcldiag-dev
6711 uses: actions/upload-artifact@v7
6712 with:
6713 name: aarch64-windows-ohcldiag-dev
6714 path: ${{ runner.temp }}/publish_artifacts/aarch64-windows-ohcldiag-dev/
6715 include-hidden-files: true
6716 - name: πŸŒΌπŸ“¦ Publish aarch64-windows-vmgs_lib
6717 uses: actions/upload-artifact@v7
6718 with:
6719 name: aarch64-windows-vmgs_lib
6720 path: ${{ runner.temp }}/publish_artifacts/aarch64-windows-vmgs_lib/
6721 include-hidden-files: true
6722 job5:
6723 name: build artifacts (for VMM tests) [aarch64-windows]
6724 runs-on:
6725 - self-hosted
6726 - 1ES.Pool=openvmm-gh-amd-westus3
6727 - 1ES.ImageOverride=win-amd64
6728 - JobId=job5-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}
6729 permissions:
6730 contents: read
6731 id-token: write
6732 if: github.event.pull_request.draft == false
6733 steps:
6734 - run: |
6735 set -x
6736 i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
6737 sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
6738 curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.95.0 -y
6739 . "$HOME/.cargo/env"
6740 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
6741 rustup show
6742 if: runner.os == 'Linux'
6743 name: rustup (Linux)
6744 shell: bash
6745 - run: |
6746 set -x
6747 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
6748 ./rustup-init.exe -y --default-toolchain=1.95.0
6749 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
6750 if: runner.os == 'Windows' && runner.arch == 'X64'
6751 name: rustup (Windows X64)
6752 shell: bash
6753 - run: |
6754 set -x
6755 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
6756 ./rustup-init.exe -y --default-toolchain=1.95.0
6757 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
6758 if: runner.os == 'Windows' && runner.arch == 'ARM64'
6759 name: rustup (Windows ARM64)
6760 shell: bash
6761 - uses: actions/checkout@v6
6762 with:
6763 path: flowey_bootstrap
6764 - name: Build flowey
6765 run: |
6766 set -x
6767 CARGO_INCREMENTAL=0 cargo build -p flowey_hvlite --target x86_64-pc-windows-msvc --profile flowey-ci
6768 OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
6769 mkdir -p "$OutDirNormal"
6770 mv ./.github/workflows/openvmm-ci.yaml "$OutDirNormal/pipeline.yaml"
6771 mv target/x86_64-pc-windows-msvc/flowey-ci/flowey_hvlite.exe "$OutDirNormal/flowey.exe"
6772 working-directory: flowey_bootstrap
6773 shell: bash
6774 - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH
6775 shell: bash
6776 name: πŸŒΌπŸ“¦ Add flowey to PATH
6777 - name: πŸŒΌπŸ”Ž Self-check YAML
6778 run: |-
6779 ESCAPED_AGENT_TEMPDIR=$(
6780 cat <<'EOF' | sed 's/\\/\\\\/g'
6781 ${{ runner.temp }}
6782 EOF
6783 )
6784 flowey.exe pipeline github --runtime $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci
6785 shell: bash
6786 - name: πŸŒΌπŸ›« Initialize job
6787 run: |
6788 AgentTempDirNormal="${{ runner.temp }}"
6789 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
6790 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
6791
6792 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe
6793
6794 echo '"debug"' | flowey.exe v 5 'FLOWEY_LOG' update
6795 echo "${{ runner.temp }}/work" | flowey.exe v 5 '_internal_WORKING_DIR' --is-raw-string update
6796
6797 cat <<'EOF' | flowey.exe v 5 'verbose' update
6798 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
6799 EOF
6800 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-openvmm"
6801 echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-openvmm" | flowey.exe v 5 'artifact_publish_from_aarch64-windows-openvmm' --is-raw-string update
6802 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-prep_steps"
6803 echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-prep_steps" | flowey.exe v 5 'artifact_publish_from_aarch64-windows-prep_steps' --is-raw-string update
6804 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-test_igvm_agent_rpc_server"
6805 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
6806 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-tmk_vmm"
6807 echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-tmk_vmm" | flowey.exe v 5 'artifact_publish_from_aarch64-windows-tmk_vmm' --is-raw-string update
6808 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-tpm_guest_tests"
6809 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
6810 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-vmgstool"
6811 echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-vmgstool" | flowey.exe v 5 'artifact_publish_from_aarch64-windows-vmgstool' --is-raw-string update
6812 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-vmm-tests-archive"
6813 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
6814 shell: bash
6815 - name: add default cargo home to path
6816 run: flowey.exe e 5 flowey_lib_common::install_rust 0
6817 shell: bash
6818 - name: install Rust
6819 run: flowey.exe e 5 flowey_lib_common::install_rust 1
6820 shell: bash
6821 - name: detect active toolchain
6822 run: |-
6823 flowey.exe e 5 flowey_lib_common::install_rust 2
6824 flowey.exe e 5 flowey_lib_common::cfg_cargo_common_flags 0
6825 shell: bash
6826 - name: check if openvmm needs to be cloned
6827 run: |-
6828 flowey.exe e 5 flowey_lib_common::git_checkout 0
6829 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
6830 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
6831 shell: bash
6832 - id: flowey_lib_common__git_checkout__1
6833 uses: actions/checkout@v6
6834 with:
6835 fetch-depth: '1'
6836 path: repo0
6837 persist-credentials: ${{ env.floweyvar1 }}
6838 name: checkout repo openvmm
6839 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
6840 - name: report cloned repo directories
6841 run: |-
6842 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
6843 ${{ github.workspace }}
6844 EOF
6845 flowey.exe e 5 flowey_lib_common::git_checkout 3
6846 flowey.exe e 5 flowey_lib_hvlite::git_checkout_openvmm_repo 0
6847 shell: bash
6848 - name: set '-Dwarnings' in .cargo/config.toml
6849 run: flowey.exe e 5 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
6850 shell: bash
6851 - name: create gh-release-download cache dir
6852 run: flowey.exe e 5 flowey_lib_common::download_gh_release 0
6853 shell: bash
6854 - name: Pre-processing cache vars
6855 run: |-
6856 flowey.exe e 5 flowey_lib_common::cache 4
6857 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
6858 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
6859 shell: bash
6860 - id: flowey_lib_common__cache__5
6861 uses: actions/cache@v5
6862 with:
6863 key: ${{ env.floweyvar4 }}
6864 path: ${{ env.floweyvar5 }}
6865 name: 'Restore cache: gh-release-download'
6866 - name: download artifacts from github releases
6867 run: |-
6868 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
6869 ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
6870 EOF
6871 flowey.exe e 5 flowey_lib_common::cache 6
6872 flowey.exe e 5 flowey_lib_common::download_gh_release 1
6873 shell: bash
6874 - name: unpack protoc
6875 run: |-
6876 flowey.exe e 5 flowey_lib_common::resolve_protoc 0
6877 flowey.exe e 5 flowey_lib_hvlite::cfg_openvmm_magicpath 0
6878 shell: bash
6879 - name: symlink protoc
6880 run: |-
6881 flowey.exe e 5 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
6882 flowey.exe e 5 flowey_lib_hvlite::init_cross_build 4
6883 shell: bash
6884 - name: cargo build openvmm
6885 run: |-
6886 flowey.exe e 5 flowey_lib_common::run_cargo_build 0
6887 flowey.exe e 5 flowey_lib_hvlite::run_cargo_build 0
6888 flowey.exe e 5 flowey_lib_hvlite::build_openvmm 0
6889 flowey.exe e 5 flowey_core::pipeline::artifact::publish 0
6890 flowey.exe e 5 flowey_lib_hvlite::init_cross_build 1
6891 shell: bash
6892 - name: cargo build tmk_vmm
6893 run: |-
6894 flowey.exe e 5 flowey_lib_common::run_cargo_build 3
6895 flowey.exe e 5 flowey_lib_hvlite::run_cargo_build 5
6896 flowey.exe e 5 flowey_lib_hvlite::build_tmk_vmm 0
6897 flowey.exe e 5 flowey_core::pipeline::artifact::publish 1
6898 flowey.exe e 5 flowey_lib_hvlite::init_cross_build 5
6899 shell: bash
6900 - name: cargo build prep_steps
6901 run: |-
6902 flowey.exe e 5 flowey_lib_common::run_cargo_build 1
6903 flowey.exe e 5 flowey_lib_hvlite::run_cargo_build 1
6904 flowey.exe e 5 flowey_lib_hvlite::build_prep_steps 0
6905 flowey.exe e 5 flowey_core::pipeline::artifact::publish 2
6906 flowey.exe e 5 flowey_lib_hvlite::init_cross_build 3
6907 shell: bash
6908 - name: cargo build vmgstool
6909 run: |-
6910 flowey.exe e 5 flowey_lib_common::run_cargo_build 5
6911 flowey.exe e 5 flowey_lib_hvlite::run_cargo_build 9
6912 flowey.exe e 5 flowey_lib_hvlite::build_vmgstool 0
6913 flowey.exe e 5 flowey_core::pipeline::artifact::publish 3
6914 flowey.exe e 5 flowey_lib_hvlite::init_cross_build 2
6915 flowey.exe e 5 flowey_lib_hvlite::run_cargo_build 6
6916 flowey.exe e 5 flowey_lib_hvlite::run_cargo_build 7
6917 shell: bash
6918 - name: cargo build tpm_guest_tests
6919 run: |-
6920 flowey.exe e 5 flowey_lib_common::run_cargo_build 4
6921 flowey.exe e 5 flowey_lib_hvlite::run_cargo_build 8
6922 flowey.exe e 5 flowey_lib_hvlite::build_tpm_guest_tests 0
6923 flowey.exe e 5 flowey_core::pipeline::artifact::publish 4
6924 flowey.exe e 5 flowey_lib_hvlite::init_cross_build 6
6925 flowey.exe e 5 flowey_lib_hvlite::run_cargo_build 2
6926 flowey.exe e 5 flowey_lib_hvlite::run_cargo_build 3
6927 shell: bash
6928 - name: cargo build test_igvm_agent_rpc_server
6929 run: |-
6930 flowey.exe e 5 flowey_lib_common::run_cargo_build 2
6931 flowey.exe e 5 flowey_lib_hvlite::run_cargo_build 4
6932 flowey.exe e 5 flowey_lib_hvlite::build_test_igvm_agent_rpc_server 0
6933 flowey.exe e 5 flowey_core::pipeline::artifact::publish 5
6934 shell: bash
6935 - name: create cargo-nextest cache dir
6936 run: |-
6937 flowey.exe e 5 flowey_lib_common::download_cargo_nextest 0
6938 flowey.exe e 5 flowey_lib_common::download_cargo_nextest 1
6939 flowey.exe e 5 flowey_lib_common::download_cargo_nextest 2
6940 flowey.exe e 5 flowey_lib_common::download_cargo_nextest 3
6941 shell: bash
6942 - name: Pre-processing cache vars
6943 run: |-
6944 flowey.exe e 5 flowey_lib_common::cache 0
6945 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
6946 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
6947 shell: bash
6948 - id: flowey_lib_common__cache__1
6949 uses: actions/cache@v5
6950 with:
6951 key: ${{ env.floweyvar2 }}
6952 path: ${{ env.floweyvar3 }}
6953 name: 'Restore cache: cargo-nextest'
6954 - name: downloading cargo-nextest
6955 run: |-
6956 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
6957 ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
6958 EOF
6959 flowey.exe e 5 flowey_lib_common::cache 2
6960 flowey.exe e 5 flowey_lib_common::download_cargo_nextest 4
6961 shell: bash
6962 - name: report $CARGO_HOME
6963 run: flowey.exe e 5 flowey_lib_common::install_rust 3
6964 shell: bash
6965 - name: installing cargo-nextest
6966 run: |-
6967 flowey.exe e 5 flowey_lib_common::install_cargo_nextest 0
6968 flowey.exe e 5 flowey_lib_hvlite::init_cross_build 0
6969 shell: bash
6970 - name: build + archive 'vmm_tests' nextests
6971 run: |-
6972 flowey.exe e 5 flowey_lib_common::run_cargo_nextest_archive 0
6973 flowey.exe e 5 flowey_lib_hvlite::build_nextest_vmm_tests 0
6974 flowey.exe e 5 flowey_core::pipeline::artifact::publish 6
6975 shell: bash
6976 - name: 'validate cache entry: cargo-nextest'
6977 run: flowey.exe e 5 flowey_lib_common::cache 3
6978 shell: bash
6979 - name: 'validate cache entry: gh-release-download'
6980 run: flowey.exe e 5 flowey_lib_common::cache 7
6981 shell: bash
6982 - name: πŸŒΌπŸ“¦ Publish aarch64-windows-openvmm
6983 uses: actions/upload-artifact@v7
6984 with:
6985 name: aarch64-windows-openvmm
6986 path: ${{ runner.temp }}/publish_artifacts/aarch64-windows-openvmm/
6987 include-hidden-files: true
6988 - name: πŸŒΌπŸ“¦ Publish aarch64-windows-prep_steps
6989 uses: actions/upload-artifact@v7
6990 with:
6991 name: aarch64-windows-prep_steps
6992 path: ${{ runner.temp }}/publish_artifacts/aarch64-windows-prep_steps/
6993 include-hidden-files: true
6994 - name: πŸŒΌπŸ“¦ Publish aarch64-windows-test_igvm_agent_rpc_server
6995 uses: actions/upload-artifact@v7
6996 with:
6997 name: aarch64-windows-test_igvm_agent_rpc_server
6998 path: ${{ runner.temp }}/publish_artifacts/aarch64-windows-test_igvm_agent_rpc_server/
6999 include-hidden-files: true
7000 - name: πŸŒΌπŸ“¦ Publish aarch64-windows-tmk_vmm
7001 uses: actions/upload-artifact@v7
7002 with:
7003 name: aarch64-windows-tmk_vmm
7004 path: ${{ runner.temp }}/publish_artifacts/aarch64-windows-tmk_vmm/
7005 include-hidden-files: true
7006 - name: πŸŒΌπŸ“¦ Publish aarch64-windows-tpm_guest_tests
7007 uses: actions/upload-artifact@v7
7008 with:
7009 name: aarch64-windows-tpm_guest_tests
7010 path: ${{ runner.temp }}/publish_artifacts/aarch64-windows-tpm_guest_tests/
7011 include-hidden-files: true
7012 - name: πŸŒΌπŸ“¦ Publish aarch64-windows-vmgstool
7013 uses: actions/upload-artifact@v7
7014 with:
7015 name: aarch64-windows-vmgstool
7016 path: ${{ runner.temp }}/publish_artifacts/aarch64-windows-vmgstool/
7017 include-hidden-files: true
7018 - name: πŸŒΌπŸ“¦ Publish aarch64-windows-vmm-tests-archive
7019 uses: actions/upload-artifact@v7
7020 with:
7021 name: aarch64-windows-vmm-tests-archive
7022 path: ${{ runner.temp }}/publish_artifacts/aarch64-windows-vmm-tests-archive/
7023 include-hidden-files: true
7024 job6:
7025 name: build artifacts (not for VMM tests) [x64-windows]
7026 runs-on:
7027 - self-hosted
7028 - 1ES.Pool=openvmm-gh-amd-westus3
7029 - 1ES.ImageOverride=win-amd64
7030 - JobId=job6-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}
7031 permissions:
7032 contents: read
7033 id-token: write
7034 if: github.event.pull_request.draft == false
7035 steps:
7036 - run: |
7037 set -x
7038 i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
7039 sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
7040 curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.95.0 -y
7041 . "$HOME/.cargo/env"
7042 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
7043 rustup show
7044 if: runner.os == 'Linux'
7045 name: rustup (Linux)
7046 shell: bash
7047 - run: |
7048 set -x
7049 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
7050 ./rustup-init.exe -y --default-toolchain=1.95.0
7051 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
7052 if: runner.os == 'Windows' && runner.arch == 'X64'
7053 name: rustup (Windows X64)
7054 shell: bash
7055 - run: |
7056 set -x
7057 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
7058 ./rustup-init.exe -y --default-toolchain=1.95.0
7059 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
7060 if: runner.os == 'Windows' && runner.arch == 'ARM64'
7061 name: rustup (Windows ARM64)
7062 shell: bash
7063 - uses: actions/checkout@v6
7064 with:
7065 path: flowey_bootstrap
7066 - name: Build flowey
7067 run: |
7068 set -x
7069 CARGO_INCREMENTAL=0 cargo build -p flowey_hvlite --target x86_64-pc-windows-msvc --profile flowey-ci
7070 OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
7071 mkdir -p "$OutDirNormal"
7072 mv ./.github/workflows/openvmm-ci.yaml "$OutDirNormal/pipeline.yaml"
7073 mv target/x86_64-pc-windows-msvc/flowey-ci/flowey_hvlite.exe "$OutDirNormal/flowey.exe"
7074 working-directory: flowey_bootstrap
7075 shell: bash
7076 - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH
7077 shell: bash
7078 name: πŸŒΌπŸ“¦ Add flowey to PATH
7079 - name: πŸŒΌπŸ”Ž Self-check YAML
7080 run: |-
7081 ESCAPED_AGENT_TEMPDIR=$(
7082 cat <<'EOF' | sed 's/\\/\\\\/g'
7083 ${{ runner.temp }}
7084 EOF
7085 )
7086 flowey.exe pipeline github --runtime $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci
7087 shell: bash
7088 - name: πŸŒΌπŸ›« Initialize job
7089 run: |
7090 AgentTempDirNormal="${{ runner.temp }}"
7091 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
7092 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
7093
7094 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe
7095
7096 echo '"debug"' | flowey.exe v 6 'FLOWEY_LOG' update
7097 echo "${{ runner.temp }}/work" | flowey.exe v 6 '_internal_WORKING_DIR' --is-raw-string update
7098
7099 cat <<'EOF' | flowey.exe v 6 'verbose' update
7100 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
7101 EOF
7102 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-hypestv"
7103 echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-hypestv" | flowey.exe v 6 'artifact_publish_from_x64-windows-hypestv' --is-raw-string update
7104 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-igvmfilegen"
7105 echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-igvmfilegen" | flowey.exe v 6 'artifact_publish_from_x64-windows-igvmfilegen' --is-raw-string update
7106 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-ohcldiag-dev"
7107 echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-ohcldiag-dev" | flowey.exe v 6 'artifact_publish_from_x64-windows-ohcldiag-dev' --is-raw-string update
7108 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-vmgs_lib"
7109 echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-vmgs_lib" | flowey.exe v 6 'artifact_publish_from_x64-windows-vmgs_lib' --is-raw-string update
7110 shell: bash
7111 - name: add default cargo home to path
7112 run: flowey.exe e 6 flowey_lib_common::install_rust 0
7113 shell: bash
7114 - name: install Rust
7115 run: flowey.exe e 6 flowey_lib_common::install_rust 1
7116 shell: bash
7117 - name: detect active toolchain
7118 run: |-
7119 flowey.exe e 6 flowey_lib_common::install_rust 2
7120 flowey.exe e 6 flowey_lib_common::cfg_cargo_common_flags 0
7121 shell: bash
7122 - name: check if openvmm needs to be cloned
7123 run: |-
7124 flowey.exe e 6 flowey_lib_common::git_checkout 0
7125 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
7126 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
7127 shell: bash
7128 - id: flowey_lib_common__git_checkout__1
7129 uses: actions/checkout@v6
7130 with:
7131 fetch-depth: '1'
7132 path: repo0
7133 persist-credentials: ${{ env.floweyvar1 }}
7134 name: checkout repo openvmm
7135 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
7136 - name: report cloned repo directories
7137 run: |-
7138 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
7139 ${{ github.workspace }}
7140 EOF
7141 flowey.exe e 6 flowey_lib_common::git_checkout 3
7142 flowey.exe e 6 flowey_lib_hvlite::git_checkout_openvmm_repo 0
7143 shell: bash
7144 - name: set '-Dwarnings' in .cargo/config.toml
7145 run: flowey.exe e 6 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
7146 shell: bash
7147 - name: create gh-release-download cache dir
7148 run: flowey.exe e 6 flowey_lib_common::download_gh_release 0
7149 shell: bash
7150 - name: Pre-processing cache vars
7151 run: |-
7152 flowey.exe e 6 flowey_lib_common::cache 0
7153 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
7154 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
7155 shell: bash
7156 - id: flowey_lib_common__cache__1
7157 uses: actions/cache@v5
7158 with:
7159 key: ${{ env.floweyvar2 }}
7160 path: ${{ env.floweyvar3 }}
7161 name: 'Restore cache: gh-release-download'
7162 - name: download artifacts from github releases
7163 run: |-
7164 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
7165 ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
7166 EOF
7167 flowey.exe e 6 flowey_lib_common::cache 2
7168 flowey.exe e 6 flowey_lib_common::download_gh_release 1
7169 shell: bash
7170 - name: unpack protoc
7171 run: |-
7172 flowey.exe e 6 flowey_lib_common::resolve_protoc 0
7173 flowey.exe e 6 flowey_lib_hvlite::cfg_openvmm_magicpath 0
7174 shell: bash
7175 - name: symlink protoc
7176 run: |-
7177 flowey.exe e 6 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
7178 flowey.exe e 6 flowey_lib_hvlite::init_cross_build 1
7179 shell: bash
7180 - name: cargo build hypestv
7181 run: |-
7182 flowey.exe e 6 flowey_lib_common::run_cargo_build 0
7183 flowey.exe e 6 flowey_lib_hvlite::run_cargo_build 0
7184 flowey.exe e 6 flowey_lib_hvlite::build_hypestv 0
7185 flowey.exe e 6 flowey_core::pipeline::artifact::publish 0
7186 flowey.exe e 6 flowey_lib_hvlite::init_cross_build 0
7187 shell: bash
7188 - name: cargo build vmgs_lib
7189 run: |-
7190 flowey.exe e 6 flowey_lib_common::run_cargo_build 3
7191 flowey.exe e 6 flowey_lib_hvlite::run_cargo_build 3
7192 flowey.exe e 6 flowey_lib_hvlite::build_and_test_vmgs_lib 0
7193 shell: bash
7194 - name: test vmgs_lib
7195 run: |-
7196 flowey.exe e 6 flowey_lib_hvlite::build_and_test_vmgs_lib 1
7197 flowey.exe e 6 flowey_lib_hvlite::build_and_test_vmgs_lib 2
7198 flowey.exe e 6 flowey_core::pipeline::artifact::publish 1
7199 flowey.exe e 6 flowey_lib_hvlite::init_cross_build 2
7200 shell: bash
7201 - name: cargo build igvmfilegen
7202 run: |-
7203 flowey.exe e 6 flowey_lib_common::run_cargo_build 1
7204 flowey.exe e 6 flowey_lib_hvlite::run_cargo_build 1
7205 flowey.exe e 6 flowey_lib_hvlite::build_igvmfilegen 0
7206 flowey.exe e 6 flowey_core::pipeline::artifact::publish 2
7207 flowey.exe e 6 flowey_lib_hvlite::init_cross_build 3
7208 shell: bash
7209 - name: cargo build ohcldiag-dev
7210 run: |-
7211 flowey.exe e 6 flowey_lib_common::run_cargo_build 2
7212 flowey.exe e 6 flowey_lib_hvlite::run_cargo_build 2
7213 flowey.exe e 6 flowey_lib_hvlite::build_ohcldiag_dev 0
7214 flowey.exe e 6 flowey_core::pipeline::artifact::publish 3
7215 shell: bash
7216 - name: 'validate cache entry: gh-release-download'
7217 run: flowey.exe e 6 flowey_lib_common::cache 3
7218 shell: bash
7219 - name: πŸŒΌπŸ“¦ Publish x64-windows-hypestv
7220 uses: actions/upload-artifact@v7
7221 with:
7222 name: x64-windows-hypestv
7223 path: ${{ runner.temp }}/publish_artifacts/x64-windows-hypestv/
7224 include-hidden-files: true
7225 - name: πŸŒΌπŸ“¦ Publish x64-windows-igvmfilegen
7226 uses: actions/upload-artifact@v7
7227 with:
7228 name: x64-windows-igvmfilegen
7229 path: ${{ runner.temp }}/publish_artifacts/x64-windows-igvmfilegen/
7230 include-hidden-files: true
7231 - name: πŸŒΌπŸ“¦ Publish x64-windows-ohcldiag-dev
7232 uses: actions/upload-artifact@v7
7233 with:
7234 name: x64-windows-ohcldiag-dev
7235 path: ${{ runner.temp }}/publish_artifacts/x64-windows-ohcldiag-dev/
7236 include-hidden-files: true
7237 - name: πŸŒΌπŸ“¦ Publish x64-windows-vmgs_lib
7238 uses: actions/upload-artifact@v7
7239 with:
7240 name: x64-windows-vmgs_lib
7241 path: ${{ runner.temp }}/publish_artifacts/x64-windows-vmgs_lib/
7242 include-hidden-files: true
7243 job7:
7244 name: build artifacts (for VMM tests) [x64-windows]
7245 runs-on:
7246 - self-hosted
7247 - 1ES.Pool=openvmm-gh-amd-westus3
7248 - 1ES.ImageOverride=win-amd64
7249 - JobId=job7-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}
7250 permissions:
7251 contents: read
7252 id-token: write
7253 if: github.event.pull_request.draft == false
7254 steps:
7255 - run: |
7256 set -x
7257 i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
7258 sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
7259 curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.95.0 -y
7260 . "$HOME/.cargo/env"
7261 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
7262 rustup show
7263 if: runner.os == 'Linux'
7264 name: rustup (Linux)
7265 shell: bash
7266 - run: |
7267 set -x
7268 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
7269 ./rustup-init.exe -y --default-toolchain=1.95.0
7270 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
7271 if: runner.os == 'Windows' && runner.arch == 'X64'
7272 name: rustup (Windows X64)
7273 shell: bash
7274 - run: |
7275 set -x
7276 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
7277 ./rustup-init.exe -y --default-toolchain=1.95.0
7278 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
7279 if: runner.os == 'Windows' && runner.arch == 'ARM64'
7280 name: rustup (Windows ARM64)
7281 shell: bash
7282 - uses: actions/checkout@v6
7283 with:
7284 path: flowey_bootstrap
7285 - name: Build flowey
7286 run: |
7287 set -x
7288 CARGO_INCREMENTAL=0 cargo build -p flowey_hvlite --target x86_64-pc-windows-msvc --profile flowey-ci
7289 OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
7290 mkdir -p "$OutDirNormal"
7291 mv ./.github/workflows/openvmm-ci.yaml "$OutDirNormal/pipeline.yaml"
7292 mv target/x86_64-pc-windows-msvc/flowey-ci/flowey_hvlite.exe "$OutDirNormal/flowey.exe"
7293 working-directory: flowey_bootstrap
7294 shell: bash
7295 - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH
7296 shell: bash
7297 name: πŸŒΌπŸ“¦ Add flowey to PATH
7298 - name: πŸŒΌπŸ”Ž Self-check YAML
7299 run: |-
7300 ESCAPED_AGENT_TEMPDIR=$(
7301 cat <<'EOF' | sed 's/\\/\\\\/g'
7302 ${{ runner.temp }}
7303 EOF
7304 )
7305 flowey.exe pipeline github --runtime $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci
7306 shell: bash
7307 - name: πŸŒΌπŸ›« Initialize job
7308 run: |
7309 AgentTempDirNormal="${{ runner.temp }}"
7310 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
7311 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
7312
7313 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe
7314
7315 echo '"debug"' | flowey.exe v 7 'FLOWEY_LOG' update
7316 echo "${{ runner.temp }}/work" | flowey.exe v 7 '_internal_WORKING_DIR' --is-raw-string update
7317
7318 cat <<'EOF' | flowey.exe v 7 'verbose' update
7319 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
7320 EOF
7321 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-openvmm"
7322 echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-openvmm" | flowey.exe v 7 'artifact_publish_from_x64-windows-openvmm' --is-raw-string update
7323 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-prep_steps"
7324 echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-prep_steps" | flowey.exe v 7 'artifact_publish_from_x64-windows-prep_steps' --is-raw-string update
7325 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-test_igvm_agent_rpc_server"
7326 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
7327 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-tmk_vmm"
7328 echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-tmk_vmm" | flowey.exe v 7 'artifact_publish_from_x64-windows-tmk_vmm' --is-raw-string update
7329 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-tpm_guest_tests"
7330 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
7331 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-vmgstool"
7332 echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-vmgstool" | flowey.exe v 7 'artifact_publish_from_x64-windows-vmgstool' --is-raw-string update
7333 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-vmm-tests-archive"
7334 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
7335 shell: bash
7336 - name: add default cargo home to path
7337 run: flowey.exe e 7 flowey_lib_common::install_rust 0
7338 shell: bash
7339 - name: install Rust
7340 run: flowey.exe e 7 flowey_lib_common::install_rust 1
7341 shell: bash
7342 - name: detect active toolchain
7343 run: |-
7344 flowey.exe e 7 flowey_lib_common::install_rust 2
7345 flowey.exe e 7 flowey_lib_common::cfg_cargo_common_flags 0
7346 shell: bash
7347 - name: check if openvmm needs to be cloned
7348 run: |-
7349 flowey.exe e 7 flowey_lib_common::git_checkout 0
7350 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
7351 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
7352 shell: bash
7353 - id: flowey_lib_common__git_checkout__1
7354 uses: actions/checkout@v6
7355 with:
7356 fetch-depth: '1'
7357 path: repo0
7358 persist-credentials: ${{ env.floweyvar1 }}
7359 name: checkout repo openvmm
7360 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
7361 - name: report cloned repo directories
7362 run: |-
7363 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
7364 ${{ github.workspace }}
7365 EOF
7366 flowey.exe e 7 flowey_lib_common::git_checkout 3
7367 flowey.exe e 7 flowey_lib_hvlite::git_checkout_openvmm_repo 0
7368 shell: bash
7369 - name: set '-Dwarnings' in .cargo/config.toml
7370 run: flowey.exe e 7 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
7371 shell: bash
7372 - name: create gh-release-download cache dir
7373 run: flowey.exe e 7 flowey_lib_common::download_gh_release 0
7374 shell: bash
7375 - name: Pre-processing cache vars
7376 run: |-
7377 flowey.exe e 7 flowey_lib_common::cache 4
7378 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
7379 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
7380 shell: bash
7381 - id: flowey_lib_common__cache__5
7382 uses: actions/cache@v5
7383 with:
7384 key: ${{ env.floweyvar4 }}
7385 path: ${{ env.floweyvar5 }}
7386 name: 'Restore cache: gh-release-download'
7387 - name: download artifacts from github releases
7388 run: |-
7389 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
7390 ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
7391 EOF
7392 flowey.exe e 7 flowey_lib_common::cache 6
7393 flowey.exe e 7 flowey_lib_common::download_gh_release 1
7394 shell: bash
7395 - name: unpack protoc
7396 run: |-
7397 flowey.exe e 7 flowey_lib_common::resolve_protoc 0
7398 flowey.exe e 7 flowey_lib_hvlite::cfg_openvmm_magicpath 0
7399 shell: bash
7400 - name: symlink protoc
7401 run: |-
7402 flowey.exe e 7 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
7403 flowey.exe e 7 flowey_lib_hvlite::init_cross_build 4
7404 shell: bash
7405 - name: cargo build openvmm
7406 run: |-
7407 flowey.exe e 7 flowey_lib_common::run_cargo_build 0
7408 flowey.exe e 7 flowey_lib_hvlite::run_cargo_build 0
7409 flowey.exe e 7 flowey_lib_hvlite::build_openvmm 0
7410 flowey.exe e 7 flowey_core::pipeline::artifact::publish 0
7411 flowey.exe e 7 flowey_lib_hvlite::init_cross_build 1
7412 shell: bash
7413 - name: cargo build tmk_vmm
7414 run: |-
7415 flowey.exe e 7 flowey_lib_common::run_cargo_build 3
7416 flowey.exe e 7 flowey_lib_hvlite::run_cargo_build 5
7417 flowey.exe e 7 flowey_lib_hvlite::build_tmk_vmm 0
7418 flowey.exe e 7 flowey_core::pipeline::artifact::publish 1
7419 flowey.exe e 7 flowey_lib_hvlite::init_cross_build 5
7420 shell: bash
7421 - name: cargo build prep_steps
7422 run: |-
7423 flowey.exe e 7 flowey_lib_common::run_cargo_build 1
7424 flowey.exe e 7 flowey_lib_hvlite::run_cargo_build 1
7425 flowey.exe e 7 flowey_lib_hvlite::build_prep_steps 0
7426 flowey.exe e 7 flowey_core::pipeline::artifact::publish 2
7427 flowey.exe e 7 flowey_lib_hvlite::init_cross_build 3
7428 shell: bash
7429 - name: cargo build vmgstool
7430 run: |-
7431 flowey.exe e 7 flowey_lib_common::run_cargo_build 5
7432 flowey.exe e 7 flowey_lib_hvlite::run_cargo_build 9
7433 flowey.exe e 7 flowey_lib_hvlite::build_vmgstool 0
7434 flowey.exe e 7 flowey_core::pipeline::artifact::publish 3
7435 flowey.exe e 7 flowey_lib_hvlite::init_cross_build 2
7436 flowey.exe e 7 flowey_lib_hvlite::run_cargo_build 6
7437 flowey.exe e 7 flowey_lib_hvlite::run_cargo_build 7
7438 shell: bash
7439 - name: cargo build tpm_guest_tests
7440 run: |-
7441 flowey.exe e 7 flowey_lib_common::run_cargo_build 4
7442 flowey.exe e 7 flowey_lib_hvlite::run_cargo_build 8
7443 flowey.exe e 7 flowey_lib_hvlite::build_tpm_guest_tests 0
7444 flowey.exe e 7 flowey_core::pipeline::artifact::publish 4
7445 flowey.exe e 7 flowey_lib_hvlite::init_cross_build 6
7446 flowey.exe e 7 flowey_lib_hvlite::run_cargo_build 2
7447 flowey.exe e 7 flowey_lib_hvlite::run_cargo_build 3
7448 shell: bash
7449 - name: cargo build test_igvm_agent_rpc_server
7450 run: |-
7451 flowey.exe e 7 flowey_lib_common::run_cargo_build 2
7452 flowey.exe e 7 flowey_lib_hvlite::run_cargo_build 4
7453 flowey.exe e 7 flowey_lib_hvlite::build_test_igvm_agent_rpc_server 0
7454 flowey.exe e 7 flowey_core::pipeline::artifact::publish 5
7455 shell: bash
7456 - name: create cargo-nextest cache dir
7457 run: |-
7458 flowey.exe e 7 flowey_lib_common::download_cargo_nextest 0
7459 flowey.exe e 7 flowey_lib_common::download_cargo_nextest 1
7460 flowey.exe e 7 flowey_lib_common::download_cargo_nextest 2
7461 flowey.exe e 7 flowey_lib_common::download_cargo_nextest 3
7462 shell: bash
7463 - name: Pre-processing cache vars
7464 run: |-
7465 flowey.exe e 7 flowey_lib_common::cache 0
7466 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
7467 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
7468 shell: bash
7469 - id: flowey_lib_common__cache__1
7470 uses: actions/cache@v5
7471 with:
7472 key: ${{ env.floweyvar2 }}
7473 path: ${{ env.floweyvar3 }}
7474 name: 'Restore cache: cargo-nextest'
7475 - name: downloading cargo-nextest
7476 run: |-
7477 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
7478 ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
7479 EOF
7480 flowey.exe e 7 flowey_lib_common::cache 2
7481 flowey.exe e 7 flowey_lib_common::download_cargo_nextest 4
7482 shell: bash
7483 - name: report $CARGO_HOME
7484 run: flowey.exe e 7 flowey_lib_common::install_rust 3
7485 shell: bash
7486 - name: installing cargo-nextest
7487 run: |-
7488 flowey.exe e 7 flowey_lib_common::install_cargo_nextest 0
7489 flowey.exe e 7 flowey_lib_hvlite::init_cross_build 0
7490 shell: bash
7491 - name: build + archive 'vmm_tests' nextests
7492 run: |-
7493 flowey.exe e 7 flowey_lib_common::run_cargo_nextest_archive 0
7494 flowey.exe e 7 flowey_lib_hvlite::build_nextest_vmm_tests 0
7495 flowey.exe e 7 flowey_core::pipeline::artifact::publish 6
7496 shell: bash
7497 - name: 'validate cache entry: cargo-nextest'
7498 run: flowey.exe e 7 flowey_lib_common::cache 3
7499 shell: bash
7500 - name: 'validate cache entry: gh-release-download'
7501 run: flowey.exe e 7 flowey_lib_common::cache 7
7502 shell: bash
7503 - name: πŸŒΌπŸ“¦ Publish x64-windows-openvmm
7504 uses: actions/upload-artifact@v7
7505 with:
7506 name: x64-windows-openvmm
7507 path: ${{ runner.temp }}/publish_artifacts/x64-windows-openvmm/
7508 include-hidden-files: true
7509 - name: πŸŒΌπŸ“¦ Publish x64-windows-prep_steps
7510 uses: actions/upload-artifact@v7
7511 with:
7512 name: x64-windows-prep_steps
7513 path: ${{ runner.temp }}/publish_artifacts/x64-windows-prep_steps/
7514 include-hidden-files: true
7515 - name: πŸŒΌπŸ“¦ Publish x64-windows-test_igvm_agent_rpc_server
7516 uses: actions/upload-artifact@v7
7517 with:
7518 name: x64-windows-test_igvm_agent_rpc_server
7519 path: ${{ runner.temp }}/publish_artifacts/x64-windows-test_igvm_agent_rpc_server/
7520 include-hidden-files: true
7521 - name: πŸŒΌπŸ“¦ Publish x64-windows-tmk_vmm
7522 uses: actions/upload-artifact@v7
7523 with:
7524 name: x64-windows-tmk_vmm
7525 path: ${{ runner.temp }}/publish_artifacts/x64-windows-tmk_vmm/
7526 include-hidden-files: true
7527 - name: πŸŒΌπŸ“¦ Publish x64-windows-tpm_guest_tests
7528 uses: actions/upload-artifact@v7
7529 with:
7530 name: x64-windows-tpm_guest_tests
7531 path: ${{ runner.temp }}/publish_artifacts/x64-windows-tpm_guest_tests/
7532 include-hidden-files: true
7533 - name: πŸŒΌπŸ“¦ Publish x64-windows-vmgstool
7534 uses: actions/upload-artifact@v7
7535 with:
7536 name: x64-windows-vmgstool
7537 path: ${{ runner.temp }}/publish_artifacts/x64-windows-vmgstool/
7538 include-hidden-files: true
7539 - name: πŸŒΌπŸ“¦ Publish x64-windows-vmm-tests-archive
7540 uses: actions/upload-artifact@v7
7541 with:
7542 name: x64-windows-vmm-tests-archive
7543 path: ${{ runner.temp }}/publish_artifacts/x64-windows-vmm-tests-archive/
7544 include-hidden-files: true
7545 - name: 🌼🧼 Redact bootstrap var db
7546 run: rm $AgentTempDirNormal/bootstrapped-flowey/job7.json
7547 shell: bash
7548 - name: 🌼πŸ₯Ύ Publish bootstrapped flowey
7549 uses: actions/upload-artifact@v7
7550 with:
7551 name: _internal-flowey-bootstrap-x86_64-windows-uid-13
7552 path: ${{ runner.temp }}/bootstrapped-flowey
7553 job8:
7554 name: build artifacts (for VMM tests) [aarch64-linux]
7555 runs-on:
7556 - self-hosted
7557 - 1ES.Pool=openvmm-gh-amd-westus3
7558 - 1ES.ImageOverride=ubuntu2404-amd64
7559 - JobId=job8-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}
7560 permissions:
7561 contents: read
7562 id-token: write
7563 if: github.event.pull_request.draft == false
7564 steps:
7565 - run: |
7566 set -x
7567 i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
7568 sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
7569 curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.95.0 -y
7570 . "$HOME/.cargo/env"
7571 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
7572 rustup show
7573 if: runner.os == 'Linux'
7574 name: rustup (Linux)
7575 shell: bash
7576 - run: |
7577 set -x
7578 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
7579 ./rustup-init.exe -y --default-toolchain=1.95.0
7580 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
7581 if: runner.os == 'Windows' && runner.arch == 'X64'
7582 name: rustup (Windows X64)
7583 shell: bash
7584 - run: |
7585 set -x
7586 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
7587 ./rustup-init.exe -y --default-toolchain=1.95.0
7588 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
7589 if: runner.os == 'Windows' && runner.arch == 'ARM64'
7590 name: rustup (Windows ARM64)
7591 shell: bash
7592 - uses: actions/checkout@v6
7593 with:
7594 path: flowey_bootstrap
7595 - name: Build flowey
7596 run: |
7597 set -x
7598 CARGO_INCREMENTAL=0 cargo build -p flowey_hvlite --target x86_64-unknown-linux-gnu --profile flowey-ci
7599 OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
7600 mkdir -p "$OutDirNormal"
7601 mv ./.github/workflows/openvmm-ci.yaml "$OutDirNormal/pipeline.yaml"
7602 mv target/x86_64-unknown-linux-gnu/flowey-ci/flowey_hvlite "$OutDirNormal/flowey"
7603 working-directory: flowey_bootstrap
7604 shell: bash
7605 - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH
7606 shell: bash
7607 name: πŸŒΌπŸ“¦ Add flowey to PATH
7608 - name: πŸŒΌπŸ”Ž Self-check YAML
7609 run: |-
7610 ESCAPED_AGENT_TEMPDIR=$(
7611 cat <<'EOF' | sed 's/\\/\\\\/g'
7612 ${{ runner.temp }}
7613 EOF
7614 )
7615 flowey pipeline github --runtime $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci
7616 shell: bash
7617 - name: πŸŒΌπŸ›« Initialize job
7618 run: |
7619 AgentTempDirNormal="${{ runner.temp }}"
7620 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
7621 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
7622
7623 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey
7624
7625 echo '"debug"' | flowey v 8 'FLOWEY_LOG' update
7626 echo "${{ runner.temp }}/work" | flowey v 8 '_internal_WORKING_DIR' --is-raw-string update
7627
7628 cat <<'EOF' | flowey v 8 'verbose' update
7629 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
7630 EOF
7631 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-igvmfilegen"
7632 echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-igvmfilegen" | flowey v 8 'artifact_publish_from_aarch64-linux-igvmfilegen' --is-raw-string update
7633 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-musl-openvmm"
7634 echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-musl-openvmm" | flowey v 8 'artifact_publish_from_aarch64-linux-musl-openvmm' --is-raw-string update
7635 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-musl-openvmm_vhost"
7636 echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-musl-openvmm_vhost" | flowey v 8 'artifact_publish_from_aarch64-linux-musl-openvmm_vhost' --is-raw-string update
7637 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-ohcldiag-dev"
7638 echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-ohcldiag-dev" | flowey v 8 'artifact_publish_from_aarch64-linux-ohcldiag-dev' --is-raw-string update
7639 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-openvmm"
7640 echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-openvmm" | flowey v 8 'artifact_publish_from_aarch64-linux-openvmm' --is-raw-string update
7641 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-openvmm_vhost"
7642 echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-openvmm_vhost" | flowey v 8 'artifact_publish_from_aarch64-linux-openvmm_vhost' --is-raw-string update
7643 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-vmgs_lib"
7644 echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-vmgs_lib" | flowey v 8 'artifact_publish_from_aarch64-linux-vmgs_lib' --is-raw-string update
7645 mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-vmgstool"
7646 echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-vmgstool" | flowey v 8 'artifact_publish_from_aarch64-linux-vmgstool' --is-raw-string update
7647 shell: bash
7648 - name: add default cargo home to path
7649 run: flowey e 8 flowey_lib_common::install_rust 0
7650 shell: bash
7651 - name: install Rust
7652 run: flowey e 8 flowey_lib_common::install_rust 1
7653 shell: bash
7654 - name: detect active toolchain
7655 run: |-
7656 flowey e 8 flowey_lib_common::install_rust 2
7657 flowey e 8 flowey_lib_common::cfg_cargo_common_flags 0
7658 shell: bash
7659 - name: checking if packages need to be installed
7660 run: flowey e 8 flowey_lib_common::install_dist_pkg 0
7661 shell: bash
7662 - name: installing packages
7663 run: flowey e 8 flowey_lib_common::install_dist_pkg 1
7664 shell: bash
7665 - name: check if openvmm needs to be cloned
7666 run: |-
7667 flowey e 8 flowey_lib_common::git_checkout 0
7668 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
7669 flowey v 8 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION
7670 shell: bash
7671 - id: flowey_lib_common__git_checkout__1
7672 uses: actions/checkout@v6
7673 with:
7674 fetch-depth: '1'
7675 path: repo0
7676 persist-credentials: ${{ env.floweyvar1 }}
7677 name: checkout repo openvmm
7678 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
7679 - name: report cloned repo directories
7680 run: |-
7681 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
7682 ${{ github.workspace }}
7683 EOF
7684 flowey e 8 flowey_lib_common::git_checkout 3
7685 flowey e 8 flowey_lib_hvlite::git_checkout_openvmm_repo 0
7686 shell: bash
7687 - name: set '-Dwarnings' in .cargo/config.toml
7688 run: flowey e 8 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
7689 shell: bash
7690 - name: create gh-release-download cache dir
7691 run: flowey e 8 flowey_lib_common::download_gh_release 0
7692 shell: bash
7693 - name: Pre-processing cache vars
7694 run: |-
7695 flowey e 8 flowey_lib_common::cache 0
7696 flowey v 8 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar2
7697 flowey v 8 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar3
7698 shell: bash
7699 - id: flowey_lib_common__cache__1
7700 uses: actions/cache@v5
7701 with:
7702 key: ${{ env.floweyvar2 }}
7703 path: ${{ env.floweyvar3 }}
7704 name: 'Restore cache: gh-release-download'
7705 - name: download artifacts from github releases
7706 run: |-
7707 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
7708 ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
7709 EOF
7710 flowey e 8 flowey_lib_common::cache 2
7711 flowey e 8 flowey_lib_common::download_gh_release 1
7712 shell: bash
7713 - name: unpack protoc
7714 run: |-
7715 flowey e 8 flowey_lib_common::resolve_protoc 0
7716 flowey e 8 flowey_lib_hvlite::cfg_openvmm_magicpath 0
7717 shell: bash
7718 - name: symlink protoc
7719 run: |-
7720 flowey e 8 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
7721 flowey e 8 flowey_lib_hvlite::init_cross_build 0
7722 shell: bash
7723 - name: cargo build openvmm
7724 run: |-
7725 flowey e 8 flowey_lib_common::run_cargo_build 2
7726 flowey e 8 flowey_lib_hvlite::run_cargo_build 4
7727 shell: bash
7728 - name: split debug symbols
7729 run: |-
7730 flowey e 8 flowey_lib_hvlite::run_split_debug_info 1
7731 flowey e 8 flowey_lib_hvlite::run_cargo_build 5
7732 flowey e 8 flowey_lib_hvlite::build_openvmm 0
7733 flowey e 8 flowey_core::pipeline::artifact::publish 0
7734 flowey e 8 flowey_lib_hvlite::init_cross_build 2
7735 shell: bash
7736 - name: cargo build openvmm_vhost
7737 run: |-
7738 flowey e 8 flowey_lib_common::run_cargo_build 4
7739 flowey e 8 flowey_lib_hvlite::run_cargo_build 8
7740 shell: bash
7741 - name: split debug symbols
7742 run: |-
7743 flowey e 8 flowey_lib_hvlite::run_split_debug_info 3
7744 flowey e 8 flowey_lib_hvlite::run_cargo_build 9
7745 flowey e 8 flowey_lib_hvlite::build_openvmm_vhost 0
7746 flowey e 8 flowey_core::pipeline::artifact::publish 1
7747 flowey e 8 flowey_lib_hvlite::init_cross_build 4
7748 shell: bash
7749 - name: cargo build vmgstool
7750 run: |-
7751 flowey e 8 flowey_lib_common::run_cargo_build 7
7752 flowey e 8 flowey_lib_hvlite::run_cargo_build 13
7753 shell: bash
7754 - name: split debug symbols
7755 run: |-
7756 flowey e 8 flowey_lib_hvlite::run_split_debug_info 6
7757 flowey e 8 flowey_lib_hvlite::run_cargo_build 14
7758 flowey e 8 flowey_lib_hvlite::build_vmgstool 0
7759 flowey e 8 flowey_core::pipeline::artifact::publish 2
7760 flowey e 8 flowey_lib_hvlite::init_cross_build 3
7761 shell: bash
7762 - name: cargo build vmgs_lib
7763 run: |-
7764 flowey e 8 flowey_lib_common::run_cargo_build 6
7765 flowey e 8 flowey_lib_hvlite::run_cargo_build 12
7766 flowey e 8 flowey_lib_hvlite::build_and_test_vmgs_lib 0
7767 flowey e 8 flowey_lib_hvlite::build_and_test_vmgs_lib 1
7768 flowey e 8 flowey_core::pipeline::artifact::publish 3
7769 flowey e 8 flowey_lib_hvlite::init_cross_build 1
7770 shell: bash
7771 - name: cargo build igvmfilegen
7772 run: |-
7773 flowey e 8 flowey_lib_common::run_cargo_build 0
7774 flowey e 8 flowey_lib_hvlite::run_cargo_build 0
7775 shell: bash
7776 - name: split debug symbols
7777 run: |-
7778 flowey e 8 flowey_lib_hvlite::run_split_debug_info 5
7779 flowey e 8 flowey_lib_hvlite::run_cargo_build 1
7780 flowey e 8 flowey_lib_hvlite::build_igvmfilegen 0
7781 flowey e 8 flowey_core::pipeline::artifact::publish 4
7782 flowey e 8 flowey_lib_hvlite::init_cross_build 5
7783 shell: bash
7784 - name: cargo build ohcldiag-dev
7785 run: |-
7786 flowey e 8 flowey_lib_common::run_cargo_build 1
7787 flowey e 8 flowey_lib_hvlite::run_cargo_build 2
7788 shell: bash
7789 - name: split debug symbols
7790 run: |-
7791 flowey e 8 flowey_lib_hvlite::run_split_debug_info 0
7792 flowey e 8 flowey_lib_hvlite::run_cargo_build 3
7793 flowey e 8 flowey_lib_hvlite::build_ohcldiag_dev 0
7794 flowey e 8 flowey_core::pipeline::artifact::publish 5
7795 shell: bash
7796 - name: unpack openvmm-deps archive
7797 run: flowey e 8 flowey_lib_hvlite::resolve_openvmm_deps 0
7798 shell: bash
7799 - name: extract Aarch64 sysroot.tar.gz
7800 run: |-
7801 flowey e 8 flowey_lib_hvlite::init_openvmm_magicpath_openhcl_sysroot 0
7802 flowey e 8 flowey_lib_hvlite::init_cross_build 6
7803 shell: bash
7804 - name: cargo build openvmm
7805 run: |-
7806 flowey e 8 flowey_lib_common::run_cargo_build 3
7807 flowey e 8 flowey_lib_hvlite::run_cargo_build 6
7808 shell: bash
7809 - name: split debug symbols
7810 run: |-
7811 flowey e 8 flowey_lib_hvlite::run_split_debug_info 2
7812 flowey e 8 flowey_lib_hvlite::run_cargo_build 7
7813 flowey e 8 flowey_lib_hvlite::build_openvmm 1
7814 flowey e 8 flowey_core::pipeline::artifact::publish 6
7815 flowey e 8 flowey_lib_hvlite::init_cross_build 7
7816 shell: bash
7817 - name: cargo build openvmm_vhost
7818 run: |-
7819 flowey e 8 flowey_lib_common::run_cargo_build 5
7820 flowey e 8 flowey_lib_hvlite::run_cargo_build 10
7821 shell: bash
7822 - name: split debug symbols
7823 run: |-
7824 flowey e 8 flowey_lib_hvlite::run_split_debug_info 4
7825 flowey e 8 flowey_lib_hvlite::run_cargo_build 11
7826 flowey e 8 flowey_lib_hvlite::build_openvmm_vhost 1
7827 flowey e 8 flowey_core::pipeline::artifact::publish 7
7828 shell: bash
7829 - name: 'validate cache entry: gh-release-download'
7830 run: flowey e 8 flowey_lib_common::cache 3
7831 shell: bash
7832 - name: πŸŒΌπŸ“¦ Publish aarch64-linux-igvmfilegen
7833 uses: actions/upload-artifact@v7
7834 with:
7835 name: aarch64-linux-igvmfilegen
7836 path: ${{ runner.temp }}/publish_artifacts/aarch64-linux-igvmfilegen/
7837 include-hidden-files: true
7838 - name: πŸŒΌπŸ“¦ Publish aarch64-linux-musl-openvmm
7839 uses: actions/upload-artifact@v7
7840 with:
7841 name: aarch64-linux-musl-openvmm
7842 path: ${{ runner.temp }}/publish_artifacts/aarch64-linux-musl-openvmm/
7843 include-hidden-files: true
7844 - name: πŸŒΌπŸ“¦ Publish aarch64-linux-musl-openvmm_vhost
7845 uses: actions/upload-artifact@v7
7846 with:
7847 name: aarch64-linux-musl-openvmm_vhost
7848 path: ${{ runner.temp }}/publish_artifacts/aarch64-linux-musl-openvmm_vhost/
7849 include-hidden-files: true
7850 - name: πŸŒΌπŸ“¦ Publish aarch64-linux-ohcldiag-dev
7851 uses: actions/upload-artifact@v7
7852 with:
7853 name: aarch64-linux-ohcldiag-dev
7854 path: ${{ runner.temp }}/publish_artifacts/aarch64-linux-ohcldiag-dev/
7855 include-hidden-files: true
7856 - name: πŸŒΌπŸ“¦ Publish aarch64-linux-openvmm
7857 uses: actions/upload-artifact@v7
7858 with:
7859 name: aarch64-linux-openvmm
7860 path: ${{ runner.temp }}/publish_artifacts/aarch64-linux-openvmm/
7861 include-hidden-files: true
7862 - name: πŸŒΌπŸ“¦ Publish aarch64-linux-openvmm_vhost
7863 uses: actions/upload-artifact@v7
7864 with:
7865 name: aarch64-linux-openvmm_vhost
7866 path: ${{ runner.temp }}/publish_artifacts/aarch64-linux-openvmm_vhost/
7867 include-hidden-files: true
7868 - name: πŸŒΌπŸ“¦ Publish aarch64-linux-vmgs_lib
7869 uses: actions/upload-artifact@v7
7870 with:
7871 name: aarch64-linux-vmgs_lib
7872 path: ${{ runner.temp }}/publish_artifacts/aarch64-linux-vmgs_lib/
7873 include-hidden-files: true
7874 - name: πŸŒΌπŸ“¦ Publish aarch64-linux-vmgstool
7875 uses: actions/upload-artifact@v7
7876 with:
7877 name: aarch64-linux-vmgstool
7878 path: ${{ runner.temp }}/publish_artifacts/aarch64-linux-vmgstool/
7879 include-hidden-files: true
7880 job9:
7881 name: build artifacts (for VMM tests) [x64-linux]
7882 runs-on:
7883 - self-hosted
7884 - 1ES.Pool=openvmm-gh-amd-westus3
7885 - 1ES.ImageOverride=ubuntu2404-amd64
7886 - JobId=job9-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}
7887 permissions:
7888 contents: read
7889 id-token: write
7890 if: github.event.pull_request.draft == false
7891 steps:
7892 - run: |
7893 set -x
7894 i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
7895 sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
7896 curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.95.0 -y
7897 . "$HOME/.cargo/env"
7898 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
7899 rustup show
7900 if: runner.os == 'Linux'
7901 name: rustup (Linux)
7902 shell: bash
7903 - run: |
7904 set -x
7905 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
7906 ./rustup-init.exe -y --default-toolchain=1.95.0
7907 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
7908 if: runner.os == 'Windows' && runner.arch == 'X64'
7909 name: rustup (Windows X64)
7910 shell: bash
7911 - run: |
7912 set -x
7913 curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
7914 ./rustup-init.exe -y --default-toolchain=1.95.0
7915 echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
7916 if: runner.os == 'Windows' && runner.arch == 'ARM64'
7917 name: rustup (Windows ARM64)
7918 shell: bash
7919 - uses: actions/checkout@v6
7920 with:
7921 path: flowey_bootstrap
7922 - name: Build flowey
7923 run: |
7924 set -x
7925 CARGO_INCREMENTAL=0 cargo build -p flowey_hvlite --target x86_64-unknown-linux-gnu --profile flowey-ci
7926 OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
7927 mkdir -p "$OutDirNormal"
7928 mv ./.github/workflows/openvmm-ci.yaml "$OutDirNormal/pipeline.yaml"
7929 mv target/x86_64-unknown-linux-gnu/flowey-ci/flowey_hvlite "$OutDirNormal/flowey"
7930 working-directory: flowey_bootstrap
7931 shell: bash
7932 - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH
7933 shell: bash
7934 name: πŸŒΌπŸ“¦ Add flowey to PATH
7935 - name: πŸŒΌπŸ”Ž Self-check YAML
7936 run: |-
7937 ESCAPED_AGENT_TEMPDIR=$(
7938 cat <<'EOF' | sed 's/\\/\\\\/g'
7939 ${{ runner.temp }}
7940 EOF
7941 )
7942 flowey pipeline github --runtime $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci
7943 shell: bash
7944 - name: πŸŒΌπŸ›« Initialize job
7945 run: |
7946 AgentTempDirNormal="${{ runner.temp }}"
7947 AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
7948 echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV
7949
7950 chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey
7951
7952 echo '"debug"' | flowey v 9 'FLOWEY_LOG' update
7953 echo "${{ runner.temp }}/work" | flowey v 9 '_internal_WORKING_DIR' --is-raw-string update
7954
7955 cat <<'EOF' | flowey v 9 'verbose' update
7956 ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
7957 EOF
7958 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-igvmfilegen"
7959 echo "$AgentTempDirNormal/publish_artifacts/x64-linux-igvmfilegen" | flowey v 9 'artifact_publish_from_x64-linux-igvmfilegen' --is-raw-string update
7960 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-musl-openvmm"
7961 echo "$AgentTempDirNormal/publish_artifacts/x64-linux-musl-openvmm" | flowey v 9 'artifact_publish_from_x64-linux-musl-openvmm' --is-raw-string update
7962 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-musl-openvmm_vhost"
7963 echo "$AgentTempDirNormal/publish_artifacts/x64-linux-musl-openvmm_vhost" | flowey v 9 'artifact_publish_from_x64-linux-musl-openvmm_vhost' --is-raw-string update
7964 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-musl-vmm-tests-archive"
7965 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
7966 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-ohcldiag-dev"
7967 echo "$AgentTempDirNormal/publish_artifacts/x64-linux-ohcldiag-dev" | flowey v 9 'artifact_publish_from_x64-linux-ohcldiag-dev' --is-raw-string update
7968 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-openvmm"
7969 echo "$AgentTempDirNormal/publish_artifacts/x64-linux-openvmm" | flowey v 9 'artifact_publish_from_x64-linux-openvmm' --is-raw-string update
7970 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-openvmm_vhost"
7971 echo "$AgentTempDirNormal/publish_artifacts/x64-linux-openvmm_vhost" | flowey v 9 'artifact_publish_from_x64-linux-openvmm_vhost' --is-raw-string update
7972 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-vmgs_lib"
7973 echo "$AgentTempDirNormal/publish_artifacts/x64-linux-vmgs_lib" | flowey v 9 'artifact_publish_from_x64-linux-vmgs_lib' --is-raw-string update
7974 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-vmgstool"
7975 echo "$AgentTempDirNormal/publish_artifacts/x64-linux-vmgstool" | flowey v 9 'artifact_publish_from_x64-linux-vmgstool' --is-raw-string update
7976 mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-vmm-tests-archive"
7977 echo "$AgentTempDirNormal/publish_artifacts/x64-linux-vmm-tests-archive" | flowey v 9 'artifact_publish_from_x64-linux-vmm-tests-archive' --is-raw-string update
7978 shell: bash
7979 - name: add default cargo home to path
7980 run: flowey e 9 flowey_lib_common::install_rust 0
7981 shell: bash
7982 - name: install Rust
7983 run: flowey e 9 flowey_lib_common::install_rust 1
7984 shell: bash
7985 - name: detect active toolchain
7986 run: |-
7987 flowey e 9 flowey_lib_common::install_rust 2
7988 flowey e 9 flowey_lib_common::cfg_cargo_common_flags 0
7989 shell: bash
7990 - name: checking if packages need to be installed
7991 run: flowey e 9 flowey_lib_common::install_dist_pkg 0
7992 shell: bash
7993 - name: installing packages
7994 run: flowey e 9 flowey_lib_common::install_dist_pkg 1
7995 shell: bash
7996 - name: check if openvmm needs to be cloned
7997 run: |-
7998 flowey e 9 flowey_lib_common::git_checkout 0
7999 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
8000 flowey v 9 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION
8001 shell: bash
8002 - id: flowey_lib_common__git_checkout__1
8003 uses: actions/checkout@v6
8004 with:
8005 fetch-depth: '1'
8006 path: repo0
8007 persist-credentials: ${{ env.floweyvar1 }}
8008 name: checkout repo openvmm
8009 if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
8010 - name: report cloned repo directories
8011 run: |-
8012 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
8013 ${{ github.workspace }}
8014 EOF
8015 flowey e 9 flowey_lib_common::git_checkout 3
8016 flowey e 9 flowey_lib_hvlite::git_checkout_openvmm_repo 0
8017 shell: bash
8018 - name: set '-Dwarnings' in .cargo/config.toml
8019 run: flowey e 9 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
8020 shell: bash
8021 - name: create gh-release-download cache dir
8022 run: flowey e 9 flowey_lib_common::download_gh_release 0
8023 shell: bash
8024 - name: Pre-processing cache vars
8025 run: |-
8026 flowey e 9 flowey_lib_common::cache 4
8027 flowey v 9 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar4
8028 flowey v 9 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar5
8029 shell: bash
8030 - id: flowey_lib_common__cache__5
8031 uses: actions/cache@v5
8032 with:
8033 key: ${{ env.floweyvar4 }}
8034 path: ${{ env.floweyvar5 }}
8035 name: 'Restore cache: gh-release-download'
8036 - name: download artifacts from github releases
8037 run: |-
8038 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
8039 ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
8040 EOF
8041 flowey e 9 flowey_lib_common::cache 6
8042 flowey e 9 flowey_lib_common::download_gh_release 1
8043 shell: bash
8044 - name: unpack protoc
8045 run: |-
8046 flowey e 9 flowey_lib_common::resolve_protoc 0
8047 flowey e 9 flowey_lib_hvlite::cfg_openvmm_magicpath 0
8048 shell: bash
8049 - name: symlink protoc
8050 run: |-
8051 flowey e 9 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
8052 flowey e 9 flowey_lib_hvlite::init_cross_build 1
8053 shell: bash
8054 - name: cargo build openvmm
8055 run: |-
8056 flowey e 9 flowey_lib_common::run_cargo_build 2
8057 flowey e 9 flowey_lib_hvlite::run_cargo_build 4
8058 shell: bash
8059 - name: split debug symbols
8060 run: |-
8061 flowey e 9 flowey_lib_hvlite::run_split_debug_info 1
8062 flowey e 9 flowey_lib_hvlite::run_cargo_build 5
8063 flowey e 9 flowey_lib_hvlite::build_openvmm 0
8064 flowey e 9 flowey_core::pipeline::artifact::publish 0
8065 flowey e 9 flowey_lib_hvlite::init_cross_build 3
8066 shell: bash
8067 - name: cargo build openvmm_vhost
8068 run: |-
8069 flowey e 9 flowey_lib_common::run_cargo_build 4
8070 flowey e 9 flowey_lib_hvlite::run_cargo_build 8
8071 shell: bash
8072 - name: split debug symbols
8073 run: |-
8074 flowey e 9 flowey_lib_hvlite::run_split_debug_info 3
8075 flowey e 9 flowey_lib_hvlite::run_cargo_build 9
8076 flowey e 9 flowey_lib_hvlite::build_openvmm_vhost 0
8077 flowey e 9 flowey_core::pipeline::artifact::publish 1
8078 flowey e 9 flowey_lib_hvlite::init_cross_build 5
8079 shell: bash
8080 - name: cargo build vmgstool
8081 run: |-
8082 flowey e 9 flowey_lib_common::run_cargo_build 7
8083 flowey e 9 flowey_lib_hvlite::run_cargo_build 13
8084 shell: bash
8085 - name: split debug symbols
8086 run: |-
8087 flowey e 9 flowey_lib_hvlite::run_split_debug_info 6
8088 flowey e 9 flowey_lib_hvlite::run_cargo_build 14
8089 flowey e 9 flowey_lib_hvlite::build_vmgstool 0
8090 flowey e 9 flowey_core::pipeline::artifact::publish 2
8091 flowey e 9 flowey_lib_hvlite::init_cross_build 4
8092 shell: bash
8093 - name: cargo build vmgs_lib
8094 run: |-
8095 flowey e 9 flowey_lib_common::run_cargo_build 6
8096 flowey e 9 flowey_lib_hvlite::run_cargo_build 12
8097 flowey e 9 flowey_lib_hvlite::build_and_test_vmgs_lib 0
8098 shell: bash
8099 - name: test vmgs_lib
8100 run: |-
8101 flowey e 9 flowey_lib_hvlite::build_and_test_vmgs_lib 1
8102 flowey e 9 flowey_lib_hvlite::build_and_test_vmgs_lib 2
8103 flowey e 9 flowey_core::pipeline::artifact::publish 3
8104 flowey e 9 flowey_lib_hvlite::init_cross_build 2
8105 shell: bash
8106 - name: cargo build igvmfilegen
8107 run: |-
8108 flowey e 9 flowey_lib_common::run_cargo_build 0
8109 flowey e 9 flowey_lib_hvlite::run_cargo_build 0
8110 shell: bash
8111 - name: split debug symbols
8112 run: |-
8113 flowey e 9 flowey_lib_hvlite::run_split_debug_info 5
8114 flowey e 9 flowey_lib_hvlite::run_cargo_build 1
8115 flowey e 9 flowey_lib_hvlite::build_igvmfilegen 0
8116 flowey e 9 flowey_core::pipeline::artifact::publish 4
8117 flowey e 9 flowey_lib_hvlite::init_cross_build 6
8118 shell: bash
8119 - name: cargo build ohcldiag-dev
8120 run: |-
8121 flowey e 9 flowey_lib_common::run_cargo_build 1
8122 flowey e 9 flowey_lib_hvlite::run_cargo_build 2
8123 shell: bash
8124 - name: split debug symbols
8125 run: |-
8126 flowey e 9 flowey_lib_hvlite::run_split_debug_info 0
8127 flowey e 9 flowey_lib_hvlite::run_cargo_build 3
8128 flowey e 9 flowey_lib_hvlite::build_ohcldiag_dev 0
8129 flowey e 9 flowey_core::pipeline::artifact::publish 5
8130 shell: bash
8131 - name: unpack openvmm-deps archive
8132 run: flowey e 9 flowey_lib_hvlite::resolve_openvmm_deps 0
8133 shell: bash
8134 - name: extract X86_64 sysroot.tar.gz
8135 run: |-
8136 flowey e 9 flowey_lib_hvlite::init_openvmm_magicpath_openhcl_sysroot 0
8137 flowey e 9 flowey_lib_hvlite::init_cross_build 8
8138 shell: bash
8139 - name: cargo build openvmm
8140 run: |-
8141 flowey e 9 flowey_lib_common::run_cargo_build 3
8142 flowey e 9 flowey_lib_hvlite::run_cargo_build 6
8143 shell: bash
8144 - name: split debug symbols
8145 run: |-
8146 flowey e 9 flowey_lib_hvlite::run_split_debug_info 2
8147 flowey e 9 flowey_lib_hvlite::run_cargo_build 7
8148 flowey e 9 flowey_lib_hvlite::build_openvmm 1
8149 flowey e 9 flowey_core::pipeline::artifact::publish 6
8150 flowey e 9 flowey_lib_hvlite::init_cross_build 9
8151 shell: bash
8152 - name: cargo build openvmm_vhost
8153 run: |-
8154 flowey e 9 flowey_lib_common::run_cargo_build 5
8155 flowey e 9 flowey_lib_hvlite::run_cargo_build 10
8156 shell: bash
8157 - name: split debug symbols
8158 run: |-
8159 flowey e 9 flowey_lib_hvlite::run_split_debug_info 4
8160 flowey e 9 flowey_lib_hvlite::run_cargo_build 11
8161 flowey e 9 flowey_lib_hvlite::build_openvmm_vhost 1
8162 flowey e 9 flowey_core::pipeline::artifact::publish 7
8163 shell: bash
8164 - name: create cargo-nextest cache dir
8165 run: |-
8166 flowey e 9 flowey_lib_common::download_cargo_nextest 0
8167 flowey e 9 flowey_lib_common::download_cargo_nextest 1
8168 flowey e 9 flowey_lib_common::download_cargo_nextest 2
8169 flowey e 9 flowey_lib_common::download_cargo_nextest 3
8170 shell: bash
8171 - name: Pre-processing cache vars
8172 run: |-
8173 flowey e 9 flowey_lib_common::cache 0
8174 flowey v 9 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar2
8175 flowey v 9 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar3
8176 shell: bash
8177 - id: flowey_lib_common__cache__1
8178 uses: actions/cache@v5
8179 with:
8180 key: ${{ env.floweyvar2 }}
8181 path: ${{ env.floweyvar3 }}
8182 name: 'Restore cache: cargo-nextest'
8183 - name: downloading cargo-nextest
8184 run: |-
8185 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
8186 ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
8187 EOF
8188 flowey e 9 flowey_lib_common::cache 2
8189 flowey e 9 flowey_lib_common::download_cargo_nextest 4
8190 shell: bash
8191 - name: report $CARGO_HOME
8192 run: flowey e 9 flowey_lib_common::install_rust 3
8193 shell: bash
8194 - name: installing cargo-nextest
8195 run: |-
8196 flowey e 9 flowey_lib_common::install_cargo_nextest 0
8197 flowey e 9 flowey_lib_hvlite::init_cross_build 0
8198 shell: bash
8199 - name: build + archive 'vmm_tests' nextests
8200 run: |-
8201 flowey e 9 flowey_lib_common::run_cargo_nextest_archive 0
8202 flowey e 9 flowey_lib_hvlite::build_nextest_vmm_tests 0
8203 flowey e 9 flowey_core::pipeline::artifact::publish 8
8204 flowey e 9 flowey_lib_hvlite::init_cross_build 7
8205 shell: bash
8206 - name: build + archive 'vmm_tests' nextests
8207 run: |-
8208 flowey e 9 flowey_lib_common::run_cargo_nextest_archive 1
8209 flowey e 9 flowey_lib_hvlite::build_nextest_vmm_tests 1
8210 flowey e 9 flowey_core::pipeline::artifact::publish 9
8211 shell: bash
8212 - name: 'validate cache entry: cargo-nextest'
8213 run: flowey e 9 flowey_lib_common::cache 3
8214 shell: bash
8215 - name: 'validate cache entry: gh-release-download'
8216 run: flowey e 9 flowey_lib_common::cache 7
8217 shell: bash
8218 - name: πŸŒΌπŸ“¦ Publish x64-linux-igvmfilegen
8219 uses: actions/upload-artifact@v7
8220 with:
8221 name: x64-linux-igvmfilegen
8222 path: ${{ runner.temp }}/publish_artifacts/x64-linux-igvmfilegen/
8223 include-hidden-files: true
8224 - name: πŸŒΌπŸ“¦ Publish x64-linux-musl-openvmm
8225 uses: actions/upload-artifact@v7
8226 with:
8227 name: x64-linux-musl-openvmm
8228 path: ${{ runner.temp }}/publish_artifacts/x64-linux-musl-openvmm/
8229 include-hidden-files: true
8230 - name: πŸŒΌπŸ“¦ Publish x64-linux-musl-openvmm_vhost
8231 uses: actions/upload-artifact@v7
8232 with:
8233 name: x64-linux-musl-openvmm_vhost
8234 path: ${{ runner.temp }}/publish_artifacts/x64-linux-musl-openvmm_vhost/
8235 include-hidden-files: true
8236 - name: πŸŒΌπŸ“¦ Publish x64-linux-musl-vmm-tests-archive
8237 uses: actions/upload-artifact@v7
8238 with:
8239 name: x64-linux-musl-vmm-tests-archive
8240 path: ${{ runner.temp }}/publish_artifacts/x64-linux-musl-vmm-tests-archive/
8241 include-hidden-files: true
8242 - name: πŸŒΌπŸ“¦ Publish x64-linux-ohcldiag-dev
8243 uses: actions/upload-artifact@v7
8244 with:
8245 name: x64-linux-ohcldiag-dev
8246 path: ${{ runner.temp }}/publish_artifacts/x64-linux-ohcldiag-dev/
8247 include-hidden-files: true
8248 - name: πŸŒΌπŸ“¦ Publish x64-linux-openvmm
8249 uses: actions/upload-artifact@v7
8250 with:
8251 name: x64-linux-openvmm
8252 path: ${{ runner.temp }}/publish_artifacts/x64-linux-openvmm/
8253 include-hidden-files: true
8254 - name: πŸŒΌπŸ“¦ Publish x64-linux-openvmm_vhost
8255 uses: actions/upload-artifact@v7
8256 with:
8257 name: x64-linux-openvmm_vhost
8258 path: ${{ runner.temp }}/publish_artifacts/x64-linux-openvmm_vhost/
8259 include-hidden-files: true
8260 - name: πŸŒΌπŸ“¦ Publish x64-linux-vmgs_lib
8261 uses: actions/upload-artifact@v7
8262 with:
8263 name: x64-linux-vmgs_lib
8264 path: ${{ runner.temp }}/publish_artifacts/x64-linux-vmgs_lib/
8265 include-hidden-files: true
8266 - name: πŸŒΌπŸ“¦ Publish x64-linux-vmgstool
8267 uses: actions/upload-artifact@v7
8268 with:
8269 name: x64-linux-vmgstool
8270 path: ${{ runner.temp }}/publish_artifacts/x64-linux-vmgstool/
8271 include-hidden-files: true
8272 - name: πŸŒΌπŸ“¦ Publish x64-linux-vmm-tests-archive
8273 uses: actions/upload-artifact@v7
8274 with:
8275 name: x64-linux-vmm-tests-archive
8276 path: ${{ runner.temp }}/publish_artifacts/x64-linux-vmm-tests-archive/
8277 include-hidden-files: true
8278 - name: 🌼🧼 Redact bootstrap var db
8279 run: rm $AgentTempDirNormal/bootstrapped-flowey/job9.json
8280 shell: bash
8281 - name: 🌼πŸ₯Ύ Publish bootstrapped flowey
8282 uses: actions/upload-artifact@v7
8283 with:
8284 name: _internal-flowey-bootstrap-x86_64-linux-uid-11
8285 path: ${{ runner.temp }}/bootstrapped-flowey