microsoft/openvmm

Public

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

CodeCommitsIssuesPull requestsActionsInsightsSecurity
copilot/apply-async-process-wait-functionality

Branches

Tags

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

Clone

HTTPS

Download ZIP

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

7754lines Β· modecode

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