microsoft/openvmm

Public

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

CodeCommitsIssuesPull requestsActionsInsightsSecurity
a31e888631a854ffe20650593f27c56863530f79

Branches

Tags

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

Clone

HTTPS

Download ZIP

.github/workflows/openvmm-ci.yaml

5186lines Β· modecode

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