microsoft/openvmm

Public

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

CodeCommitsIssuesPull requestsActionsInsightsSecurity
0357affb34636db72661cd6f167b206d2ef8e913

Branches

Tags

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

Clone

HTTPS

Download ZIP

.github/workflows/openvmm-ci.yaml

5225lines Β· modecode

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