diff --git a/.github/workflows/openvmm-ci.yaml b/.github/workflows/openvmm-ci.yaml index c9bba15cef..1ca5abd978 100644 --- a/.github/workflows/openvmm-ci.yaml +++ b/.github/workflows/openvmm-ci.yaml @@ -345,11 +345,11 @@ jobs: run: flowey e 1 flowey_lib_common::cache 3 shell: bash job10: - name: clippy [x64-windows], unit tests [x64-windows] + name: build openhcl [aarch64-linux] runs-on: - self-hosted - 1ES.Pool=openvmm-gh-amd-westus3 - - 1ES.ImageOverride=win-amd64 + - 1ES.ImageOverride=ubuntu2404-amd64 - JobId=job10-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }} permissions: contents: read @@ -389,11 +389,11 @@ jobs: - name: Build flowey run: | set -x - CARGO_INCREMENTAL=0 cargo build -p flowey_hvlite --target x86_64-pc-windows-msvc --profile flowey-ci + CARGO_INCREMENTAL=0 cargo build -p flowey_hvlite --target x86_64-unknown-linux-gnu --profile flowey-ci OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') mkdir -p "$OutDirNormal" mv ./.github/workflows/openvmm-ci.yaml "$OutDirNormal/pipeline.yaml" - mv target/x86_64-pc-windows-msvc/flowey-ci/flowey_hvlite.exe "$OutDirNormal/flowey.exe" + mv target/x86_64-unknown-linux-gnu/flowey-ci/flowey_hvlite "$OutDirNormal/flowey" working-directory: flowey_bootstrap shell: bash - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH @@ -406,7 +406,7 @@ jobs: ${{ runner.temp }} EOF ) - flowey.exe pipeline github --runtime $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci + flowey pipeline github --runtime $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci shell: bash - name: πŸŒΌπŸ›« Initialize job run: | @@ -414,205 +414,244 @@ jobs: AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV - chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe + chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey - echo '"debug"' | flowey.exe v 10 'FLOWEY_LOG' update - echo "${{ runner.temp }}/work" | flowey.exe v 10 '_internal_WORKING_DIR' --is-raw-string update + echo '"debug"' | flowey v 10 'FLOWEY_LOG' update + echo "${{ runner.temp }}/work" | flowey v 10 '_internal_WORKING_DIR' --is-raw-string update - cat <<'EOF' | flowey.exe v 10 'verbose' update + cat <<'EOF' | flowey v 10 'verbose' update ${{ inputs.verbose != '' && inputs.verbose || 'false' }} EOF + mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-openhcl-baseline" + echo "$AgentTempDirNormal/publish_artifacts/aarch64-openhcl-baseline" | flowey v 10 'artifact_publish_from_aarch64-openhcl-baseline' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-openhcl-igvm" + echo "$AgentTempDirNormal/publish_artifacts/aarch64-openhcl-igvm" | flowey v 10 'artifact_publish_from_aarch64-openhcl-igvm' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-openhcl-igvm-extras" + echo "$AgentTempDirNormal/publish_artifacts/aarch64-openhcl-igvm-extras" | flowey v 10 'artifact_publish_from_aarch64-openhcl-igvm-extras' --is-raw-string update + shell: bash + - name: checking if packages need to be installed + run: flowey e 10 flowey_lib_common::install_dist_pkg 0 + shell: bash + - name: installing packages + run: flowey e 10 flowey_lib_common::install_dist_pkg 1 + shell: bash + - name: create gh-release-download cache dir + run: flowey e 10 flowey_lib_common::download_gh_release 0 + shell: bash + - name: Pre-processing cache vars + run: |- + flowey e 10 flowey_lib_common::cache 0 + flowey v 10 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar1 + flowey v 10 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar2 + shell: bash + - id: flowey_lib_common__cache__1 + uses: actions/cache@v5 + with: + key: ${{ env.floweyvar1 }} + path: ${{ env.floweyvar2 }} + name: 'Restore cache: gh-release-download' + - name: download artifacts from github releases + run: |- + 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 <> $GITHUB_PATH @@ -1026,7 +1110,7 @@ jobs: ${{ runner.temp }} EOF ) - flowey pipeline github --runtime $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci + flowey.exe pipeline github --runtime $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci shell: bash - name: πŸŒΌπŸ›« Initialize job run: | @@ -1034,308 +1118,209 @@ jobs: AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV - chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey + chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe - echo '"debug"' | flowey v 12 'FLOWEY_LOG' update - echo "${{ runner.temp }}/work" | flowey v 12 '_internal_WORKING_DIR' --is-raw-string update + echo '"debug"' | flowey.exe v 12 'FLOWEY_LOG' update + echo "${{ runner.temp }}/work" | flowey.exe v 12 '_internal_WORKING_DIR' --is-raw-string update - cat <<'EOF' | flowey v 12 'verbose' update + cat <<'EOF' | flowey.exe v 12 'verbose' update ${{ inputs.verbose != '' && inputs.verbose || 'false' }} EOF shell: bash - name: add default cargo home to path - run: flowey e 12 flowey_lib_common::install_rust 0 + run: flowey.exe e 12 flowey_lib_common::install_rust 0 shell: bash - name: install Rust - run: flowey e 12 flowey_lib_common::install_rust 1 + run: flowey.exe e 12 flowey_lib_common::install_rust 1 shell: bash - name: detect active toolchain run: |- - flowey e 12 flowey_lib_common::install_rust 2 - flowey e 12 flowey_lib_common::cfg_cargo_common_flags 0 + flowey.exe e 12 flowey_lib_common::install_rust 2 + flowey.exe e 12 flowey_lib_common::cfg_cargo_common_flags 0 shell: bash - name: check if openvmm needs to be cloned run: |- - flowey e 12 flowey_lib_common::git_checkout 0 - 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 floweyvar10 - flowey v 12 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION + flowey.exe e 12 flowey_lib_common::git_checkout 0 + flowey.exe 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 floweyvar7 + flowey.exe v 12 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION shell: bash - id: flowey_lib_common__git_checkout__1 uses: actions/checkout@v6 with: fetch-depth: '1' path: repo0 - persist-credentials: ${{ env.floweyvar10 }} + persist-credentials: ${{ env.floweyvar7 }} name: checkout repo openvmm if: ${{ fromJSON(env.FLOWEY_CONDITION) }} - name: report cloned repo directories run: |- - 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 <> $GITHUB_PATH @@ -1392,7 +1377,7 @@ jobs: ${{ runner.temp }} EOF ) - flowey.exe pipeline github --runtime $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci + flowey pipeline github --runtime $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci shell: bash - name: πŸŒΌπŸ›« Initialize job run: | @@ -1400,209 +1385,295 @@ jobs: AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV - chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe + chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey - echo '"debug"' | flowey.exe v 13 'FLOWEY_LOG' update - echo "${{ runner.temp }}/work" | flowey.exe v 13 '_internal_WORKING_DIR' --is-raw-string update + echo '"debug"' | flowey v 13 'FLOWEY_LOG' update + echo "${{ runner.temp }}/work" | flowey v 13 '_internal_WORKING_DIR' --is-raw-string update - cat <<'EOF' | flowey.exe v 13 'verbose' update + cat <<'EOF' | flowey v 13 'verbose' update ${{ inputs.verbose != '' && inputs.verbose || 'false' }} EOF shell: bash - name: add default cargo home to path - run: flowey.exe e 13 flowey_lib_common::install_rust 0 + run: flowey e 13 flowey_lib_common::install_rust 0 shell: bash - name: install Rust - run: flowey.exe e 13 flowey_lib_common::install_rust 1 + run: flowey e 13 flowey_lib_common::install_rust 1 shell: bash - name: detect active toolchain run: |- - flowey.exe e 13 flowey_lib_common::install_rust 2 - flowey.exe e 13 flowey_lib_common::cfg_cargo_common_flags 0 + flowey e 13 flowey_lib_common::install_rust 2 + flowey e 13 flowey_lib_common::cfg_cargo_common_flags 0 shell: bash - name: check if openvmm needs to be cloned run: |- - flowey.exe e 13 flowey_lib_common::git_checkout 0 - 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 floweyvar7 - 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 + flowey e 13 flowey_lib_common::git_checkout 0 + flowey 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 floweyvar9 + flowey v 13 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION shell: bash - id: flowey_lib_common__git_checkout__1 uses: actions/checkout@v6 with: fetch-depth: '1' path: repo0 - persist-credentials: ${{ env.floweyvar7 }} + persist-credentials: ${{ env.floweyvar9 }} name: checkout repo openvmm if: ${{ fromJSON(env.FLOWEY_CONDITION) }} - name: report cloned repo directories run: |- - 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 <> $GITHUB_PATH @@ -1687,16 +1758,10 @@ jobs: flowey e 14 flowey_lib_common::install_rust 2 flowey e 14 flowey_lib_common::cfg_cargo_common_flags 0 shell: bash - - name: checking if packages need to be installed - run: flowey e 14 flowey_lib_common::install_dist_pkg 0 - shell: bash - - name: installing packages - run: flowey e 14 flowey_lib_common::install_dist_pkg 1 - shell: bash - name: check if openvmm needs to be cloned run: |- flowey e 14 flowey_lib_common::git_checkout 0 - 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 floweyvar9 + 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 flowey v 14 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION shell: bash - id: flowey_lib_common__git_checkout__1 @@ -1704,7 +1769,7 @@ jobs: with: fetch-depth: '1' path: repo0 - persist-credentials: ${{ env.floweyvar9 }} + persist-credentials: ${{ env.floweyvar10 }} name: checkout repo openvmm if: ${{ fromJSON(env.FLOWEY_CONDITION) }} - name: report cloned repo directories @@ -1714,9 +1779,13 @@ jobs: EOF flowey e 14 flowey_lib_common::git_checkout 3 flowey e 14 flowey_lib_hvlite::git_checkout_openvmm_repo 0 + flowey e 14 flowey_lib_hvlite::cfg_openvmm_magicpath 0 shell: bash - - name: set '-Dwarnings' in .cargo/config.toml - run: flowey e 14 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0 + - name: checking if packages need to be installed + run: flowey e 14 flowey_lib_common::install_dist_pkg 0 + shell: bash + - name: installing packages + run: flowey e 14 flowey_lib_common::install_dist_pkg 1 shell: bash - name: create gh-release-download cache dir run: flowey e 14 flowey_lib_common::download_gh_release 0 @@ -1724,14 +1793,14 @@ jobs: - name: Pre-processing cache vars run: |- flowey e 14 flowey_lib_common::cache 4 - flowey v 14 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar7 - flowey v 14 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar8 + flowey v 14 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar8 + flowey v 14 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar9 shell: bash - id: flowey_lib_common__cache__5 uses: actions/cache@v5 with: - key: ${{ env.floweyvar7 }} - path: ${{ env.floweyvar8 }} + key: ${{ env.floweyvar8 }} + path: ${{ env.floweyvar9 }} name: 'Restore cache: gh-release-download' - name: download artifacts from github releases run: |- @@ -1741,17 +1810,37 @@ jobs: flowey e 14 flowey_lib_common::cache 6 flowey e 14 flowey_lib_common::download_gh_release 1 shell: bash + - name: unpack openvmm-deps archive + run: flowey e 14 flowey_lib_hvlite::resolve_openvmm_deps 0 + shell: bash + - name: extract X86_64 sysroot.tar.gz + run: flowey e 14 flowey_lib_hvlite::init_openvmm_magicpath_openhcl_sysroot 0 + shell: bash + - name: set '-Dwarnings' in .cargo/config.toml + run: flowey e 14 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0 + shell: bash - name: unpack protoc - run: |- - flowey e 14 flowey_lib_common::resolve_protoc 0 - flowey e 14 flowey_lib_hvlite::cfg_openvmm_magicpath 0 + run: flowey e 14 flowey_lib_common::resolve_protoc 0 shell: bash - name: symlink protoc run: |- flowey e 14 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0 - flowey e 14 flowey_lib_hvlite::init_cross_build 0 flowey e 14 flowey_lib_hvlite::init_cross_build 2 shell: bash + - name: cargo clippy + run: flowey e 14 flowey_lib_common::run_cargo_clippy 4 + shell: bash + - name: cargo clippy + run: flowey e 14 flowey_lib_common::run_cargo_clippy 1 + shell: bash + - name: cargo clippy + run: flowey e 14 flowey_lib_common::run_cargo_clippy 6 + shell: bash + - name: cargo clippy + run: |- + flowey e 14 flowey_lib_common::run_cargo_clippy 5 + flowey e 14 flowey_lib_hvlite::init_cross_build 0 + shell: bash - name: cargo build xtask run: |- flowey e 14 flowey_lib_common::run_cargo_build 0 @@ -1775,9 +1864,6 @@ jobs: - name: cargo clippy run: flowey e 14 flowey_lib_common::run_cargo_clippy 3 shell: bash - - name: cargo clippy - run: flowey e 14 flowey_lib_common::run_cargo_clippy 1 - shell: bash - name: create cargo-nextest cache dir run: |- flowey e 14 flowey_lib_common::download_cargo_nextest 0 @@ -1788,14 +1874,14 @@ jobs: - name: Pre-processing cache vars run: |- flowey e 14 flowey_lib_common::cache 0 - flowey v 14 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar5 - flowey v 14 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar6 + flowey v 14 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar6 + flowey v 14 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar7 shell: bash - id: flowey_lib_common__cache__1 uses: actions/cache@v5 with: - key: ${{ env.floweyvar5 }} - path: ${{ env.floweyvar6 }} + key: ${{ env.floweyvar6 }} + path: ${{ env.floweyvar7 }} name: 'Restore cache: cargo-nextest' - name: downloading cargo-nextest run: |- @@ -1811,17 +1897,17 @@ jobs: - name: installing cargo-nextest run: |- flowey e 14 flowey_lib_common::install_cargo_nextest 0 - flowey e 14 flowey_lib_hvlite::init_cross_build 1 + flowey e 14 flowey_lib_hvlite::init_cross_build 3 flowey e 14 flowey_lib_hvlite::run_cargo_nextest_run 0 shell: bash - name: generate nextest command - run: flowey e 14 flowey_lib_common::gen_cargo_nextest_run_cmd 2 + run: flowey e 14 flowey_lib_common::gen_cargo_nextest_run_cmd 1 shell: bash - - name: run 'unit-tests crypto (openssl)' nextest tests + - name: run 'unit-tests crypto (none)' nextest tests run: |- - flowey e 14 flowey_lib_common::run_cargo_nextest_run 4 - flowey e 14 flowey_lib_common::run_cargo_nextest_run 5 - flowey e 14 flowey_lib_hvlite::build_nextest_unit_tests 3 + flowey e 14 flowey_lib_common::run_cargo_nextest_run 2 + flowey e 14 flowey_lib_common::run_cargo_nextest_run 3 + flowey e 14 flowey_lib_hvlite::build_nextest_unit_tests 2 flowey e 14 flowey_lib_common::publish_test_results 5 flowey e 14 flowey_lib_common::publish_test_results 6 flowey e 14 flowey_lib_common::publish_test_results 4 @@ -1831,18 +1917,18 @@ jobs: - id: flowey_lib_common__publish_test_results__7 uses: actions/upload-artifact@v7 with: - name: aarch64-linux-unit-tests-unit-tests crypto (openssl)-junit-xml + name: x64-linux-musl-unit-tests-unit-tests crypto (none)-junit-xml path: ${{ env.floweyvar2 }} - name: 'publish test results: aarch64-linux-unit-tests-unit-tests crypto (openssl) (JUnit XML)' + name: 'publish test results: x64-linux-musl-unit-tests-unit-tests crypto (none) (JUnit XML)' if: ${{ fromJSON(env.FLOWEY_CONDITION) }} - name: generate nextest command - run: flowey e 14 flowey_lib_common::gen_cargo_nextest_run_cmd 0 + run: flowey e 14 flowey_lib_common::gen_cargo_nextest_run_cmd 2 shell: bash - - name: run 'unit-tests crypto (all)' nextest tests + - name: run 'unit-tests crypto (openssl)' nextest tests run: |- - flowey e 14 flowey_lib_common::run_cargo_nextest_run 0 - flowey e 14 flowey_lib_common::run_cargo_nextest_run 1 - flowey e 14 flowey_lib_hvlite::build_nextest_unit_tests 4 + flowey e 14 flowey_lib_common::run_cargo_nextest_run 4 + flowey e 14 flowey_lib_common::run_cargo_nextest_run 5 + flowey e 14 flowey_lib_hvlite::build_nextest_unit_tests 3 flowey e 14 flowey_lib_common::publish_test_results 8 flowey e 14 flowey_lib_common::publish_test_results 9 flowey e 14 flowey_lib_common::publish_test_results 10 @@ -1852,33 +1938,18 @@ jobs: - id: flowey_lib_common__publish_test_results__11 uses: actions/upload-artifact@v7 with: - name: aarch64-linux-unit-tests-unit-tests crypto (all)-junit-xml + name: x64-linux-musl-unit-tests-unit-tests crypto (openssl)-junit-xml path: ${{ env.floweyvar3 }} - name: 'publish test results: aarch64-linux-unit-tests-unit-tests crypto (all) (JUnit XML)' + name: 'publish test results: x64-linux-musl-unit-tests-unit-tests crypto (openssl) (JUnit XML)' if: ${{ fromJSON(env.FLOWEY_CONDITION) }} - - name: cargo build xtask - run: |- - flowey e 14 flowey_lib_hvlite::init_cross_build 3 - flowey e 14 flowey_lib_common::run_cargo_build 1 - flowey e 14 flowey_lib_hvlite::run_cargo_build 2 - shell: bash - - name: split debug symbols - run: |- - flowey e 14 flowey_lib_hvlite::run_split_debug_info 0 - flowey e 14 flowey_lib_hvlite::run_cargo_build 3 - flowey e 14 flowey_lib_hvlite::build_xtask 1 - shell: bash - - name: determine unit test exclusions - run: flowey e 14 flowey_lib_hvlite::build_nextest_unit_tests 0 - shell: bash - name: generate nextest command run: flowey e 14 flowey_lib_common::gen_cargo_nextest_run_cmd 3 shell: bash - - name: run 'unit-tests' nextest tests + - name: run 'unit-tests crypto (symcrypt)' nextest tests run: |- flowey e 14 flowey_lib_common::run_cargo_nextest_run 6 flowey e 14 flowey_lib_common::run_cargo_nextest_run 7 - flowey e 14 flowey_lib_hvlite::build_nextest_unit_tests 1 + flowey e 14 flowey_lib_hvlite::build_nextest_unit_tests 4 flowey e 14 flowey_lib_common::publish_test_results 12 flowey e 14 flowey_lib_common::publish_test_results 13 flowey e 14 flowey_lib_common::publish_test_results 14 @@ -1888,18 +1959,54 @@ jobs: - id: flowey_lib_common__publish_test_results__15 uses: actions/upload-artifact@v7 with: - name: aarch64-linux-unit-tests-unit-tests-junit-xml + name: x64-linux-musl-unit-tests-unit-tests crypto (symcrypt)-junit-xml path: ${{ env.floweyvar4 }} - name: 'publish test results: aarch64-linux-unit-tests-unit-tests (JUnit XML)' + name: 'publish test results: x64-linux-musl-unit-tests-unit-tests crypto (symcrypt) (JUnit XML)' if: ${{ fromJSON(env.FLOWEY_CONDITION) }} - name: generate nextest command - run: flowey e 14 flowey_lib_common::gen_cargo_nextest_run_cmd 1 + run: flowey e 14 flowey_lib_common::gen_cargo_nextest_run_cmd 0 shell: bash - - name: run 'unit-tests crypto (none)' nextest tests + - name: run 'unit-tests crypto (all)' nextest tests run: |- - flowey e 14 flowey_lib_common::run_cargo_nextest_run 2 - flowey e 14 flowey_lib_common::run_cargo_nextest_run 3 - flowey e 14 flowey_lib_hvlite::build_nextest_unit_tests 2 + flowey e 14 flowey_lib_common::run_cargo_nextest_run 0 + flowey e 14 flowey_lib_common::run_cargo_nextest_run 1 + flowey e 14 flowey_lib_hvlite::build_nextest_unit_tests 5 + flowey e 14 flowey_lib_common::publish_test_results 16 + flowey e 14 flowey_lib_common::publish_test_results 17 + flowey e 14 flowey_lib_common::publish_test_results 18 + 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 + 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 + shell: bash + - id: flowey_lib_common__publish_test_results__19 + uses: actions/upload-artifact@v7 + with: + name: x64-linux-musl-unit-tests-unit-tests crypto (all)-junit-xml + path: ${{ env.floweyvar5 }} + name: 'publish test results: x64-linux-musl-unit-tests-unit-tests crypto (all) (JUnit XML)' + if: ${{ fromJSON(env.FLOWEY_CONDITION) }} + - name: cargo build xtask + run: |- + flowey e 14 flowey_lib_hvlite::init_cross_build 1 + flowey e 14 flowey_lib_common::run_cargo_build 1 + flowey e 14 flowey_lib_hvlite::run_cargo_build 2 + shell: bash + - name: split debug symbols + run: |- + flowey e 14 flowey_lib_hvlite::run_split_debug_info 0 + flowey e 14 flowey_lib_hvlite::run_cargo_build 3 + flowey e 14 flowey_lib_hvlite::build_xtask 1 + shell: bash + - name: determine unit test exclusions + run: flowey e 14 flowey_lib_hvlite::build_nextest_unit_tests 0 + shell: bash + - name: generate nextest command + run: flowey e 14 flowey_lib_common::gen_cargo_nextest_run_cmd 4 + shell: bash + - name: run 'unit-tests' nextest tests + run: |- + flowey e 14 flowey_lib_common::run_cargo_nextest_run 8 + flowey e 14 flowey_lib_common::run_cargo_nextest_run 9 + flowey e 14 flowey_lib_hvlite::build_nextest_unit_tests 1 flowey e 14 flowey_lib_common::publish_test_results 0 flowey e 14 flowey_lib_common::publish_test_results 1 flowey e 14 flowey_lib_common::publish_test_results 2 @@ -1909,16 +2016,16 @@ jobs: - id: flowey_lib_common__publish_test_results__3 uses: actions/upload-artifact@v7 with: - name: aarch64-linux-unit-tests-unit-tests crypto (none)-junit-xml + name: x64-linux-musl-unit-tests-unit-tests-junit-xml path: ${{ env.floweyvar1 }} - name: 'publish test results: aarch64-linux-unit-tests-unit-tests crypto (none) (JUnit XML)' + name: 'publish test results: x64-linux-musl-unit-tests-unit-tests (JUnit XML)' if: ${{ fromJSON(env.FLOWEY_CONDITION) }} - name: report test results to overall pipeline status run: |- - flowey e 14 flowey_lib_hvlite::build_nextest_unit_tests 5 + flowey e 14 flowey_lib_hvlite::build_nextest_unit_tests 6 flowey e 14 flowey_lib_hvlite::_jobs::build_and_run_nextest_unit_tests 0 shell: bash - - name: run doctests for aarch64-unknown-linux-gnu + - name: run doctests for x86_64-unknown-linux-musl run: flowey e 14 flowey_lib_hvlite::_jobs::build_and_run_doc_tests 0 shell: bash - name: 'validate cache entry: cargo-nextest' @@ -1928,11 +2035,11 @@ jobs: run: flowey e 14 flowey_lib_common::cache 7 shell: bash job15: - name: clippy [aarch64-linux-musl, misc nostd], unit tests [aarch64-linux-musl] + name: clippy [aarch64-windows], unit tests [aarch64-windows] runs-on: - self-hosted - 1ES.Pool=openvmm-gh-arm-westus2 - - 1ES.ImageOverride=ubuntu2404-arm64 + - 1ES.ImageOverride=win-arm64 - JobId=job15-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }} permissions: contents: read @@ -1972,11 +2079,11 @@ jobs: - name: Build flowey run: | set -x - CARGO_INCREMENTAL=0 cargo build -p flowey_hvlite --target aarch64-unknown-linux-gnu --profile flowey-ci + CARGO_INCREMENTAL=0 cargo build -p flowey_hvlite --target aarch64-pc-windows-msvc --profile flowey-ci OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') mkdir -p "$OutDirNormal" mv ./.github/workflows/openvmm-ci.yaml "$OutDirNormal/pipeline.yaml" - mv target/aarch64-unknown-linux-gnu/flowey-ci/flowey_hvlite "$OutDirNormal/flowey" + mv target/aarch64-pc-windows-msvc/flowey-ci/flowey_hvlite.exe "$OutDirNormal/flowey.exe" working-directory: flowey_bootstrap shell: bash - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH @@ -1989,7 +2096,7 @@ jobs: ${{ runner.temp }} EOF ) - flowey pipeline github --runtime $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci + flowey.exe pipeline github --runtime $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci shell: bash - name: πŸŒΌπŸ›« Initialize job run: | @@ -1997,144 +2104,741 @@ jobs: AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV - chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey + chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe - echo '"debug"' | flowey v 15 'FLOWEY_LOG' update - echo "${{ runner.temp }}/work" | flowey v 15 '_internal_WORKING_DIR' --is-raw-string update + echo '"debug"' | flowey.exe v 15 'FLOWEY_LOG' update + echo "${{ runner.temp }}/work" | flowey.exe v 15 '_internal_WORKING_DIR' --is-raw-string update - cat <<'EOF' | flowey v 15 'verbose' update + cat <<'EOF' | flowey.exe v 15 'verbose' update ${{ inputs.verbose != '' && inputs.verbose || 'false' }} EOF shell: bash - name: add default cargo home to path - run: flowey e 15 flowey_lib_common::install_rust 0 + run: flowey.exe e 15 flowey_lib_common::install_rust 0 shell: bash - name: install Rust - run: flowey e 15 flowey_lib_common::install_rust 1 + run: flowey.exe e 15 flowey_lib_common::install_rust 1 shell: bash - name: detect active toolchain run: |- - flowey e 15 flowey_lib_common::install_rust 2 - flowey e 15 flowey_lib_common::cfg_cargo_common_flags 0 + flowey.exe e 15 flowey_lib_common::install_rust 2 + flowey.exe e 15 flowey_lib_common::cfg_cargo_common_flags 0 shell: bash - name: check if openvmm needs to be cloned run: |- - flowey e 15 flowey_lib_common::git_checkout 0 - 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 floweyvar10 - flowey v 15 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION + flowey.exe e 15 flowey_lib_common::git_checkout 0 + flowey.exe 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 floweyvar7 + flowey.exe v 15 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION shell: bash - id: flowey_lib_common__git_checkout__1 uses: actions/checkout@v6 with: fetch-depth: '1' path: repo0 - persist-credentials: ${{ env.floweyvar10 }} + persist-credentials: ${{ env.floweyvar7 }} name: checkout repo openvmm if: ${{ fromJSON(env.FLOWEY_CONDITION) }} - name: report cloned repo directories run: |- - 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 <> "$GITHUB_PATH" + rustup show + if: runner.os == 'Linux' + name: rustup (Linux) + shell: bash + - run: | + set -x + curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init + ./rustup-init.exe -y --default-toolchain=1.95.0 + echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH + if: runner.os == 'Windows' && runner.arch == 'X64' + name: rustup (Windows X64) + shell: bash + - run: | + set -x + curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init + ./rustup-init.exe -y --default-toolchain=1.95.0 + echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH + if: runner.os == 'Windows' && runner.arch == 'ARM64' + name: rustup (Windows ARM64) + shell: bash + - uses: actions/checkout@v6 + with: + path: flowey_bootstrap + - name: Build flowey + run: | + set -x + CARGO_INCREMENTAL=0 cargo build -p flowey_hvlite --target aarch64-unknown-linux-gnu --profile flowey-ci + OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') + mkdir -p "$OutDirNormal" + mv ./.github/workflows/openvmm-ci.yaml "$OutDirNormal/pipeline.yaml" + mv target/aarch64-unknown-linux-gnu/flowey-ci/flowey_hvlite "$OutDirNormal/flowey" + working-directory: flowey_bootstrap + shell: bash + - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH + shell: bash + name: πŸŒΌπŸ“¦ Add flowey to PATH + - name: πŸŒΌπŸ”Ž Self-check YAML + run: |- + ESCAPED_AGENT_TEMPDIR=$( + cat <<'EOF' | sed 's/\\/\\\\/g' + ${{ runner.temp }} + EOF + ) + flowey pipeline github --runtime $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci + shell: bash + - name: πŸŒΌπŸ›« Initialize job + run: | + AgentTempDirNormal="${{ runner.temp }}" + AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') + echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV + + chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey + + echo '"debug"' | flowey v 16 'FLOWEY_LOG' update + echo "${{ runner.temp }}/work" | flowey v 16 '_internal_WORKING_DIR' --is-raw-string update + + cat <<'EOF' | flowey v 16 'verbose' update + ${{ inputs.verbose != '' && inputs.verbose || 'false' }} + EOF + shell: bash + - name: add default cargo home to path + run: flowey e 16 flowey_lib_common::install_rust 0 + shell: bash + - name: install Rust + run: flowey e 16 flowey_lib_common::install_rust 1 + shell: bash + - name: detect active toolchain + run: |- + flowey e 16 flowey_lib_common::install_rust 2 + flowey e 16 flowey_lib_common::cfg_cargo_common_flags 0 + shell: bash + - name: checking if packages need to be installed + run: flowey e 16 flowey_lib_common::install_dist_pkg 0 + shell: bash + - name: installing packages + run: flowey e 16 flowey_lib_common::install_dist_pkg 1 + shell: bash + - name: check if openvmm needs to be cloned + run: |- + flowey e 16 flowey_lib_common::git_checkout 0 + flowey 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 floweyvar9 + flowey v 16 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION + shell: bash + - id: flowey_lib_common__git_checkout__1 + uses: actions/checkout@v6 + with: + fetch-depth: '1' + path: repo0 + persist-credentials: ${{ env.floweyvar9 }} + name: checkout repo openvmm + if: ${{ fromJSON(env.FLOWEY_CONDITION) }} + - name: report cloned repo directories + run: |- + flowey v 16 'flowey_lib_common::git_checkout:4:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.workspace <> "$GITHUB_PATH" + rustup show + if: runner.os == 'Linux' + name: rustup (Linux) + shell: bash + - run: | + set -x + curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init + ./rustup-init.exe -y --default-toolchain=1.95.0 + echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH + if: runner.os == 'Windows' && runner.arch == 'X64' + name: rustup (Windows X64) + shell: bash + - run: | + set -x + curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init + ./rustup-init.exe -y --default-toolchain=1.95.0 + echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH + if: runner.os == 'Windows' && runner.arch == 'ARM64' + name: rustup (Windows ARM64) + shell: bash + - uses: actions/checkout@v6 + with: + path: flowey_bootstrap + - name: Build flowey + run: | + set -x + CARGO_INCREMENTAL=0 cargo build -p flowey_hvlite --target aarch64-unknown-linux-gnu --profile flowey-ci + OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') + mkdir -p "$OutDirNormal" + mv ./.github/workflows/openvmm-ci.yaml "$OutDirNormal/pipeline.yaml" + mv target/aarch64-unknown-linux-gnu/flowey-ci/flowey_hvlite "$OutDirNormal/flowey" + working-directory: flowey_bootstrap + shell: bash + - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH + shell: bash + name: πŸŒΌπŸ“¦ Add flowey to PATH + - name: πŸŒΌπŸ”Ž Self-check YAML + run: |- + ESCAPED_AGENT_TEMPDIR=$( + cat <<'EOF' | sed 's/\\/\\\\/g' + ${{ runner.temp }} + EOF + ) + flowey pipeline github --runtime $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci + shell: bash + - name: πŸŒΌπŸ›« Initialize job + run: | + AgentTempDirNormal="${{ runner.temp }}" + AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') + echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV + + chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey + + echo '"debug"' | flowey v 17 'FLOWEY_LOG' update + echo "${{ runner.temp }}/work" | flowey v 17 '_internal_WORKING_DIR' --is-raw-string update + + cat <<'EOF' | flowey v 17 'verbose' update + ${{ inputs.verbose != '' && inputs.verbose || 'false' }} + EOF + shell: bash + - name: add default cargo home to path + run: flowey e 17 flowey_lib_common::install_rust 0 + shell: bash + - name: install Rust + run: flowey e 17 flowey_lib_common::install_rust 1 + shell: bash + - name: detect active toolchain + run: |- + flowey e 17 flowey_lib_common::install_rust 2 + flowey e 17 flowey_lib_common::cfg_cargo_common_flags 0 + shell: bash + - name: check if openvmm needs to be cloned + run: |- + flowey e 17 flowey_lib_common::git_checkout 0 + 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 + flowey v 17 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION + shell: bash + - id: flowey_lib_common__git_checkout__1 + uses: actions/checkout@v6 + with: + fetch-depth: '1' + path: repo0 + persist-credentials: ${{ env.floweyvar10 }} + name: checkout repo openvmm + if: ${{ fromJSON(env.FLOWEY_CONDITION) }} + - name: report cloned repo directories + run: |- + 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 <> "$GITHUB_PATH" + rustup show + if: runner.os == 'Linux' + name: rustup (Linux) + shell: bash + - run: | + set -x + curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init + ./rustup-init.exe -y --default-toolchain=1.95.0 + echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH + if: runner.os == 'Windows' && runner.arch == 'X64' + name: rustup (Windows X64) + shell: bash + - run: | + set -x + curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init + ./rustup-init.exe -y --default-toolchain=1.95.0 + echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH + if: runner.os == 'Windows' && runner.arch == 'ARM64' + name: rustup (Windows ARM64) + shell: bash + - uses: actions/checkout@v6 + with: + path: flowey_bootstrap + - name: Build flowey + run: | + set -x + CARGO_INCREMENTAL=0 cargo build -p flowey_hvlite --target x86_64-pc-windows-msvc --profile flowey-ci + OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') + mkdir -p "$OutDirNormal" + mv ./.github/workflows/openvmm-ci.yaml "$OutDirNormal/pipeline.yaml" + mv target/x86_64-pc-windows-msvc/flowey-ci/flowey_hvlite.exe "$OutDirNormal/flowey.exe" + working-directory: flowey_bootstrap + shell: bash + - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH + shell: bash + name: πŸŒΌπŸ“¦ Add flowey to PATH + - name: πŸŒΌπŸ”Ž Self-check YAML + run: |- + ESCAPED_AGENT_TEMPDIR=$( + cat <<'EOF' | sed 's/\\/\\\\/g' + ${{ runner.temp }} + EOF + ) + flowey.exe pipeline github --runtime $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci + shell: bash + - name: πŸŒΌπŸ›« Initialize job + run: | + AgentTempDirNormal="${{ runner.temp }}" + AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') + echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV + + chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe + + echo '"debug"' | flowey.exe v 2 'FLOWEY_LOG' update + echo "${{ runner.temp }}/work" | flowey.exe v 2 '_internal_WORKING_DIR' --is-raw-string update + + cat <<'EOF' | flowey.exe v 2 'verbose' update + ${{ inputs.verbose != '' && inputs.verbose || 'false' }} + EOF + mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-pipette" + echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-pipette" | flowey.exe v 2 'artifact_publish_from_aarch64-windows-pipette' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-pipette" + echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-pipette" | flowey.exe v 2 'artifact_publish_from_x64-windows-pipette' --is-raw-string update + shell: bash + - name: add default cargo home to path + run: flowey.exe e 2 flowey_lib_common::install_rust 0 + shell: bash + - name: install Rust + run: flowey.exe e 2 flowey_lib_common::install_rust 1 + shell: bash + - name: detect active toolchain + run: |- + flowey.exe e 2 flowey_lib_common::install_rust 2 + flowey.exe e 2 flowey_lib_common::cfg_cargo_common_flags 0 + shell: bash + - name: check if openvmm needs to be cloned + run: |- + flowey.exe e 2 flowey_lib_common::git_checkout 0 + 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 + 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 + shell: bash + - id: flowey_lib_common__git_checkout__1 + uses: actions/checkout@v6 + with: + fetch-depth: '1' + path: repo0 + persist-credentials: ${{ env.floweyvar1 }} + name: checkout repo openvmm + if: ${{ fromJSON(env.FLOWEY_CONDITION) }} + - name: report cloned repo directories + run: |- + 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 <> $GITHUB_PATH + - run: echo "${{ runner.temp }}/used_artifacts/_internal-flowey-bootstrap-x86_64-linux-uid-11" >> $GITHUB_PATH shell: bash name: πŸŒΌπŸ“¦ Add flowey to PATH - name: πŸŒΌπŸ›« Initialize job @@ -3121,48 +4010,48 @@ jobs: AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV - chmod +x $AgentTempDirNormal/used_artifacts/_internal-flowey-bootstrap-x86_64-linux-uid-9/flowey + chmod +x $AgentTempDirNormal/used_artifacts/_internal-flowey-bootstrap-x86_64-linux-uid-11/flowey - echo '"debug"' | flowey v 19 'FLOWEY_LOG' update - echo "${{ runner.temp }}/work" | flowey v 19 '_internal_WORKING_DIR' --is-raw-string update + echo '"debug"' | flowey v 21 'FLOWEY_LOG' update + echo "${{ runner.temp }}/work" | flowey v 21 '_internal_WORKING_DIR' --is-raw-string update - cat <<'EOF' | flowey v 19 'verbose' update + cat <<'EOF' | flowey v 21 'verbose' update ${{ inputs.verbose != '' && inputs.verbose || 'false' }} EOF - echo "$AgentTempDirNormal/used_artifacts/x64-guest_test_uefi" | flowey v 19 'artifact_use_from_x64-guest_test_uefi' --is-raw-string update - echo "$AgentTempDirNormal/used_artifacts/x64-linux-musl-pipette" | flowey v 19 'artifact_use_from_x64-linux-musl-pipette' --is-raw-string update - echo "$AgentTempDirNormal/used_artifacts/x64-linux-musl-tmk_vmm" | flowey v 19 'artifact_use_from_x64-linux-musl-tmk_vmm' --is-raw-string update - echo "$AgentTempDirNormal/used_artifacts/x64-linux-openvmm" | flowey v 19 'artifact_use_from_x64-linux-openvmm' --is-raw-string update - echo "$AgentTempDirNormal/used_artifacts/x64-linux-openvmm_vhost" | flowey v 19 'artifact_use_from_x64-linux-openvmm_vhost' --is-raw-string update - echo "$AgentTempDirNormal/used_artifacts/x64-linux-vmm-tests-archive" | flowey v 19 'artifact_use_from_x64-linux-vmm-tests-archive' --is-raw-string update - echo "$AgentTempDirNormal/used_artifacts/x64-tmks" | flowey v 19 'artifact_use_from_x64-tmks' --is-raw-string update - echo "$AgentTempDirNormal/used_artifacts/x64-windows-pipette" | flowey v 19 'artifact_use_from_x64-windows-pipette' --is-raw-string update + echo "$AgentTempDirNormal/used_artifacts/x64-guest_test_uefi" | flowey v 21 'artifact_use_from_x64-guest_test_uefi' --is-raw-string update + echo "$AgentTempDirNormal/used_artifacts/x64-linux-musl-pipette" | flowey v 21 'artifact_use_from_x64-linux-musl-pipette' --is-raw-string update + echo "$AgentTempDirNormal/used_artifacts/x64-linux-musl-tmk_vmm" | flowey v 21 'artifact_use_from_x64-linux-musl-tmk_vmm' --is-raw-string update + echo "$AgentTempDirNormal/used_artifacts/x64-linux-openvmm" | flowey v 21 'artifact_use_from_x64-linux-openvmm' --is-raw-string update + echo "$AgentTempDirNormal/used_artifacts/x64-linux-openvmm_vhost" | flowey v 21 'artifact_use_from_x64-linux-openvmm_vhost' --is-raw-string update + echo "$AgentTempDirNormal/used_artifacts/x64-linux-vmm-tests-archive" | flowey v 21 'artifact_use_from_x64-linux-vmm-tests-archive' --is-raw-string update + echo "$AgentTempDirNormal/used_artifacts/x64-tmks" | flowey v 21 'artifact_use_from_x64-tmks' --is-raw-string update + echo "$AgentTempDirNormal/used_artifacts/x64-windows-pipette" | flowey v 21 'artifact_use_from_x64-windows-pipette' --is-raw-string update shell: bash - name: creating new test content dir run: |- - flowey e 19 flowey_core::pipeline::artifact::resolve 3 - flowey e 19 flowey_core::pipeline::artifact::resolve 4 - flowey e 19 flowey_core::pipeline::artifact::resolve 7 - flowey e 19 flowey_core::pipeline::artifact::resolve 1 - flowey e 19 flowey_core::pipeline::artifact::resolve 0 - flowey e 19 flowey_core::pipeline::artifact::resolve 2 - flowey e 19 flowey_core::pipeline::artifact::resolve 6 - flowey e 19 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 0 + flowey e 21 flowey_core::pipeline::artifact::resolve 3 + flowey e 21 flowey_core::pipeline::artifact::resolve 4 + flowey e 21 flowey_core::pipeline::artifact::resolve 7 + flowey e 21 flowey_core::pipeline::artifact::resolve 1 + flowey e 21 flowey_core::pipeline::artifact::resolve 0 + flowey e 21 flowey_core::pipeline::artifact::resolve 2 + flowey e 21 flowey_core::pipeline::artifact::resolve 6 + flowey e 21 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 0 shell: bash - name: checking if packages need to be installed - run: flowey e 19 flowey_lib_common::install_dist_pkg 0 + run: flowey e 21 flowey_lib_common::install_dist_pkg 0 shell: bash - name: installing packages - run: flowey e 19 flowey_lib_common::install_dist_pkg 1 + run: flowey e 21 flowey_lib_common::install_dist_pkg 1 shell: bash - name: create gh-release-download cache dir - run: flowey e 19 flowey_lib_common::download_gh_release 0 + run: flowey e 21 flowey_lib_common::download_gh_release 0 shell: bash - name: Pre-processing cache vars run: |- - flowey e 19 flowey_lib_common::cache 8 - flowey v 19 'flowey_lib_common::cache:18:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar8 - flowey v 19 'flowey_lib_common::cache:17:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar9 + flowey e 21 flowey_lib_common::cache 8 + flowey v 21 'flowey_lib_common::cache:18:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar8 + flowey v 21 'flowey_lib_common::cache:17:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar9 shell: bash - id: flowey_lib_common__cache__9 uses: actions/cache@v5 @@ -3172,31 +4061,31 @@ jobs: name: 'Restore cache: gh-release-download' - name: download artifacts from github releases run: |- - flowey 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 <> "$GITHUB_PATH" - rustup show - if: runner.os == 'Linux' - name: rustup (Linux) - shell: bash - - run: | - set -x - curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init - ./rustup-init.exe -y --default-toolchain=1.95.0 - echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH - if: runner.os == 'Windows' && runner.arch == 'X64' - name: rustup (Windows X64) - shell: bash - - run: | - set -x - curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init - ./rustup-init.exe -y --default-toolchain=1.95.0 - echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH - if: runner.os == 'Windows' && runner.arch == 'ARM64' - name: rustup (Windows ARM64) - shell: bash - - uses: actions/checkout@v6 - with: - path: flowey_bootstrap - - name: Build flowey - run: | - set -x - CARGO_INCREMENTAL=0 cargo build -p flowey_hvlite --target x86_64-pc-windows-msvc --profile flowey-ci - OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') - mkdir -p "$OutDirNormal" - mv ./.github/workflows/openvmm-ci.yaml "$OutDirNormal/pipeline.yaml" - mv target/x86_64-pc-windows-msvc/flowey-ci/flowey_hvlite.exe "$OutDirNormal/flowey.exe" - working-directory: flowey_bootstrap - shell: bash - - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH - shell: bash - name: πŸŒΌπŸ“¦ Add flowey to PATH - - name: πŸŒΌπŸ”Ž Self-check YAML - run: |- - ESCAPED_AGENT_TEMPDIR=$( - cat <<'EOF' | sed 's/\\/\\\\/g' - ${{ runner.temp }} - EOF - ) - flowey.exe pipeline github --runtime $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci - shell: bash - - name: πŸŒΌπŸ›« Initialize job - run: | - AgentTempDirNormal="${{ runner.temp }}" - AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') - echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV - - chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe - - echo '"debug"' | flowey.exe v 2 'FLOWEY_LOG' update - echo "${{ runner.temp }}/work" | flowey.exe v 2 '_internal_WORKING_DIR' --is-raw-string update - - cat <<'EOF' | flowey.exe v 2 'verbose' update - ${{ inputs.verbose != '' && inputs.verbose || 'false' }} - EOF - mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-hypestv" - echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-hypestv" | flowey.exe v 2 'artifact_publish_from_aarch64-windows-hypestv' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-igvmfilegen" - echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-igvmfilegen" | flowey.exe v 2 'artifact_publish_from_aarch64-windows-igvmfilegen' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-ohcldiag-dev" - echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-ohcldiag-dev" | flowey.exe v 2 'artifact_publish_from_aarch64-windows-ohcldiag-dev' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-vmgs_lib" - echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-vmgs_lib" | flowey.exe v 2 'artifact_publish_from_aarch64-windows-vmgs_lib' --is-raw-string update + run: flowey e 21 flowey_lib_hvlite::download_uefi_mu_msvm 0 shell: bash - - name: add default cargo home to path - run: flowey.exe e 2 flowey_lib_common::install_rust 0 + - name: setting up vmm_tests env + run: flowey e 21 flowey_lib_hvlite::init_vmm_tests_env 0 shell: bash - - name: install Rust - run: flowey.exe e 2 flowey_lib_common::install_rust 1 + - name: ensure hypervisor device is accessible + run: flowey e 21 flowey_lib_hvlite::test_nextest_vmm_tests_archive 1 shell: bash - - name: detect active toolchain + - name: ensure 2 MiB hugetlb pages are available + run: flowey e 21 flowey_lib_hvlite::test_nextest_vmm_tests_archive 2 + shell: bash + - name: create cargo-nextest cache dir run: |- - flowey.exe e 2 flowey_lib_common::install_rust 2 - flowey.exe e 2 flowey_lib_common::cfg_cargo_common_flags 0 + flowey e 21 flowey_lib_common::download_cargo_nextest 0 + flowey e 21 flowey_lib_common::download_cargo_nextest 1 + flowey e 21 flowey_lib_common::download_cargo_nextest 2 + flowey e 21 flowey_lib_common::download_cargo_nextest 3 + shell: bash + - name: Pre-processing cache vars + run: |- + flowey e 21 flowey_lib_common::cache 0 + flowey v 21 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar4 + flowey v 21 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar5 + shell: bash + - id: flowey_lib_common__cache__1 + uses: actions/cache@v5 + with: + key: ${{ env.floweyvar4 }} + path: ${{ env.floweyvar5 }} + name: 'Restore cache: cargo-nextest' + - name: downloading cargo-nextest + run: |- + flowey 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 <> $GITHUB_PATH + - run: echo "${{ runner.temp }}/used_artifacts/_internal-flowey-bootstrap-x86_64-linux-uid-11" >> $GITHUB_PATH shell: bash name: πŸŒΌπŸ“¦ Add flowey to PATH - name: πŸŒΌπŸ›« Initialize job @@ -4915,27 +5592,27 @@ jobs: AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV - chmod +x $AgentTempDirNormal/used_artifacts/_internal-flowey-bootstrap-x86_64-linux-uid-9/flowey + chmod +x $AgentTempDirNormal/used_artifacts/_internal-flowey-bootstrap-x86_64-linux-uid-11/flowey - echo '"debug"' | flowey v 25 'FLOWEY_LOG' update - echo "${{ runner.temp }}/work" | flowey v 25 '_internal_WORKING_DIR' --is-raw-string update + echo '"debug"' | flowey v 27 'FLOWEY_LOG' update + echo "${{ runner.temp }}/work" | flowey v 27 '_internal_WORKING_DIR' --is-raw-string update - cat <<'EOF' | flowey v 25 'verbose' update + cat <<'EOF' | flowey v 27 'verbose' update ${{ inputs.verbose != '' && inputs.verbose || 'false' }} EOF - echo "$AgentTempDirNormal/used_artifacts/aarch64-linux-vmgstool" | flowey v 25 'artifact_use_from_aarch64-linux-vmgstool' --is-raw-string update - echo "$AgentTempDirNormal/used_artifacts/aarch64-windows-vmgstool" | flowey v 25 'artifact_use_from_aarch64-windows-vmgstool' --is-raw-string update - echo "$AgentTempDirNormal/used_artifacts/x64-linux-vmgstool" | flowey v 25 'artifact_use_from_x64-linux-vmgstool' --is-raw-string update - echo "$AgentTempDirNormal/used_artifacts/x64-windows-vmgstool" | flowey v 25 'artifact_use_from_x64-windows-vmgstool' --is-raw-string update + echo "$AgentTempDirNormal/used_artifacts/aarch64-linux-vmgstool" | flowey v 27 'artifact_use_from_aarch64-linux-vmgstool' --is-raw-string update + echo "$AgentTempDirNormal/used_artifacts/aarch64-windows-vmgstool" | flowey v 27 'artifact_use_from_aarch64-windows-vmgstool' --is-raw-string update + echo "$AgentTempDirNormal/used_artifacts/x64-linux-vmgstool" | flowey v 27 'artifact_use_from_x64-linux-vmgstool' --is-raw-string update + echo "$AgentTempDirNormal/used_artifacts/x64-windows-vmgstool" | flowey v 27 'artifact_use_from_x64-windows-vmgstool' --is-raw-string update shell: bash - name: create gh cache dir - run: flowey e 25 flowey_lib_common::download_gh_cli 0 + run: flowey e 27 flowey_lib_common::download_gh_cli 0 shell: bash - name: Pre-processing cache vars run: |- - flowey e 25 flowey_lib_common::cache 0 - flowey v 25 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar2 - flowey v 25 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar3 + flowey e 27 flowey_lib_common::cache 0 + flowey v 27 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar2 + flowey v 27 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar3 shell: bash - id: flowey_lib_common__cache__1 uses: actions/cache@v5 @@ -4945,31 +5622,31 @@ jobs: name: 'Restore cache: gh-cli' - name: installing gh run: |- - 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 <> $GITHUB_PATH @@ -5067,7 +5744,7 @@ jobs: ${{ runner.temp }} EOF ) - flowey.exe pipeline github --runtime $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci + flowey pipeline github --runtime $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci shell: bash - name: πŸŒΌπŸ›« Initialize job run: | @@ -5075,47 +5752,51 @@ jobs: AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV - chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe + chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey - echo '"debug"' | flowey.exe v 3 'FLOWEY_LOG' update - echo "${{ runner.temp }}/work" | flowey.exe v 3 '_internal_WORKING_DIR' --is-raw-string update + echo '"debug"' | flowey v 3 'FLOWEY_LOG' update + echo "${{ runner.temp }}/work" | flowey v 3 '_internal_WORKING_DIR' --is-raw-string update - cat <<'EOF' | flowey.exe v 3 'verbose' update + cat <<'EOF' | flowey v 3 'verbose' update ${{ inputs.verbose != '' && inputs.verbose || 'false' }} EOF - mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-openvmm" - echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-openvmm" | flowey.exe v 3 'artifact_publish_from_aarch64-windows-openvmm' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-pipette" - echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-pipette" | flowey.exe v 3 'artifact_publish_from_aarch64-windows-pipette' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-prep_steps" - echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-prep_steps" | flowey.exe v 3 'artifact_publish_from_aarch64-windows-prep_steps' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-test_igvm_agent_rpc_server" - echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-test_igvm_agent_rpc_server" | flowey.exe v 3 'artifact_publish_from_aarch64-windows-test_igvm_agent_rpc_server' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-tmk_vmm" - echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-tmk_vmm" | flowey.exe v 3 'artifact_publish_from_aarch64-windows-tmk_vmm' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-tpm_guest_tests" - echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-tpm_guest_tests" | flowey.exe v 3 'artifact_publish_from_aarch64-windows-tpm_guest_tests' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-vmgstool" - echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-vmgstool" | flowey.exe v 3 'artifact_publish_from_aarch64-windows-vmgstool' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-vmm-tests-archive" - echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-vmm-tests-archive" | flowey.exe v 3 'artifact_publish_from_aarch64-windows-vmm-tests-archive' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-guest_test_uefi" + echo "$AgentTempDirNormal/publish_artifacts/aarch64-guest_test_uefi" | flowey v 3 'artifact_publish_from_aarch64-guest_test_uefi' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-musl-pipette" + echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-musl-pipette" | flowey v 3 'artifact_publish_from_aarch64-linux-musl-pipette' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-musl-tmk_vmm" + echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-musl-tmk_vmm" | flowey v 3 'artifact_publish_from_aarch64-linux-musl-tmk_vmm' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-tpm_guest_tests" + echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-tpm_guest_tests" | flowey v 3 'artifact_publish_from_aarch64-linux-tpm_guest_tests' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-tmks" + echo "$AgentTempDirNormal/publish_artifacts/aarch64-tmks" | flowey v 3 'artifact_publish_from_aarch64-tmks' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-guest_test_uefi" + echo "$AgentTempDirNormal/publish_artifacts/x64-guest_test_uefi" | flowey v 3 'artifact_publish_from_x64-guest_test_uefi' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-musl-pipette" + echo "$AgentTempDirNormal/publish_artifacts/x64-linux-musl-pipette" | flowey v 3 'artifact_publish_from_x64-linux-musl-pipette' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-musl-tmk_vmm" + echo "$AgentTempDirNormal/publish_artifacts/x64-linux-musl-tmk_vmm" | flowey v 3 'artifact_publish_from_x64-linux-musl-tmk_vmm' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-tpm_guest_tests" + echo "$AgentTempDirNormal/publish_artifacts/x64-linux-tpm_guest_tests" | flowey v 3 'artifact_publish_from_x64-linux-tpm_guest_tests' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-tmks" + echo "$AgentTempDirNormal/publish_artifacts/x64-tmks" | flowey v 3 'artifact_publish_from_x64-tmks' --is-raw-string update shell: bash - name: add default cargo home to path - run: flowey.exe e 3 flowey_lib_common::install_rust 0 + run: flowey e 3 flowey_lib_common::install_rust 0 shell: bash - name: install Rust - run: flowey.exe e 3 flowey_lib_common::install_rust 1 + run: flowey e 3 flowey_lib_common::install_rust 1 shell: bash - name: detect active toolchain run: |- - flowey.exe e 3 flowey_lib_common::install_rust 2 - flowey.exe e 3 flowey_lib_common::cfg_cargo_common_flags 0 + flowey e 3 flowey_lib_common::install_rust 2 + flowey e 3 flowey_lib_common::cfg_cargo_common_flags 0 shell: bash - name: check if openvmm needs to be cloned run: |- - flowey.exe e 3 flowey_lib_common::git_checkout 0 - flowey.exe 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 - flowey.exe v 3 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION + flowey e 3 flowey_lib_common::git_checkout 0 + 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 + flowey v 3 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION shell: bash - id: flowey_lib_common__git_checkout__1 uses: actions/checkout@v6 @@ -5127,204 +5808,259 @@ jobs: if: ${{ fromJSON(env.FLOWEY_CONDITION) }} - name: report cloned repo directories run: |- - flowey.exe v 3 'flowey_lib_common::git_checkout:4:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.workspace <> $GITHUB_PATH @@ -5930,7 +6638,7 @@ jobs: ${{ runner.temp }} EOF ) - flowey pipeline github --runtime $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci + flowey.exe pipeline github --runtime $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci shell: bash - name: πŸŒΌπŸ›« Initialize job run: | @@ -5938,55 +6646,39 @@ jobs: AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV - chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey + chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe - echo '"debug"' | flowey v 6 'FLOWEY_LOG' update - echo "${{ runner.temp }}/work" | flowey v 6 '_internal_WORKING_DIR' --is-raw-string update + echo '"debug"' | flowey.exe v 6 'FLOWEY_LOG' update + echo "${{ runner.temp }}/work" | flowey.exe v 6 '_internal_WORKING_DIR' --is-raw-string update - cat <<'EOF' | flowey v 6 'verbose' update + cat <<'EOF' | flowey.exe v 6 'verbose' update ${{ inputs.verbose != '' && inputs.verbose || 'false' }} EOF - mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-guest_test_uefi" - echo "$AgentTempDirNormal/publish_artifacts/aarch64-guest_test_uefi" | flowey v 6 'artifact_publish_from_aarch64-guest_test_uefi' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-igvmfilegen" - echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-igvmfilegen" | flowey v 6 'artifact_publish_from_aarch64-linux-igvmfilegen' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-ohcldiag-dev" - echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-ohcldiag-dev" | flowey v 6 'artifact_publish_from_aarch64-linux-ohcldiag-dev' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-openvmm" - echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-openvmm" | flowey v 6 'artifact_publish_from_aarch64-linux-openvmm' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-openvmm_vhost" - echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-openvmm_vhost" | flowey v 6 'artifact_publish_from_aarch64-linux-openvmm_vhost' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-tpm_guest_tests" - echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-tpm_guest_tests" | flowey v 6 'artifact_publish_from_aarch64-linux-tpm_guest_tests' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-vmgs_lib" - echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-vmgs_lib" | flowey v 6 'artifact_publish_from_aarch64-linux-vmgs_lib' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-vmgstool" - echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-vmgstool" | flowey v 6 'artifact_publish_from_aarch64-linux-vmgstool' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-tmks" - echo "$AgentTempDirNormal/publish_artifacts/aarch64-tmks" | flowey v 6 'artifact_publish_from_aarch64-tmks' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-hypestv" + echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-hypestv" | flowey.exe v 6 'artifact_publish_from_x64-windows-hypestv' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-igvmfilegen" + echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-igvmfilegen" | flowey.exe v 6 'artifact_publish_from_x64-windows-igvmfilegen' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-ohcldiag-dev" + echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-ohcldiag-dev" | flowey.exe v 6 'artifact_publish_from_x64-windows-ohcldiag-dev' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-vmgs_lib" + echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-vmgs_lib" | flowey.exe v 6 'artifact_publish_from_x64-windows-vmgs_lib' --is-raw-string update shell: bash - name: add default cargo home to path - run: flowey e 6 flowey_lib_common::install_rust 0 + run: flowey.exe e 6 flowey_lib_common::install_rust 0 shell: bash - name: install Rust - run: flowey e 6 flowey_lib_common::install_rust 1 + run: flowey.exe e 6 flowey_lib_common::install_rust 1 shell: bash - name: detect active toolchain run: |- - flowey e 6 flowey_lib_common::install_rust 2 - flowey e 6 flowey_lib_common::cfg_cargo_common_flags 0 - shell: bash - - name: checking if packages need to be installed - run: flowey e 6 flowey_lib_common::install_dist_pkg 0 - shell: bash - - name: installing packages - run: flowey e 6 flowey_lib_common::install_dist_pkg 1 + flowey.exe e 6 flowey_lib_common::install_rust 2 + flowey.exe e 6 flowey_lib_common::cfg_cargo_common_flags 0 shell: bash - name: check if openvmm needs to be cloned run: |- - flowey e 6 flowey_lib_common::git_checkout 0 - flowey 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 - flowey v 6 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION + flowey.exe e 6 flowey_lib_common::git_checkout 0 + 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 + 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 shell: bash - id: flowey_lib_common__git_checkout__1 uses: actions/checkout@v6 @@ -5998,23 +6690,23 @@ jobs: if: ${{ fromJSON(env.FLOWEY_CONDITION) }} - name: report cloned repo directories run: |- - flowey v 6 'flowey_lib_common::git_checkout:4:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.workspace <> $GITHUB_PATH @@ -6271,7 +6857,7 @@ jobs: ${{ runner.temp }} EOF ) - flowey pipeline github --runtime $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci + flowey.exe pipeline github --runtime $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci shell: bash - name: πŸŒΌπŸ›« Initialize job run: | @@ -6279,57 +6865,45 @@ jobs: AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV - chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey + chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe - echo '"debug"' | flowey v 7 'FLOWEY_LOG' update - echo "${{ runner.temp }}/work" | flowey v 7 '_internal_WORKING_DIR' --is-raw-string update + echo '"debug"' | flowey.exe v 7 'FLOWEY_LOG' update + echo "${{ runner.temp }}/work" | flowey.exe v 7 '_internal_WORKING_DIR' --is-raw-string update - cat <<'EOF' | flowey v 7 'verbose' update + cat <<'EOF' | flowey.exe v 7 'verbose' update ${{ inputs.verbose != '' && inputs.verbose || 'false' }} EOF - mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-guest_test_uefi" - echo "$AgentTempDirNormal/publish_artifacts/x64-guest_test_uefi" | flowey v 7 'artifact_publish_from_x64-guest_test_uefi' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-igvmfilegen" - echo "$AgentTempDirNormal/publish_artifacts/x64-linux-igvmfilegen" | flowey v 7 'artifact_publish_from_x64-linux-igvmfilegen' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-ohcldiag-dev" - echo "$AgentTempDirNormal/publish_artifacts/x64-linux-ohcldiag-dev" | flowey v 7 'artifact_publish_from_x64-linux-ohcldiag-dev' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-openvmm" - echo "$AgentTempDirNormal/publish_artifacts/x64-linux-openvmm" | flowey v 7 'artifact_publish_from_x64-linux-openvmm' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-openvmm_vhost" - echo "$AgentTempDirNormal/publish_artifacts/x64-linux-openvmm_vhost" | flowey v 7 'artifact_publish_from_x64-linux-openvmm_vhost' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-tpm_guest_tests" - echo "$AgentTempDirNormal/publish_artifacts/x64-linux-tpm_guest_tests" | flowey v 7 'artifact_publish_from_x64-linux-tpm_guest_tests' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-vmgs_lib" - echo "$AgentTempDirNormal/publish_artifacts/x64-linux-vmgs_lib" | flowey v 7 'artifact_publish_from_x64-linux-vmgs_lib' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-vmgstool" - echo "$AgentTempDirNormal/publish_artifacts/x64-linux-vmgstool" | flowey v 7 'artifact_publish_from_x64-linux-vmgstool' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-vmm-tests-archive" - echo "$AgentTempDirNormal/publish_artifacts/x64-linux-vmm-tests-archive" | flowey v 7 'artifact_publish_from_x64-linux-vmm-tests-archive' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-tmks" - echo "$AgentTempDirNormal/publish_artifacts/x64-tmks" | flowey v 7 'artifact_publish_from_x64-tmks' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-openvmm" + echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-openvmm" | flowey.exe v 7 'artifact_publish_from_x64-windows-openvmm' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-prep_steps" + echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-prep_steps" | flowey.exe v 7 'artifact_publish_from_x64-windows-prep_steps' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-test_igvm_agent_rpc_server" + 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 + mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-tmk_vmm" + echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-tmk_vmm" | flowey.exe v 7 'artifact_publish_from_x64-windows-tmk_vmm' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-tpm_guest_tests" + 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 + mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-vmgstool" + echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-vmgstool" | flowey.exe v 7 'artifact_publish_from_x64-windows-vmgstool' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-vmm-tests-archive" + 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 shell: bash - name: add default cargo home to path - run: flowey e 7 flowey_lib_common::install_rust 0 + run: flowey.exe e 7 flowey_lib_common::install_rust 0 shell: bash - name: install Rust - run: flowey e 7 flowey_lib_common::install_rust 1 + run: flowey.exe e 7 flowey_lib_common::install_rust 1 shell: bash - name: detect active toolchain run: |- - flowey e 7 flowey_lib_common::install_rust 2 - flowey e 7 flowey_lib_common::cfg_cargo_common_flags 0 - shell: bash - - name: checking if packages need to be installed - run: flowey e 7 flowey_lib_common::install_dist_pkg 0 - shell: bash - - name: installing packages - run: flowey e 7 flowey_lib_common::install_dist_pkg 1 + flowey.exe e 7 flowey_lib_common::install_rust 2 + flowey.exe e 7 flowey_lib_common::cfg_cargo_common_flags 0 shell: bash - name: check if openvmm needs to be cloned run: |- - flowey e 7 flowey_lib_common::git_checkout 0 - flowey 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 - flowey v 7 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION + flowey.exe e 7 flowey_lib_common::git_checkout 0 + 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 + 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 shell: bash - id: flowey_lib_common__git_checkout__1 uses: actions/checkout@v6 @@ -6341,23 +6915,23 @@ jobs: if: ${{ fromJSON(env.FLOWEY_CONDITION) }} - name: report cloned repo directories run: |- - flowey v 7 'flowey_lib_common::git_checkout:4:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.workspace <> "$GITHUB_PATH" - rustup show - if: runner.os == 'Linux' - name: rustup (Linux) - shell: bash - - run: | - set -x - curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init - ./rustup-init.exe -y --default-toolchain=1.95.0 - echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH - if: runner.os == 'Windows' && runner.arch == 'X64' - name: rustup (Windows X64) - shell: bash - - run: | - set -x - curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init - ./rustup-init.exe -y --default-toolchain=1.95.0 - echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH - if: runner.os == 'Windows' && runner.arch == 'ARM64' - name: rustup (Windows ARM64) - shell: bash - - uses: actions/checkout@v6 + - name: πŸŒΌπŸ“¦ Download artifacts + uses: actions/download-artifact@v8 with: - path: flowey_bootstrap - - name: Build flowey - run: | - set -x - CARGO_INCREMENTAL=0 cargo build -p flowey_hvlite --target x86_64-pc-windows-msvc --profile flowey-ci - OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') - mkdir -p "$OutDirNormal" - mv ./.github/workflows/openvmm-pr-release.yaml "$OutDirNormal/pipeline.yaml" - mv target/x86_64-pc-windows-msvc/flowey-ci/flowey_hvlite.exe "$OutDirNormal/flowey.exe" - working-directory: flowey_bootstrap - shell: bash - - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH + name: _internal-flowey-bootstrap-x86_64-linux-uid-1 + path: ${{ runner.temp }}/used_artifacts/_internal-flowey-bootstrap-x86_64-linux-uid-1/ + - run: echo "${{ runner.temp }}/used_artifacts/_internal-flowey-bootstrap-x86_64-linux-uid-1" >> $GITHUB_PATH shell: bash name: πŸŒΌπŸ“¦ Add flowey to PATH - - name: πŸŒΌπŸ”Ž Self-check YAML - run: |- - ESCAPED_AGENT_TEMPDIR=$( - cat <<'EOF' | sed 's/\\/\\\\/g' - ${{ runner.temp }} - EOF - ) - 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 - shell: bash - name: πŸŒΌπŸ›« Initialize job run: | AgentTempDirNormal="${{ runner.temp }}" AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV - chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe + chmod +x $AgentTempDirNormal/used_artifacts/_internal-flowey-bootstrap-x86_64-linux-uid-1/flowey - echo '"debug"' | flowey.exe v 10 'FLOWEY_LOG' update - echo "${{ runner.temp }}/work" | flowey.exe v 10 '_internal_WORKING_DIR' --is-raw-string update + echo '"debug"' | flowey v 10 'FLOWEY_LOG' update + echo "${{ runner.temp }}/work" | flowey v 10 '_internal_WORKING_DIR' --is-raw-string update - cat <<'EOF' | flowey.exe v 10 'verbose' update + cat <<'EOF' | flowey v 10 'verbose' update ${{ inputs.verbose != '' && inputs.verbose || 'false' }} EOF + mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-openhcl-igvm" + echo "$AgentTempDirNormal/publish_artifacts/aarch64-openhcl-igvm" | flowey v 10 'artifact_publish_from_aarch64-openhcl-igvm' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-openhcl-igvm-extras" + echo "$AgentTempDirNormal/publish_artifacts/aarch64-openhcl-igvm-extras" | flowey v 10 'artifact_publish_from_aarch64-openhcl-igvm-extras' --is-raw-string update + shell: bash + - name: checking if packages need to be installed + run: flowey e 10 flowey_lib_common::install_dist_pkg 0 + shell: bash + - name: installing packages + run: flowey e 10 flowey_lib_common::install_dist_pkg 1 + shell: bash + - name: create gh-release-download cache dir + run: flowey e 10 flowey_lib_common::download_gh_release 0 + shell: bash + - name: Pre-processing cache vars + run: |- + flowey e 10 flowey_lib_common::cache 0 + flowey v 10 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar1 + flowey v 10 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar2 + shell: bash + - id: flowey_lib_common__cache__1 + uses: actions/cache@v5 + with: + key: ${{ env.floweyvar1 }} + path: ${{ env.floweyvar2 }} + name: 'Restore cache: gh-release-download' + - name: download artifacts from github releases + run: |- + 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 <> "$GITHUB_PATH" + rustup show + if: runner.os == 'Linux' + name: rustup (Linux) + shell: bash + - run: | + set -x + curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init + ./rustup-init.exe -y --default-toolchain=1.95.0 + echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH + if: runner.os == 'Windows' && runner.arch == 'X64' + name: rustup (Windows X64) + shell: bash + - run: | + set -x + curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init + ./rustup-init.exe -y --default-toolchain=1.95.0 + echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH + if: runner.os == 'Windows' && runner.arch == 'ARM64' + name: rustup (Windows ARM64) + shell: bash + - uses: actions/checkout@v6 + with: + path: flowey_bootstrap + - name: Build flowey + run: | + set -x + CARGO_INCREMENTAL=0 cargo build -p flowey_hvlite --target x86_64-pc-windows-msvc --profile flowey-ci + OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') + mkdir -p "$OutDirNormal" + mv ./.github/workflows/openvmm-pr-release.yaml "$OutDirNormal/pipeline.yaml" + mv target/x86_64-pc-windows-msvc/flowey-ci/flowey_hvlite.exe "$OutDirNormal/flowey.exe" + working-directory: flowey_bootstrap + shell: bash + - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH + shell: bash + name: πŸŒΌπŸ“¦ Add flowey to PATH + - name: πŸŒΌπŸ”Ž Self-check YAML + run: |- + ESCAPED_AGENT_TEMPDIR=$( + cat <<'EOF' | sed 's/\\/\\\\/g' + ${{ runner.temp }} + EOF + ) + 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 + shell: bash + - name: πŸŒΌπŸ›« Initialize job + run: | + AgentTempDirNormal="${{ runner.temp }}" + AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') + echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV + + chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe + + echo '"debug"' | flowey.exe v 12 'FLOWEY_LOG' update + echo "${{ runner.temp }}/work" | flowey.exe v 12 '_internal_WORKING_DIR' --is-raw-string update + + cat <<'EOF' | flowey.exe v 12 'verbose' update + ${{ inputs.verbose != '' && inputs.verbose || 'false' }} + EOF + shell: bash + - name: add default cargo home to path + run: flowey.exe e 12 flowey_lib_common::install_rust 0 + shell: bash + - name: install Rust + run: flowey.exe e 12 flowey_lib_common::install_rust 1 + shell: bash + - name: detect active toolchain + run: |- + flowey.exe e 12 flowey_lib_common::install_rust 2 + flowey.exe e 12 flowey_lib_common::cfg_cargo_common_flags 0 + shell: bash + - name: check if openvmm needs to be cloned + run: |- + flowey.exe e 12 flowey_lib_common::git_checkout 0 + flowey.exe 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 floweyvar7 + flowey.exe v 12 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION + shell: bash + - id: flowey_lib_common__git_checkout__1 + uses: actions/checkout@v6 + with: + fetch-depth: '1' + path: repo0 + persist-credentials: ${{ env.floweyvar7 }} + name: checkout repo openvmm + if: ${{ fromJSON(env.FLOWEY_CONDITION) }} + - name: report cloned repo directories + run: |- + flowey.exe v 12 'flowey_lib_common::git_checkout:4:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.workspace <> $GITHUB_PATH + shell: bash + name: πŸŒΌπŸ“¦ Add flowey to PATH + - name: πŸŒΌπŸ›« Initialize job + run: | + AgentTempDirNormal="${{ runner.temp }}" + AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') + echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV + + chmod +x $AgentTempDirNormal/used_artifacts/_internal-flowey-bootstrap-x86_64-linux-uid-1/flowey + + echo '"debug"' | flowey v 13 'FLOWEY_LOG' update + echo "${{ runner.temp }}/work" | flowey v 13 '_internal_WORKING_DIR' --is-raw-string update + + cat <<'EOF' | flowey v 13 'verbose' update + ${{ inputs.verbose != '' && inputs.verbose || 'false' }} + EOF + shell: bash + - name: add default cargo home to path + run: flowey e 13 flowey_lib_common::install_rust 0 + shell: bash + - name: install Rust + run: flowey e 13 flowey_lib_common::install_rust 1 + shell: bash + - name: detect active toolchain + run: |- + flowey e 13 flowey_lib_common::install_rust 2 + flowey e 13 flowey_lib_common::cfg_cargo_common_flags 0 + shell: bash + - name: checking if packages need to be installed + run: flowey e 13 flowey_lib_common::install_dist_pkg 0 + shell: bash + - name: installing packages + run: flowey e 13 flowey_lib_common::install_dist_pkg 1 + shell: bash + - name: check if openvmm needs to be cloned + run: |- + flowey e 13 flowey_lib_common::git_checkout 0 + flowey 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 floweyvar9 + flowey v 13 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION + shell: bash + - id: flowey_lib_common__git_checkout__1 + uses: actions/checkout@v6 + with: + fetch-depth: '1' + path: repo0 + persist-credentials: ${{ env.floweyvar9 }} + name: checkout repo openvmm + if: ${{ fromJSON(env.FLOWEY_CONDITION) }} + - name: report cloned repo directories + run: |- + flowey v 13 'flowey_lib_common::git_checkout:4:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.workspace <> "$GITHUB_PATH" + rustup show + if: runner.os == 'Linux' + name: rustup (Linux) + shell: bash + - run: | + set -x + curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init + ./rustup-init.exe -y --default-toolchain=1.95.0 + echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH + if: runner.os == 'Windows' && runner.arch == 'X64' + name: rustup (Windows X64) + shell: bash + - run: | + set -x + curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init + ./rustup-init.exe -y --default-toolchain=1.95.0 + echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH + if: runner.os == 'Windows' && runner.arch == 'ARM64' + name: rustup (Windows ARM64) + shell: bash + - uses: actions/checkout@v6 + with: + path: flowey_bootstrap + - name: Build flowey + run: | + set -x + CARGO_INCREMENTAL=0 cargo build -p flowey_hvlite --target x86_64-pc-windows-msvc --profile flowey-ci + OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') + mkdir -p "$OutDirNormal" + mv ./.github/workflows/openvmm-pr-release.yaml "$OutDirNormal/pipeline.yaml" + mv target/x86_64-pc-windows-msvc/flowey-ci/flowey_hvlite.exe "$OutDirNormal/flowey.exe" + working-directory: flowey_bootstrap + shell: bash + - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH + shell: bash + name: πŸŒΌπŸ“¦ Add flowey to PATH + - name: πŸŒΌπŸ”Ž Self-check YAML + run: |- + ESCAPED_AGENT_TEMPDIR=$( + cat <<'EOF' | sed 's/\\/\\\\/g' + ${{ runner.temp }} + EOF + ) + 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 + shell: bash + - name: πŸŒΌπŸ›« Initialize job + run: | + AgentTempDirNormal="${{ runner.temp }}" + AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') + echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV + + chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe + + echo '"debug"' | flowey.exe v 2 'FLOWEY_LOG' update + echo "${{ runner.temp }}/work" | flowey.exe v 2 '_internal_WORKING_DIR' --is-raw-string update + + cat <<'EOF' | flowey.exe v 2 'verbose' update + ${{ inputs.verbose != '' && inputs.verbose || 'false' }} + EOF + mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-pipette" + echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-pipette" | flowey.exe v 2 'artifact_publish_from_aarch64-windows-pipette' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-pipette" + echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-pipette" | flowey.exe v 2 'artifact_publish_from_x64-windows-pipette' --is-raw-string update + shell: bash + - name: add default cargo home to path + run: flowey.exe e 2 flowey_lib_common::install_rust 0 + shell: bash + - name: install Rust + run: flowey.exe e 2 flowey_lib_common::install_rust 1 + shell: bash + - name: detect active toolchain + run: |- + flowey.exe e 2 flowey_lib_common::install_rust 2 + flowey.exe e 2 flowey_lib_common::cfg_cargo_common_flags 0 + shell: bash + - name: check if openvmm needs to be cloned + run: |- + flowey.exe e 2 flowey_lib_common::git_checkout 0 + 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 + 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 + shell: bash + - id: flowey_lib_common__git_checkout__1 + uses: actions/checkout@v6 + with: + fetch-depth: '1' + path: repo0 + persist-credentials: ${{ env.floweyvar1 }} + name: checkout repo openvmm + if: ${{ fromJSON(env.FLOWEY_CONDITION) }} + - name: report cloned repo directories + run: |- + 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 <> "$GITHUB_PATH" - rustup show - if: runner.os == 'Linux' - name: rustup (Linux) - shell: bash - - run: | - set -x - curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init - ./rustup-init.exe -y --default-toolchain=1.95.0 - echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH - if: runner.os == 'Windows' && runner.arch == 'X64' - name: rustup (Windows X64) - shell: bash - - run: | - set -x - curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init - ./rustup-init.exe -y --default-toolchain=1.95.0 - echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH - if: runner.os == 'Windows' && runner.arch == 'ARM64' - name: rustup (Windows ARM64) - shell: bash - - uses: actions/checkout@v6 - with: - path: flowey_bootstrap - - name: Build flowey - run: | - set -x - CARGO_INCREMENTAL=0 cargo build -p flowey_hvlite --target x86_64-pc-windows-msvc --profile flowey-ci - OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') - mkdir -p "$OutDirNormal" - mv ./.github/workflows/openvmm-pr-release.yaml "$OutDirNormal/pipeline.yaml" - mv target/x86_64-pc-windows-msvc/flowey-ci/flowey_hvlite.exe "$OutDirNormal/flowey.exe" - working-directory: flowey_bootstrap - shell: bash - - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH - shell: bash - name: πŸŒΌπŸ“¦ Add flowey to PATH - - name: πŸŒΌπŸ”Ž Self-check YAML - run: |- - ESCAPED_AGENT_TEMPDIR=$( - cat <<'EOF' | sed 's/\\/\\\\/g' - ${{ runner.temp }} - EOF - ) - 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 - shell: bash - - name: πŸŒΌπŸ›« Initialize job - run: | - AgentTempDirNormal="${{ runner.temp }}" - AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') - echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV - - chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe - - echo '"debug"' | flowey.exe v 2 'FLOWEY_LOG' update - echo "${{ runner.temp }}/work" | flowey.exe v 2 '_internal_WORKING_DIR' --is-raw-string update - - cat <<'EOF' | flowey.exe v 2 'verbose' update - ${{ inputs.verbose != '' && inputs.verbose || 'false' }} - EOF - mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-hypestv" - echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-hypestv" | flowey.exe v 2 'artifact_publish_from_aarch64-windows-hypestv' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-igvmfilegen" - echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-igvmfilegen" | flowey.exe v 2 'artifact_publish_from_aarch64-windows-igvmfilegen' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-ohcldiag-dev" - echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-ohcldiag-dev" | flowey.exe v 2 'artifact_publish_from_aarch64-windows-ohcldiag-dev' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-vmgs_lib" - echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-vmgs_lib" | flowey.exe v 2 'artifact_publish_from_aarch64-windows-vmgs_lib' --is-raw-string update - shell: bash - - name: add default cargo home to path - run: flowey.exe e 2 flowey_lib_common::install_rust 0 - shell: bash - - name: install Rust - run: flowey.exe e 2 flowey_lib_common::install_rust 1 - shell: bash - - name: detect active toolchain - run: |- - flowey.exe e 2 flowey_lib_common::install_rust 2 - flowey.exe e 2 flowey_lib_common::cfg_cargo_common_flags 0 - shell: bash - - name: check if openvmm needs to be cloned - run: |- - flowey.exe e 2 flowey_lib_common::git_checkout 0 - 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 - 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 - shell: bash - - id: flowey_lib_common__git_checkout__1 - uses: actions/checkout@v6 - with: - fetch-depth: '1' - path: repo0 - persist-credentials: ${{ env.floweyvar1 }} - name: checkout repo openvmm - if: ${{ fromJSON(env.FLOWEY_CONDITION) }} - - name: report cloned repo directories - run: |- - 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 <> "$GITHUB_PATH" - rustup show - if: runner.os == 'Linux' - name: rustup (Linux) - shell: bash - - run: | - set -x - curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init - ./rustup-init.exe -y --default-toolchain=1.95.0 - echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH - if: runner.os == 'Windows' && runner.arch == 'X64' - name: rustup (Windows X64) - shell: bash - - run: | - set -x - curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init - ./rustup-init.exe -y --default-toolchain=1.95.0 - echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH - if: runner.os == 'Windows' && runner.arch == 'ARM64' - name: rustup (Windows ARM64) - shell: bash - - uses: actions/checkout@v6 + - name: πŸŒΌπŸ“¦ Download artifacts + uses: actions/download-artifact@v8 with: - path: flowey_bootstrap - - name: Build flowey - run: | - set -x - CARGO_INCREMENTAL=0 cargo build -p flowey_hvlite --target x86_64-pc-windows-msvc --profile flowey-ci - OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') - mkdir -p "$OutDirNormal" - mv ./.github/workflows/openvmm-pr-release.yaml "$OutDirNormal/pipeline.yaml" - mv target/x86_64-pc-windows-msvc/flowey-ci/flowey_hvlite.exe "$OutDirNormal/flowey.exe" - working-directory: flowey_bootstrap - shell: bash - - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH + name: _internal-flowey-bootstrap-x86_64-linux-uid-1 + path: ${{ runner.temp }}/used_artifacts/_internal-flowey-bootstrap-x86_64-linux-uid-1/ + - run: echo "${{ runner.temp }}/used_artifacts/_internal-flowey-bootstrap-x86_64-linux-uid-1" >> $GITHUB_PATH shell: bash name: πŸŒΌπŸ“¦ Add flowey to PATH - - name: πŸŒΌπŸ”Ž Self-check YAML - run: |- - ESCAPED_AGENT_TEMPDIR=$( - cat <<'EOF' | sed 's/\\/\\\\/g' - ${{ runner.temp }} - EOF - ) - 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 - shell: bash - name: πŸŒΌπŸ›« Initialize job run: | AgentTempDirNormal="${{ runner.temp }}" AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV - chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe + chmod +x $AgentTempDirNormal/used_artifacts/_internal-flowey-bootstrap-x86_64-linux-uid-1/flowey - echo '"debug"' | flowey.exe v 3 'FLOWEY_LOG' update - echo "${{ runner.temp }}/work" | flowey.exe v 3 '_internal_WORKING_DIR' --is-raw-string update + echo '"debug"' | flowey v 3 'FLOWEY_LOG' update + echo "${{ runner.temp }}/work" | flowey v 3 '_internal_WORKING_DIR' --is-raw-string update - cat <<'EOF' | flowey.exe v 3 'verbose' update + cat <<'EOF' | flowey v 3 'verbose' update ${{ inputs.verbose != '' && inputs.verbose || 'false' }} EOF - mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-openvmm" - echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-openvmm" | flowey.exe v 3 'artifact_publish_from_aarch64-windows-openvmm' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-pipette" - echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-pipette" | flowey.exe v 3 'artifact_publish_from_aarch64-windows-pipette' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-prep_steps" - echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-prep_steps" | flowey.exe v 3 'artifact_publish_from_aarch64-windows-prep_steps' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-test_igvm_agent_rpc_server" - echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-test_igvm_agent_rpc_server" | flowey.exe v 3 'artifact_publish_from_aarch64-windows-test_igvm_agent_rpc_server' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-tmk_vmm" - echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-tmk_vmm" | flowey.exe v 3 'artifact_publish_from_aarch64-windows-tmk_vmm' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-tpm_guest_tests" - echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-tpm_guest_tests" | flowey.exe v 3 'artifact_publish_from_aarch64-windows-tpm_guest_tests' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-vmgstool" - echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-vmgstool" | flowey.exe v 3 'artifact_publish_from_aarch64-windows-vmgstool' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-vmm-tests-archive" - echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-vmm-tests-archive" | flowey.exe v 3 'artifact_publish_from_aarch64-windows-vmm-tests-archive' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-guest_test_uefi" + echo "$AgentTempDirNormal/publish_artifacts/aarch64-guest_test_uefi" | flowey v 3 'artifact_publish_from_aarch64-guest_test_uefi' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-musl-pipette" + echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-musl-pipette" | flowey v 3 'artifact_publish_from_aarch64-linux-musl-pipette' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-musl-tmk_vmm" + echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-musl-tmk_vmm" | flowey v 3 'artifact_publish_from_aarch64-linux-musl-tmk_vmm' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-tpm_guest_tests" + echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-tpm_guest_tests" | flowey v 3 'artifact_publish_from_aarch64-linux-tpm_guest_tests' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-tmks" + echo "$AgentTempDirNormal/publish_artifacts/aarch64-tmks" | flowey v 3 'artifact_publish_from_aarch64-tmks' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-guest_test_uefi" + echo "$AgentTempDirNormal/publish_artifacts/x64-guest_test_uefi" | flowey v 3 'artifact_publish_from_x64-guest_test_uefi' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-musl-pipette" + echo "$AgentTempDirNormal/publish_artifacts/x64-linux-musl-pipette" | flowey v 3 'artifact_publish_from_x64-linux-musl-pipette' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-musl-tmk_vmm" + echo "$AgentTempDirNormal/publish_artifacts/x64-linux-musl-tmk_vmm" | flowey v 3 'artifact_publish_from_x64-linux-musl-tmk_vmm' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-tpm_guest_tests" + echo "$AgentTempDirNormal/publish_artifacts/x64-linux-tpm_guest_tests" | flowey v 3 'artifact_publish_from_x64-linux-tpm_guest_tests' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-tmks" + echo "$AgentTempDirNormal/publish_artifacts/x64-tmks" | flowey v 3 'artifact_publish_from_x64-tmks' --is-raw-string update shell: bash - name: add default cargo home to path - run: flowey.exe e 3 flowey_lib_common::install_rust 0 + run: flowey e 3 flowey_lib_common::install_rust 0 shell: bash - name: install Rust - run: flowey.exe e 3 flowey_lib_common::install_rust 1 + run: flowey e 3 flowey_lib_common::install_rust 1 shell: bash - name: detect active toolchain run: |- - flowey.exe e 3 flowey_lib_common::install_rust 2 - flowey.exe e 3 flowey_lib_common::cfg_cargo_common_flags 0 + flowey e 3 flowey_lib_common::install_rust 2 + flowey e 3 flowey_lib_common::cfg_cargo_common_flags 0 shell: bash - name: check if openvmm needs to be cloned run: |- - flowey.exe e 3 flowey_lib_common::git_checkout 0 - flowey.exe 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 - flowey.exe v 3 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION + flowey e 3 flowey_lib_common::git_checkout 0 + 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 + flowey v 3 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION shell: bash - id: flowey_lib_common__git_checkout__1 uses: actions/checkout@v6 @@ -4857,204 +5360,258 @@ jobs: if: ${{ fromJSON(env.FLOWEY_CONDITION) }} - name: report cloned repo directories run: |- - flowey.exe v 3 'flowey_lib_common::git_checkout:4:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.workspace <> "$GITHUB_PATH" + rustup show + if: runner.os == 'Linux' + name: rustup (Linux) + shell: bash + - run: | + set -x + curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init + ./rustup-init.exe -y --default-toolchain=1.95.0 + echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH + if: runner.os == 'Windows' && runner.arch == 'X64' + name: rustup (Windows X64) + shell: bash + - run: | + set -x + curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init + ./rustup-init.exe -y --default-toolchain=1.95.0 + echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH + if: runner.os == 'Windows' && runner.arch == 'ARM64' + name: rustup (Windows ARM64) + shell: bash + - uses: actions/checkout@v6 with: - name: _internal-flowey-bootstrap-x86_64-linux-uid-1 - path: ${{ runner.temp }}/used_artifacts/_internal-flowey-bootstrap-x86_64-linux-uid-1/ - - run: echo "${{ runner.temp }}/used_artifacts/_internal-flowey-bootstrap-x86_64-linux-uid-1" >> $GITHUB_PATH + path: flowey_bootstrap + - name: Build flowey + run: | + set -x + CARGO_INCREMENTAL=0 cargo build -p flowey_hvlite --target x86_64-pc-windows-msvc --profile flowey-ci + OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') + mkdir -p "$OutDirNormal" + mv ./.github/workflows/openvmm-pr-release.yaml "$OutDirNormal/pipeline.yaml" + mv target/x86_64-pc-windows-msvc/flowey-ci/flowey_hvlite.exe "$OutDirNormal/flowey.exe" + working-directory: flowey_bootstrap + shell: bash + - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH shell: bash name: πŸŒΌπŸ“¦ Add flowey to PATH + - name: πŸŒΌπŸ”Ž Self-check YAML + run: |- + ESCAPED_AGENT_TEMPDIR=$( + cat <<'EOF' | sed 's/\\/\\\\/g' + ${{ runner.temp }} + EOF + ) + 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 + shell: bash - name: πŸŒΌπŸ›« Initialize job run: | AgentTempDirNormal="${{ runner.temp }}" AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV - chmod +x $AgentTempDirNormal/used_artifacts/_internal-flowey-bootstrap-x86_64-linux-uid-1/flowey + chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe - echo '"debug"' | flowey v 6 'FLOWEY_LOG' update - echo "${{ runner.temp }}/work" | flowey v 6 '_internal_WORKING_DIR' --is-raw-string update + echo '"debug"' | flowey.exe v 6 'FLOWEY_LOG' update + echo "${{ runner.temp }}/work" | flowey.exe v 6 '_internal_WORKING_DIR' --is-raw-string update - cat <<'EOF' | flowey v 6 'verbose' update + cat <<'EOF' | flowey.exe v 6 'verbose' update ${{ inputs.verbose != '' && inputs.verbose || 'false' }} EOF - mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-guest_test_uefi" - echo "$AgentTempDirNormal/publish_artifacts/aarch64-guest_test_uefi" | flowey v 6 'artifact_publish_from_aarch64-guest_test_uefi' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-igvmfilegen" - echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-igvmfilegen" | flowey v 6 'artifact_publish_from_aarch64-linux-igvmfilegen' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-ohcldiag-dev" - echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-ohcldiag-dev" | flowey v 6 'artifact_publish_from_aarch64-linux-ohcldiag-dev' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-openvmm" - echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-openvmm" | flowey v 6 'artifact_publish_from_aarch64-linux-openvmm' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-openvmm_vhost" - echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-openvmm_vhost" | flowey v 6 'artifact_publish_from_aarch64-linux-openvmm_vhost' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-tpm_guest_tests" - echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-tpm_guest_tests" | flowey v 6 'artifact_publish_from_aarch64-linux-tpm_guest_tests' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-vmgs_lib" - echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-vmgs_lib" | flowey v 6 'artifact_publish_from_aarch64-linux-vmgs_lib' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-vmgstool" - echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-vmgstool" | flowey v 6 'artifact_publish_from_aarch64-linux-vmgstool' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-tmks" - echo "$AgentTempDirNormal/publish_artifacts/aarch64-tmks" | flowey v 6 'artifact_publish_from_aarch64-tmks' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-hypestv" + echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-hypestv" | flowey.exe v 6 'artifact_publish_from_x64-windows-hypestv' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-igvmfilegen" + echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-igvmfilegen" | flowey.exe v 6 'artifact_publish_from_x64-windows-igvmfilegen' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-ohcldiag-dev" + echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-ohcldiag-dev" | flowey.exe v 6 'artifact_publish_from_x64-windows-ohcldiag-dev' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-vmgs_lib" + echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-vmgs_lib" | flowey.exe v 6 'artifact_publish_from_x64-windows-vmgs_lib' --is-raw-string update shell: bash - name: add default cargo home to path - run: flowey e 6 flowey_lib_common::install_rust 0 + run: flowey.exe e 6 flowey_lib_common::install_rust 0 shell: bash - name: install Rust - run: flowey e 6 flowey_lib_common::install_rust 1 + run: flowey.exe e 6 flowey_lib_common::install_rust 1 shell: bash - name: detect active toolchain run: |- - flowey e 6 flowey_lib_common::install_rust 2 - flowey e 6 flowey_lib_common::cfg_cargo_common_flags 0 - shell: bash - - name: checking if packages need to be installed - run: flowey e 6 flowey_lib_common::install_dist_pkg 0 - shell: bash - - name: installing packages - run: flowey e 6 flowey_lib_common::install_dist_pkg 1 + flowey.exe e 6 flowey_lib_common::install_rust 2 + flowey.exe e 6 flowey_lib_common::cfg_cargo_common_flags 0 shell: bash - name: check if openvmm needs to be cloned run: |- - flowey e 6 flowey_lib_common::git_checkout 0 - flowey 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 - flowey v 6 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION + flowey.exe e 6 flowey_lib_common::git_checkout 0 + 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 + 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 shell: bash - id: flowey_lib_common__git_checkout__1 uses: actions/checkout@v6 @@ -5690,23 +6247,23 @@ jobs: if: ${{ fromJSON(env.FLOWEY_CONDITION) }} - name: report cloned repo directories run: |- - flowey v 6 'flowey_lib_common::git_checkout:4:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.workspace <> "$GITHUB_PATH" + rustup show + if: runner.os == 'Linux' + name: rustup (Linux) + shell: bash + - run: | + set -x + curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init + ./rustup-init.exe -y --default-toolchain=1.95.0 + echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH + if: runner.os == 'Windows' && runner.arch == 'X64' + name: rustup (Windows X64) + shell: bash + - run: | + set -x + curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init + ./rustup-init.exe -y --default-toolchain=1.95.0 + echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH + if: runner.os == 'Windows' && runner.arch == 'ARM64' + name: rustup (Windows ARM64) + shell: bash + - uses: actions/checkout@v6 with: - name: _internal-flowey-bootstrap-x86_64-linux-uid-1 - path: ${{ runner.temp }}/used_artifacts/_internal-flowey-bootstrap-x86_64-linux-uid-1/ - - run: echo "${{ runner.temp }}/used_artifacts/_internal-flowey-bootstrap-x86_64-linux-uid-1" >> $GITHUB_PATH + path: flowey_bootstrap + - name: Build flowey + run: | + set -x + CARGO_INCREMENTAL=0 cargo build -p flowey_hvlite --target x86_64-pc-windows-msvc --profile flowey-ci + OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') + mkdir -p "$OutDirNormal" + mv ./.github/workflows/openvmm-pr-release.yaml "$OutDirNormal/pipeline.yaml" + mv target/x86_64-pc-windows-msvc/flowey-ci/flowey_hvlite.exe "$OutDirNormal/flowey.exe" + working-directory: flowey_bootstrap + shell: bash + - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH shell: bash name: πŸŒΌπŸ“¦ Add flowey to PATH + - name: πŸŒΌπŸ”Ž Self-check YAML + run: |- + ESCAPED_AGENT_TEMPDIR=$( + cat <<'EOF' | sed 's/\\/\\\\/g' + ${{ runner.temp }} + EOF + ) + 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 + shell: bash - name: πŸŒΌπŸ›« Initialize job run: | AgentTempDirNormal="${{ runner.temp }}" AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV - chmod +x $AgentTempDirNormal/used_artifacts/_internal-flowey-bootstrap-x86_64-linux-uid-1/flowey + chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe - echo '"debug"' | flowey v 7 'FLOWEY_LOG' update - echo "${{ runner.temp }}/work" | flowey v 7 '_internal_WORKING_DIR' --is-raw-string update + echo '"debug"' | flowey.exe v 7 'FLOWEY_LOG' update + echo "${{ runner.temp }}/work" | flowey.exe v 7 '_internal_WORKING_DIR' --is-raw-string update - cat <<'EOF' | flowey v 7 'verbose' update + cat <<'EOF' | flowey.exe v 7 'verbose' update ${{ inputs.verbose != '' && inputs.verbose || 'false' }} EOF - mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-guest_test_uefi" - echo "$AgentTempDirNormal/publish_artifacts/x64-guest_test_uefi" | flowey v 7 'artifact_publish_from_x64-guest_test_uefi' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-igvmfilegen" - echo "$AgentTempDirNormal/publish_artifacts/x64-linux-igvmfilegen" | flowey v 7 'artifact_publish_from_x64-linux-igvmfilegen' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-ohcldiag-dev" - echo "$AgentTempDirNormal/publish_artifacts/x64-linux-ohcldiag-dev" | flowey v 7 'artifact_publish_from_x64-linux-ohcldiag-dev' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-openvmm" - echo "$AgentTempDirNormal/publish_artifacts/x64-linux-openvmm" | flowey v 7 'artifact_publish_from_x64-linux-openvmm' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-openvmm_vhost" - echo "$AgentTempDirNormal/publish_artifacts/x64-linux-openvmm_vhost" | flowey v 7 'artifact_publish_from_x64-linux-openvmm_vhost' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-tpm_guest_tests" - echo "$AgentTempDirNormal/publish_artifacts/x64-linux-tpm_guest_tests" | flowey v 7 'artifact_publish_from_x64-linux-tpm_guest_tests' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-vmgs_lib" - echo "$AgentTempDirNormal/publish_artifacts/x64-linux-vmgs_lib" | flowey v 7 'artifact_publish_from_x64-linux-vmgs_lib' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-vmgstool" - echo "$AgentTempDirNormal/publish_artifacts/x64-linux-vmgstool" | flowey v 7 'artifact_publish_from_x64-linux-vmgstool' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-vmm-tests-archive" - echo "$AgentTempDirNormal/publish_artifacts/x64-linux-vmm-tests-archive" | flowey v 7 'artifact_publish_from_x64-linux-vmm-tests-archive' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-tmks" - echo "$AgentTempDirNormal/publish_artifacts/x64-tmks" | flowey v 7 'artifact_publish_from_x64-tmks' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-openvmm" + echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-openvmm" | flowey.exe v 7 'artifact_publish_from_x64-windows-openvmm' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-prep_steps" + echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-prep_steps" | flowey.exe v 7 'artifact_publish_from_x64-windows-prep_steps' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-test_igvm_agent_rpc_server" + 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 + mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-tmk_vmm" + echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-tmk_vmm" | flowey.exe v 7 'artifact_publish_from_x64-windows-tmk_vmm' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-tpm_guest_tests" + 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 + mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-vmgstool" + echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-vmgstool" | flowey.exe v 7 'artifact_publish_from_x64-windows-vmgstool' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-vmm-tests-archive" + 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 shell: bash - name: add default cargo home to path - run: flowey e 7 flowey_lib_common::install_rust 0 + run: flowey.exe e 7 flowey_lib_common::install_rust 0 shell: bash - name: install Rust - run: flowey e 7 flowey_lib_common::install_rust 1 + run: flowey.exe e 7 flowey_lib_common::install_rust 1 shell: bash - name: detect active toolchain run: |- - flowey e 7 flowey_lib_common::install_rust 2 - flowey e 7 flowey_lib_common::cfg_cargo_common_flags 0 - shell: bash - - name: checking if packages need to be installed - run: flowey e 7 flowey_lib_common::install_dist_pkg 0 - shell: bash - - name: installing packages - run: flowey e 7 flowey_lib_common::install_dist_pkg 1 + flowey.exe e 7 flowey_lib_common::install_rust 2 + flowey.exe e 7 flowey_lib_common::cfg_cargo_common_flags 0 shell: bash - name: check if openvmm needs to be cloned run: |- - flowey e 7 flowey_lib_common::git_checkout 0 - flowey 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 - flowey v 7 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION + flowey.exe e 7 flowey_lib_common::git_checkout 0 + 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 + 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 shell: bash - id: flowey_lib_common__git_checkout__1 uses: actions/checkout@v6 @@ -5991,23 +6474,23 @@ jobs: if: ${{ fromJSON(env.FLOWEY_CONDITION) }} - name: report cloned repo directories run: |- - flowey v 7 'flowey_lib_common::git_checkout:4:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.workspace <> $GITHUB_ENV chmod +x $AgentTempDirNormal/used_artifacts/_internal-flowey-bootstrap-x86_64-linux-uid-1/flowey - - echo '"debug"' | flowey v 9 'FLOWEY_LOG' update - echo "${{ runner.temp }}/work" | flowey v 9 '_internal_WORKING_DIR' --is-raw-string update - - cat <<'EOF' | flowey v 9 'verbose' update - ${{ inputs.verbose != '' && inputs.verbose || 'false' }} - EOF - mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-musl-openvmm" - echo "$AgentTempDirNormal/publish_artifacts/x64-linux-musl-openvmm" | flowey v 9 'artifact_publish_from_x64-linux-musl-openvmm' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-musl-openvmm_vhost" - echo "$AgentTempDirNormal/publish_artifacts/x64-linux-musl-openvmm_vhost" | flowey v 9 'artifact_publish_from_x64-linux-musl-openvmm_vhost' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-musl-pipette" - echo "$AgentTempDirNormal/publish_artifacts/x64-linux-musl-pipette" | flowey v 9 'artifact_publish_from_x64-linux-musl-pipette' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-musl-tmk_vmm" - echo "$AgentTempDirNormal/publish_artifacts/x64-linux-musl-tmk_vmm" | flowey v 9 'artifact_publish_from_x64-linux-musl-tmk_vmm' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-musl-vmm-tests-archive" - 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 - mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-openhcl-igvm" - echo "$AgentTempDirNormal/publish_artifacts/x64-openhcl-igvm" | flowey v 9 'artifact_publish_from_x64-openhcl-igvm' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-openhcl-igvm-extras" - echo "$AgentTempDirNormal/publish_artifacts/x64-openhcl-igvm-extras" | flowey v 9 'artifact_publish_from_x64-openhcl-igvm-extras' --is-raw-string update - shell: bash - - name: checking if packages need to be installed - run: flowey e 9 flowey_lib_common::install_dist_pkg 0 - shell: bash - - name: installing packages - run: flowey e 9 flowey_lib_common::install_dist_pkg 1 - shell: bash - - name: create gh-release-download cache dir - run: flowey e 9 flowey_lib_common::download_gh_release 0 - shell: bash - - name: Pre-processing cache vars - run: |- - flowey e 9 flowey_lib_common::cache 4 - flowey v 9 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar3 - flowey v 9 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar4 - shell: bash - - id: flowey_lib_common__cache__5 - uses: actions/cache@v5 - with: - key: ${{ env.floweyvar3 }} - path: ${{ env.floweyvar4 }} - name: 'Restore cache: gh-release-download' - - name: download artifacts from github releases - run: |- - 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 <> "$GITHUB_PATH" - rustup show - if: runner.os == 'Linux' - name: rustup (Linux) - shell: bash - - run: | - set -x - curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init - ./rustup-init.exe -y --default-toolchain=1.95.0 - echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH - if: runner.os == 'Windows' && runner.arch == 'X64' - name: rustup (Windows X64) - shell: bash - - run: | - set -x - curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init - ./rustup-init.exe -y --default-toolchain=1.95.0 - echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH - if: runner.os == 'Windows' && runner.arch == 'ARM64' - name: rustup (Windows ARM64) - shell: bash - - uses: actions/checkout@v6 - with: - path: flowey_bootstrap - - name: Build flowey - run: | - set -x - CARGO_INCREMENTAL=0 cargo build -p flowey_hvlite --target x86_64-pc-windows-msvc --profile flowey-ci - OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') - mkdir -p "$OutDirNormal" - mv ./.github/workflows/openvmm-pr.yaml "$OutDirNormal/pipeline.yaml" - mv target/x86_64-pc-windows-msvc/flowey-ci/flowey_hvlite.exe "$OutDirNormal/flowey.exe" - working-directory: flowey_bootstrap - shell: bash - - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH + - name: πŸŒΌπŸ“¦ Download artifacts + uses: actions/download-artifact@v8 + with: + name: _internal-flowey-bootstrap-x86_64-linux-uid-1 + path: ${{ runner.temp }}/used_artifacts/_internal-flowey-bootstrap-x86_64-linux-uid-1/ + - run: echo "${{ runner.temp }}/used_artifacts/_internal-flowey-bootstrap-x86_64-linux-uid-1" >> $GITHUB_PATH shell: bash name: πŸŒΌπŸ“¦ Add flowey to PATH - - name: πŸŒΌπŸ”Ž Self-check YAML - run: |- - ESCAPED_AGENT_TEMPDIR=$( - cat <<'EOF' | sed 's/\\/\\\\/g' - ${{ runner.temp }} - EOF - ) - flowey.exe pipeline github --runtime $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out .github/workflows/openvmm-pr.yaml ci checkin-gates --config=pr - shell: bash - name: πŸŒΌπŸ›« Initialize job run: | AgentTempDirNormal="${{ runner.temp }}" AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV - chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe + chmod +x $AgentTempDirNormal/used_artifacts/_internal-flowey-bootstrap-x86_64-linux-uid-1/flowey - echo '"debug"' | flowey.exe v 12 'FLOWEY_LOG' update - echo "${{ runner.temp }}/work" | flowey.exe v 12 '_internal_WORKING_DIR' --is-raw-string update + echo '"debug"' | flowey v 12 'FLOWEY_LOG' update + echo "${{ runner.temp }}/work" | flowey v 12 '_internal_WORKING_DIR' --is-raw-string update - cat <<'EOF' | flowey.exe v 12 'verbose' update + cat <<'EOF' | flowey v 12 'verbose' update ${{ inputs.verbose != '' && inputs.verbose || 'false' }} EOF + mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-openhcl-igvm" + echo "$AgentTempDirNormal/publish_artifacts/x64-openhcl-igvm" | flowey v 12 'artifact_publish_from_x64-openhcl-igvm' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-openhcl-igvm-extras" + echo "$AgentTempDirNormal/publish_artifacts/x64-openhcl-igvm-extras" | flowey v 12 'artifact_publish_from_x64-openhcl-igvm-extras' --is-raw-string update + shell: bash + - name: checking if packages need to be installed + run: flowey e 12 flowey_lib_common::install_dist_pkg 0 + shell: bash + - name: installing packages + run: flowey e 12 flowey_lib_common::install_dist_pkg 1 + shell: bash + - name: create gh-release-download cache dir + run: flowey e 12 flowey_lib_common::download_gh_release 0 + shell: bash + - name: Pre-processing cache vars + run: |- + flowey e 12 flowey_lib_common::cache 0 + flowey v 12 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar1 + flowey v 12 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar2 + shell: bash + - id: flowey_lib_common__cache__1 + uses: actions/cache@v5 + with: + key: ${{ env.floweyvar1 }} + path: ${{ env.floweyvar2 }} + name: 'Restore cache: gh-release-download' + - name: download artifacts from github releases + run: |- + 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 <> "$GITHUB_PATH" + rustup show + if: runner.os == 'Linux' + name: rustup (Linux) + shell: bash + - run: | + set -x + curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init + ./rustup-init.exe -y --default-toolchain=1.95.0 + echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH + if: runner.os == 'Windows' && runner.arch == 'X64' + name: rustup (Windows X64) + shell: bash + - run: | + set -x + curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init + ./rustup-init.exe -y --default-toolchain=1.95.0 + echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH + if: runner.os == 'Windows' && runner.arch == 'ARM64' + name: rustup (Windows ARM64) + shell: bash + - uses: actions/checkout@v6 + with: + path: flowey_bootstrap + - name: Build flowey + run: | + set -x + CARGO_INCREMENTAL=0 cargo build -p flowey_hvlite --target x86_64-pc-windows-msvc --profile flowey-ci + OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') + mkdir -p "$OutDirNormal" + mv ./.github/workflows/openvmm-pr.yaml "$OutDirNormal/pipeline.yaml" + mv target/x86_64-pc-windows-msvc/flowey-ci/flowey_hvlite.exe "$OutDirNormal/flowey.exe" + working-directory: flowey_bootstrap + shell: bash + - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH + shell: bash + name: πŸŒΌπŸ“¦ Add flowey to PATH + - name: πŸŒΌπŸ”Ž Self-check YAML run: |- - flowey e 13 flowey_lib_common::run_cargo_nextest_run 4 - flowey e 13 flowey_lib_common::run_cargo_nextest_run 5 - flowey e 13 flowey_lib_hvlite::build_nextest_unit_tests 3 - flowey e 13 flowey_lib_common::publish_test_results 5 - flowey e 13 flowey_lib_common::publish_test_results 6 - flowey e 13 flowey_lib_common::publish_test_results 4 - flowey 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 - flowey 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 + ESCAPED_AGENT_TEMPDIR=$( + cat <<'EOF' | sed 's/\\/\\\\/g' + ${{ runner.temp }} + EOF + ) + flowey.exe pipeline github --runtime $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out .github/workflows/openvmm-pr.yaml ci checkin-gates --config=pr shell: bash - - id: flowey_lib_common__publish_test_results__7 - uses: actions/upload-artifact@v7 + - name: πŸŒΌπŸ›« Initialize job + run: | + AgentTempDirNormal="${{ runner.temp }}" + AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') + echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV + + chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe + + echo '"debug"' | flowey.exe v 14 'FLOWEY_LOG' update + echo "${{ runner.temp }}/work" | flowey.exe v 14 '_internal_WORKING_DIR' --is-raw-string update + + cat <<'EOF' | flowey.exe v 14 'verbose' update + ${{ inputs.verbose != '' && inputs.verbose || 'false' }} + EOF + shell: bash + - name: add default cargo home to path + run: flowey.exe e 14 flowey_lib_common::install_rust 0 + shell: bash + - name: install Rust + run: flowey.exe e 14 flowey_lib_common::install_rust 1 + shell: bash + - name: detect active toolchain + run: |- + flowey.exe e 14 flowey_lib_common::install_rust 2 + flowey.exe e 14 flowey_lib_common::cfg_cargo_common_flags 0 + shell: bash + - name: check if openvmm needs to be cloned + run: |- + flowey.exe e 14 flowey_lib_common::git_checkout 0 + flowey.exe 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 floweyvar7 + flowey.exe v 14 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION + shell: bash + - id: flowey_lib_common__git_checkout__1 + uses: actions/checkout@v6 with: - name: x64-linux-unit-tests-unit-tests crypto (openssl)-junit-xml - path: ${{ env.floweyvar2 }} - name: 'publish test results: x64-linux-unit-tests-unit-tests crypto (openssl) (JUnit XML)' + fetch-depth: '1' + path: repo0 + persist-credentials: ${{ env.floweyvar7 }} + name: checkout repo openvmm if: ${{ fromJSON(env.FLOWEY_CONDITION) }} - - name: generate nextest command - run: flowey e 13 flowey_lib_common::gen_cargo_nextest_run_cmd 0 + - name: report cloned repo directories + run: |- + flowey.exe v 14 'flowey_lib_common::git_checkout:4:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.workspace <> "$GITHUB_PATH" - rustup show - if: runner.os == 'Linux' - name: rustup (Linux) - shell: bash - - run: | - set -x - curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init - ./rustup-init.exe -y --default-toolchain=1.95.0 - echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH - if: runner.os == 'Windows' && runner.arch == 'X64' - name: rustup (Windows X64) - shell: bash - - run: | - set -x - curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init - ./rustup-init.exe -y --default-toolchain=1.95.0 - echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH - if: runner.os == 'Windows' && runner.arch == 'ARM64' - name: rustup (Windows ARM64) - shell: bash - - uses: actions/checkout@v6 + - name: πŸŒΌπŸ“¦ Download artifacts + uses: actions/download-artifact@v8 with: - path: flowey_bootstrap - - name: Build flowey - run: | - set -x - CARGO_INCREMENTAL=0 cargo build -p flowey_hvlite --target aarch64-pc-windows-msvc --profile flowey-ci - OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') - mkdir -p "$OutDirNormal" - mv ./.github/workflows/openvmm-pr.yaml "$OutDirNormal/pipeline.yaml" - mv target/aarch64-pc-windows-msvc/flowey-ci/flowey_hvlite.exe "$OutDirNormal/flowey.exe" - working-directory: flowey_bootstrap - shell: bash - - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH + name: _internal-flowey-bootstrap-x86_64-linux-uid-1 + path: ${{ runner.temp }}/used_artifacts/_internal-flowey-bootstrap-x86_64-linux-uid-1/ + - run: echo "${{ runner.temp }}/used_artifacts/_internal-flowey-bootstrap-x86_64-linux-uid-1" >> $GITHUB_PATH shell: bash name: πŸŒΌπŸ“¦ Add flowey to PATH - - name: πŸŒΌπŸ”Ž Self-check YAML - run: |- - ESCAPED_AGENT_TEMPDIR=$( - cat <<'EOF' | sed 's/\\/\\\\/g' - ${{ runner.temp }} - EOF - ) - flowey.exe pipeline github --runtime $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out .github/workflows/openvmm-pr.yaml ci checkin-gates --config=pr - shell: bash - name: πŸŒΌπŸ›« Initialize job run: | AgentTempDirNormal="${{ runner.temp }}" AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV - chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe + chmod +x $AgentTempDirNormal/used_artifacts/_internal-flowey-bootstrap-x86_64-linux-uid-1/flowey - echo '"debug"' | flowey.exe v 15 'FLOWEY_LOG' update - echo "${{ runner.temp }}/work" | flowey.exe v 15 '_internal_WORKING_DIR' --is-raw-string update + echo '"debug"' | flowey v 16 'FLOWEY_LOG' update + echo "${{ runner.temp }}/work" | flowey v 16 '_internal_WORKING_DIR' --is-raw-string update - cat <<'EOF' | flowey.exe v 15 'verbose' update + cat <<'EOF' | flowey v 16 'verbose' update ${{ inputs.verbose != '' && inputs.verbose || 'false' }} EOF shell: bash - name: add default cargo home to path - run: flowey.exe e 15 flowey_lib_common::install_rust 0 + run: flowey e 16 flowey_lib_common::install_rust 0 shell: bash - name: install Rust - run: flowey.exe e 15 flowey_lib_common::install_rust 1 + run: flowey e 16 flowey_lib_common::install_rust 1 shell: bash - name: detect active toolchain run: |- - flowey.exe e 15 flowey_lib_common::install_rust 2 - flowey.exe e 15 flowey_lib_common::cfg_cargo_common_flags 0 + flowey e 16 flowey_lib_common::install_rust 2 + flowey e 16 flowey_lib_common::cfg_cargo_common_flags 0 shell: bash - name: check if openvmm needs to be cloned run: |- - flowey.exe e 15 flowey_lib_common::git_checkout 0 - flowey.exe 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 floweyvar7 - flowey.exe v 15 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION + flowey e 16 flowey_lib_common::git_checkout 0 + flowey 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 floweyvar10 + flowey v 16 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION shell: bash - id: flowey_lib_common__git_checkout__1 uses: actions/checkout@v6 with: fetch-depth: '1' path: repo0 - persist-credentials: ${{ env.floweyvar7 }} + persist-credentials: ${{ env.floweyvar10 }} name: checkout repo openvmm if: ${{ fromJSON(env.FLOWEY_CONDITION) }} - name: report cloned repo directories run: |- - flowey.exe v 15 'flowey_lib_common::git_checkout:4:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.workspace <> $GITHUB_PATH @@ -2262,7 +2292,7 @@ jobs: ${{ runner.temp }} EOF ) - flowey pipeline github --runtime $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out .github/workflows/openvmm-pr.yaml ci checkin-gates --config=pr + flowey.exe pipeline github --runtime $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out .github/workflows/openvmm-pr.yaml ci checkin-gates --config=pr shell: bash - name: πŸŒΌπŸ›« Initialize job run: | @@ -2270,273 +2300,210 @@ jobs: AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV - chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey + chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe - echo '"debug"' | flowey v 16 'FLOWEY_LOG' update - echo "${{ runner.temp }}/work" | flowey v 16 '_internal_WORKING_DIR' --is-raw-string update + echo '"debug"' | flowey.exe v 17 'FLOWEY_LOG' update + echo "${{ runner.temp }}/work" | flowey.exe v 17 '_internal_WORKING_DIR' --is-raw-string update - cat <<'EOF' | flowey v 16 'verbose' update + cat <<'EOF' | flowey.exe v 17 'verbose' update ${{ inputs.verbose != '' && inputs.verbose || 'false' }} EOF shell: bash - name: add default cargo home to path - run: flowey e 16 flowey_lib_common::install_rust 0 + run: flowey.exe e 17 flowey_lib_common::install_rust 0 shell: bash - name: install Rust - run: flowey e 16 flowey_lib_common::install_rust 1 + run: flowey.exe e 17 flowey_lib_common::install_rust 1 shell: bash - name: detect active toolchain run: |- - flowey e 16 flowey_lib_common::install_rust 2 - flowey e 16 flowey_lib_common::cfg_cargo_common_flags 0 - shell: bash - - name: checking if packages need to be installed - run: flowey e 16 flowey_lib_common::install_dist_pkg 0 - shell: bash - - name: installing packages - run: flowey e 16 flowey_lib_common::install_dist_pkg 1 + flowey.exe e 17 flowey_lib_common::install_rust 2 + flowey.exe e 17 flowey_lib_common::cfg_cargo_common_flags 0 shell: bash - name: check if openvmm needs to be cloned run: |- - flowey e 16 flowey_lib_common::git_checkout 0 - flowey 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 floweyvar9 - flowey v 16 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION + flowey.exe e 17 flowey_lib_common::git_checkout 0 + flowey.exe 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 floweyvar7 + flowey.exe v 17 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION shell: bash - id: flowey_lib_common__git_checkout__1 uses: actions/checkout@v6 with: fetch-depth: '1' path: repo0 - persist-credentials: ${{ env.floweyvar9 }} + persist-credentials: ${{ env.floweyvar7 }} name: checkout repo openvmm if: ${{ fromJSON(env.FLOWEY_CONDITION) }} - name: report cloned repo directories run: |- - flowey v 16 'flowey_lib_common::git_checkout:4:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.workspace <> "$GITHUB_PATH" + rustup show + if: runner.os == 'Linux' + name: rustup (Linux) + shell: bash + - run: | + set -x + curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init + ./rustup-init.exe -y --default-toolchain=1.95.0 + echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH + if: runner.os == 'Windows' && runner.arch == 'X64' + name: rustup (Windows X64) + shell: bash + - run: | + set -x + curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init + ./rustup-init.exe -y --default-toolchain=1.95.0 + echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH + if: runner.os == 'Windows' && runner.arch == 'ARM64' + name: rustup (Windows ARM64) + shell: bash + - uses: actions/checkout@v6 with: - 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}' - path: ${{ runner.temp }}/used_artifacts/ - - run: echo "${{ runner.temp }}/used_artifacts/_internal-flowey-bootstrap-x86_64-windows-uid-6" >> $GITHUB_PATH + path: flowey_bootstrap + - name: Build flowey + run: | + set -x + CARGO_INCREMENTAL=0 cargo build -p flowey_hvlite --target aarch64-unknown-linux-gnu --profile flowey-ci + OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') + mkdir -p "$OutDirNormal" + mv ./.github/workflows/openvmm-pr.yaml "$OutDirNormal/pipeline.yaml" + mv target/aarch64-unknown-linux-gnu/flowey-ci/flowey_hvlite "$OutDirNormal/flowey" + working-directory: flowey_bootstrap + shell: bash + - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH shell: bash name: πŸŒΌπŸ“¦ Add flowey to PATH + - name: πŸŒΌπŸ”Ž Self-check YAML + run: |- + ESCAPED_AGENT_TEMPDIR=$( + cat <<'EOF' | sed 's/\\/\\\\/g' + ${{ runner.temp }} + EOF + ) + flowey pipeline github --runtime $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out .github/workflows/openvmm-pr.yaml ci checkin-gates --config=pr + shell: bash - name: πŸŒΌπŸ›« Initialize job run: | AgentTempDirNormal="${{ runner.temp }}" AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV - chmod +x $AgentTempDirNormal/used_artifacts/_internal-flowey-bootstrap-x86_64-windows-uid-6/flowey.exe + chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey - echo '"debug"' | flowey.exe v 18 'FLOWEY_LOG' update - echo "${{ runner.temp }}/work" | flowey.exe v 18 '_internal_WORKING_DIR' --is-raw-string update + echo '"debug"' | flowey v 19 'FLOWEY_LOG' update + echo "${{ runner.temp }}/work" | flowey v 19 '_internal_WORKING_DIR' --is-raw-string update - cat <<'EOF' | flowey.exe v 18 'verbose' update + cat <<'EOF' | flowey v 19 'verbose' update ${{ inputs.verbose != '' && inputs.verbose || 'false' }} EOF - echo "${{ runner.temp }}\\used_artifacts\\x64-guest_test_uefi" | flowey.exe v 18 'artifact_use_from_x64-guest_test_uefi' --is-raw-string update - echo "${{ runner.temp }}\\used_artifacts\\x64-linux-musl-pipette" | flowey.exe v 18 'artifact_use_from_x64-linux-musl-pipette' --is-raw-string update - echo "${{ runner.temp }}\\used_artifacts\\x64-linux-musl-tmk_vmm" | flowey.exe v 18 'artifact_use_from_x64-linux-musl-tmk_vmm' --is-raw-string update - echo "${{ runner.temp }}\\used_artifacts\\x64-linux-tpm_guest_tests" | flowey.exe v 18 'artifact_use_from_x64-linux-tpm_guest_tests' --is-raw-string update - echo "${{ runner.temp }}\\used_artifacts\\x64-openhcl-igvm" | flowey.exe v 18 'artifact_use_from_x64-openhcl-igvm' --is-raw-string update - echo "${{ runner.temp }}\\used_artifacts\\x64-tmks" | flowey.exe v 18 'artifact_use_from_x64-tmks' --is-raw-string update - echo "${{ runner.temp }}\\used_artifacts\\x64-windows-openvmm" | flowey.exe v 18 'artifact_use_from_x64-windows-openvmm' --is-raw-string update - echo "${{ runner.temp }}\\used_artifacts\\x64-windows-pipette" | flowey.exe v 18 'artifact_use_from_x64-windows-pipette' --is-raw-string update - echo "${{ runner.temp }}\\used_artifacts\\x64-windows-prep_steps" | flowey.exe v 18 'artifact_use_from_x64-windows-prep_steps' --is-raw-string update - echo "${{ runner.temp }}\\used_artifacts\\x64-windows-test_igvm_agent_rpc_server" | flowey.exe v 18 'artifact_use_from_x64-windows-test_igvm_agent_rpc_server' --is-raw-string update - echo "${{ runner.temp }}\\used_artifacts\\x64-windows-tmk_vmm" | flowey.exe v 18 'artifact_use_from_x64-windows-tmk_vmm' --is-raw-string update - echo "${{ runner.temp }}\\used_artifacts\\x64-windows-tpm_guest_tests" | flowey.exe v 18 'artifact_use_from_x64-windows-tpm_guest_tests' --is-raw-string update - echo "${{ runner.temp }}\\used_artifacts\\x64-windows-vmgstool" | flowey.exe v 18 'artifact_use_from_x64-windows-vmgstool' --is-raw-string update - echo "${{ runner.temp }}\\used_artifacts\\x64-windows-vmm-tests-archive" | flowey.exe v 18 'artifact_use_from_x64-windows-vmm-tests-archive' --is-raw-string update shell: bash - - name: create cargo-nextest cache dir - run: |- - flowey.exe e 18 flowey_lib_common::download_cargo_nextest 0 - flowey.exe e 18 flowey_lib_common::download_cargo_nextest 1 - flowey.exe e 18 flowey_lib_common::download_cargo_nextest 2 - flowey.exe e 18 flowey_lib_common::download_cargo_nextest 3 + - name: add default cargo home to path + run: flowey e 19 flowey_lib_common::install_rust 0 shell: bash - - name: Pre-processing cache vars - run: |- - flowey.exe e 18 flowey_lib_common::cache 0 - flowey.exe v 18 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar4 - flowey.exe v 18 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar5 + - name: install Rust + run: flowey e 19 flowey_lib_common::install_rust 1 shell: bash - - id: flowey_lib_common__cache__1 - uses: actions/cache@v5 - with: - key: ${{ env.floweyvar4 }} - path: ${{ env.floweyvar5 }} - name: 'Restore cache: cargo-nextest' - - name: downloading cargo-nextest + - name: detect active toolchain run: |- - flowey.exe v 18 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__1.outputs.cache-hit <> $GITHUB_PATH - shell: bash - name: πŸŒΌπŸ“¦ Add flowey to PATH - - name: πŸŒΌπŸ›« Initialize job - run: | - AgentTempDirNormal="${{ runner.temp }}" - AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') - echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV - - chmod +x $AgentTempDirNormal/used_artifacts/_internal-flowey-bootstrap-x86_64-windows-uid-6/flowey.exe - - echo '"debug"' | flowey.exe v 19 'FLOWEY_LOG' update - echo "${{ runner.temp }}/work" | flowey.exe v 19 '_internal_WORKING_DIR' --is-raw-string update - - cat <<'EOF' | flowey.exe v 19 'verbose' update - ${{ inputs.verbose != '' && inputs.verbose || 'false' }} - EOF - echo "${{ runner.temp }}\\used_artifacts\\x64-guest_test_uefi" | flowey.exe v 19 'artifact_use_from_x64-guest_test_uefi' --is-raw-string update - echo "${{ runner.temp }}\\used_artifacts\\x64-linux-musl-pipette" | flowey.exe v 19 'artifact_use_from_x64-linux-musl-pipette' --is-raw-string update - 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 - 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 - echo "${{ runner.temp }}\\used_artifacts\\x64-openhcl-igvm" | flowey.exe v 19 'artifact_use_from_x64-openhcl-igvm' --is-raw-string update - echo "${{ runner.temp }}\\used_artifacts\\x64-tmks" | flowey.exe v 19 'artifact_use_from_x64-tmks' --is-raw-string update - echo "${{ runner.temp }}\\used_artifacts\\x64-windows-openvmm" | flowey.exe v 19 'artifact_use_from_x64-windows-openvmm' --is-raw-string update - echo "${{ runner.temp }}\\used_artifacts\\x64-windows-pipette" | flowey.exe v 19 'artifact_use_from_x64-windows-pipette' --is-raw-string update - echo "${{ runner.temp }}\\used_artifacts\\x64-windows-prep_steps" | flowey.exe v 19 'artifact_use_from_x64-windows-prep_steps' --is-raw-string update - 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 - echo "${{ runner.temp }}\\used_artifacts\\x64-windows-tmk_vmm" | flowey.exe v 19 'artifact_use_from_x64-windows-tmk_vmm' --is-raw-string update - 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 - echo "${{ runner.temp }}\\used_artifacts\\x64-windows-vmgstool" | flowey.exe v 19 'artifact_use_from_x64-windows-vmgstool' --is-raw-string update - 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 - shell: bash - - name: create cargo-nextest cache dir - run: |- - flowey.exe e 19 flowey_lib_common::download_cargo_nextest 0 - flowey.exe e 19 flowey_lib_common::download_cargo_nextest 1 - flowey.exe e 19 flowey_lib_common::download_cargo_nextest 2 - flowey.exe e 19 flowey_lib_common::download_cargo_nextest 3 + name: aarch64-linux-musl-unit-tests-unit-tests crypto (symcrypt)-junit-xml + path: ${{ env.floweyvar4 }} + name: 'publish test results: aarch64-linux-musl-unit-tests-unit-tests crypto (symcrypt) (JUnit XML)' + if: ${{ fromJSON(env.FLOWEY_CONDITION) }} + - name: generate nextest command + run: flowey e 19 flowey_lib_common::gen_cargo_nextest_run_cmd 0 shell: bash - - name: Pre-processing cache vars + - name: run 'unit-tests crypto (all)' nextest tests run: |- - flowey.exe e 19 flowey_lib_common::cache 0 - 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 - 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 + flowey e 19 flowey_lib_common::run_cargo_nextest_run 0 + flowey e 19 flowey_lib_common::run_cargo_nextest_run 1 + flowey e 19 flowey_lib_hvlite::build_nextest_unit_tests 5 + flowey e 19 flowey_lib_common::publish_test_results 16 + flowey e 19 flowey_lib_common::publish_test_results 17 + flowey e 19 flowey_lib_common::publish_test_results 18 + flowey v 19 '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 + flowey v 19 'flowey_lib_common::publish_test_results:28:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION shell: bash - - id: flowey_lib_common__cache__1 - uses: actions/cache@v5 + - id: flowey_lib_common__publish_test_results__19 + uses: actions/upload-artifact@v7 with: - key: ${{ env.floweyvar4 }} + name: aarch64-linux-musl-unit-tests-unit-tests crypto (all)-junit-xml path: ${{ env.floweyvar5 }} - name: 'Restore cache: cargo-nextest' - - name: downloading cargo-nextest - run: |- - 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 <> $GITHUB_PATH + - run: echo "${{ runner.temp }}/used_artifacts/_internal-flowey-bootstrap-x86_64-windows-uid-6" >> $GITHUB_PATH shell: bash name: πŸŒΌπŸ“¦ Add flowey to PATH - name: πŸŒΌπŸ›« Initialize job @@ -3947,50 +3680,106 @@ jobs: AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV - chmod +x $AgentTempDirNormal/used_artifacts/_internal-flowey-bootstrap-x86_64-linux-uid-1/flowey + chmod +x $AgentTempDirNormal/used_artifacts/_internal-flowey-bootstrap-x86_64-windows-uid-6/flowey.exe - echo '"debug"' | flowey v 21 'FLOWEY_LOG' update - echo "${{ runner.temp }}/work" | flowey v 21 '_internal_WORKING_DIR' --is-raw-string update + echo '"debug"' | flowey.exe v 21 'FLOWEY_LOG' update + echo "${{ runner.temp }}/work" | flowey.exe v 21 '_internal_WORKING_DIR' --is-raw-string update - cat <<'EOF' | flowey v 21 'verbose' update + cat <<'EOF' | flowey.exe v 21 'verbose' update ${{ inputs.verbose != '' && inputs.verbose || 'false' }} EOF - echo "$AgentTempDirNormal/used_artifacts/x64-guest_test_uefi" | flowey v 21 'artifact_use_from_x64-guest_test_uefi' --is-raw-string update - echo "$AgentTempDirNormal/used_artifacts/x64-linux-musl-pipette" | flowey v 21 'artifact_use_from_x64-linux-musl-pipette' --is-raw-string update - echo "$AgentTempDirNormal/used_artifacts/x64-linux-musl-tmk_vmm" | flowey v 21 'artifact_use_from_x64-linux-musl-tmk_vmm' --is-raw-string update - echo "$AgentTempDirNormal/used_artifacts/x64-linux-openvmm" | flowey v 21 'artifact_use_from_x64-linux-openvmm' --is-raw-string update - echo "$AgentTempDirNormal/used_artifacts/x64-linux-openvmm_vhost" | flowey v 21 'artifact_use_from_x64-linux-openvmm_vhost' --is-raw-string update - echo "$AgentTempDirNormal/used_artifacts/x64-linux-vmm-tests-archive" | flowey v 21 'artifact_use_from_x64-linux-vmm-tests-archive' --is-raw-string update - echo "$AgentTempDirNormal/used_artifacts/x64-tmks" | flowey v 21 'artifact_use_from_x64-tmks' --is-raw-string update - echo "$AgentTempDirNormal/used_artifacts/x64-windows-pipette" | flowey v 21 'artifact_use_from_x64-windows-pipette' --is-raw-string update + echo "${{ runner.temp }}\\used_artifacts\\x64-guest_test_uefi" | flowey.exe v 21 'artifact_use_from_x64-guest_test_uefi' --is-raw-string update + echo "${{ runner.temp }}\\used_artifacts\\x64-linux-musl-pipette" | flowey.exe v 21 'artifact_use_from_x64-linux-musl-pipette' --is-raw-string update + 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 + 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 + echo "${{ runner.temp }}\\used_artifacts\\x64-openhcl-igvm" | flowey.exe v 21 'artifact_use_from_x64-openhcl-igvm' --is-raw-string update + echo "${{ runner.temp }}\\used_artifacts\\x64-tmks" | flowey.exe v 21 'artifact_use_from_x64-tmks' --is-raw-string update + echo "${{ runner.temp }}\\used_artifacts\\x64-windows-openvmm" | flowey.exe v 21 'artifact_use_from_x64-windows-openvmm' --is-raw-string update + echo "${{ runner.temp }}\\used_artifacts\\x64-windows-pipette" | flowey.exe v 21 'artifact_use_from_x64-windows-pipette' --is-raw-string update + echo "${{ runner.temp }}\\used_artifacts\\x64-windows-prep_steps" | flowey.exe v 21 'artifact_use_from_x64-windows-prep_steps' --is-raw-string update + 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 + echo "${{ runner.temp }}\\used_artifacts\\x64-windows-tmk_vmm" | flowey.exe v 21 'artifact_use_from_x64-windows-tmk_vmm' --is-raw-string update + 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 + echo "${{ runner.temp }}\\used_artifacts\\x64-windows-vmgstool" | flowey.exe v 21 'artifact_use_from_x64-windows-vmgstool' --is-raw-string update + 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 shell: bash - - name: creating new test content dir + - name: create cargo-nextest cache dir run: |- - flowey e 21 flowey_core::pipeline::artifact::resolve 3 - flowey e 21 flowey_core::pipeline::artifact::resolve 4 - flowey e 21 flowey_core::pipeline::artifact::resolve 7 - flowey e 21 flowey_core::pipeline::artifact::resolve 1 - flowey e 21 flowey_core::pipeline::artifact::resolve 0 - flowey e 21 flowey_core::pipeline::artifact::resolve 2 - flowey e 21 flowey_core::pipeline::artifact::resolve 6 - flowey e 21 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 0 - shell: bash - - name: checking if packages need to be installed - run: flowey e 21 flowey_lib_common::install_dist_pkg 0 - shell: bash - - name: installing packages - run: flowey e 21 flowey_lib_common::install_dist_pkg 1 - shell: bash - - name: create gh-release-download cache dir - run: flowey e 21 flowey_lib_common::download_gh_release 0 + flowey.exe e 21 flowey_lib_common::download_cargo_nextest 0 + flowey.exe e 21 flowey_lib_common::download_cargo_nextest 1 + flowey.exe e 21 flowey_lib_common::download_cargo_nextest 2 + flowey.exe e 21 flowey_lib_common::download_cargo_nextest 3 shell: bash - name: Pre-processing cache vars run: |- - flowey e 21 flowey_lib_common::cache 8 - flowey v 21 'flowey_lib_common::cache:18:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar8 - flowey v 21 'flowey_lib_common::cache:17:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar9 + flowey.exe e 21 flowey_lib_common::cache 0 + 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 + 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 shell: bash - - id: flowey_lib_common__cache__9 + - id: flowey_lib_common__cache__1 + uses: actions/cache@v5 + with: + key: ${{ env.floweyvar4 }} + path: ${{ env.floweyvar5 }} + name: 'Restore cache: cargo-nextest' + - name: downloading cargo-nextest + run: |- + 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 <> "$GITHUB_PATH" - rustup show - if: runner.os == 'Linux' - name: rustup (Linux) - shell: bash - - run: | - set -x - curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init - ./rustup-init.exe -y --default-toolchain=1.95.0 - echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH - if: runner.os == 'Windows' && runner.arch == 'X64' - name: rustup (Windows X64) - shell: bash - - run: | - set -x - curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init - ./rustup-init.exe -y --default-toolchain=1.95.0 - echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH - if: runner.os == 'Windows' && runner.arch == 'ARM64' - name: rustup (Windows ARM64) - shell: bash - - uses: actions/checkout@v6 - with: - path: flowey_bootstrap - - name: Build flowey - run: | - set -x - CARGO_INCREMENTAL=0 cargo build -p flowey_hvlite --target x86_64-unknown-linux-gnu --profile flowey-ci - OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') - mkdir -p "$OutDirNormal" - mv ./.github/workflows/openvmm-pr.yaml "$OutDirNormal/pipeline.yaml" - mv target/x86_64-unknown-linux-gnu/flowey-ci/flowey_hvlite "$OutDirNormal/flowey" - working-directory: flowey_bootstrap - shell: bash - name: πŸŒΌπŸ“¦ Download artifacts uses: actions/download-artifact@v8 with: - 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}' + 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}' path: ${{ runner.temp }}/used_artifacts/ - - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH + - run: echo "${{ runner.temp }}/used_artifacts/_internal-flowey-bootstrap-x86_64-windows-uid-6" >> $GITHUB_PATH shell: bash name: πŸŒΌπŸ“¦ Add flowey to PATH - - name: πŸŒΌπŸ”Ž Self-check YAML - run: |- - ESCAPED_AGENT_TEMPDIR=$( - cat <<'EOF' | sed 's/\\/\\\\/g' - ${{ runner.temp }} - EOF - ) - flowey pipeline github --runtime $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out .github/workflows/openvmm-pr.yaml ci checkin-gates --config=pr - shell: bash - name: πŸŒΌπŸ›« Initialize job run: | AgentTempDirNormal="${{ runner.temp }}" AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV - chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey + chmod +x $AgentTempDirNormal/used_artifacts/_internal-flowey-bootstrap-x86_64-windows-uid-6/flowey.exe - echo '"debug"' | flowey v 22 'FLOWEY_LOG' update - echo "${{ runner.temp }}/work" | flowey v 22 '_internal_WORKING_DIR' --is-raw-string update + echo '"debug"' | flowey.exe v 22 'FLOWEY_LOG' update + echo "${{ runner.temp }}/work" | flowey.exe v 22 '_internal_WORKING_DIR' --is-raw-string update - cat <<'EOF' | flowey v 22 'verbose' update + cat <<'EOF' | flowey.exe v 22 'verbose' update ${{ inputs.verbose != '' && inputs.verbose || 'false' }} EOF - echo "$AgentTempDirNormal/used_artifacts/x64-guest_test_uefi" | flowey v 22 'artifact_use_from_x64-guest_test_uefi' --is-raw-string update - echo "$AgentTempDirNormal/used_artifacts/x64-linux-musl-openvmm" | flowey v 22 'artifact_use_from_x64-linux-musl-openvmm' --is-raw-string update - echo "$AgentTempDirNormal/used_artifacts/x64-linux-musl-openvmm_vhost" | flowey v 22 'artifact_use_from_x64-linux-musl-openvmm_vhost' --is-raw-string update - echo "$AgentTempDirNormal/used_artifacts/x64-linux-musl-pipette" | flowey v 22 'artifact_use_from_x64-linux-musl-pipette' --is-raw-string update - echo "$AgentTempDirNormal/used_artifacts/x64-linux-musl-tmk_vmm" | flowey v 22 'artifact_use_from_x64-linux-musl-tmk_vmm' --is-raw-string update - echo "$AgentTempDirNormal/used_artifacts/x64-linux-musl-vmm-tests-archive" | flowey v 22 'artifact_use_from_x64-linux-musl-vmm-tests-archive' --is-raw-string update - echo "$AgentTempDirNormal/used_artifacts/x64-tmks" | flowey v 22 'artifact_use_from_x64-tmks' --is-raw-string update - echo "$AgentTempDirNormal/used_artifacts/x64-windows-pipette" | flowey v 22 'artifact_use_from_x64-windows-pipette' --is-raw-string update + echo "${{ runner.temp }}\\used_artifacts\\x64-guest_test_uefi" | flowey.exe v 22 'artifact_use_from_x64-guest_test_uefi' --is-raw-string update + echo "${{ runner.temp }}\\used_artifacts\\x64-linux-musl-pipette" | flowey.exe v 22 'artifact_use_from_x64-linux-musl-pipette' --is-raw-string update + 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 + 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 + echo "${{ runner.temp }}\\used_artifacts\\x64-openhcl-igvm" | flowey.exe v 22 'artifact_use_from_x64-openhcl-igvm' --is-raw-string update + echo "${{ runner.temp }}\\used_artifacts\\x64-tmks" | flowey.exe v 22 'artifact_use_from_x64-tmks' --is-raw-string update + echo "${{ runner.temp }}\\used_artifacts\\x64-windows-openvmm" | flowey.exe v 22 'artifact_use_from_x64-windows-openvmm' --is-raw-string update + echo "${{ runner.temp }}\\used_artifacts\\x64-windows-pipette" | flowey.exe v 22 'artifact_use_from_x64-windows-pipette' --is-raw-string update + echo "${{ runner.temp }}\\used_artifacts\\x64-windows-prep_steps" | flowey.exe v 22 'artifact_use_from_x64-windows-prep_steps' --is-raw-string update + 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 + echo "${{ runner.temp }}\\used_artifacts\\x64-windows-tmk_vmm" | flowey.exe v 22 'artifact_use_from_x64-windows-tmk_vmm' --is-raw-string update + 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 + echo "${{ runner.temp }}\\used_artifacts\\x64-windows-vmgstool" | flowey.exe v 22 'artifact_use_from_x64-windows-vmgstool' --is-raw-string update + 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 shell: bash - - name: creating new test content dir + - name: create cargo-nextest cache dir run: |- - flowey e 22 flowey_core::pipeline::artifact::resolve 7 - flowey e 22 flowey_core::pipeline::artifact::resolve 3 - flowey e 22 flowey_core::pipeline::artifact::resolve 0 - flowey e 22 flowey_core::pipeline::artifact::resolve 4 - flowey e 22 flowey_core::pipeline::artifact::resolve 6 - flowey e 22 flowey_core::pipeline::artifact::resolve 1 - flowey e 22 flowey_core::pipeline::artifact::resolve 2 - flowey e 22 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 0 + flowey.exe e 22 flowey_lib_common::download_cargo_nextest 0 + flowey.exe e 22 flowey_lib_common::download_cargo_nextest 1 + flowey.exe e 22 flowey_lib_common::download_cargo_nextest 2 + flowey.exe e 22 flowey_lib_common::download_cargo_nextest 3 shell: bash - - name: checking if packages need to be installed - run: flowey e 22 flowey_lib_common::install_dist_pkg 0 + - name: Pre-processing cache vars + run: |- + flowey.exe e 22 flowey_lib_common::cache 0 + 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 + 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 shell: bash - - name: installing packages - run: flowey e 22 flowey_lib_common::install_dist_pkg 1 + - id: flowey_lib_common__cache__1 + uses: actions/cache@v5 + with: + key: ${{ env.floweyvar4 }} + path: ${{ env.floweyvar5 }} + name: 'Restore cache: cargo-nextest' + - name: downloading cargo-nextest + run: |- + 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 <> "$GITHUB_PATH" - rustup show - if: runner.os == 'Linux' - name: rustup (Linux) - shell: bash - - run: | - set -x - curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init - ./rustup-init.exe -y --default-toolchain=1.95.0 - echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH - if: runner.os == 'Windows' && runner.arch == 'X64' - name: rustup (Windows X64) - shell: bash - - run: | - set -x - curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init - ./rustup-init.exe -y --default-toolchain=1.95.0 - echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH - if: runner.os == 'Windows' && runner.arch == 'ARM64' - name: rustup (Windows ARM64) - shell: bash - - uses: actions/checkout@v6 - with: - path: flowey_bootstrap - - name: Build flowey - run: | - set -x - CARGO_INCREMENTAL=0 cargo build -p flowey_hvlite --target aarch64-pc-windows-msvc --profile flowey-ci - OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') - mkdir -p "$OutDirNormal" - mv ./.github/workflows/openvmm-pr.yaml "$OutDirNormal/pipeline.yaml" - mv target/aarch64-pc-windows-msvc/flowey-ci/flowey_hvlite.exe "$OutDirNormal/flowey.exe" - working-directory: flowey_bootstrap - shell: bash - name: πŸŒΌπŸ“¦ Download artifacts uses: actions/download-artifact@v8 with: - 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}' + 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}' path: ${{ runner.temp }}/used_artifacts/ - - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH + - run: echo "${{ runner.temp }}/used_artifacts/_internal-flowey-bootstrap-x86_64-linux-uid-1" >> $GITHUB_PATH shell: bash name: πŸŒΌπŸ“¦ Add flowey to PATH - - name: πŸŒΌπŸ”Ž Self-check YAML - run: |- - ESCAPED_AGENT_TEMPDIR=$( - cat <<'EOF' | sed 's/\\/\\\\/g' - ${{ runner.temp }} - EOF - ) - flowey.exe pipeline github --runtime $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out .github/workflows/openvmm-pr.yaml ci checkin-gates --config=pr - shell: bash - name: πŸŒΌπŸ›« Initialize job run: | AgentTempDirNormal="${{ runner.temp }}" AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV - chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe + chmod +x $AgentTempDirNormal/used_artifacts/_internal-flowey-bootstrap-x86_64-linux-uid-1/flowey - echo '"debug"' | flowey.exe v 23 'FLOWEY_LOG' update - echo "${{ runner.temp }}/work" | flowey.exe v 23 '_internal_WORKING_DIR' --is-raw-string update + echo '"debug"' | flowey v 23 'FLOWEY_LOG' update + echo "${{ runner.temp }}/work" | flowey v 23 '_internal_WORKING_DIR' --is-raw-string update - cat <<'EOF' | flowey.exe v 23 'verbose' update + cat <<'EOF' | flowey v 23 'verbose' update ${{ inputs.verbose != '' && inputs.verbose || 'false' }} EOF - echo "${{ runner.temp }}\\used_artifacts\\aarch64-guest_test_uefi" | flowey.exe v 23 'artifact_use_from_aarch64-guest_test_uefi' --is-raw-string update - echo "${{ runner.temp }}\\used_artifacts\\aarch64-linux-musl-pipette" | flowey.exe v 23 'artifact_use_from_aarch64-linux-musl-pipette' --is-raw-string update - echo "${{ runner.temp }}\\used_artifacts\\aarch64-linux-musl-tmk_vmm" | flowey.exe v 23 'artifact_use_from_aarch64-linux-musl-tmk_vmm' --is-raw-string update - echo "${{ runner.temp }}\\used_artifacts\\aarch64-openhcl-igvm" | flowey.exe v 23 'artifact_use_from_aarch64-openhcl-igvm' --is-raw-string update - echo "${{ runner.temp }}\\used_artifacts\\aarch64-tmks" | flowey.exe v 23 'artifact_use_from_aarch64-tmks' --is-raw-string update - echo "${{ runner.temp }}\\used_artifacts\\aarch64-windows-openvmm" | flowey.exe v 23 'artifact_use_from_aarch64-windows-openvmm' --is-raw-string update - echo "${{ runner.temp }}\\used_artifacts\\aarch64-windows-pipette" | flowey.exe v 23 'artifact_use_from_aarch64-windows-pipette' --is-raw-string update - echo "${{ runner.temp }}\\used_artifacts\\aarch64-windows-tmk_vmm" | flowey.exe v 23 'artifact_use_from_aarch64-windows-tmk_vmm' --is-raw-string update - echo "${{ runner.temp }}\\used_artifacts\\aarch64-windows-vmgstool" | flowey.exe v 23 'artifact_use_from_aarch64-windows-vmgstool' --is-raw-string update - echo "${{ runner.temp }}\\used_artifacts\\aarch64-windows-vmm-tests-archive" | flowey.exe v 23 'artifact_use_from_aarch64-windows-vmm-tests-archive' --is-raw-string update - shell: bash - - name: create cargo-nextest cache dir - run: |- - flowey.exe e 23 flowey_lib_common::download_cargo_nextest 0 - flowey.exe e 23 flowey_lib_common::download_cargo_nextest 1 - flowey.exe e 23 flowey_lib_common::download_cargo_nextest 2 - flowey.exe e 23 flowey_lib_common::download_cargo_nextest 3 - shell: bash - - name: Pre-processing cache vars - run: |- - flowey.exe e 23 flowey_lib_common::cache 0 - 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 - 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 - shell: bash - - id: flowey_lib_common__cache__1 - uses: actions/cache@v5 - with: - key: ${{ env.floweyvar4 }} - path: ${{ env.floweyvar5 }} - name: 'Restore cache: cargo-nextest' - - name: downloading cargo-nextest - run: |- - 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 <> "$GITHUB_PATH" + rustup show + if: runner.os == 'Linux' + name: rustup (Linux) + shell: bash + - run: | + set -x + curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init + ./rustup-init.exe -y --default-toolchain=1.95.0 + echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH + if: runner.os == 'Windows' && runner.arch == 'X64' + name: rustup (Windows X64) + shell: bash + - run: | + set -x + curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init + ./rustup-init.exe -y --default-toolchain=1.95.0 + echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH + if: runner.os == 'Windows' && runner.arch == 'ARM64' + name: rustup (Windows ARM64) + shell: bash + - uses: actions/checkout@v6 + with: + path: flowey_bootstrap + - name: Build flowey + run: | + set -x + CARGO_INCREMENTAL=0 cargo build -p flowey_hvlite --target x86_64-unknown-linux-gnu --profile flowey-ci + OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') + mkdir -p "$OutDirNormal" + mv ./.github/workflows/openvmm-pr.yaml "$OutDirNormal/pipeline.yaml" + mv target/x86_64-unknown-linux-gnu/flowey-ci/flowey_hvlite "$OutDirNormal/flowey" + working-directory: flowey_bootstrap + shell: bash - name: πŸŒΌπŸ“¦ Download artifacts uses: actions/download-artifact@v8 with: - name: _internal-flowey-bootstrap-x86_64-linux-uid-1 - path: ${{ runner.temp }}/used_artifacts/_internal-flowey-bootstrap-x86_64-linux-uid-1/ - - run: echo "${{ runner.temp }}/used_artifacts/_internal-flowey-bootstrap-x86_64-linux-uid-1" >> $GITHUB_PATH + 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}' + path: ${{ runner.temp }}/used_artifacts/ + - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH shell: bash name: πŸŒΌπŸ“¦ Add flowey to PATH + - name: πŸŒΌπŸ”Ž Self-check YAML + run: |- + ESCAPED_AGENT_TEMPDIR=$( + cat <<'EOF' | sed 's/\\/\\\\/g' + ${{ runner.temp }} + EOF + ) + flowey pipeline github --runtime $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out .github/workflows/openvmm-pr.yaml ci checkin-gates --config=pr + shell: bash - name: πŸŒΌπŸ›« Initialize job run: | AgentTempDirNormal="${{ runner.temp }}" AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV - chmod +x $AgentTempDirNormal/used_artifacts/_internal-flowey-bootstrap-x86_64-linux-uid-1/flowey + chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey echo '"debug"' | flowey v 24 'FLOWEY_LOG' update echo "${{ runner.temp }}/work" | flowey v 24 '_internal_WORKING_DIR' --is-raw-string update @@ -4813,134 +4529,148 @@ jobs: cat <<'EOF' | flowey v 24 'verbose' update ${{ inputs.verbose != '' && inputs.verbose || 'false' }} EOF + echo "$AgentTempDirNormal/used_artifacts/x64-guest_test_uefi" | flowey v 24 'artifact_use_from_x64-guest_test_uefi' --is-raw-string update + echo "$AgentTempDirNormal/used_artifacts/x64-linux-musl-openvmm" | flowey v 24 'artifact_use_from_x64-linux-musl-openvmm' --is-raw-string update + echo "$AgentTempDirNormal/used_artifacts/x64-linux-musl-openvmm_vhost" | flowey v 24 'artifact_use_from_x64-linux-musl-openvmm_vhost' --is-raw-string update + echo "$AgentTempDirNormal/used_artifacts/x64-linux-musl-pipette" | flowey v 24 'artifact_use_from_x64-linux-musl-pipette' --is-raw-string update + echo "$AgentTempDirNormal/used_artifacts/x64-linux-musl-tmk_vmm" | flowey v 24 'artifact_use_from_x64-linux-musl-tmk_vmm' --is-raw-string update + echo "$AgentTempDirNormal/used_artifacts/x64-linux-musl-vmm-tests-archive" | flowey v 24 'artifact_use_from_x64-linux-musl-vmm-tests-archive' --is-raw-string update + echo "$AgentTempDirNormal/used_artifacts/x64-tmks" | flowey v 24 'artifact_use_from_x64-tmks' --is-raw-string update + echo "$AgentTempDirNormal/used_artifacts/x64-windows-pipette" | flowey v 24 'artifact_use_from_x64-windows-pipette' --is-raw-string update shell: bash - - name: check if openvmm needs to be cloned + - name: creating new test content dir run: |- - flowey e 24 flowey_lib_common::git_checkout 0 - 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 floweyvar1 - flowey v 24 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION + flowey e 24 flowey_core::pipeline::artifact::resolve 1 + flowey e 24 flowey_core::pipeline::artifact::resolve 2 + flowey e 24 flowey_core::pipeline::artifact::resolve 7 + flowey e 24 flowey_core::pipeline::artifact::resolve 3 + flowey e 24 flowey_core::pipeline::artifact::resolve 0 + flowey e 24 flowey_core::pipeline::artifact::resolve 4 + flowey e 24 flowey_core::pipeline::artifact::resolve 6 + flowey e 24 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 0 shell: bash - - id: flowey_lib_common__git_checkout__1 - uses: actions/checkout@v6 + - name: checking if packages need to be installed + run: flowey e 24 flowey_lib_common::install_dist_pkg 0 + shell: bash + - name: installing packages + run: flowey e 24 flowey_lib_common::install_dist_pkg 1 + shell: bash + - name: create gh-release-download cache dir + run: flowey e 24 flowey_lib_common::download_gh_release 0 + shell: bash + - name: Pre-processing cache vars + run: |- + flowey e 24 flowey_lib_common::cache 8 + flowey v 24 'flowey_lib_common::cache:18:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar8 + flowey v 24 'flowey_lib_common::cache:17:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar9 + shell: bash + - id: flowey_lib_common__cache__9 + uses: actions/cache@v5 with: - fetch-depth: '1' - path: repo0 - persist-credentials: ${{ env.floweyvar1 }} - name: checkout repo openvmm - if: ${{ fromJSON(env.FLOWEY_CONDITION) }} - - name: report cloned repo directories + key: ${{ env.floweyvar8 }} + path: ${{ env.floweyvar9 }} + name: 'Restore cache: gh-release-download' + - name: download artifacts from github releases run: |- - 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 <> $GITHUB_PATH + - name: get latest completed action id + run: flowey e 24 flowey_lib_common::gh_latest_completed_workflow_id 0 shell: bash - name: πŸŒΌπŸ“¦ Add flowey to PATH - - name: πŸŒΌπŸ›« Initialize job - run: | - AgentTempDirNormal="${{ runner.temp }}" - AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') - echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV - - chmod +x $AgentTempDirNormal/used_artifacts/_internal-flowey-bootstrap-x86_64-linux-uid-1/flowey - - echo '"debug"' | flowey v 25 'FLOWEY_LOG' update - echo "${{ runner.temp }}/work" | flowey v 25 '_internal_WORKING_DIR' --is-raw-string update - - cat <<'EOF' | flowey v 25 'verbose' update - ${{ inputs.verbose != '' && inputs.verbose || 'false' }} - EOF - mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-mi-secure-openhcl-igvm" - echo "$AgentTempDirNormal/publish_artifacts/x64-mi-secure-openhcl-igvm" | flowey v 25 'artifact_publish_from_x64-mi-secure-openhcl-igvm' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-mi-secure-openhcl-igvm-extras" - echo "$AgentTempDirNormal/publish_artifacts/x64-mi-secure-openhcl-igvm-extras" | flowey v 25 'artifact_publish_from_x64-mi-secure-openhcl-igvm-extras' --is-raw-string update + - name: download artifacts from github actions run + run: flowey e 24 flowey_lib_common::download_gh_artifact 0 shell: bash - - name: checking if packages need to be installed - run: flowey e 25 flowey_lib_common::install_dist_pkg 0 + - name: write to directory variables + run: flowey e 24 flowey_lib_hvlite::download_release_igvm_files_from_gh::resolve 0 shell: bash - - name: installing packages - run: flowey e 25 flowey_lib_common::install_dist_pkg 1 + - name: unpack openvmm-deps archive + run: flowey e 24 flowey_lib_hvlite::resolve_openvmm_deps 0 shell: bash - - name: create gh-release-download cache dir - run: flowey e 25 flowey_lib_common::download_gh_release 0 + - name: unpack mu_msvm package (x64) + run: flowey e 24 flowey_lib_hvlite::download_uefi_mu_msvm 0 + shell: bash + - name: setting up vmm_tests env + run: flowey e 24 flowey_lib_hvlite::init_vmm_tests_env 0 + shell: bash + - name: ensure hypervisor device is accessible + run: flowey e 24 flowey_lib_hvlite::test_nextest_vmm_tests_archive 0 + shell: bash + - name: create cargo-nextest cache dir + run: |- + flowey e 24 flowey_lib_common::download_cargo_nextest 0 + flowey e 24 flowey_lib_common::download_cargo_nextest 1 + flowey e 24 flowey_lib_common::download_cargo_nextest 2 + flowey e 24 flowey_lib_common::download_cargo_nextest 3 shell: bash - name: Pre-processing cache vars run: |- - flowey e 25 flowey_lib_common::cache 0 - flowey v 25 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar1 - flowey v 25 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar2 + flowey e 24 flowey_lib_common::cache 0 + flowey v 24 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar4 + flowey v 24 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar5 shell: bash - id: flowey_lib_common__cache__1 uses: actions/cache@v5 with: - key: ${{ env.floweyvar1 }} - path: ${{ env.floweyvar2 }} - name: 'Restore cache: gh-release-download' - - name: download artifacts from github releases + key: ${{ env.floweyvar4 }} + path: ${{ env.floweyvar5 }} + name: 'Restore cache: cargo-nextest' + - name: downloading cargo-nextest run: |- - 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 <> "$GITHUB_PATH" + rustup show + if: runner.os == 'Linux' + name: rustup (Linux) + shell: bash + - run: | + set -x + curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init + ./rustup-init.exe -y --default-toolchain=1.95.0 + echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH + if: runner.os == 'Windows' && runner.arch == 'X64' + name: rustup (Windows X64) + shell: bash + - run: | + set -x + curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init + ./rustup-init.exe -y --default-toolchain=1.95.0 + echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH + if: runner.os == 'Windows' && runner.arch == 'ARM64' + name: rustup (Windows ARM64) + shell: bash + - uses: actions/checkout@v6 + with: + path: flowey_bootstrap + - name: Build flowey + run: | + set -x + CARGO_INCREMENTAL=0 cargo build -p flowey_hvlite --target aarch64-pc-windows-msvc --profile flowey-ci + OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') + mkdir -p "$OutDirNormal" + mv ./.github/workflows/openvmm-pr.yaml "$OutDirNormal/pipeline.yaml" + mv target/aarch64-pc-windows-msvc/flowey-ci/flowey_hvlite.exe "$OutDirNormal/flowey.exe" + working-directory: flowey_bootstrap + shell: bash - name: πŸŒΌπŸ“¦ Download artifacts uses: actions/download-artifact@v8 with: - 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}' + 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}' path: ${{ runner.temp }}/used_artifacts/ - - run: echo "${{ runner.temp }}/used_artifacts/_internal-flowey-bootstrap-x86_64-windows-uid-6" >> $GITHUB_PATH + - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH shell: bash name: πŸŒΌπŸ“¦ Add flowey to PATH + - name: πŸŒΌπŸ”Ž Self-check YAML + run: |- + ESCAPED_AGENT_TEMPDIR=$( + cat <<'EOF' | sed 's/\\/\\\\/g' + ${{ runner.temp }} + EOF + ) + flowey.exe pipeline github --runtime $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out .github/workflows/openvmm-pr.yaml ci checkin-gates --config=pr + shell: bash - name: πŸŒΌπŸ›« Initialize job run: | AgentTempDirNormal="${{ runner.temp }}" AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV - chmod +x $AgentTempDirNormal/used_artifacts/_internal-flowey-bootstrap-x86_64-windows-uid-6/flowey.exe + chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe - echo '"debug"' | flowey.exe v 26 'FLOWEY_LOG' update - echo "${{ runner.temp }}/work" | flowey.exe v 26 '_internal_WORKING_DIR' --is-raw-string update + echo '"debug"' | flowey.exe v 25 'FLOWEY_LOG' update + echo "${{ runner.temp }}/work" | flowey.exe v 25 '_internal_WORKING_DIR' --is-raw-string update - cat <<'EOF' | flowey.exe v 26 'verbose' update + cat <<'EOF' | flowey.exe v 25 'verbose' update ${{ inputs.verbose != '' && inputs.verbose || 'false' }} EOF - echo "${{ runner.temp }}\\used_artifacts\\x64-guest_test_uefi" | flowey.exe v 26 'artifact_use_from_x64-guest_test_uefi' --is-raw-string update - echo "${{ runner.temp }}\\used_artifacts\\x64-linux-musl-pipette" | flowey.exe v 26 'artifact_use_from_x64-linux-musl-pipette' --is-raw-string update - echo "${{ runner.temp }}\\used_artifacts\\x64-linux-musl-tmk_vmm" | flowey.exe v 26 'artifact_use_from_x64-linux-musl-tmk_vmm' --is-raw-string update - echo "${{ runner.temp }}\\used_artifacts\\x64-linux-tpm_guest_tests" | flowey.exe v 26 'artifact_use_from_x64-linux-tpm_guest_tests' --is-raw-string update - echo "${{ runner.temp }}\\used_artifacts\\x64-mi-secure-openhcl-igvm" | flowey.exe v 26 'artifact_use_from_x64-mi-secure-openhcl-igvm' --is-raw-string update - echo "${{ runner.temp }}\\used_artifacts\\x64-tmks" | flowey.exe v 26 'artifact_use_from_x64-tmks' --is-raw-string update - echo "${{ runner.temp }}\\used_artifacts\\x64-windows-openvmm" | flowey.exe v 26 'artifact_use_from_x64-windows-openvmm' --is-raw-string update - echo "${{ runner.temp }}\\used_artifacts\\x64-windows-pipette" | flowey.exe v 26 'artifact_use_from_x64-windows-pipette' --is-raw-string update - echo "${{ runner.temp }}\\used_artifacts\\x64-windows-prep_steps" | flowey.exe v 26 'artifact_use_from_x64-windows-prep_steps' --is-raw-string update - echo "${{ runner.temp }}\\used_artifacts\\x64-windows-test_igvm_agent_rpc_server" | flowey.exe v 26 'artifact_use_from_x64-windows-test_igvm_agent_rpc_server' --is-raw-string update - echo "${{ runner.temp }}\\used_artifacts\\x64-windows-tmk_vmm" | flowey.exe v 26 'artifact_use_from_x64-windows-tmk_vmm' --is-raw-string update - echo "${{ runner.temp }}\\used_artifacts\\x64-windows-tpm_guest_tests" | flowey.exe v 26 'artifact_use_from_x64-windows-tpm_guest_tests' --is-raw-string update - echo "${{ runner.temp }}\\used_artifacts\\x64-windows-vmgstool" | flowey.exe v 26 'artifact_use_from_x64-windows-vmgstool' --is-raw-string update - echo "${{ runner.temp }}\\used_artifacts\\x64-windows-vmm-tests-archive" | flowey.exe v 26 'artifact_use_from_x64-windows-vmm-tests-archive' --is-raw-string update + echo "${{ runner.temp }}\\used_artifacts\\aarch64-guest_test_uefi" | flowey.exe v 25 'artifact_use_from_aarch64-guest_test_uefi' --is-raw-string update + echo "${{ runner.temp }}\\used_artifacts\\aarch64-linux-musl-pipette" | flowey.exe v 25 'artifact_use_from_aarch64-linux-musl-pipette' --is-raw-string update + echo "${{ runner.temp }}\\used_artifacts\\aarch64-linux-musl-tmk_vmm" | flowey.exe v 25 'artifact_use_from_aarch64-linux-musl-tmk_vmm' --is-raw-string update + echo "${{ runner.temp }}\\used_artifacts\\aarch64-openhcl-igvm" | flowey.exe v 25 'artifact_use_from_aarch64-openhcl-igvm' --is-raw-string update + echo "${{ runner.temp }}\\used_artifacts\\aarch64-tmks" | flowey.exe v 25 'artifact_use_from_aarch64-tmks' --is-raw-string update + echo "${{ runner.temp }}\\used_artifacts\\aarch64-windows-openvmm" | flowey.exe v 25 'artifact_use_from_aarch64-windows-openvmm' --is-raw-string update + echo "${{ runner.temp }}\\used_artifacts\\aarch64-windows-pipette" | flowey.exe v 25 'artifact_use_from_aarch64-windows-pipette' --is-raw-string update + echo "${{ runner.temp }}\\used_artifacts\\aarch64-windows-tmk_vmm" | flowey.exe v 25 'artifact_use_from_aarch64-windows-tmk_vmm' --is-raw-string update + echo "${{ runner.temp }}\\used_artifacts\\aarch64-windows-vmgstool" | flowey.exe v 25 'artifact_use_from_aarch64-windows-vmgstool' --is-raw-string update + echo "${{ runner.temp }}\\used_artifacts\\aarch64-windows-vmm-tests-archive" | flowey.exe v 25 'artifact_use_from_aarch64-windows-vmm-tests-archive' --is-raw-string update shell: bash - name: create cargo-nextest cache dir run: |- - flowey.exe e 26 flowey_lib_common::download_cargo_nextest 0 - flowey.exe e 26 flowey_lib_common::download_cargo_nextest 1 - flowey.exe e 26 flowey_lib_common::download_cargo_nextest 2 - flowey.exe e 26 flowey_lib_common::download_cargo_nextest 3 + flowey.exe e 25 flowey_lib_common::download_cargo_nextest 0 + flowey.exe e 25 flowey_lib_common::download_cargo_nextest 1 + flowey.exe e 25 flowey_lib_common::download_cargo_nextest 2 + flowey.exe e 25 flowey_lib_common::download_cargo_nextest 3 shell: bash - name: Pre-processing cache vars run: |- - flowey.exe e 26 flowey_lib_common::cache 0 - 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 - 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 + flowey.exe e 25 flowey_lib_common::cache 0 + flowey.exe v 25 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar4 + flowey.exe v 25 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar5 shell: bash - id: flowey_lib_common__cache__1 uses: actions/cache@v5 @@ -5207,17 +4864,17 @@ jobs: name: 'Restore cache: cargo-nextest' - name: downloading cargo-nextest run: |- - 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 <> $GITHUB_PATH + shell: bash + name: πŸŒΌπŸ“¦ Add flowey to PATH + - name: πŸŒΌπŸ›« Initialize job + run: | + AgentTempDirNormal="${{ runner.temp }}" + AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') + echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV + + chmod +x $AgentTempDirNormal/used_artifacts/_internal-flowey-bootstrap-x86_64-linux-uid-1/flowey + + echo '"debug"' | flowey v 26 'FLOWEY_LOG' update + echo "${{ runner.temp }}/work" | flowey v 26 '_internal_WORKING_DIR' --is-raw-string update + + cat <<'EOF' | flowey v 26 'verbose' update + ${{ inputs.verbose != '' && inputs.verbose || 'false' }} + EOF + shell: bash + - name: check if openvmm needs to be cloned + run: |- + flowey e 26 flowey_lib_common::git_checkout 0 + flowey 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 floweyvar1 + flowey v 26 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION + shell: bash + - id: flowey_lib_common__git_checkout__1 + uses: actions/checkout@v6 + with: + fetch-depth: '1' + path: repo0 + persist-credentials: ${{ env.floweyvar1 }} + name: checkout repo openvmm + if: ${{ fromJSON(env.FLOWEY_CONDITION) }} + - name: report cloned repo directories + run: |- + flowey 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 <> $GITHUB_PATH + shell: bash + name: πŸŒΌπŸ“¦ Add flowey to PATH + - name: πŸŒΌπŸ›« Initialize job + run: | + AgentTempDirNormal="${{ runner.temp }}" + AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') + echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV + + chmod +x $AgentTempDirNormal/used_artifacts/_internal-flowey-bootstrap-x86_64-linux-uid-1/flowey + + echo '"debug"' | flowey v 27 'FLOWEY_LOG' update + echo "${{ runner.temp }}/work" | flowey v 27 '_internal_WORKING_DIR' --is-raw-string update + + cat <<'EOF' | flowey v 27 'verbose' update + ${{ inputs.verbose != '' && inputs.verbose || 'false' }} + EOF + mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-mi-secure-openhcl-igvm" + echo "$AgentTempDirNormal/publish_artifacts/x64-mi-secure-openhcl-igvm" | flowey v 27 'artifact_publish_from_x64-mi-secure-openhcl-igvm' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-mi-secure-openhcl-igvm-extras" + echo "$AgentTempDirNormal/publish_artifacts/x64-mi-secure-openhcl-igvm-extras" | flowey v 27 'artifact_publish_from_x64-mi-secure-openhcl-igvm-extras' --is-raw-string update + shell: bash + - name: checking if packages need to be installed + run: flowey e 27 flowey_lib_common::install_dist_pkg 0 + shell: bash + - name: installing packages + run: flowey e 27 flowey_lib_common::install_dist_pkg 1 + shell: bash + - name: create gh-release-download cache dir + run: flowey e 27 flowey_lib_common::download_gh_release 0 + shell: bash + - name: Pre-processing cache vars + run: |- + flowey e 27 flowey_lib_common::cache 0 + flowey v 27 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar1 + flowey v 27 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar2 + shell: bash + - id: flowey_lib_common__cache__1 + uses: actions/cache@v5 + with: + key: ${{ env.floweyvar1 }} + path: ${{ env.floweyvar2 }} + name: 'Restore cache: gh-release-download' + - name: download artifacts from github releases + run: |- + flowey v 27 '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 <> $GITHUB_PATH + shell: bash + name: πŸŒΌπŸ“¦ Add flowey to PATH + - name: πŸŒΌπŸ›« Initialize job + run: | + AgentTempDirNormal="${{ runner.temp }}" + AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') + echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV + + chmod +x $AgentTempDirNormal/used_artifacts/_internal-flowey-bootstrap-x86_64-windows-uid-6/flowey.exe + + echo '"debug"' | flowey.exe v 28 'FLOWEY_LOG' update + echo "${{ runner.temp }}/work" | flowey.exe v 28 '_internal_WORKING_DIR' --is-raw-string update + + cat <<'EOF' | flowey.exe v 28 'verbose' update + ${{ inputs.verbose != '' && inputs.verbose || 'false' }} + EOF + echo "${{ runner.temp }}\\used_artifacts\\x64-guest_test_uefi" | flowey.exe v 28 'artifact_use_from_x64-guest_test_uefi' --is-raw-string update + echo "${{ runner.temp }}\\used_artifacts\\x64-linux-musl-pipette" | flowey.exe v 28 'artifact_use_from_x64-linux-musl-pipette' --is-raw-string update + echo "${{ runner.temp }}\\used_artifacts\\x64-linux-musl-tmk_vmm" | flowey.exe v 28 'artifact_use_from_x64-linux-musl-tmk_vmm' --is-raw-string update + echo "${{ runner.temp }}\\used_artifacts\\x64-linux-tpm_guest_tests" | flowey.exe v 28 'artifact_use_from_x64-linux-tpm_guest_tests' --is-raw-string update + echo "${{ runner.temp }}\\used_artifacts\\x64-mi-secure-openhcl-igvm" | flowey.exe v 28 'artifact_use_from_x64-mi-secure-openhcl-igvm' --is-raw-string update + echo "${{ runner.temp }}\\used_artifacts\\x64-tmks" | flowey.exe v 28 'artifact_use_from_x64-tmks' --is-raw-string update + echo "${{ runner.temp }}\\used_artifacts\\x64-windows-openvmm" | flowey.exe v 28 'artifact_use_from_x64-windows-openvmm' --is-raw-string update + echo "${{ runner.temp }}\\used_artifacts\\x64-windows-pipette" | flowey.exe v 28 'artifact_use_from_x64-windows-pipette' --is-raw-string update + echo "${{ runner.temp }}\\used_artifacts\\x64-windows-prep_steps" | flowey.exe v 28 'artifact_use_from_x64-windows-prep_steps' --is-raw-string update + echo "${{ runner.temp }}\\used_artifacts\\x64-windows-test_igvm_agent_rpc_server" | flowey.exe v 28 'artifact_use_from_x64-windows-test_igvm_agent_rpc_server' --is-raw-string update + echo "${{ runner.temp }}\\used_artifacts\\x64-windows-tmk_vmm" | flowey.exe v 28 'artifact_use_from_x64-windows-tmk_vmm' --is-raw-string update + echo "${{ runner.temp }}\\used_artifacts\\x64-windows-tpm_guest_tests" | flowey.exe v 28 'artifact_use_from_x64-windows-tpm_guest_tests' --is-raw-string update + echo "${{ runner.temp }}\\used_artifacts\\x64-windows-vmgstool" | flowey.exe v 28 'artifact_use_from_x64-windows-vmgstool' --is-raw-string update + echo "${{ runner.temp }}\\used_artifacts\\x64-windows-vmm-tests-archive" | flowey.exe v 28 'artifact_use_from_x64-windows-vmm-tests-archive' --is-raw-string update + shell: bash + - name: create cargo-nextest cache dir + run: |- + flowey.exe e 28 flowey_lib_common::download_cargo_nextest 0 + flowey.exe e 28 flowey_lib_common::download_cargo_nextest 1 + flowey.exe e 28 flowey_lib_common::download_cargo_nextest 2 + flowey.exe e 28 flowey_lib_common::download_cargo_nextest 3 + shell: bash + - name: Pre-processing cache vars + run: |- + flowey.exe e 28 flowey_lib_common::cache 0 + flowey.exe v 28 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar4 + flowey.exe v 28 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar5 + shell: bash + - id: flowey_lib_common__cache__1 + uses: actions/cache@v5 + with: + key: ${{ env.floweyvar4 }} + path: ${{ env.floweyvar5 }} + name: 'Restore cache: cargo-nextest' + - name: downloading cargo-nextest + run: |- + flowey.exe v 28 '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 <> "$GITHUB_PATH" - rustup show - if: runner.os == 'Linux' - name: rustup (Linux) - shell: bash - - run: | - set -x - curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init - ./rustup-init.exe -y --default-toolchain=1.95.0 - echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH - if: runner.os == 'Windows' && runner.arch == 'X64' - name: rustup (Windows X64) - shell: bash - - run: | - set -x - curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init - ./rustup-init.exe -y --default-toolchain=1.95.0 - echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH - if: runner.os == 'Windows' && runner.arch == 'ARM64' - name: rustup (Windows ARM64) - shell: bash - - uses: actions/checkout@v6 + - name: πŸŒΌπŸ“¦ Download artifacts + uses: actions/download-artifact@v8 with: - path: flowey_bootstrap - - name: Build flowey - run: | - set -x - CARGO_INCREMENTAL=0 cargo build -p flowey_hvlite --target x86_64-pc-windows-msvc --profile flowey-ci - OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') - mkdir -p "$OutDirNormal" - mv ./.github/workflows/openvmm-pr.yaml "$OutDirNormal/pipeline.yaml" - mv target/x86_64-pc-windows-msvc/flowey-ci/flowey_hvlite.exe "$OutDirNormal/flowey.exe" - working-directory: flowey_bootstrap - shell: bash - - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH + name: _internal-flowey-bootstrap-x86_64-linux-uid-1 + path: ${{ runner.temp }}/used_artifacts/_internal-flowey-bootstrap-x86_64-linux-uid-1/ + - run: echo "${{ runner.temp }}/used_artifacts/_internal-flowey-bootstrap-x86_64-linux-uid-1" >> $GITHUB_PATH shell: bash name: πŸŒΌπŸ“¦ Add flowey to PATH - - name: πŸŒΌπŸ”Ž Self-check YAML - run: |- - ESCAPED_AGENT_TEMPDIR=$( - cat <<'EOF' | sed 's/\\/\\\\/g' - ${{ runner.temp }} - EOF - ) - flowey.exe pipeline github --runtime $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out .github/workflows/openvmm-pr.yaml ci checkin-gates --config=pr - shell: bash - name: πŸŒΌπŸ›« Initialize job run: | AgentTempDirNormal="${{ runner.temp }}" AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV - chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe + chmod +x $AgentTempDirNormal/used_artifacts/_internal-flowey-bootstrap-x86_64-linux-uid-1/flowey - echo '"debug"' | flowey.exe v 3 'FLOWEY_LOG' update - echo "${{ runner.temp }}/work" | flowey.exe v 3 '_internal_WORKING_DIR' --is-raw-string update + echo '"debug"' | flowey v 3 'FLOWEY_LOG' update + echo "${{ runner.temp }}/work" | flowey v 3 '_internal_WORKING_DIR' --is-raw-string update - cat <<'EOF' | flowey.exe v 3 'verbose' update + cat <<'EOF' | flowey v 3 'verbose' update ${{ inputs.verbose != '' && inputs.verbose || 'false' }} EOF - mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-openvmm" - echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-openvmm" | flowey.exe v 3 'artifact_publish_from_aarch64-windows-openvmm' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-pipette" - echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-pipette" | flowey.exe v 3 'artifact_publish_from_aarch64-windows-pipette' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-prep_steps" - echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-prep_steps" | flowey.exe v 3 'artifact_publish_from_aarch64-windows-prep_steps' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-test_igvm_agent_rpc_server" - echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-test_igvm_agent_rpc_server" | flowey.exe v 3 'artifact_publish_from_aarch64-windows-test_igvm_agent_rpc_server' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-tmk_vmm" - echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-tmk_vmm" | flowey.exe v 3 'artifact_publish_from_aarch64-windows-tmk_vmm' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-tpm_guest_tests" - echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-tpm_guest_tests" | flowey.exe v 3 'artifact_publish_from_aarch64-windows-tpm_guest_tests' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-vmgstool" - echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-vmgstool" | flowey.exe v 3 'artifact_publish_from_aarch64-windows-vmgstool' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-vmm-tests-archive" - echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-vmm-tests-archive" | flowey.exe v 3 'artifact_publish_from_aarch64-windows-vmm-tests-archive' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-guest_test_uefi" + echo "$AgentTempDirNormal/publish_artifacts/aarch64-guest_test_uefi" | flowey v 3 'artifact_publish_from_aarch64-guest_test_uefi' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-musl-pipette" + echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-musl-pipette" | flowey v 3 'artifact_publish_from_aarch64-linux-musl-pipette' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-musl-tmk_vmm" + echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-musl-tmk_vmm" | flowey v 3 'artifact_publish_from_aarch64-linux-musl-tmk_vmm' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-tpm_guest_tests" + echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-tpm_guest_tests" | flowey v 3 'artifact_publish_from_aarch64-linux-tpm_guest_tests' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-tmks" + echo "$AgentTempDirNormal/publish_artifacts/aarch64-tmks" | flowey v 3 'artifact_publish_from_aarch64-tmks' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-guest_test_uefi" + echo "$AgentTempDirNormal/publish_artifacts/x64-guest_test_uefi" | flowey v 3 'artifact_publish_from_x64-guest_test_uefi' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-musl-pipette" + echo "$AgentTempDirNormal/publish_artifacts/x64-linux-musl-pipette" | flowey v 3 'artifact_publish_from_x64-linux-musl-pipette' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-musl-tmk_vmm" + echo "$AgentTempDirNormal/publish_artifacts/x64-linux-musl-tmk_vmm" | flowey v 3 'artifact_publish_from_x64-linux-musl-tmk_vmm' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-tpm_guest_tests" + echo "$AgentTempDirNormal/publish_artifacts/x64-linux-tpm_guest_tests" | flowey v 3 'artifact_publish_from_x64-linux-tpm_guest_tests' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-tmks" + echo "$AgentTempDirNormal/publish_artifacts/x64-tmks" | flowey v 3 'artifact_publish_from_x64-tmks' --is-raw-string update shell: bash - name: add default cargo home to path - run: flowey.exe e 3 flowey_lib_common::install_rust 0 + run: flowey e 3 flowey_lib_common::install_rust 0 shell: bash - name: install Rust - run: flowey.exe e 3 flowey_lib_common::install_rust 1 + run: flowey e 3 flowey_lib_common::install_rust 1 shell: bash - name: detect active toolchain run: |- - flowey.exe e 3 flowey_lib_common::install_rust 2 - flowey.exe e 3 flowey_lib_common::cfg_cargo_common_flags 0 + flowey e 3 flowey_lib_common::install_rust 2 + flowey e 3 flowey_lib_common::cfg_cargo_common_flags 0 shell: bash - name: check if openvmm needs to be cloned run: |- - flowey.exe e 3 flowey_lib_common::git_checkout 0 - flowey.exe 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 - flowey.exe v 3 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION + flowey e 3 flowey_lib_common::git_checkout 0 + 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 + flowey v 3 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION shell: bash - id: flowey_lib_common__git_checkout__1 uses: actions/checkout@v6 @@ -5585,204 +5817,258 @@ jobs: if: ${{ fromJSON(env.FLOWEY_CONDITION) }} - name: report cloned repo directories run: |- - flowey.exe v 3 'flowey_lib_common::git_checkout:4:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.workspace <> "$GITHUB_PATH" + rustup show + if: runner.os == 'Linux' + name: rustup (Linux) + shell: bash + - run: | + set -x + curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init + ./rustup-init.exe -y --default-toolchain=1.95.0 + echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH + if: runner.os == 'Windows' && runner.arch == 'X64' + name: rustup (Windows X64) + shell: bash + - run: | + set -x + curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init + ./rustup-init.exe -y --default-toolchain=1.95.0 + echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH + if: runner.os == 'Windows' && runner.arch == 'ARM64' + name: rustup (Windows ARM64) + shell: bash + - uses: actions/checkout@v6 with: - name: _internal-flowey-bootstrap-x86_64-linux-uid-1 - path: ${{ runner.temp }}/used_artifacts/_internal-flowey-bootstrap-x86_64-linux-uid-1/ - - run: echo "${{ runner.temp }}/used_artifacts/_internal-flowey-bootstrap-x86_64-linux-uid-1" >> $GITHUB_PATH + path: flowey_bootstrap + - name: Build flowey + run: | + set -x + CARGO_INCREMENTAL=0 cargo build -p flowey_hvlite --target x86_64-pc-windows-msvc --profile flowey-ci + OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') + mkdir -p "$OutDirNormal" + mv ./.github/workflows/openvmm-pr.yaml "$OutDirNormal/pipeline.yaml" + mv target/x86_64-pc-windows-msvc/flowey-ci/flowey_hvlite.exe "$OutDirNormal/flowey.exe" + working-directory: flowey_bootstrap + shell: bash + - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH shell: bash name: πŸŒΌπŸ“¦ Add flowey to PATH + - name: πŸŒΌπŸ”Ž Self-check YAML + run: |- + ESCAPED_AGENT_TEMPDIR=$( + cat <<'EOF' | sed 's/\\/\\\\/g' + ${{ runner.temp }} + EOF + ) + flowey.exe pipeline github --runtime $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out .github/workflows/openvmm-pr.yaml ci checkin-gates --config=pr + shell: bash - name: πŸŒΌπŸ›« Initialize job run: | AgentTempDirNormal="${{ runner.temp }}" AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV - chmod +x $AgentTempDirNormal/used_artifacts/_internal-flowey-bootstrap-x86_64-linux-uid-1/flowey + chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe - echo '"debug"' | flowey v 6 'FLOWEY_LOG' update - echo "${{ runner.temp }}/work" | flowey v 6 '_internal_WORKING_DIR' --is-raw-string update + echo '"debug"' | flowey.exe v 6 'FLOWEY_LOG' update + echo "${{ runner.temp }}/work" | flowey.exe v 6 '_internal_WORKING_DIR' --is-raw-string update - cat <<'EOF' | flowey v 6 'verbose' update + cat <<'EOF' | flowey.exe v 6 'verbose' update ${{ inputs.verbose != '' && inputs.verbose || 'false' }} EOF - mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-guest_test_uefi" - echo "$AgentTempDirNormal/publish_artifacts/aarch64-guest_test_uefi" | flowey v 6 'artifact_publish_from_aarch64-guest_test_uefi' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-igvmfilegen" - echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-igvmfilegen" | flowey v 6 'artifact_publish_from_aarch64-linux-igvmfilegen' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-ohcldiag-dev" - echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-ohcldiag-dev" | flowey v 6 'artifact_publish_from_aarch64-linux-ohcldiag-dev' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-openvmm" - echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-openvmm" | flowey v 6 'artifact_publish_from_aarch64-linux-openvmm' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-openvmm_vhost" - echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-openvmm_vhost" | flowey v 6 'artifact_publish_from_aarch64-linux-openvmm_vhost' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-tpm_guest_tests" - echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-tpm_guest_tests" | flowey v 6 'artifact_publish_from_aarch64-linux-tpm_guest_tests' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-vmgs_lib" - echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-vmgs_lib" | flowey v 6 'artifact_publish_from_aarch64-linux-vmgs_lib' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-vmgstool" - echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-vmgstool" | flowey v 6 'artifact_publish_from_aarch64-linux-vmgstool' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-tmks" - echo "$AgentTempDirNormal/publish_artifacts/aarch64-tmks" | flowey v 6 'artifact_publish_from_aarch64-tmks' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-hypestv" + echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-hypestv" | flowey.exe v 6 'artifact_publish_from_x64-windows-hypestv' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-igvmfilegen" + echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-igvmfilegen" | flowey.exe v 6 'artifact_publish_from_x64-windows-igvmfilegen' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-ohcldiag-dev" + echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-ohcldiag-dev" | flowey.exe v 6 'artifact_publish_from_x64-windows-ohcldiag-dev' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-vmgs_lib" + echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-vmgs_lib" | flowey.exe v 6 'artifact_publish_from_x64-windows-vmgs_lib' --is-raw-string update shell: bash - name: add default cargo home to path - run: flowey e 6 flowey_lib_common::install_rust 0 + run: flowey.exe e 6 flowey_lib_common::install_rust 0 shell: bash - name: install Rust - run: flowey e 6 flowey_lib_common::install_rust 1 + run: flowey.exe e 6 flowey_lib_common::install_rust 1 shell: bash - name: detect active toolchain run: |- - flowey e 6 flowey_lib_common::install_rust 2 - flowey e 6 flowey_lib_common::cfg_cargo_common_flags 0 - shell: bash - - name: checking if packages need to be installed - run: flowey e 6 flowey_lib_common::install_dist_pkg 0 - shell: bash - - name: installing packages - run: flowey e 6 flowey_lib_common::install_dist_pkg 1 + flowey.exe e 6 flowey_lib_common::install_rust 2 + flowey.exe e 6 flowey_lib_common::cfg_cargo_common_flags 0 shell: bash - name: check if openvmm needs to be cloned run: |- - flowey e 6 flowey_lib_common::git_checkout 0 - flowey 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 - flowey v 6 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION + flowey.exe e 6 flowey_lib_common::git_checkout 0 + 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 + 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 shell: bash - id: flowey_lib_common__git_checkout__1 uses: actions/checkout@v6 @@ -6418,23 +6704,23 @@ jobs: if: ${{ fromJSON(env.FLOWEY_CONDITION) }} - name: report cloned repo directories run: |- - flowey v 6 'flowey_lib_common::git_checkout:4:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.workspace <> "$GITHUB_PATH" + rustup show + if: runner.os == 'Linux' + name: rustup (Linux) + shell: bash + - run: | + set -x + curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init + ./rustup-init.exe -y --default-toolchain=1.95.0 + echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH + if: runner.os == 'Windows' && runner.arch == 'X64' + name: rustup (Windows X64) + shell: bash + - run: | + set -x + curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init + ./rustup-init.exe -y --default-toolchain=1.95.0 + echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH + if: runner.os == 'Windows' && runner.arch == 'ARM64' + name: rustup (Windows ARM64) + shell: bash + - uses: actions/checkout@v6 with: - name: _internal-flowey-bootstrap-x86_64-linux-uid-1 - path: ${{ runner.temp }}/used_artifacts/_internal-flowey-bootstrap-x86_64-linux-uid-1/ - - run: echo "${{ runner.temp }}/used_artifacts/_internal-flowey-bootstrap-x86_64-linux-uid-1" >> $GITHUB_PATH + path: flowey_bootstrap + - name: Build flowey + run: | + set -x + CARGO_INCREMENTAL=0 cargo build -p flowey_hvlite --target x86_64-pc-windows-msvc --profile flowey-ci + OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') + mkdir -p "$OutDirNormal" + mv ./.github/workflows/openvmm-pr.yaml "$OutDirNormal/pipeline.yaml" + mv target/x86_64-pc-windows-msvc/flowey-ci/flowey_hvlite.exe "$OutDirNormal/flowey.exe" + working-directory: flowey_bootstrap + shell: bash + - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH + shell: bash + name: πŸŒΌπŸ“¦ Add flowey to PATH + - name: πŸŒΌπŸ”Ž Self-check YAML + run: |- + ESCAPED_AGENT_TEMPDIR=$( + cat <<'EOF' | sed 's/\\/\\\\/g' + ${{ runner.temp }} + EOF + ) + flowey.exe pipeline github --runtime $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out .github/workflows/openvmm-pr.yaml ci checkin-gates --config=pr shell: bash - name: πŸŒΌπŸ“¦ Add flowey to PATH - name: πŸŒΌπŸ›« Initialize job run: | AgentTempDirNormal="${{ runner.temp }}" AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV - chmod +x $AgentTempDirNormal/used_artifacts/_internal-flowey-bootstrap-x86_64-linux-uid-1/flowey + chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe - echo '"debug"' | flowey v 7 'FLOWEY_LOG' update - echo "${{ runner.temp }}/work" | flowey v 7 '_internal_WORKING_DIR' --is-raw-string update + echo '"debug"' | flowey.exe v 7 'FLOWEY_LOG' update + echo "${{ runner.temp }}/work" | flowey.exe v 7 '_internal_WORKING_DIR' --is-raw-string update - cat <<'EOF' | flowey v 7 'verbose' update + cat <<'EOF' | flowey.exe v 7 'verbose' update ${{ inputs.verbose != '' && inputs.verbose || 'false' }} EOF - mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-guest_test_uefi" - echo "$AgentTempDirNormal/publish_artifacts/x64-guest_test_uefi" | flowey v 7 'artifact_publish_from_x64-guest_test_uefi' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-igvmfilegen" - echo "$AgentTempDirNormal/publish_artifacts/x64-linux-igvmfilegen" | flowey v 7 'artifact_publish_from_x64-linux-igvmfilegen' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-ohcldiag-dev" - echo "$AgentTempDirNormal/publish_artifacts/x64-linux-ohcldiag-dev" | flowey v 7 'artifact_publish_from_x64-linux-ohcldiag-dev' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-openvmm" - echo "$AgentTempDirNormal/publish_artifacts/x64-linux-openvmm" | flowey v 7 'artifact_publish_from_x64-linux-openvmm' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-openvmm_vhost" - echo "$AgentTempDirNormal/publish_artifacts/x64-linux-openvmm_vhost" | flowey v 7 'artifact_publish_from_x64-linux-openvmm_vhost' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-tpm_guest_tests" - echo "$AgentTempDirNormal/publish_artifacts/x64-linux-tpm_guest_tests" | flowey v 7 'artifact_publish_from_x64-linux-tpm_guest_tests' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-vmgs_lib" - echo "$AgentTempDirNormal/publish_artifacts/x64-linux-vmgs_lib" | flowey v 7 'artifact_publish_from_x64-linux-vmgs_lib' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-vmgstool" - echo "$AgentTempDirNormal/publish_artifacts/x64-linux-vmgstool" | flowey v 7 'artifact_publish_from_x64-linux-vmgstool' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-vmm-tests-archive" - echo "$AgentTempDirNormal/publish_artifacts/x64-linux-vmm-tests-archive" | flowey v 7 'artifact_publish_from_x64-linux-vmm-tests-archive' --is-raw-string update - mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-tmks" - echo "$AgentTempDirNormal/publish_artifacts/x64-tmks" | flowey v 7 'artifact_publish_from_x64-tmks' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-openvmm" + echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-openvmm" | flowey.exe v 7 'artifact_publish_from_x64-windows-openvmm' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-prep_steps" + echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-prep_steps" | flowey.exe v 7 'artifact_publish_from_x64-windows-prep_steps' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-test_igvm_agent_rpc_server" + 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 + mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-tmk_vmm" + echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-tmk_vmm" | flowey.exe v 7 'artifact_publish_from_x64-windows-tmk_vmm' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-tpm_guest_tests" + 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 + mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-vmgstool" + echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-vmgstool" | flowey.exe v 7 'artifact_publish_from_x64-windows-vmgstool' --is-raw-string update + mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-vmm-tests-archive" + 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 shell: bash - name: add default cargo home to path - run: flowey e 7 flowey_lib_common::install_rust 0 + run: flowey.exe e 7 flowey_lib_common::install_rust 0 shell: bash - name: install Rust - run: flowey e 7 flowey_lib_common::install_rust 1 + run: flowey.exe e 7 flowey_lib_common::install_rust 1 shell: bash - name: detect active toolchain run: |- - flowey e 7 flowey_lib_common::install_rust 2 - flowey e 7 flowey_lib_common::cfg_cargo_common_flags 0 - shell: bash - - name: checking if packages need to be installed - run: flowey e 7 flowey_lib_common::install_dist_pkg 0 - shell: bash - - name: installing packages - run: flowey e 7 flowey_lib_common::install_dist_pkg 1 + flowey.exe e 7 flowey_lib_common::install_rust 2 + flowey.exe e 7 flowey_lib_common::cfg_cargo_common_flags 0 shell: bash - name: check if openvmm needs to be cloned run: |- - flowey e 7 flowey_lib_common::git_checkout 0 - flowey 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 - flowey v 7 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION + flowey.exe e 7 flowey_lib_common::git_checkout 0 + 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 + 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 shell: bash - id: flowey_lib_common__git_checkout__1 uses: actions/checkout@v6 @@ -6719,23 +6931,23 @@ jobs: if: ${{ fromJSON(env.FLOWEY_CONDITION) }} - name: report cloned repo directories run: |- - flowey v 7 'flowey_lib_common::git_checkout:4:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.workspace < "x64", + CommonArch::Aarch64 => "aarch64", + }; + let (pub_pipette_windows, use_pipette_windows) = + pipeline.new_typed_artifact(format!("{arch_tag}-windows-pipette")); + // filter off artifacts required by the VMM tests job + match arch { + CommonArch::X86_64 => { + vmm_tests_artifacts_linux_x86.use_pipette_windows = + Some(use_pipette_windows.clone()); + vmm_tests_artifacts_linux_musl_x86.use_pipette_windows = + Some(use_pipette_windows.clone()); + vmm_tests_artifacts_windows_x86.use_pipette_windows = + Some(use_pipette_windows.clone()); + } + CommonArch::Aarch64 => { + vmm_tests_artifacts_windows_aarch64.use_pipette_windows = + Some(use_pipette_windows.clone()); + } + } + shared_win_pipette_artifacts.push((arch, pub_pipette_windows)); + } + let mut shared_win_job = pipeline + .new_job( + FlowPlatform::Windows, + FlowArch::X86_64, + "build artifacts (shared VMM tests) [windows]", + ) + .gh_set_pool(gh_pools::default_windows()) + .ado_set_pool(ado_pools::default_windows()); + for (arch, pub_pipette_windows) in shared_win_pipette_artifacts { + shared_win_job = shared_win_job.publish(pub_pipette_windows, |pipette| { + flowey_lib_hvlite::build_pipette::Request { + target: CommonTriple::Common { + arch, + platform: CommonPlatform::WindowsMsvc, + }, + profile: CommonProfile::from_release(release), + pipette, + } + }); + } + all_jobs.push(shared_win_job.finish()); + + // Now do linux + // + // Create the per-arch artifacts up front so that we don't try to + // mutably borrow `pipeline` while the job builder also holds a + // mutable borrow. + let mut shared_linux_artifacts = Vec::new(); + for arch in [CommonArch::Aarch64, CommonArch::X86_64] { + let arch_tag = match arch { + CommonArch::X86_64 => "x64", + CommonArch::Aarch64 => "aarch64", + }; + + let (pub_tpm_guest_tests, use_tpm_guest_tests) = + pipeline.new_typed_artifact(format!("{arch_tag}-linux-tpm_guest_tests")); + let (pub_guest_test_uefi, use_guest_test_uefi) = + pipeline.new_typed_artifact(format!("{arch_tag}-guest_test_uefi")); + let (pub_pipette_linux_musl, use_pipette_linux_musl) = + pipeline.new_typed_artifact(format!("{arch_tag}-linux-musl-pipette")); + let (pub_tmk_vmm, use_tmk_vmm) = + pipeline.new_typed_artifact(format!("{arch_tag}-linux-musl-tmk_vmm")); + let (pub_tmks, use_tmks) = pipeline.new_typed_artifact(format!("{arch_tag}-tmks")); + + match arch { + CommonArch::X86_64 => { + vmm_tests_artifacts_linux_x86.use_guest_test_uefi = + Some(use_guest_test_uefi.clone()); + vmm_tests_artifacts_windows_x86.use_guest_test_uefi = + Some(use_guest_test_uefi.clone()); + vmm_tests_artifacts_windows_x86.use_tmks = Some(use_tmks.clone()); + vmm_tests_artifacts_linux_x86.use_tmks = Some(use_tmks.clone()); + vmm_tests_artifacts_windows_x86.use_tpm_guest_tests_linux = + Some(use_tpm_guest_tests.clone()); + vmm_tests_artifacts_linux_musl_x86.use_guest_test_uefi = + Some(use_guest_test_uefi.clone()); + vmm_tests_artifacts_linux_musl_x86.use_tmks = Some(use_tmks.clone()); + vmm_tests_artifacts_windows_x86.use_pipette_linux_musl = + Some(use_pipette_linux_musl.clone()); + vmm_tests_artifacts_linux_x86.use_pipette_linux_musl = + Some(use_pipette_linux_musl.clone()); + vmm_tests_artifacts_linux_x86.use_tmk_vmm = Some(use_tmk_vmm.clone()); + vmm_tests_artifacts_windows_x86.use_tmk_vmm_linux_musl = + Some(use_tmk_vmm.clone()); + vmm_tests_artifacts_linux_musl_x86.use_pipette_linux_musl = + Some(use_pipette_linux_musl.clone()); + vmm_tests_artifacts_linux_musl_x86.use_tmk_vmm = Some(use_tmk_vmm.clone()); + } + CommonArch::Aarch64 => { + vmm_tests_artifacts_windows_aarch64.use_guest_test_uefi = + Some(use_guest_test_uefi.clone()); + vmm_tests_artifacts_windows_aarch64.use_tmks = Some(use_tmks.clone()); + vmm_tests_artifacts_windows_aarch64.use_pipette_linux_musl = + Some(use_pipette_linux_musl.clone()); + vmm_tests_artifacts_windows_aarch64.use_tmk_vmm_linux_musl = + Some(use_tmk_vmm.clone()); + } + } + + shared_linux_artifacts.push(( + arch, + pub_tpm_guest_tests, + pub_guest_test_uefi, + pub_pipette_linux_musl, + pub_tmk_vmm, + pub_tmks, + )); + } + + let mut shared_linux_job = pipeline + .new_job( + FlowPlatform::Linux(FlowPlatformLinuxDistro::Ubuntu), + FlowArch::X86_64, + "build artifacts (shared VMM tests) [linux]", + ) + .gh_set_pool(gh_pools::default_linux()) + .ado_set_pool(ado_pools::default_linux()); + for ( + arch, + pub_tpm_guest_tests, + pub_guest_test_uefi, + pub_pipette_linux_musl, + pub_tmk_vmm, + pub_tmks, + ) in shared_linux_artifacts + { + shared_linux_job = shared_linux_job + .publish(pub_guest_test_uefi, |guest_test_uefi| { + flowey_lib_hvlite::build_guest_test_uefi::Request { + arch, + profile: CommonProfile::from_release(release), + guest_test_uefi, + } + }) + .publish(pub_tmks, |tmks| flowey_lib_hvlite::build_tmks::Request { + arch, + profile: CommonProfile::from_release(release), + tmks, + }) + .publish(pub_tpm_guest_tests, |tpm_guest_tests| { + flowey_lib_hvlite::build_tpm_guest_tests::Request { + target: CommonTriple::Common { + arch, + platform: CommonPlatform::LinuxGnu, + }, + profile: CommonProfile::from_release(release), + tpm_guest_tests, + } + }) + .publish(pub_pipette_linux_musl, |pipette| { + flowey_lib_hvlite::build_pipette::Request { + target: CommonTriple::Common { + arch, + platform: CommonPlatform::LinuxMusl, + }, + profile: CommonProfile::from_release(release), + pipette, + } + }) + .publish(pub_tmk_vmm, |tmk_vmm| { + flowey_lib_hvlite::build_tmk_vmm::Request { + target: CommonTriple::Common { + arch, + platform: CommonPlatform::LinuxMusl, + }, + profile: CommonProfile::from_release(release), + unstable_whp: false, + tmk_vmm, + } + }); + } + + all_jobs.push(shared_linux_job.finish()); + // emit windows build machine jobs // // In order to ensure we start running VMM tests as soon as possible, we emit @@ -320,9 +508,6 @@ impl IntoPipeline for CheckinGatesCli { let (pub_openvmm, use_openvmm) = pipeline.new_typed_artifact(format!("{arch_tag}-windows-openvmm")); - let (pub_pipette_windows, use_pipette_windows) = - pipeline.new_typed_artifact(format!("{arch_tag}-windows-pipette")); - let (pub_tmk_vmm, use_tmk_vmm) = pipeline.new_typed_artifact(format!("{arch_tag}-windows-tmk_vmm")); @@ -341,13 +526,7 @@ impl IntoPipeline for CheckinGatesCli { // filter off interesting artifacts required by the VMM tests job match arch { CommonArch::X86_64 => { - vmm_tests_artifacts_linux_x86.use_pipette_windows = - Some(use_pipette_windows.clone()); - vmm_tests_artifacts_linux_musl_x86.use_pipette_windows = - Some(use_pipette_windows.clone()); vmm_tests_artifacts_windows_x86.use_openvmm = Some(use_openvmm.clone()); - vmm_tests_artifacts_windows_x86.use_pipette_windows = - Some(use_pipette_windows.clone()); vmm_tests_artifacts_windows_x86.use_tmk_vmm = Some(use_tmk_vmm.clone()); vmm_tests_artifacts_windows_x86.use_prep_steps = Some(use_prep_steps.clone()); vmm_tests_artifacts_windows_x86.use_vmgstool = Some(use_vmgstool.clone()); @@ -358,8 +537,6 @@ impl IntoPipeline for CheckinGatesCli { } CommonArch::Aarch64 => { vmm_tests_artifacts_windows_aarch64.use_openvmm = Some(use_openvmm.clone()); - vmm_tests_artifacts_windows_aarch64.use_pipette_windows = - Some(use_pipette_windows.clone()); vmm_tests_artifacts_windows_aarch64.use_tmk_vmm = Some(use_tmk_vmm.clone()); vmm_tests_artifacts_windows_aarch64.use_vmgstool = Some(use_vmgstool.clone()); } @@ -470,16 +647,6 @@ impl IntoPipeline for CheckinGatesCli { openvmm, } }) - .publish(pub_pipette_windows, |pipette| { - flowey_lib_hvlite::build_pipette::Request { - target: CommonTriple::Common { - arch, - platform: CommonPlatform::WindowsMsvc, - }, - profile: CommonProfile::from_release(release), - pipette, - } - }) .publish(pub_tmk_vmm, |tmk_vmm| { flowey_lib_hvlite::build_tmk_vmm::Request { target: CommonTriple::Common { @@ -583,18 +750,13 @@ impl IntoPipeline for CheckinGatesCli { pipeline.new_typed_artifact(format!("{arch_tag}-linux-vmgstool")); let (pub_ohcldiag_dev, _) = pipeline.new_typed_artifact(format!("{arch_tag}-linux-ohcldiag-dev")); - let (pub_tmks, use_tmks) = pipeline.new_typed_artifact(format!("{arch_tag}-tmks")); - let (pub_tpm_guest_tests, use_tpm_guest_tests) = - pipeline.new_typed_artifact(format!("{arch_tag}-linux-tpm_guest_tests")); - - // NOTE: the choice to build it as part of this linux job was pretty - // arbitrary. It could just as well hang off the windows job. - // - // At this time though, having it here results in a net-reduction in - // E2E pipeline times, owing to how the VMM tests artifact dependency - // graph looks like. - let (pub_guest_test_uefi, use_guest_test_uefi) = - pipeline.new_typed_artifact(format!("{arch_tag}-guest_test_uefi")); + // Also build openvmm and openvmm_vhost for musl on this job, + // alongside pipette and tmk_vmm. This enables running VMM tests + // on Azure Linux (MSHV) runners which have an older glibc. + let (pub_openvmm_musl, use_openvmm_musl) = + pipeline.new_typed_artifact(format!("{arch_tag}-linux-musl-openvmm")); + let (pub_openvmm_vhost_musl, use_openvmm_vhost_musl) = + pipeline.new_typed_artifact(format!("{arch_tag}-linux-musl-openvmm_vhost")); // skim off interesting artifacts required by the VMM tests job match arch { @@ -602,24 +764,11 @@ impl IntoPipeline for CheckinGatesCli { vmm_tests_artifacts_linux_x86.use_openvmm = Some(use_openvmm.clone()); vmm_tests_artifacts_linux_x86.use_openvmm_vhost = Some(use_openvmm_vhost.clone()); - vmm_tests_artifacts_linux_x86.use_guest_test_uefi = - Some(use_guest_test_uefi.clone()); - vmm_tests_artifacts_windows_x86.use_guest_test_uefi = - Some(use_guest_test_uefi.clone()); - vmm_tests_artifacts_windows_x86.use_tmks = Some(use_tmks.clone()); - vmm_tests_artifacts_linux_x86.use_tmks = Some(use_tmks.clone()); - vmm_tests_artifacts_windows_x86.use_tpm_guest_tests_linux = - Some(use_tpm_guest_tests.clone()); - // arch-neutral artifacts for musl MSHV test job - vmm_tests_artifacts_linux_musl_x86.use_guest_test_uefi = - Some(use_guest_test_uefi.clone()); - vmm_tests_artifacts_linux_musl_x86.use_tmks = Some(use_tmks.clone()); - } - CommonArch::Aarch64 => { - vmm_tests_artifacts_windows_aarch64.use_guest_test_uefi = - Some(use_guest_test_uefi.clone()); - vmm_tests_artifacts_windows_aarch64.use_tmks = Some(use_tmks.clone()); + vmm_tests_artifacts_linux_musl_x86.use_openvmm = Some(use_openvmm_musl.clone()); + vmm_tests_artifacts_linux_musl_x86.use_openvmm_vhost = + Some(use_openvmm_vhost_musl.clone()); } + CommonArch::Aarch64 => {} } let vmgstool_target = CommonTriple::Common { @@ -633,11 +782,12 @@ impl IntoPipeline for CheckinGatesCli { anyhow::bail!("multiple vmgstools for the same target"); } + // Emit a job for building dependencies used by just linux vmm tests let mut job = pipeline .new_job( FlowPlatform::Linux(FlowPlatformLinuxDistro::Ubuntu), FlowArch::X86_64, - format!("build artifacts [{arch_tag}-linux]"), + format!("build artifacts (for VMM tests) [{arch_tag}-linux]"), ) .gh_set_pool(gh_pools::default_linux()) .ado_set_pool(ado_pools::default_linux()) @@ -710,42 +860,64 @@ impl IntoPipeline for CheckinGatesCli { ohcldiag_dev, } }) - .publish(pub_guest_test_uefi, |guest_test_uefi| { - flowey_lib_hvlite::build_guest_test_uefi::Request { - arch, - profile: CommonProfile::from_release(release), - guest_test_uefi, + .publish(pub_openvmm_musl, |openvmm| { + flowey_lib_hvlite::build_openvmm::Request { + params: flowey_lib_hvlite::build_openvmm::OpenvmmBuildParams { + target: CommonTriple::Common { + arch, + platform: CommonPlatform::LinuxMusl, + }, + profile: CommonProfile::from_release(release), + features: [flowey_lib_hvlite::build_openvmm::OpenvmmFeature::Tpm] + .into(), + }, + openvmm, } }) - .publish(pub_tmks, |tmks| flowey_lib_hvlite::build_tmks::Request { - arch, - profile: CommonProfile::from_release(release), - tmks, - }) - .publish(pub_tpm_guest_tests, |tpm_guest_tests| { - flowey_lib_hvlite::build_tpm_guest_tests::Request { - target: CommonTriple::Common { - arch, - platform: CommonPlatform::LinuxGnu, + .publish(pub_openvmm_vhost_musl, |openvmm_vhost| { + flowey_lib_hvlite::build_openvmm_vhost::Request { + params: flowey_lib_hvlite::build_openvmm_vhost::OpenvmmVhostBuildParams { + target: CommonTriple::Common { + arch, + platform: CommonPlatform::LinuxMusl, + }, + profile: CommonProfile::from_release(release), }, - profile: CommonProfile::from_release(release), - tpm_guest_tests, + openvmm_vhost, } }); // Hang building the linux VMM tests off this big linux job. - // // No ARM64 VMM tests yet if matches!(arch, CommonArch::X86_64) { let pub_vmm_tests_archive_linux_x86 = pub_vmm_tests_archive_linux_x86.take().unwrap(); - job = job.publish(pub_vmm_tests_archive_linux_x86, |archive| flowey_lib_hvlite::build_nextest_vmm_tests::Request { - target: CommonTriple::X86_64_LINUX_GNU.as_triple(), - profile: CommonProfile::from_release(release), - build_mode: flowey_lib_hvlite::build_nextest_vmm_tests::BuildNextestVmmTestsMode::Archive( - archive, - ), - }); + let pub_vmm_tests_archive_linux_musl_x86 = + pub_vmm_tests_archive_linux_musl_x86.take().unwrap(); + + job = job.publish(pub_vmm_tests_archive_linux_x86, |archive| { + flowey_lib_hvlite::build_nextest_vmm_tests::Request { + target: CommonTriple::Common { + arch, + platform: CommonPlatform::LinuxGnu, + }.as_triple(), + profile: CommonProfile::from_release(release), + build_mode: flowey_lib_hvlite::build_nextest_vmm_tests::BuildNextestVmmTestsMode::Archive( + archive, + ), + } + }).publish(pub_vmm_tests_archive_linux_musl_x86, |archive| { + flowey_lib_hvlite::build_nextest_vmm_tests::Request { + target: CommonTriple::Common { + arch, + platform: CommonPlatform::LinuxMusl, + }.as_triple(), + profile: CommonProfile::from_release(release), + build_mode: flowey_lib_hvlite::build_nextest_vmm_tests::BuildNextestVmmTestsMode::Archive( + archive, + ), + } + }); } all_jobs.push(job.finish()); @@ -777,58 +949,15 @@ impl IntoPipeline for CheckinGatesCli { (None, None) }; - // also build pipette musl on this job, as until we land the - // refactor that allows building musl without the full openhcl - // toolchain, it would require pulling in all the openhcl - // toolchain deps... - let (pub_pipette_linux_musl, use_pipette_linux_musl) = - pipeline.new_typed_artifact(format!("{arch_tag}-linux-musl-pipette")); - - let (pub_tmk_vmm, use_tmk_vmm) = - pipeline.new_typed_artifact(format!("{arch_tag}-linux-musl-tmk_vmm")); - - // Also build openvmm and openvmm_vhost for musl on this job, - // alongside pipette and tmk_vmm. This enables running VMM tests - // on Azure Linux (MSHV) runners which have an older glibc. - // Only needed for x86_64 (the MSHV test job is x64-only). - let (pub_openvmm_musl, use_openvmm_musl) = matches!(arch, CommonArch::X86_64) - .then(|| pipeline.new_typed_artifact(format!("{arch_tag}-linux-musl-openvmm"))) - .unzip(); - let (pub_openvmm_vhost_musl, use_openvmm_vhost_musl) = - matches!(arch, CommonArch::X86_64) - .then(|| { - pipeline.new_typed_artifact(format!("{arch_tag}-linux-musl-openvmm_vhost")) - }) - .unzip(); - // skim off interesting artifacts required by the VMM tests job match arch { CommonArch::X86_64 => { vmm_tests_artifacts_windows_x86.use_openhcl_igvm_files = Some(use_openhcl_igvm.clone()); - vmm_tests_artifacts_windows_x86.use_pipette_linux_musl = - Some(use_pipette_linux_musl.clone()); - vmm_tests_artifacts_linux_x86.use_pipette_linux_musl = - Some(use_pipette_linux_musl.clone()); - vmm_tests_artifacts_linux_x86.use_tmk_vmm = Some(use_tmk_vmm.clone()); - vmm_tests_artifacts_windows_x86.use_tmk_vmm_linux_musl = - Some(use_tmk_vmm.clone()); - // musl artifacts for MSHV test job - vmm_tests_artifacts_linux_musl_x86.use_openvmm = - Some(use_openvmm_musl.clone().unwrap()); - vmm_tests_artifacts_linux_musl_x86.use_openvmm_vhost = - Some(use_openvmm_vhost_musl.clone().unwrap()); - vmm_tests_artifacts_linux_musl_x86.use_pipette_linux_musl = - Some(use_pipette_linux_musl.clone()); - vmm_tests_artifacts_linux_musl_x86.use_tmk_vmm = Some(use_tmk_vmm.clone()); } CommonArch::Aarch64 => { vmm_tests_artifacts_windows_aarch64.use_openhcl_igvm_files = Some(use_openhcl_igvm.clone()); - vmm_tests_artifacts_windows_aarch64.use_pipette_linux_musl = - Some(use_pipette_linux_musl.clone()); - vmm_tests_artifacts_windows_aarch64.use_tmk_vmm_linux_musl = - Some(use_tmk_vmm.clone()); } } let igvm_recipes = match arch { @@ -848,7 +977,7 @@ impl IntoPipeline for CheckinGatesCli { }; let build_openhcl_job_tag = |arch_tag| format!("build openhcl [{arch_tag}-linux]"); - let mut job = pipeline + let job = pipeline .new_job( FlowPlatform::Linux(FlowPlatformLinuxDistro::Ubuntu), FlowArch::X86_64, @@ -880,68 +1009,7 @@ impl IntoPipeline for CheckinGatesCli { artifact_openhcl_verify_size_baseline: publish_baseline_artifact, done: ctx.new_done_handle(), } - }) - .publish(pub_pipette_linux_musl, |pipette| { - flowey_lib_hvlite::build_pipette::Request { - target: CommonTriple::Common { - arch, - platform: CommonPlatform::LinuxMusl, - }, - profile: CommonProfile::from_release(release), - pipette, - } - }) - .publish(pub_tmk_vmm, |tmk_vmm| { - flowey_lib_hvlite::build_tmk_vmm::Request { - target: CommonTriple::Common { - arch, - platform: CommonPlatform::LinuxMusl, - }, - profile: CommonProfile::from_release(release), - unstable_whp: false, - tmk_vmm, - } - }); - - // Build musl openvmm, openvmm_vhost, and VMM tests archive on the - // OpenHCL x86 job only (the MSHV test job is x64-only). - if let (Some(pub_openvmm_musl), Some(pub_openvmm_vhost_musl)) = - (pub_openvmm_musl, pub_openvmm_vhost_musl) - { - job = job - .dep_on(|ctx| flowey_lib_hvlite::build_openvmm::Request { - params: flowey_lib_hvlite::build_openvmm::OpenvmmBuildParams { - target: CommonTriple::Common { - arch, - platform: CommonPlatform::LinuxMusl, - }, - profile: CommonProfile::from_release(release), - features: [flowey_lib_hvlite::build_openvmm::OpenvmmFeature::Tpm] - .into(), - }, - openvmm: ctx.publish_typed_artifact(pub_openvmm_musl), - }) - .dep_on(|ctx| flowey_lib_hvlite::build_openvmm_vhost::Request { - params: flowey_lib_hvlite::build_openvmm_vhost::OpenvmmVhostBuildParams { - target: CommonTriple::Common { - arch, - platform: CommonPlatform::LinuxMusl, - }, - profile: CommonProfile::from_release(release), - }, - openvmm_vhost: ctx.publish_typed_artifact(pub_openvmm_vhost_musl), - }); - - let pub_vmm_tests_archive_linux_musl_x86 = - pub_vmm_tests_archive_linux_musl_x86.take().unwrap(); - job = job.dep_on(|ctx| flowey_lib_hvlite::build_nextest_vmm_tests::Request { - target: CommonTriple::X86_64_LINUX_MUSL.as_triple(), - profile: CommonProfile::from_release(release), - build_mode: flowey_lib_hvlite::build_nextest_vmm_tests::BuildNextestVmmTestsMode::Archive( - ctx.publish_typed_artifact(pub_vmm_tests_archive_linux_musl_x86), - ), }); - } all_jobs.push(job.finish()); @@ -956,8 +1024,8 @@ impl IntoPipeline for CheckinGatesCli { format!("verify openhcl binary size [{}]", arch_tag), ) .gh_set_pool(gh_pools::linux_x64_gh()) - .side_effect( - |done| flowey_lib_hvlite::_jobs::check_openvmm_hcl_size::Request { + .side_effect(|done| { + flowey_lib_hvlite::_jobs::check_openvmm_hcl_size::Request { target: CommonTriple::Common { arch, platform: CommonPlatform::LinuxMusl, @@ -965,10 +1033,9 @@ impl IntoPipeline for CheckinGatesCli { done, pipeline_name: "openvmm-ci.yaml".into(), job_name: build_openhcl_job_tag(arch_tag), - }, - ) - .finish(); - all_jobs.push(job); + } + }); + all_jobs.push(job.finish()); } } @@ -1484,9 +1551,8 @@ impl IntoPipeline for CheckinGatesCli { base_recipe: OpenhclIgvmRecipe::X64, done, } - }) - .finish(); - all_jobs.push(job); + }); + all_jobs.push(job.finish()); } } diff --git a/flowey/flowey_lib_hvlite/src/build_openhcl_boot.rs b/flowey/flowey_lib_hvlite/src/build_openhcl_boot.rs index 82bb91da91..87ae836dc5 100644 --- a/flowey/flowey_lib_hvlite/src/build_openhcl_boot.rs +++ b/flowey/flowey_lib_hvlite/src/build_openhcl_boot.rs @@ -40,7 +40,6 @@ impl FlowNode for Node { fn imports(ctx: &mut ImportCtx<'_>) { ctx.import::(); - ctx.import::(); } fn emit(requests: Vec, ctx: &mut NodeCtx<'_>) -> anyhow::Result<()> { @@ -73,21 +72,6 @@ impl FlowNode for Node { OpenhclBootBuildProfile::Release => BuildProfile::BootRelease, }; - let mut pre_build_deps = Vec::new(); - - // TODO: install build tools for other platforms - if matches!( - ctx.platform(), - FlowPlatform::Linux(FlowPlatformLinuxDistro::Ubuntu) - ) { - pre_build_deps.push(ctx.reqv(|v| { - flowey_lib_common::install_dist_pkg::Request::Install { - package_names: vec!["build-essential".into()], - done: v, - } - })); - } - let output = ctx.reqv(|v| crate::run_cargo_build::Request { crate_name: "openhcl_boot".into(), out_name: "openhcl_boot".into(), @@ -101,7 +85,7 @@ impl FlowNode for Node { .into_iter() .collect(), )), - pre_build_deps, + pre_build_deps: Vec::new(), output: v, }); diff --git a/flowey/flowey_lib_hvlite/src/build_openvmm.rs b/flowey/flowey_lib_hvlite/src/build_openvmm.rs index c8722fbcdc..40c07ad231 100644 --- a/flowey/flowey_lib_hvlite/src/build_openvmm.rs +++ b/flowey/flowey_lib_hvlite/src/build_openvmm.rs @@ -69,7 +69,7 @@ impl FlowNode for Node { ) { pre_build_deps.push(ctx.reqv(|v| { flowey_lib_common::install_dist_pkg::Request::Install { - package_names: vec!["libssl-dev".into(), "build-essential".into()], + package_names: vec!["libssl-dev".into(), "pkg-config".into()], done: v, } })); diff --git a/flowey/flowey_lib_hvlite/src/build_openvmm_hcl.rs b/flowey/flowey_lib_hvlite/src/build_openvmm_hcl.rs index ac7965cc29..0b468961f2 100644 --- a/flowey/flowey_lib_hvlite/src/build_openvmm_hcl.rs +++ b/flowey/flowey_lib_hvlite/src/build_openvmm_hcl.rs @@ -84,7 +84,6 @@ impl FlowNode for Node { fn imports(ctx: &mut ImportCtx<'_>) { ctx.import::(); ctx.import::(); - ctx.import::(); } fn emit(requests: Vec, ctx: &mut NodeCtx<'_>) -> anyhow::Result<()> { @@ -124,20 +123,7 @@ impl FlowNode for Node { .reqv(|v| crate::init_openvmm_magicpath_openhcl_sysroot::Request { arch, path: v }); // required due to ambient dependencies in openvmm_hcl's source code - pre_build_deps.push(openhcl_deps_path.clone().into_side_effect()); - - // TODO: install build tools for other platforms - if matches!( - ctx.platform(), - FlowPlatform::Linux(FlowPlatformLinuxDistro::Ubuntu) - ) { - pre_build_deps.push(ctx.reqv(|v| { - flowey_lib_common::install_dist_pkg::Request::Install { - package_names: vec!["build-essential".into()], - done: v, - } - })); - } + pre_build_deps.push(openhcl_deps_path.into_side_effect()); let mut features = features .into_iter() diff --git a/flowey/flowey_lib_hvlite/src/build_sidecar.rs b/flowey/flowey_lib_hvlite/src/build_sidecar.rs index 61b8edc8d2..60393cbbdd 100644 --- a/flowey/flowey_lib_hvlite/src/build_sidecar.rs +++ b/flowey/flowey_lib_hvlite/src/build_sidecar.rs @@ -40,7 +40,6 @@ impl FlowNode for Node { fn imports(ctx: &mut ImportCtx<'_>) { ctx.import::(); - ctx.import::(); } fn emit(requests: Vec, ctx: &mut NodeCtx<'_>) -> anyhow::Result<()> { @@ -73,21 +72,6 @@ impl FlowNode for Node { SidecarBuildProfile::Release => BuildProfile::BootRelease, }; - let mut pre_build_deps = Vec::new(); - - // TODO: install build tools for other platforms - if matches!( - ctx.platform(), - FlowPlatform::Linux(FlowPlatformLinuxDistro::Ubuntu) - ) { - pre_build_deps.push(ctx.reqv(|v| { - flowey_lib_common::install_dist_pkg::Request::Install { - package_names: vec!["build-essential".into()], - done: v, - } - })); - } - let output = ctx.reqv(|v| crate::run_cargo_build::Request { crate_name: "sidecar".into(), out_name: "sidecar".into(), @@ -101,7 +85,7 @@ impl FlowNode for Node { .into_iter() .collect(), )), - pre_build_deps, + pre_build_deps: Vec::new(), output: v, }); diff --git a/flowey/flowey_lib_hvlite/src/install_openvmm_rust_build_essential.rs b/flowey/flowey_lib_hvlite/src/install_openvmm_rust_build_essential.rs index 335a5c66c4..0abc2dac47 100644 --- a/flowey/flowey_lib_hvlite/src/install_openvmm_rust_build_essential.rs +++ b/flowey/flowey_lib_hvlite/src/install_openvmm_rust_build_essential.rs @@ -22,6 +22,7 @@ impl FlowNode for Node { ctx.import::(); ctx.import::(); ctx.import::(); + ctx.import::(); } fn emit(requests: Vec, ctx: &mut NodeCtx<'_>) -> anyhow::Result<()> { @@ -29,12 +30,26 @@ impl FlowNode for Node { return Ok(()); } - let side_effects = [ + let mut side_effects = vec![ ctx.reqv(crate::init_openvmm_cargo_config_deny_warnings::Request::Done), ctx.reqv(crate::init_openvmm_magicpath_protoc::Request), ctx.reqv(flowey_lib_common::install_rust::Request::EnsureInstalled), ]; + // On Ubuntu, we need the `build-essential` package to ensure that + // the system has a working linker. + if matches!( + ctx.platform(), + FlowPlatform::Linux(FlowPlatformLinuxDistro::Ubuntu) + ) { + side_effects.push(ctx.reqv(|v| { + flowey_lib_common::install_dist_pkg::Request::Install { + package_names: vec!["build-essential".into()], + done: v, + } + })); + } + ctx.emit_side_effect_step(side_effects, requests.into_iter().map(|x| x.0)); Ok(())