microsoft/openvmm

Public

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

CodeCommitsIssuesPull requestsActionsInsightsSecurity
8767377a25a2ba699981c9fabd6ff06a018443da

Branches

Tags

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

Clone

HTTPS

Download ZIP

.github/workflows/openvmm-ci.yaml

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