microsoft/openvmm

Public

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

CodeCommitsIssuesPull requestsActionsInsightsSecurity
6ba86a2933cf2ed4ccfae2027833f50a3701e665

Branches

Tags

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

Clone

HTTPS

Download ZIP

.github/workflows/openvmm-ci.yaml

6243lines Β· modecode

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