microsoft/openvmm

Public

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

CodeCommitsIssuesPull requestsActionsInsightsSecurity
ade3e88da56fafed47e001656d9017fb15f23194

Branches

Tags

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

Clone

HTTPS

Download ZIP

.github/workflows/openvmm-pr-release.yaml

6067lines Β· modecode

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