microsoft/openvmm

Public

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

CodeCommitsIssuesPull requestsActionsInsightsSecurity
7c3a527ffe19338b7bec2a98849f641769c7b569

Branches

Tags

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

Clone

HTTPS

Download ZIP

.github/workflows/openvmm-pr.yaml

6729lines Β· modecode

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