microsoft/openvmm

Public

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

CodeCommitsIssuesPull requestsActionsInsightsSecurity
0988d46176486c815b387100b95047c58d294efb

Branches

Tags

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

Clone

HTTPS

Download ZIP

.github/workflows/openvmm-pr.yaml

6490lines Β· modecode

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