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-pr-release.yaml

5170lines Β· modecode

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