##############################
# THIS FILE IS AUTOGENERATED #
#    DO NOT MANUALLY EDIT    #
##############################
name: '[Optional] OpenVMM Release PR'
on:
  workflow_dispatch:
    inputs:
      verbose:
        description: Run with verbose output
        default: false
        required: false
        type: boolean
  pull_request:
    branches:
    - main
    - release/*
    types:
    - opened
    - synchronize
    - reopened
    - ready_for_review
    - labeled
concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true
jobs:
  job0:
    name: quick check [fmt, clippy x64-linux]
    runs-on:
    - self-hosted
    - 1ES.Pool=openvmm-gh-amd-westus3
    - 1ES.ImageOverride=ubuntu2404-amd64
    - JobId=job0-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}
    permissions:
      contents: read
      id-token: write
    if: contains(github.event.pull_request.labels.*.name, 'release-ci-required') && github.event.pull_request.draft == false
    steps:
    - run: |
        set -x
        i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
        sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
        curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.95.0 -y
        . "$HOME/.cargo/env"
        echo "$HOME/.cargo/bin" >> "$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-release.yaml "$OutDirNormal/pipeline.yaml"
        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
      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-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

        echo '"debug"' | flowey v 0 'FLOWEY_LOG' update
        echo "${{ runner.temp }}/work" | flowey v 0 '_internal_WORKING_DIR' --is-raw-string update

        cat <<'EOF' | flowey v 0 'verbose' update
        ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
        EOF
      shell: bash
    - name: check if openvmm needs to be cloned
      run: |-
        flowey e 0 flowey_lib_common::git_checkout 0
        flowey v 0 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:489:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46 write-to-env github floweyvar1
        flowey v 0 '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 0 'flowey_lib_common::git_checkout:4:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.workspace <<EOF
        ${{ github.workspace }}
        EOF
        flowey e 0 flowey_lib_common::git_checkout 3
        flowey e 0 flowey_lib_hvlite::git_checkout_openvmm_repo 0
      shell: bash
    - name: add default cargo home to path
      run: flowey e 0 flowey_lib_common::install_rust 0
      shell: bash
    - name: install Rust
      run: flowey e 0 flowey_lib_common::install_rust 1
      shell: bash
    - name: detect active toolchain
      run: |-
        flowey e 0 flowey_lib_common::install_rust 2
        flowey e 0 flowey_lib_common::cfg_cargo_common_flags 0
      shell: bash
    - name: set '-Dwarnings' in .cargo/config.toml
      run: flowey e 0 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
      shell: bash
    - name: create gh-release-download cache dir
      run: flowey e 0 flowey_lib_common::download_gh_release 0
      shell: bash
    - name: Pre-processing cache vars
      run: |-
        flowey e 0 flowey_lib_common::cache 0
        flowey v 0 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar2
        flowey v 0 '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
      with:
        key: ${{ env.floweyvar2 }}
        path: ${{ env.floweyvar3 }}
      name: 'Restore cache: gh-release-download'
    - name: download artifacts from github releases
      run: |-
        flowey v 0 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__1.outputs.cache-hit <<EOF
        ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
        EOF
        flowey e 0 flowey_lib_common::cache 2
        flowey e 0 flowey_lib_common::download_gh_release 1
      shell: bash
    - name: checking if packages need to be installed
      run: flowey e 0 flowey_lib_common::install_dist_pkg 0
      shell: bash
    - name: installing packages
      run: flowey e 0 flowey_lib_common::install_dist_pkg 1
      shell: bash
    - name: unpack protoc
      run: |-
        flowey e 0 flowey_lib_common::resolve_protoc 0
        flowey e 0 flowey_lib_hvlite::cfg_openvmm_magicpath 0
      shell: bash
    - name: symlink protoc
      run: |-
        flowey e 0 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
        flowey e 0 flowey_lib_hvlite::init_cross_build 2
      shell: bash
    - name: cargo build xtask
      run: |-
        flowey e 0 flowey_lib_common::run_cargo_build 1
        flowey e 0 flowey_lib_hvlite::run_cargo_build 2
      shell: bash
    - name: split debug symbols
      run: |-
        flowey e 0 flowey_lib_hvlite::run_split_debug_info 0
        flowey e 0 flowey_lib_hvlite::run_cargo_build 3
        flowey e 0 flowey_lib_hvlite::build_xtask 1
      shell: bash
    - name: run xtask fmt
      run: |-
        flowey e 0 flowey_lib_hvlite::_jobs::check_xtask_fmt 0
        flowey e 0 flowey_lib_hvlite::init_cross_build 0
      shell: bash
    - name: cargo clippy
      run: |-
        flowey e 0 flowey_lib_common::run_cargo_clippy 1
        flowey e 0 flowey_lib_hvlite::init_cross_build 1
      shell: bash
    - name: cargo build xtask
      run: |-
        flowey e 0 flowey_lib_common::run_cargo_build 0
        flowey e 0 flowey_lib_hvlite::run_cargo_build 0
      shell: bash
    - name: split debug symbols
      run: |-
        flowey e 0 flowey_lib_hvlite::run_split_debug_info 1
        flowey e 0 flowey_lib_hvlite::run_cargo_build 1
        flowey e 0 flowey_lib_hvlite::build_xtask 0
      shell: bash
    - name: determine clippy exclusions
      run: flowey e 0 flowey_lib_hvlite::_jobs::check_clippy 0
      shell: bash
    - name: cargo clippy
      run: flowey e 0 flowey_lib_common::run_cargo_clippy 0
      shell: bash
    - name: cargo clippy
      run: flowey e 0 flowey_lib_common::run_cargo_clippy 2
      shell: bash
    - name: cargo clippy
      run: flowey e 0 flowey_lib_common::run_cargo_clippy 4
      shell: bash
    - name: cargo clippy
      run: flowey e 0 flowey_lib_common::run_cargo_clippy 3
      shell: bash
    - name: 'validate cache entry: gh-release-download'
      run: flowey e 0 flowey_lib_common::cache 3
      shell: bash
    - name: 🌼🧼 Redact bootstrap var db
      run: rm $AgentTempDirNormal/bootstrapped-flowey/job0.json
      shell: bash
    - name: 🌼🥾 Publish bootstrapped flowey
      uses: actions/upload-artifact@v7
      with:
        name: _internal-flowey-bootstrap-x86_64-linux-uid-1
        path: ${{ runner.temp }}/bootstrapped-flowey
  job1:
    name: xtask fmt (windows)
    runs-on: windows-latest
    permissions:
      contents: read
      id-token: write
    needs:
    - job0
    if: contains(github.event.pull_request.labels.*.name, 'release-ci-required') && github.event.pull_request.draft == false
    steps:
    - run: |
        set -x
        i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
        sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
        curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.95.0 -y
        . "$HOME/.cargo/env"
        echo "$HOME/.cargo/bin" >> "$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 1 'FLOWEY_LOG' update
        echo "${{ runner.temp }}/work" | flowey.exe v 1 '_internal_WORKING_DIR' --is-raw-string update

        cat <<'EOF' | flowey.exe v 1 'verbose' update
        ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
        EOF
      shell: bash
    - name: check if openvmm needs to be cloned
      run: |-
        flowey.exe e 1 flowey_lib_common::git_checkout 0
        flowey.exe v 1 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:489:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46 write-to-env github floweyvar1
        flowey.exe v 1 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION
      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 1 'flowey_lib_common::git_checkout:4:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.workspace <<EOF
        ${{ github.workspace }}
        EOF
        flowey.exe e 1 flowey_lib_common::git_checkout 3
        flowey.exe e 1 flowey_lib_hvlite::git_checkout_openvmm_repo 0
      shell: bash
    - name: add default cargo home to path
      run: flowey.exe e 1 flowey_lib_common::install_rust 0
      shell: bash
    - name: install Rust
      run: flowey.exe e 1 flowey_lib_common::install_rust 1
      shell: bash
    - name: detect active toolchain
      run: |-
        flowey.exe e 1 flowey_lib_common::install_rust 2
        flowey.exe e 1 flowey_lib_common::cfg_cargo_common_flags 0
      shell: bash
    - name: set '-Dwarnings' in .cargo/config.toml
      run: flowey.exe e 1 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
      shell: bash
    - name: create gh-release-download cache dir
      run: flowey.exe e 1 flowey_lib_common::download_gh_release 0
      shell: bash
    - name: Pre-processing cache vars
      run: |-
        flowey.exe e 1 flowey_lib_common::cache 0
        flowey.exe v 1 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar2
        flowey.exe v 1 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar3
      shell: bash
    - id: flowey_lib_common__cache__1
      uses: actions/cache@v5
      with:
        key: ${{ env.floweyvar2 }}
        path: ${{ env.floweyvar3 }}
      name: 'Restore cache: gh-release-download'
    - name: download artifacts from github releases
      run: |-
        flowey.exe v 1 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__1.outputs.cache-hit <<EOF
        ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
        EOF
        flowey.exe e 1 flowey_lib_common::cache 2
        flowey.exe e 1 flowey_lib_common::download_gh_release 1
      shell: bash
    - name: unpack protoc
      run: |-
        flowey.exe e 1 flowey_lib_common::resolve_protoc 0
        flowey.exe e 1 flowey_lib_hvlite::cfg_openvmm_magicpath 0
      shell: bash
    - name: symlink protoc
      run: |-
        flowey.exe e 1 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
        flowey.exe e 1 flowey_lib_hvlite::init_cross_build 0
      shell: bash
    - name: cargo build xtask
      run: |-
        flowey.exe e 1 flowey_lib_common::run_cargo_build 0
        flowey.exe e 1 flowey_lib_hvlite::run_cargo_build 0
        flowey.exe e 1 flowey_lib_hvlite::build_xtask 0
      shell: bash
    - name: run xtask fmt
      run: flowey.exe e 1 flowey_lib_hvlite::_jobs::check_xtask_fmt 0
      shell: bash
    - name: 'validate cache entry: gh-release-download'
      run: flowey.exe e 1 flowey_lib_common::cache 3
      shell: bash
  job10:
    name: build openhcl [aarch64-linux]
    runs-on:
    - self-hosted
    - 1ES.Pool=openvmm-gh-amd-westus3
    - 1ES.ImageOverride=ubuntu2404-amd64
    - JobId=job10-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}
    permissions:
      contents: read
      id-token: write
    needs:
    - job0
    if: contains(github.event.pull_request.labels.*.name, 'release-ci-required') && github.event.pull_request.draft == false
    steps:
    - 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: 🌼🛫 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 10 'FLOWEY_LOG' update
        echo "${{ runner.temp }}/work" | flowey v 10 '_internal_WORKING_DIR' --is-raw-string 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 <<EOF
        ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
        EOF
        flowey e 10 flowey_lib_common::cache 2
        flowey e 10 flowey_lib_common::download_gh_release 1
      shell: bash
    - name: unpack mu_msvm package (aarch64)
      run: flowey e 10 flowey_lib_hvlite::download_uefi_mu_msvm 0
      shell: bash
    - name: add default cargo home to path
      run: flowey e 10 flowey_lib_common::install_rust 0
      shell: bash
    - name: install Rust
      run: flowey e 10 flowey_lib_common::install_rust 1
      shell: bash
    - name: detect active toolchain
      run: |-
        flowey e 10 flowey_lib_common::install_rust 2
        flowey e 10 flowey_lib_common::cfg_cargo_common_flags 0
      shell: bash
    - name: check if openvmm needs to be cloned
      run: |-
        flowey e 10 flowey_lib_common::git_checkout 0
        flowey v 10 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:489:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46 write-to-env github floweyvar3
        flowey v 10 '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.floweyvar3 }}
      name: checkout repo openvmm
      if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
    - name: report cloned repo directories
      run: |-
        flowey v 10 'flowey_lib_common::git_checkout:4:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.workspace <<EOF
        ${{ github.workspace }}
        EOF
        flowey e 10 flowey_lib_common::git_checkout 3
        flowey e 10 flowey_lib_hvlite::git_checkout_openvmm_repo 0
      shell: bash
    - name: set '-Dwarnings' in .cargo/config.toml
      run: flowey e 10 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
      shell: bash
    - name: unpack protoc
      run: |-
        flowey e 10 flowey_lib_common::resolve_protoc 0
        flowey e 10 flowey_lib_hvlite::cfg_openvmm_magicpath 0
      shell: bash
    - name: symlink protoc
      run: |-
        flowey e 10 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
        flowey e 10 flowey_lib_hvlite::init_cross_build 0
        flowey e 10 flowey_lib_hvlite::run_cargo_build 2
        flowey e 10 flowey_lib_hvlite::run_cargo_build 3
      shell: bash
    - name: cargo build openhcl_boot
      run: |-
        flowey e 10 flowey_lib_common::run_cargo_build 1
        flowey e 10 flowey_lib_hvlite::run_cargo_build 4
      shell: bash
    - name: split debug symbols
      run: |-
        flowey e 10 flowey_lib_hvlite::run_split_debug_info 2
        flowey e 10 flowey_lib_hvlite::run_cargo_build 5
        flowey e 10 flowey_lib_hvlite::build_openhcl_boot 0
      shell: bash
    - name: extract and resolve kernel package
      run: |-
        flowey e 10 flowey_lib_hvlite::resolve_openhcl_kernel_package 1
        flowey e 10 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 17
      shell: bash
    - name: unpack openvmm-deps archive
      run: flowey e 10 flowey_lib_hvlite::resolve_openvmm_deps 0
      shell: bash
    - name: extract Aarch64 sysroot.tar.gz
      run: |-
        flowey e 10 flowey_lib_hvlite::init_openvmm_magicpath_openhcl_sysroot 0
        flowey e 10 flowey_lib_hvlite::init_cross_build 1
      shell: bash
    - name: cargo build openvmm_hcl
      run: |-
        flowey e 10 flowey_lib_common::run_cargo_build 2
        flowey e 10 flowey_lib_hvlite::run_cargo_build 6
        flowey e 10 flowey_lib_hvlite::build_openvmm_hcl 0
        flowey e 10 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 13
      shell: bash
    - name: split debug symbols
      run: |-
        flowey e 10 flowey_lib_hvlite::run_split_debug_info 1
        flowey e 10 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 14
        flowey e 10 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 15
        flowey e 10 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 18
      shell: bash
    - name: building openhcl initrd
      run: |-
        flowey e 10 flowey_lib_hvlite::build_openhcl_initrd 1
        flowey e 10 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 19
        flowey e 10 flowey_lib_hvlite::init_cross_build 2
      shell: bash
    - name: cargo build igvmfilegen
      run: |-
        flowey e 10 flowey_lib_common::run_cargo_build 0
        flowey e 10 flowey_lib_hvlite::run_cargo_build 0
      shell: bash
    - name: split debug symbols
      run: |-
        flowey e 10 flowey_lib_hvlite::run_split_debug_info 3
        flowey e 10 flowey_lib_hvlite::run_cargo_build 1
        flowey e 10 flowey_lib_hvlite::build_igvmfilegen 0
        flowey e 10 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 20
        flowey e 10 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 21
      shell: bash
    - name: building igvm file
      run: |-
        flowey e 10 flowey_lib_hvlite::run_igvmfilegen 1
        flowey e 10 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 2
        flowey e 10 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 6
      shell: bash
    - name: extract and resolve kernel package
      run: |-
        flowey e 10 flowey_lib_hvlite::resolve_openhcl_kernel_package 0
        flowey e 10 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 2
      shell: bash
    - name: split debug symbols
      run: |-
        flowey e 10 flowey_lib_hvlite::run_split_debug_info 0
        flowey e 10 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 3
        flowey e 10 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 4
        flowey e 10 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 7
      shell: bash
    - name: building openhcl initrd
      run: |-
        flowey e 10 flowey_lib_hvlite::build_openhcl_initrd 0
        flowey e 10 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 8
        flowey e 10 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 9
        flowey e 10 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 10
      shell: bash
    - name: building igvm file
      run: |-
        flowey e 10 flowey_lib_hvlite::run_igvmfilegen 0
        flowey e 10 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 0
        flowey e 10 flowey_lib_hvlite::artifact_openhcl_igvm_from_recipe::publish 0
      shell: bash
    - name: copying OpenHCL igvm files to artifact dir
      run: |-
        flowey e 10 flowey_lib_common::copy_to_artifact_dir 1
        flowey e 10 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 11
        flowey e 10 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 16
        flowey e 10 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 12
        flowey e 10 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 3
        flowey e 10 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 5
        flowey e 10 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 1
        flowey e 10 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 0
        flowey e 10 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 1
        flowey e 10 flowey_lib_hvlite::artifact_openhcl_igvm_from_recipe_extras::publish 0
      shell: bash
    - name: copying OpenHCL igvm extras to artifact dir
      run: flowey e 10 flowey_lib_common::copy_to_artifact_dir 0
      shell: bash
    - name: 'validate cache entry: gh-release-download'
      run: flowey e 10 flowey_lib_common::cache 3
      shell: bash
    - name: 🌼📦 Publish aarch64-openhcl-igvm
      uses: actions/upload-artifact@v7
      with:
        name: aarch64-openhcl-igvm
        path: ${{ runner.temp }}/publish_artifacts/aarch64-openhcl-igvm/
        include-hidden-files: true
    - name: 🌼📦 Publish aarch64-openhcl-igvm-extras
      uses: actions/upload-artifact@v7
      with:
        name: aarch64-openhcl-igvm-extras
        path: ${{ runner.temp }}/publish_artifacts/aarch64-openhcl-igvm-extras/
        include-hidden-files: true
  job11:
    name: build openhcl [x64-linux]
    runs-on:
    - self-hosted
    - 1ES.Pool=openvmm-gh-amd-westus3
    - 1ES.ImageOverride=ubuntu2404-amd64
    - JobId=job11-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}
    permissions:
      contents: read
      id-token: write
    needs:
    - job0
    if: contains(github.event.pull_request.labels.*.name, 'release-ci-required') && github.event.pull_request.draft == false
    steps:
    - 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: 🌼🛫 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 11 'FLOWEY_LOG' update
        echo "${{ runner.temp }}/work" | flowey v 11 '_internal_WORKING_DIR' --is-raw-string update

        cat <<'EOF' | flowey v 11 '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 11 '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 11 'artifact_publish_from_x64-openhcl-igvm-extras' --is-raw-string update
      shell: bash
    - name: checking if packages need to be installed
      run: flowey e 11 flowey_lib_common::install_dist_pkg 0
      shell: bash
    - name: installing packages
      run: flowey e 11 flowey_lib_common::install_dist_pkg 1
      shell: bash
    - name: create gh-release-download cache dir
      run: flowey e 11 flowey_lib_common::download_gh_release 0
      shell: bash
    - name: Pre-processing cache vars
      run: |-
        flowey e 11 flowey_lib_common::cache 0
        flowey v 11 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar1
        flowey v 11 '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 11 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__1.outputs.cache-hit <<EOF
        ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
        EOF
        flowey e 11 flowey_lib_common::cache 2
        flowey e 11 flowey_lib_common::download_gh_release 1
      shell: bash
    - name: unpack mu_msvm package (x64)
      run: flowey e 11 flowey_lib_hvlite::download_uefi_mu_msvm 0
      shell: bash
    - name: add default cargo home to path
      run: flowey e 11 flowey_lib_common::install_rust 0
      shell: bash
    - name: install Rust
      run: flowey e 11 flowey_lib_common::install_rust 1
      shell: bash
    - name: detect active toolchain
      run: |-
        flowey e 11 flowey_lib_common::install_rust 2
        flowey e 11 flowey_lib_common::cfg_cargo_common_flags 0
      shell: bash
    - name: check if openvmm needs to be cloned
      run: |-
        flowey e 11 flowey_lib_common::git_checkout 0
        flowey v 11 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:489:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46 write-to-env github floweyvar3
        flowey v 11 '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.floweyvar3 }}
      name: checkout repo openvmm
      if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
    - name: report cloned repo directories
      run: |-
        flowey v 11 'flowey_lib_common::git_checkout:4:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.workspace <<EOF
        ${{ github.workspace }}
        EOF
        flowey e 11 flowey_lib_common::git_checkout 3
        flowey e 11 flowey_lib_hvlite::git_checkout_openvmm_repo 0
      shell: bash
    - name: set '-Dwarnings' in .cargo/config.toml
      run: flowey e 11 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
      shell: bash
    - name: unpack protoc
      run: |-
        flowey e 11 flowey_lib_common::resolve_protoc 0
        flowey e 11 flowey_lib_hvlite::cfg_openvmm_magicpath 0
      shell: bash
    - name: symlink protoc
      run: |-
        flowey e 11 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
        flowey e 11 flowey_lib_hvlite::init_cross_build 0
        flowey e 11 flowey_lib_hvlite::run_cargo_build 7
        flowey e 11 flowey_lib_hvlite::run_cargo_build 8
      shell: bash
    - name: cargo build sidecar
      run: |-
        flowey e 11 flowey_lib_common::run_cargo_build 3
        flowey e 11 flowey_lib_hvlite::run_cargo_build 9
      shell: bash
    - name: split debug symbols
      run: |-
        flowey e 11 flowey_lib_hvlite::run_split_debug_info 6
        flowey e 11 flowey_lib_hvlite::run_cargo_build 10
        flowey e 11 flowey_lib_hvlite::build_sidecar 0
        flowey e 11 flowey_lib_hvlite::init_cross_build 1
        flowey e 11 flowey_lib_hvlite::run_cargo_build 2
        flowey e 11 flowey_lib_hvlite::run_cargo_build 3
      shell: bash
    - name: cargo build openhcl_boot
      run: |-
        flowey e 11 flowey_lib_common::run_cargo_build 1
        flowey e 11 flowey_lib_hvlite::run_cargo_build 4
      shell: bash
    - name: split debug symbols
      run: |-
        flowey e 11 flowey_lib_hvlite::run_split_debug_info 5
        flowey e 11 flowey_lib_hvlite::run_cargo_build 5
        flowey e 11 flowey_lib_hvlite::build_openhcl_boot 0
      shell: bash
    - name: extract and resolve kernel package
      run: |-
        flowey e 11 flowey_lib_hvlite::resolve_openhcl_kernel_package 2
        flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 28
      shell: bash
    - name: unpack openvmm-deps archive
      run: flowey e 11 flowey_lib_hvlite::resolve_openvmm_deps 0
      shell: bash
    - name: extract X86_64 sysroot.tar.gz
      run: |-
        flowey e 11 flowey_lib_hvlite::init_openvmm_magicpath_openhcl_sysroot 0
        flowey e 11 flowey_lib_hvlite::init_cross_build 3
      shell: bash
    - name: cargo build openvmm_hcl
      run: |-
        flowey e 11 flowey_lib_common::run_cargo_build 2
        flowey e 11 flowey_lib_hvlite::run_cargo_build 6
        flowey e 11 flowey_lib_hvlite::build_openvmm_hcl 0
        flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 24
      shell: bash
    - name: split debug symbols
      run: |-
        flowey e 11 flowey_lib_hvlite::run_split_debug_info 4
        flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 25
        flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 26
        flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 29
      shell: bash
    - name: building openhcl initrd
      run: |-
        flowey e 11 flowey_lib_hvlite::build_openhcl_initrd 4
        flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 30
        flowey e 11 flowey_lib_hvlite::init_cross_build 2
      shell: bash
    - name: cargo build igvmfilegen
      run: |-
        flowey e 11 flowey_lib_common::run_cargo_build 0
        flowey e 11 flowey_lib_hvlite::run_cargo_build 0
      shell: bash
    - name: split debug symbols
      run: |-
        flowey e 11 flowey_lib_hvlite::run_split_debug_info 7
        flowey e 11 flowey_lib_hvlite::run_cargo_build 1
        flowey e 11 flowey_lib_hvlite::build_igvmfilegen 0
        flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 31
        flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 32
      shell: bash
    - name: building igvm file
      run: |-
        flowey e 11 flowey_lib_hvlite::run_igvmfilegen 4
        flowey e 11 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 2
        flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 39
        flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 35
      shell: bash
    - name: split debug symbols
      run: |-
        flowey e 11 flowey_lib_hvlite::run_split_debug_info 0
        flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 36
        flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 37
        flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 40
      shell: bash
    - name: extract and resolve kernel package
      run: flowey e 11 flowey_lib_hvlite::resolve_openhcl_kernel_package 0
      shell: bash
    - name: building openhcl initrd
      run: flowey e 11 flowey_lib_hvlite::build_openhcl_initrd 0
      shell: bash
    - name: unpack openvmm-test-linux archives
      run: flowey e 11 flowey_lib_hvlite::resolve_openvmm_test_linux_kernel 0
      shell: bash
    - name: unpack openvmm-test-initrd archives
      run: |-
        flowey e 11 flowey_lib_hvlite::resolve_openvmm_test_initrd 0
        flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 41
        flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 42
        flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 43
      shell: bash
    - name: building igvm file
      run: |-
        flowey e 11 flowey_lib_hvlite::run_igvmfilegen 0
        flowey e 11 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 4
        flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 50
        flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 46
      shell: bash
    - name: split debug symbols
      run: |-
        flowey e 11 flowey_lib_hvlite::run_split_debug_info 1
        flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 47
        flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 48
        flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 51
      shell: bash
    - name: building openhcl initrd
      run: |-
        flowey e 11 flowey_lib_hvlite::build_openhcl_initrd 1
        flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 52
        flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 53
        flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 54
      shell: bash
    - name: building igvm file
      run: |-
        flowey e 11 flowey_lib_hvlite::run_igvmfilegen 1
        flowey e 11 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 6
      shell: bash
    - name: extract and resolve kernel package
      run: |-
        flowey e 11 flowey_lib_hvlite::resolve_openhcl_kernel_package 1
        flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 17
        flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 13
      shell: bash
    - name: split debug symbols
      run: |-
        flowey e 11 flowey_lib_hvlite::run_split_debug_info 3
        flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 14
        flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 15
        flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 18
      shell: bash
    - name: building openhcl initrd
      run: |-
        flowey e 11 flowey_lib_hvlite::build_openhcl_initrd 3
        flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 19
        flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 20
        flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 21
      shell: bash
    - name: building igvm file
      run: |-
        flowey e 11 flowey_lib_hvlite::run_igvmfilegen 3
        flowey e 11 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 8
        flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 6
        flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 2
      shell: bash
    - name: split debug symbols
      run: |-
        flowey e 11 flowey_lib_hvlite::run_split_debug_info 2
        flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 3
        flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 4
        flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 7
      shell: bash
    - name: building openhcl initrd
      run: |-
        flowey e 11 flowey_lib_hvlite::build_openhcl_initrd 2
        flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 8
        flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 9
        flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 10
      shell: bash
    - name: building igvm file
      run: |-
        flowey e 11 flowey_lib_hvlite::run_igvmfilegen 2
        flowey e 11 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 0
        flowey e 11 flowey_lib_hvlite::artifact_openhcl_igvm_from_recipe::publish 0
      shell: bash
    - name: copying OpenHCL igvm files to artifact dir
      run: |-
        flowey e 11 flowey_lib_common::copy_to_artifact_dir 1
        flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 22
        flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 27
        flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 23
        flowey e 11 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 3
        flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 38
        flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 34
        flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 33
        flowey e 11 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 5
        flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 49
        flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 45
        flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 44
        flowey e 11 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 7
        flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 16
        flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 12
        flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 11
        flowey e 11 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 9
        flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 5
        flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 1
        flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 0
        flowey e 11 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 1
        flowey e 11 flowey_lib_hvlite::artifact_openhcl_igvm_from_recipe_extras::publish 0
      shell: bash
    - name: copying OpenHCL igvm extras to artifact dir
      run: flowey e 11 flowey_lib_common::copy_to_artifact_dir 0
      shell: bash
    - name: 'validate cache entry: gh-release-download'
      run: flowey e 11 flowey_lib_common::cache 3
      shell: bash
    - name: 🌼📦 Publish x64-openhcl-igvm
      uses: actions/upload-artifact@v7
      with:
        name: x64-openhcl-igvm
        path: ${{ runner.temp }}/publish_artifacts/x64-openhcl-igvm/
        include-hidden-files: true
    - name: 🌼📦 Publish x64-openhcl-igvm-extras
      uses: actions/upload-artifact@v7
      with:
        name: x64-openhcl-igvm-extras
        path: ${{ runner.temp }}/publish_artifacts/x64-openhcl-igvm-extras/
        include-hidden-files: true
  job12:
    name: build openhcl (mi-secure) [x64-linux]
    runs-on:
    - self-hosted
    - 1ES.Pool=openvmm-gh-amd-westus3
    - 1ES.ImageOverride=ubuntu2404-amd64
    - JobId=job12-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}
    permissions:
      contents: read
      id-token: write
    needs:
    - job0
    if: contains(github.event.pull_request.labels.*.name, 'release-ci-required') && github.event.pull_request.draft == false
    steps:
    - 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: 🌼🛫 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 12 'FLOWEY_LOG' update
        echo "${{ runner.temp }}/work" | flowey v 12 '_internal_WORKING_DIR' --is-raw-string update

        cat <<'EOF' | flowey v 12 '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 12 '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 12 'artifact_publish_from_x64-mi-secure-openhcl-igvm-extras' --is-raw-string update
      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 <<EOF
        ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
        EOF
        flowey e 12 flowey_lib_common::cache 2
        flowey e 12 flowey_lib_common::download_gh_release 1
      shell: bash
    - name: unpack openvmm-test-linux archives
      run: flowey e 12 flowey_lib_hvlite::resolve_openvmm_test_linux_kernel 0
      shell: bash
    - name: unpack openvmm-test-initrd archives
      run: flowey e 12 flowey_lib_hvlite::resolve_openvmm_test_initrd 0
      shell: bash
    - name: add default cargo home to path
      run: flowey e 12 flowey_lib_common::install_rust 0
      shell: bash
    - name: install Rust
      run: flowey 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
      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 floweyvar3
        flowey 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.floweyvar3 }}
      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 <<EOF
        ${{ github.workspace }}
        EOF
        flowey e 12 flowey_lib_common::git_checkout 3
        flowey e 12 flowey_lib_hvlite::git_checkout_openvmm_repo 0
      shell: bash
    - name: set '-Dwarnings' in .cargo/config.toml
      run: flowey e 12 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
      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: unpack protoc
      run: |-
        flowey e 12 flowey_lib_common::resolve_protoc 0
        flowey e 12 flowey_lib_hvlite::cfg_openvmm_magicpath 0
      shell: bash
    - name: symlink protoc
      run: |-
        flowey e 12 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
        flowey e 12 flowey_lib_hvlite::init_cross_build 0
        flowey e 12 flowey_lib_hvlite::run_cargo_build 7
        flowey e 12 flowey_lib_hvlite::run_cargo_build 8
      shell: bash
    - name: cargo build sidecar
      run: |-
        flowey e 12 flowey_lib_common::run_cargo_build 3
        flowey e 12 flowey_lib_hvlite::run_cargo_build 9
      shell: bash
    - name: split debug symbols
      run: |-
        flowey e 12 flowey_lib_hvlite::run_split_debug_info 4
        flowey e 12 flowey_lib_hvlite::run_cargo_build 10
        flowey e 12 flowey_lib_hvlite::build_sidecar 0
        flowey e 12 flowey_lib_hvlite::init_cross_build 1
        flowey e 12 flowey_lib_hvlite::run_cargo_build 2
        flowey e 12 flowey_lib_hvlite::run_cargo_build 3
      shell: bash
    - name: cargo build openhcl_boot
      run: |-
        flowey e 12 flowey_lib_common::run_cargo_build 1
        flowey e 12 flowey_lib_hvlite::run_cargo_build 4
      shell: bash
    - name: split debug symbols
      run: |-
        flowey e 12 flowey_lib_hvlite::run_split_debug_info 3
        flowey e 12 flowey_lib_hvlite::run_cargo_build 5
        flowey e 12 flowey_lib_hvlite::build_openhcl_boot 0
      shell: bash
    - name: extract and resolve kernel package
      run: |-
        flowey e 12 flowey_lib_hvlite::resolve_openhcl_kernel_package 0
        flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 28
      shell: bash
    - name: unpack openvmm-deps archive
      run: flowey e 12 flowey_lib_hvlite::resolve_openvmm_deps 0
      shell: bash
    - name: extract X86_64 sysroot.tar.gz
      run: |-
        flowey e 12 flowey_lib_hvlite::init_openvmm_magicpath_openhcl_sysroot 0
        flowey e 12 flowey_lib_hvlite::init_cross_build 3
      shell: bash
    - name: cargo build openvmm_hcl
      run: |-
        flowey e 12 flowey_lib_common::run_cargo_build 2
        flowey e 12 flowey_lib_hvlite::run_cargo_build 6
        flowey e 12 flowey_lib_hvlite::build_openvmm_hcl 0
        flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 24
      shell: bash
    - name: split debug symbols
      run: |-
        flowey e 12 flowey_lib_hvlite::run_split_debug_info 2
        flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 25
        flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 26
        flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 29
      shell: bash
    - name: building openhcl initrd
      run: |-
        flowey e 12 flowey_lib_hvlite::build_openhcl_initrd 2
        flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 30
        flowey e 12 flowey_lib_hvlite::init_cross_build 2
      shell: bash
    - name: cargo build igvmfilegen
      run: |-
        flowey e 12 flowey_lib_common::run_cargo_build 0
        flowey e 12 flowey_lib_hvlite::run_cargo_build 0
      shell: bash
    - name: split debug symbols
      run: |-
        flowey e 12 flowey_lib_hvlite::run_split_debug_info 5
        flowey e 12 flowey_lib_hvlite::run_cargo_build 1
        flowey e 12 flowey_lib_hvlite::build_igvmfilegen 0
        flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 31
        flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 32
      shell: bash
    - name: building igvm file
      run: |-
        flowey e 12 flowey_lib_hvlite::run_igvmfilegen 2
        flowey e 12 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 2
      shell: bash
    - name: unpack mu_msvm package (x64)
      run: flowey e 12 flowey_lib_hvlite::download_uefi_mu_msvm 0
      shell: bash
    - name: extract and resolve kernel package
      run: |-
        flowey e 12 flowey_lib_hvlite::resolve_openhcl_kernel_package 1
        flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 17
        flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 13
      shell: bash
    - name: split debug symbols
      run: |-
        flowey e 12 flowey_lib_hvlite::run_split_debug_info 1
        flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 14
        flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 15
        flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 18
      shell: bash
    - name: building openhcl initrd
      run: |-
        flowey e 12 flowey_lib_hvlite::build_openhcl_initrd 1
        flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 19
        flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 20
        flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 21
      shell: bash
    - name: building igvm file
      run: |-
        flowey e 12 flowey_lib_hvlite::run_igvmfilegen 1
        flowey e 12 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 4
        flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 6
        flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 2
      shell: bash
    - name: split debug symbols
      run: |-
        flowey e 12 flowey_lib_hvlite::run_split_debug_info 0
        flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 3
        flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 4
        flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 7
      shell: bash
    - name: building openhcl initrd
      run: |-
        flowey e 12 flowey_lib_hvlite::build_openhcl_initrd 0
        flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 8
        flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 9
        flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 10
      shell: bash
    - name: building igvm file
      run: |-
        flowey e 12 flowey_lib_hvlite::run_igvmfilegen 0
        flowey e 12 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 0
        flowey e 12 flowey_lib_hvlite::artifact_openhcl_igvm_from_recipe::publish 0
      shell: bash
    - name: copying OpenHCL igvm files to artifact dir
      run: |-
        flowey e 12 flowey_lib_common::copy_to_artifact_dir 1
        flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 22
        flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 27
        flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 23
        flowey e 12 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 3
        flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 16
        flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 12
        flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 11
        flowey e 12 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 5
        flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 5
        flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 1
        flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 0
        flowey e 12 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 1
        flowey e 12 flowey_lib_hvlite::artifact_openhcl_igvm_from_recipe_extras::publish 0
      shell: bash
    - name: copying OpenHCL igvm extras to artifact dir
      run: flowey e 12 flowey_lib_common::copy_to_artifact_dir 0
      shell: bash
    - name: 'validate cache entry: gh-release-download'
      run: flowey e 12 flowey_lib_common::cache 3
      shell: bash
    - name: 🌼📦 Publish x64-mi-secure-openhcl-igvm
      uses: actions/upload-artifact@v7
      with:
        name: x64-mi-secure-openhcl-igvm
        path: ${{ runner.temp }}/publish_artifacts/x64-mi-secure-openhcl-igvm/
        include-hidden-files: true
    - name: 🌼📦 Publish x64-mi-secure-openhcl-igvm-extras
      uses: actions/upload-artifact@v7
      with:
        name: x64-mi-secure-openhcl-igvm-extras
        path: ${{ runner.temp }}/publish_artifacts/x64-mi-secure-openhcl-igvm-extras/
        include-hidden-files: true
  job13:
    name: clippy [x64-windows], unit tests [x64-windows]
    runs-on:
    - self-hosted
    - 1ES.Pool=openvmm-gh-amd-westus3
    - 1ES.ImageOverride=win-amd64
    - JobId=job13-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}
    permissions:
      contents: read
      id-token: write
    needs:
    - job0
    if: contains(github.event.pull_request.labels.*.name, 'release-ci-required') && github.event.pull_request.draft == false
    steps:
    - run: |
        set -x
        i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
        sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
        curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.95.0 -y
        . "$HOME/.cargo/env"
        echo "$HOME/.cargo/bin" >> "$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 13 'FLOWEY_LOG' update
        echo "${{ runner.temp }}/work" | flowey.exe v 13 '_internal_WORKING_DIR' --is-raw-string update

        cat <<'EOF' | flowey.exe 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
      shell: bash
    - name: install Rust
      run: flowey.exe 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
      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 floweyvar8
        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
      shell: bash
    - id: flowey_lib_common__git_checkout__1
      uses: actions/checkout@v6
      with:
        fetch-depth: '1'
        path: repo0
        persist-credentials: ${{ env.floweyvar8 }}
      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 <<EOF
        ${{ github.workspace }}
        EOF
        flowey.exe e 13 flowey_lib_common::git_checkout 3
        flowey.exe e 13 flowey_lib_hvlite::git_checkout_openvmm_repo 0
      shell: bash
    - name: set '-Dwarnings' in .cargo/config.toml
      run: flowey.exe e 13 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
      shell: bash
    - name: create gh-release-download cache dir
      run: flowey.exe e 13 flowey_lib_common::download_gh_release 0
      shell: bash
    - name: Pre-processing cache vars
      run: |-
        flowey.exe e 13 flowey_lib_common::cache 4
        flowey.exe v 13 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar6
        flowey.exe v 13 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar7
      shell: bash
    - id: flowey_lib_common__cache__5
      uses: actions/cache@v5
      with:
        key: ${{ env.floweyvar6 }}
        path: ${{ env.floweyvar7 }}
      name: 'Restore cache: gh-release-download'
    - name: download artifacts from github releases
      run: |-
        flowey.exe v 13 'flowey_lib_common::cache:12:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__5.outputs.cache-hit <<EOF
        ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
        EOF
        flowey.exe e 13 flowey_lib_common::cache 6
        flowey.exe e 13 flowey_lib_common::download_gh_release 1
      shell: bash
    - name: unpack protoc
      run: |-
        flowey.exe e 13 flowey_lib_common::resolve_protoc 0
        flowey.exe e 13 flowey_lib_hvlite::cfg_openvmm_magicpath 0
      shell: bash
    - name: symlink protoc
      run: |-
        flowey.exe e 13 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
        flowey.exe e 13 flowey_lib_hvlite::init_cross_build 0
        flowey.exe e 13 flowey_lib_hvlite::init_cross_build 2
      shell: bash
    - name: cargo build xtask
      run: |-
        flowey.exe e 13 flowey_lib_common::run_cargo_build 0
        flowey.exe e 13 flowey_lib_hvlite::run_cargo_build 0
        flowey.exe e 13 flowey_lib_hvlite::build_xtask 0
      shell: bash
    - name: determine clippy exclusions
      run: flowey.exe e 13 flowey_lib_hvlite::_jobs::check_clippy 0
      shell: bash
    - name: cargo clippy
      run: flowey.exe e 13 flowey_lib_common::run_cargo_clippy 0
      shell: bash
    - name: cargo clippy
      run: flowey.exe e 13 flowey_lib_common::run_cargo_clippy 1
      shell: bash
    - name: cargo clippy
      run: flowey.exe e 13 flowey_lib_common::run_cargo_clippy 2
      shell: bash
    - name: create cargo-nextest cache dir
      run: |-
        flowey.exe e 13 flowey_lib_common::download_cargo_nextest 0
        flowey.exe e 13 flowey_lib_common::download_cargo_nextest 1
        flowey.exe e 13 flowey_lib_common::download_cargo_nextest 2
        flowey.exe e 13 flowey_lib_common::download_cargo_nextest 3
      shell: bash
    - name: Pre-processing cache vars
      run: |-
        flowey.exe e 13 flowey_lib_common::cache 0
        flowey.exe v 13 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar4
        flowey.exe v 13 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar5
      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 13 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__1.outputs.cache-hit <<EOF
        ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
        EOF
        flowey.exe e 13 flowey_lib_common::cache 2
        flowey.exe e 13 flowey_lib_common::download_cargo_nextest 4
      shell: bash
    - name: report $CARGO_HOME
      run: flowey.exe e 13 flowey_lib_common::install_rust 3
      shell: bash
    - name: installing cargo-nextest
      run: |-
        flowey.exe e 13 flowey_lib_common::install_cargo_nextest 0
        flowey.exe e 13 flowey_lib_hvlite::init_cross_build 1
        flowey.exe e 13 flowey_lib_hvlite::run_cargo_nextest_run 0
      shell: bash
    - name: generate nextest command
      run: flowey.exe e 13 flowey_lib_common::gen_cargo_nextest_run_cmd 1
      shell: bash
    - name: run 'unit-tests crypto (rust)' nextest tests
      run: |-
        flowey.exe e 13 flowey_lib_common::run_cargo_nextest_run 2
        flowey.exe e 13 flowey_lib_common::run_cargo_nextest_run 3
        flowey.exe e 13 flowey_lib_hvlite::build_nextest_unit_tests 3
        flowey.exe e 13 flowey_lib_common::publish_test_results 5
        flowey.exe e 13 flowey_lib_common::publish_test_results 6
        flowey.exe e 13 flowey_lib_common::publish_test_results 4
        flowey.exe v 13 'flowey_lib_common::publish_test_results:11:flowey_lib_common/src/publish_test_results.rs:95:47' --is-raw-string --condvar flowey_lib_common::publish_test_results:7:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env github floweyvar2
        flowey.exe v 13 'flowey_lib_common::publish_test_results:7:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
      shell: bash
    - id: flowey_lib_common__publish_test_results__7
      uses: actions/upload-artifact@v7
      with:
        name: x64-windows-unit-tests-unit-tests crypto (rust)-junit-xml
        path: ${{ env.floweyvar2 }}
      name: 'publish test results: x64-windows-unit-tests-unit-tests crypto (rust) (JUnit XML)'
      if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
    - name: cargo build xtask
      run: |-
        flowey.exe e 13 flowey_lib_hvlite::init_cross_build 3
        flowey.exe e 13 flowey_lib_common::run_cargo_build 1
        flowey.exe e 13 flowey_lib_hvlite::run_cargo_build 1
        flowey.exe e 13 flowey_lib_hvlite::build_xtask 1
      shell: bash
    - name: determine unit test exclusions
      run: flowey.exe e 13 flowey_lib_hvlite::build_nextest_unit_tests 0
      shell: bash
    - name: generate nextest command
      run: flowey.exe e 13 flowey_lib_common::gen_cargo_nextest_run_cmd 2
      shell: bash
    - name: run 'unit-tests' nextest tests
      run: |-
        flowey.exe e 13 flowey_lib_common::run_cargo_nextest_run 4
        flowey.exe e 13 flowey_lib_common::run_cargo_nextest_run 5
        flowey.exe e 13 flowey_lib_hvlite::build_nextest_unit_tests 1
        flowey.exe e 13 flowey_lib_common::publish_test_results 8
        flowey.exe e 13 flowey_lib_common::publish_test_results 9
        flowey.exe e 13 flowey_lib_common::publish_test_results 10
        flowey.exe v 13 'flowey_lib_common::publish_test_results:18:flowey_lib_common/src/publish_test_results.rs:95:47' --is-raw-string --condvar flowey_lib_common::publish_test_results:14:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env github floweyvar3
        flowey.exe v 13 'flowey_lib_common::publish_test_results:14:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
      shell: bash
    - id: flowey_lib_common__publish_test_results__11
      uses: actions/upload-artifact@v7
      with:
        name: x64-windows-unit-tests-unit-tests-junit-xml
        path: ${{ env.floweyvar3 }}
      name: 'publish test results: x64-windows-unit-tests-unit-tests (JUnit XML)'
      if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
    - name: generate nextest command
      run: flowey.exe e 13 flowey_lib_common::gen_cargo_nextest_run_cmd 0
      shell: bash
    - name: run 'unit-tests crypto (native)' nextest tests
      run: |-
        flowey.exe e 13 flowey_lib_common::run_cargo_nextest_run 0
        flowey.exe e 13 flowey_lib_common::run_cargo_nextest_run 1
        flowey.exe e 13 flowey_lib_hvlite::build_nextest_unit_tests 2
        flowey.exe e 13 flowey_lib_common::publish_test_results 0
        flowey.exe e 13 flowey_lib_common::publish_test_results 1
        flowey.exe e 13 flowey_lib_common::publish_test_results 2
        flowey.exe v 13 'flowey_lib_common::publish_test_results:4:flowey_lib_common/src/publish_test_results.rs:95:47' --is-raw-string --condvar flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env github floweyvar1
        flowey.exe v 13 'flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
      shell: bash
    - id: flowey_lib_common__publish_test_results__3
      uses: actions/upload-artifact@v7
      with:
        name: x64-windows-unit-tests-unit-tests crypto (native)-junit-xml
        path: ${{ env.floweyvar1 }}
      name: 'publish test results: x64-windows-unit-tests-unit-tests crypto (native) (JUnit XML)'
      if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
    - name: report test results to overall pipeline status
      run: |-
        flowey.exe e 13 flowey_lib_hvlite::build_nextest_unit_tests 4
        flowey.exe e 13 flowey_lib_hvlite::_jobs::build_and_run_nextest_unit_tests 0
      shell: bash
    - name: run doctests for x86_64-pc-windows-msvc
      run: flowey.exe e 13 flowey_lib_hvlite::_jobs::build_and_run_doc_tests 0
      shell: bash
    - name: 'validate cache entry: cargo-nextest'
      run: flowey.exe e 13 flowey_lib_common::cache 3
      shell: bash
    - name: 'validate cache entry: gh-release-download'
      run: flowey.exe e 13 flowey_lib_common::cache 7
      shell: bash
  job14:
    name: clippy [macos], unit tests [x64-linux]
    runs-on:
    - self-hosted
    - 1ES.Pool=openvmm-gh-amd-westus3
    - 1ES.ImageOverride=ubuntu2404-amd64
    - JobId=job14-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}
    permissions:
      contents: read
      id-token: write
    needs:
    - job0
    if: contains(github.event.pull_request.labels.*.name, 'release-ci-required') && github.event.pull_request.draft == false
    steps:
    - 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: 🌼🛫 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 14 'FLOWEY_LOG' update
        echo "${{ runner.temp }}/work" | flowey v 14 '_internal_WORKING_DIR' --is-raw-string update

        cat <<'EOF' | flowey v 14 'verbose' update
        ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
        EOF
      shell: bash
    - name: add default cargo home to path
      run: flowey e 14 flowey_lib_common::install_rust 0
      shell: bash
    - name: install Rust
      run: flowey e 14 flowey_lib_common::install_rust 1
      shell: bash
    - name: detect active toolchain
      run: |-
        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 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
      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 14 'flowey_lib_common::git_checkout:4:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.workspace <<EOF
        ${{ github.workspace }}
        EOF
        flowey e 14 flowey_lib_common::git_checkout 3
        flowey e 14 flowey_lib_hvlite::git_checkout_openvmm_repo 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: create gh-release-download cache dir
      run: flowey e 14 flowey_lib_common::download_gh_release 0
      shell: bash
    - 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 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.floweyvar8 }}
        path: ${{ env.floweyvar9 }}
      name: 'Restore cache: gh-release-download'
    - name: download artifacts from github releases
      run: |-
        flowey v 14 'flowey_lib_common::cache:12:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__5.outputs.cache-hit <<EOF
        ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
        EOF
        flowey e 14 flowey_lib_common::cache 6
        flowey e 14 flowey_lib_common::download_gh_release 1
      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
      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 1
      shell: bash
    - name: cargo build xtask
      run: |-
        flowey e 14 flowey_lib_common::run_cargo_build 0
        flowey e 14 flowey_lib_hvlite::run_cargo_build 0
      shell: bash
    - name: split debug symbols
      run: |-
        flowey e 14 flowey_lib_hvlite::run_split_debug_info 1
        flowey e 14 flowey_lib_hvlite::run_cargo_build 1
        flowey e 14 flowey_lib_hvlite::build_xtask 0
      shell: bash
    - name: determine clippy exclusions
      run: flowey e 14 flowey_lib_hvlite::_jobs::check_clippy 0
      shell: bash
    - name: cargo clippy
      run: flowey e 14 flowey_lib_common::run_cargo_clippy 0
      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 2
      shell: bash
    - name: create cargo-nextest cache dir
      run: |-
        flowey e 14 flowey_lib_common::download_cargo_nextest 0
        flowey e 14 flowey_lib_common::download_cargo_nextest 1
        flowey e 14 flowey_lib_common::download_cargo_nextest 2
        flowey e 14 flowey_lib_common::download_cargo_nextest 3
      shell: bash
    - 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 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.floweyvar6 }}
        path: ${{ env.floweyvar7 }}
      name: 'Restore cache: cargo-nextest'
    - name: downloading cargo-nextest
      run: |-
        flowey v 14 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__1.outputs.cache-hit <<EOF
        ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
        EOF
        flowey e 14 flowey_lib_common::cache 2
        flowey e 14 flowey_lib_common::download_cargo_nextest 4
      shell: bash
    - name: report $CARGO_HOME
      run: flowey e 14 flowey_lib_common::install_rust 3
      shell: bash
    - name: installing cargo-nextest
      run: |-
        flowey e 14 flowey_lib_common::install_cargo_nextest 0
        flowey e 14 flowey_lib_hvlite::init_cross_build 0
        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 1
      shell: bash
    - name: run 'unit-tests crypto (native)' 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::publish_test_results 5
        flowey e 14 flowey_lib_common::publish_test_results 6
        flowey e 14 flowey_lib_common::publish_test_results 4
        flowey v 14 'flowey_lib_common::publish_test_results:11:flowey_lib_common/src/publish_test_results.rs:95:47' --is-raw-string --condvar flowey_lib_common::publish_test_results:7:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env github floweyvar2
        flowey v 14 'flowey_lib_common::publish_test_results:7:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
      shell: bash
    - id: flowey_lib_common__publish_test_results__7
      uses: actions/upload-artifact@v7
      with:
        name: x64-linux-unit-tests-unit-tests crypto (native)-junit-xml
        path: ${{ env.floweyvar2 }}
      name: 'publish test results: x64-linux-unit-tests-unit-tests crypto (native) (JUnit XML)'
      if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
    - name: generate nextest command
      run: flowey e 14 flowey_lib_common::gen_cargo_nextest_run_cmd 3
      shell: bash
    - name: run 'unit-tests crypto (rust)' 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 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
        flowey v 14 'flowey_lib_common::publish_test_results:18:flowey_lib_common/src/publish_test_results.rs:95:47' --is-raw-string --condvar flowey_lib_common::publish_test_results:14:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env github floweyvar3
        flowey v 14 'flowey_lib_common::publish_test_results:14:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
      shell: bash
    - id: flowey_lib_common__publish_test_results__11
      uses: actions/upload-artifact@v7
      with:
        name: x64-linux-unit-tests-unit-tests crypto (rust)-junit-xml
        path: ${{ env.floweyvar3 }}
      name: 'publish test results: x64-linux-unit-tests-unit-tests crypto (rust) (JUnit XML)'
      if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
    - name: generate nextest command
      run: flowey e 14 flowey_lib_common::gen_cargo_nextest_run_cmd 2
      shell: bash
    - name: run 'unit-tests crypto (openssl)' 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 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
        flowey v 14 'flowey_lib_common::publish_test_results:25:flowey_lib_common/src/publish_test_results.rs:95:47' --is-raw-string --condvar flowey_lib_common::publish_test_results:21:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env github floweyvar4
        flowey v 14 'flowey_lib_common::publish_test_results:21:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
      shell: bash
    - id: flowey_lib_common__publish_test_results__15
      uses: actions/upload-artifact@v7
      with:
        name: x64-linux-unit-tests-unit-tests crypto (openssl)-junit-xml
        path: ${{ env.floweyvar4 }}
      name: 'publish test results: x64-linux-unit-tests-unit-tests crypto (openssl) (JUnit XML)'
      if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
    - name: generate nextest command
      run: flowey e 14 flowey_lib_common::gen_cargo_nextest_run_cmd 0
      shell: bash
    - name: run 'unit-tests crypto (all)' 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 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-unit-tests-unit-tests crypto (all)-junit-xml
        path: ${{ env.floweyvar5 }}
      name: 'publish test results: x64-linux-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 2
        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
        flowey v 14 'flowey_lib_common::publish_test_results:4:flowey_lib_common/src/publish_test_results.rs:95:47' --is-raw-string --condvar flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env github floweyvar1
        flowey v 14 'flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
      shell: bash
    - id: flowey_lib_common__publish_test_results__3
      uses: actions/upload-artifact@v7
      with:
        name: x64-linux-unit-tests-unit-tests-junit-xml
        path: ${{ env.floweyvar1 }}
      name: 'publish test results: x64-linux-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 6
        flowey e 14 flowey_lib_hvlite::_jobs::build_and_run_nextest_unit_tests 0
      shell: bash
    - name: run doctests for x86_64-unknown-linux-gnu
      run: flowey e 14 flowey_lib_hvlite::_jobs::build_and_run_doc_tests 0
      shell: bash
    - name: 'validate cache entry: cargo-nextest'
      run: flowey e 14 flowey_lib_common::cache 3
      shell: bash
    - name: 'validate cache entry: gh-release-download'
      run: flowey e 14 flowey_lib_common::cache 7
      shell: bash
  job15:
    name: clippy [x64-linux-musl, misc nostd], unit tests [x64-linux-musl]
    runs-on:
    - self-hosted
    - 1ES.Pool=openvmm-gh-amd-westus3
    - 1ES.ImageOverride=ubuntu2404-amd64
    - JobId=job15-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}
    permissions:
      contents: read
      id-token: write
    needs:
    - job0
    if: contains(github.event.pull_request.labels.*.name, 'release-ci-required') && github.event.pull_request.draft == false
    steps:
    - 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: 🌼🛫 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 15 'FLOWEY_LOG' update
        echo "${{ runner.temp }}/work" | flowey v 15 '_internal_WORKING_DIR' --is-raw-string update

        cat <<'EOF' | flowey 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
      shell: bash
    - name: install Rust
      run: flowey 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
      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 floweyvar11
        flowey 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.floweyvar11 }}
      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 <<EOF
        ${{ github.workspace }}
        EOF
        flowey e 15 flowey_lib_common::git_checkout 3
        flowey e 15 flowey_lib_hvlite::git_checkout_openvmm_repo 0
        flowey e 15 flowey_lib_hvlite::cfg_openvmm_magicpath 0
      shell: bash
    - name: create gh-release-download cache dir
      run: flowey e 15 flowey_lib_common::download_gh_release 0
      shell: bash
    - name: Pre-processing cache vars
      run: |-
        flowey e 15 flowey_lib_common::cache 4
        flowey v 15 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar9
        flowey v 15 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar10
      shell: bash
    - id: flowey_lib_common__cache__5
      uses: actions/cache@v5
      with:
        key: ${{ env.floweyvar9 }}
        path: ${{ env.floweyvar10 }}
      name: 'Restore cache: gh-release-download'
    - name: download artifacts from github releases
      run: |-
        flowey v 15 'flowey_lib_common::cache:12:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__5.outputs.cache-hit <<EOF
        ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
        EOF
        flowey e 15 flowey_lib_common::cache 6
        flowey e 15 flowey_lib_common::download_gh_release 1
      shell: bash
    - name: unpack openvmm-deps archive
      run: flowey e 15 flowey_lib_hvlite::resolve_openvmm_deps 0
      shell: bash
    - name: extract X86_64 sysroot.tar.gz
      run: flowey e 15 flowey_lib_hvlite::init_openvmm_magicpath_openhcl_sysroot 0
      shell: bash
    - name: checking if packages need to be installed
      run: flowey e 15 flowey_lib_common::install_dist_pkg 0
      shell: bash
    - name: installing packages
      run: flowey e 15 flowey_lib_common::install_dist_pkg 1
      shell: bash
    - name: set '-Dwarnings' in .cargo/config.toml
      run: flowey e 15 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
      shell: bash
    - name: unpack protoc
      run: flowey e 15 flowey_lib_common::resolve_protoc 0
      shell: bash
    - name: symlink protoc
      run: |-
        flowey e 15 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
        flowey e 15 flowey_lib_hvlite::init_cross_build 2
      shell: bash
    - name: cargo clippy
      run: flowey e 15 flowey_lib_common::run_cargo_clippy 3
      shell: bash
    - name: cargo clippy
      run: flowey e 15 flowey_lib_common::run_cargo_clippy 5
      shell: bash
    - name: cargo clippy
      run: flowey e 15 flowey_lib_common::run_cargo_clippy 1
      shell: bash
    - name: cargo clippy
      run: flowey e 15 flowey_lib_common::run_cargo_clippy 7
      shell: bash
    - name: cargo clippy
      run: |-
        flowey e 15 flowey_lib_common::run_cargo_clippy 6
        flowey e 15 flowey_lib_hvlite::init_cross_build 0
      shell: bash
    - name: cargo build xtask
      run: |-
        flowey e 15 flowey_lib_common::run_cargo_build 0
        flowey e 15 flowey_lib_hvlite::run_cargo_build 0
      shell: bash
    - name: split debug symbols
      run: |-
        flowey e 15 flowey_lib_hvlite::run_split_debug_info 1
        flowey e 15 flowey_lib_hvlite::run_cargo_build 1
        flowey e 15 flowey_lib_hvlite::build_xtask 0
      shell: bash
    - name: determine clippy exclusions
      run: flowey e 15 flowey_lib_hvlite::_jobs::check_clippy 0
      shell: bash
    - name: cargo clippy
      run: flowey e 15 flowey_lib_common::run_cargo_clippy 0
      shell: bash
    - name: cargo clippy
      run: flowey e 15 flowey_lib_common::run_cargo_clippy 2
      shell: bash
    - name: cargo clippy
      run: flowey e 15 flowey_lib_common::run_cargo_clippy 4
      shell: bash
    - name: create cargo-nextest cache dir
      run: |-
        flowey e 15 flowey_lib_common::download_cargo_nextest 0
        flowey e 15 flowey_lib_common::download_cargo_nextest 1
        flowey e 15 flowey_lib_common::download_cargo_nextest 2
        flowey e 15 flowey_lib_common::download_cargo_nextest 3
      shell: bash
    - name: Pre-processing cache vars
      run: |-
        flowey e 15 flowey_lib_common::cache 0
        flowey v 15 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar7
        flowey v 15 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar8
      shell: bash
    - id: flowey_lib_common__cache__1
      uses: actions/cache@v5
      with:
        key: ${{ env.floweyvar7 }}
        path: ${{ env.floweyvar8 }}
      name: 'Restore cache: cargo-nextest'
    - name: downloading cargo-nextest
      run: |-
        flowey v 15 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__1.outputs.cache-hit <<EOF
        ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
        EOF
        flowey e 15 flowey_lib_common::cache 2
        flowey e 15 flowey_lib_common::download_cargo_nextest 4
      shell: bash
    - name: report $CARGO_HOME
      run: flowey e 15 flowey_lib_common::install_rust 3
      shell: bash
    - name: installing cargo-nextest
      run: |-
        flowey e 15 flowey_lib_common::install_cargo_nextest 0
        flowey e 15 flowey_lib_hvlite::init_cross_build 3
        flowey e 15 flowey_lib_hvlite::run_cargo_nextest_run 0
      shell: bash
    - name: generate nextest command
      run: flowey e 15 flowey_lib_common::gen_cargo_nextest_run_cmd 1
      shell: bash
    - name: run 'unit-tests crypto (native)' nextest tests
      run: |-
        flowey e 15 flowey_lib_common::run_cargo_nextest_run 2
        flowey e 15 flowey_lib_common::run_cargo_nextest_run 3
        flowey e 15 flowey_lib_hvlite::build_nextest_unit_tests 2
        flowey e 15 flowey_lib_common::publish_test_results 5
        flowey e 15 flowey_lib_common::publish_test_results 6
        flowey e 15 flowey_lib_common::publish_test_results 4
        flowey v 15 'flowey_lib_common::publish_test_results:11:flowey_lib_common/src/publish_test_results.rs:95:47' --is-raw-string --condvar flowey_lib_common::publish_test_results:7:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env github floweyvar2
        flowey v 15 'flowey_lib_common::publish_test_results:7:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
      shell: bash
    - id: flowey_lib_common__publish_test_results__7
      uses: actions/upload-artifact@v7
      with:
        name: x64-linux-musl-unit-tests-unit-tests crypto (native)-junit-xml
        path: ${{ env.floweyvar2 }}
      name: 'publish test results: x64-linux-musl-unit-tests-unit-tests crypto (native) (JUnit XML)'
      if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
    - name: generate nextest command
      run: flowey e 15 flowey_lib_common::gen_cargo_nextest_run_cmd 3
      shell: bash
    - name: run 'unit-tests crypto (rust)' nextest tests
      run: |-
        flowey e 15 flowey_lib_common::run_cargo_nextest_run 6
        flowey e 15 flowey_lib_common::run_cargo_nextest_run 7
        flowey e 15 flowey_lib_hvlite::build_nextest_unit_tests 3
        flowey e 15 flowey_lib_common::publish_test_results 8
        flowey e 15 flowey_lib_common::publish_test_results 9
        flowey e 15 flowey_lib_common::publish_test_results 10
        flowey v 15 'flowey_lib_common::publish_test_results:18:flowey_lib_common/src/publish_test_results.rs:95:47' --is-raw-string --condvar flowey_lib_common::publish_test_results:14:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env github floweyvar3
        flowey v 15 'flowey_lib_common::publish_test_results:14:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
      shell: bash
    - id: flowey_lib_common__publish_test_results__11
      uses: actions/upload-artifact@v7
      with:
        name: x64-linux-musl-unit-tests-unit-tests crypto (rust)-junit-xml
        path: ${{ env.floweyvar3 }}
      name: 'publish test results: x64-linux-musl-unit-tests-unit-tests crypto (rust) (JUnit XML)'
      if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
    - name: generate nextest command
      run: flowey e 15 flowey_lib_common::gen_cargo_nextest_run_cmd 2
      shell: bash
    - name: run 'unit-tests crypto (openssl)' nextest tests
      run: |-
        flowey e 15 flowey_lib_common::run_cargo_nextest_run 4
        flowey e 15 flowey_lib_common::run_cargo_nextest_run 5
        flowey e 15 flowey_lib_hvlite::build_nextest_unit_tests 4
        flowey e 15 flowey_lib_common::publish_test_results 12
        flowey e 15 flowey_lib_common::publish_test_results 13
        flowey e 15 flowey_lib_common::publish_test_results 14
        flowey v 15 'flowey_lib_common::publish_test_results:25:flowey_lib_common/src/publish_test_results.rs:95:47' --is-raw-string --condvar flowey_lib_common::publish_test_results:21:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env github floweyvar4
        flowey v 15 'flowey_lib_common::publish_test_results:21:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
      shell: bash
    - id: flowey_lib_common__publish_test_results__15
      uses: actions/upload-artifact@v7
      with:
        name: x64-linux-musl-unit-tests-unit-tests crypto (openssl)-junit-xml
        path: ${{ env.floweyvar4 }}
      name: 'publish test results: x64-linux-musl-unit-tests-unit-tests crypto (openssl) (JUnit XML)'
      if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
    - name: generate nextest command
      run: flowey e 15 flowey_lib_common::gen_cargo_nextest_run_cmd 4
      shell: bash
    - name: run 'unit-tests crypto (symcrypt)' nextest tests
      run: |-
        flowey e 15 flowey_lib_common::run_cargo_nextest_run 8
        flowey e 15 flowey_lib_common::run_cargo_nextest_run 9
        flowey e 15 flowey_lib_hvlite::build_nextest_unit_tests 5
        flowey e 15 flowey_lib_common::publish_test_results 16
        flowey e 15 flowey_lib_common::publish_test_results 17
        flowey e 15 flowey_lib_common::publish_test_results 18
        flowey v 15 'flowey_lib_common::publish_test_results:32:flowey_lib_common/src/publish_test_results.rs:95:47' --is-raw-string --condvar flowey_lib_common::publish_test_results:28:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env github floweyvar5
        flowey v 15 'flowey_lib_common::publish_test_results:28:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
      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 (symcrypt)-junit-xml
        path: ${{ env.floweyvar5 }}
      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 15 flowey_lib_common::gen_cargo_nextest_run_cmd 0
      shell: bash
    - name: run 'unit-tests crypto (all)' nextest tests
      run: |-
        flowey e 15 flowey_lib_common::run_cargo_nextest_run 0
        flowey e 15 flowey_lib_common::run_cargo_nextest_run 1
        flowey e 15 flowey_lib_hvlite::build_nextest_unit_tests 6
        flowey e 15 flowey_lib_common::publish_test_results 20
        flowey e 15 flowey_lib_common::publish_test_results 21
        flowey e 15 flowey_lib_common::publish_test_results 22
        flowey v 15 'flowey_lib_common::publish_test_results:39:flowey_lib_common/src/publish_test_results.rs:95:47' --is-raw-string --condvar flowey_lib_common::publish_test_results:35:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env github floweyvar6
        flowey v 15 'flowey_lib_common::publish_test_results:35:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
      shell: bash
    - id: flowey_lib_common__publish_test_results__23
      uses: actions/upload-artifact@v7
      with:
        name: x64-linux-musl-unit-tests-unit-tests crypto (all)-junit-xml
        path: ${{ env.floweyvar6 }}
      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 15 flowey_lib_hvlite::init_cross_build 1
        flowey e 15 flowey_lib_common::run_cargo_build 1
        flowey e 15 flowey_lib_hvlite::run_cargo_build 2
      shell: bash
    - name: split debug symbols
      run: |-
        flowey e 15 flowey_lib_hvlite::run_split_debug_info 0
        flowey e 15 flowey_lib_hvlite::run_cargo_build 3
        flowey e 15 flowey_lib_hvlite::build_xtask 1
      shell: bash
    - name: determine unit test exclusions
      run: flowey e 15 flowey_lib_hvlite::build_nextest_unit_tests 0
      shell: bash
    - name: generate nextest command
      run: flowey e 15 flowey_lib_common::gen_cargo_nextest_run_cmd 5
      shell: bash
    - name: run 'unit-tests' nextest tests
      run: |-
        flowey e 15 flowey_lib_common::run_cargo_nextest_run 10
        flowey e 15 flowey_lib_common::run_cargo_nextest_run 11
        flowey e 15 flowey_lib_hvlite::build_nextest_unit_tests 1
        flowey e 15 flowey_lib_common::publish_test_results 0
        flowey e 15 flowey_lib_common::publish_test_results 1
        flowey e 15 flowey_lib_common::publish_test_results 2
        flowey v 15 'flowey_lib_common::publish_test_results:4:flowey_lib_common/src/publish_test_results.rs:95:47' --is-raw-string --condvar flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env github floweyvar1
        flowey v 15 'flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
      shell: bash
    - id: flowey_lib_common__publish_test_results__3
      uses: actions/upload-artifact@v7
      with:
        name: x64-linux-musl-unit-tests-unit-tests-junit-xml
        path: ${{ env.floweyvar1 }}
      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 15 flowey_lib_hvlite::build_nextest_unit_tests 7
        flowey e 15 flowey_lib_hvlite::_jobs::build_and_run_nextest_unit_tests 0
      shell: bash
    - name: run doctests for x86_64-unknown-linux-musl
      run: flowey e 15 flowey_lib_hvlite::_jobs::build_and_run_doc_tests 0
      shell: bash
    - name: 'validate cache entry: cargo-nextest'
      run: flowey e 15 flowey_lib_common::cache 3
      shell: bash
    - name: 'validate cache entry: gh-release-download'
      run: flowey e 15 flowey_lib_common::cache 7
      shell: bash
  job16:
    name: clippy [aarch64-windows], unit tests [aarch64-windows]
    runs-on:
    - self-hosted
    - 1ES.Pool=openvmm-gh-arm-westus2
    - 1ES.ImageOverride=win-arm64
    - JobId=job16-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}
    permissions:
      contents: read
      id-token: write
    needs:
    - job0
    if: contains(github.event.pull_request.labels.*.name, 'release-ci-required') && github.event.pull_request.draft == false
    steps:
    - run: |
        set -x
        i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
        sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
        curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.95.0 -y
        . "$HOME/.cargo/env"
        echo "$HOME/.cargo/bin" >> "$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-release.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
      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 16 'FLOWEY_LOG' update
        echo "${{ runner.temp }}/work" | flowey.exe v 16 '_internal_WORKING_DIR' --is-raw-string update

        cat <<'EOF' | flowey.exe v 16 'verbose' update
        ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
        EOF
      shell: bash
    - name: add default cargo home to path
      run: flowey.exe e 16 flowey_lib_common::install_rust 0
      shell: bash
    - name: install Rust
      run: flowey.exe e 16 flowey_lib_common::install_rust 1
      shell: bash
    - name: detect active toolchain
      run: |-
        flowey.exe e 16 flowey_lib_common::install_rust 2
        flowey.exe e 16 flowey_lib_common::cfg_cargo_common_flags 0
      shell: bash
    - name: check if openvmm needs to be cloned
      run: |-
        flowey.exe e 16 flowey_lib_common::git_checkout 0
        flowey.exe v 16 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:489:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46 write-to-env github floweyvar8
        flowey.exe v 16 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION
      shell: bash
    - id: flowey_lib_common__git_checkout__1
      uses: actions/checkout@v6
      with:
        fetch-depth: '1'
        path: repo0
        persist-credentials: ${{ env.floweyvar8 }}
      name: checkout repo openvmm
      if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
    - name: report cloned repo directories
      run: |-
        flowey.exe v 16 'flowey_lib_common::git_checkout:4:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.workspace <<EOF
        ${{ github.workspace }}
        EOF
        flowey.exe e 16 flowey_lib_common::git_checkout 3
        flowey.exe e 16 flowey_lib_hvlite::git_checkout_openvmm_repo 0
      shell: bash
    - name: set '-Dwarnings' in .cargo/config.toml
      run: flowey.exe e 16 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
      shell: bash
    - name: create gh-release-download cache dir
      run: flowey.exe e 16 flowey_lib_common::download_gh_release 0
      shell: bash
    - name: Pre-processing cache vars
      run: |-
        flowey.exe e 16 flowey_lib_common::cache 4
        flowey.exe v 16 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar6
        flowey.exe v 16 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar7
      shell: bash
    - id: flowey_lib_common__cache__5
      uses: actions/cache@v5
      with:
        key: ${{ env.floweyvar6 }}
        path: ${{ env.floweyvar7 }}
      name: 'Restore cache: gh-release-download'
    - name: download artifacts from github releases
      run: |-
        flowey.exe v 16 'flowey_lib_common::cache:12:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__5.outputs.cache-hit <<EOF
        ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
        EOF
        flowey.exe e 16 flowey_lib_common::cache 6
        flowey.exe e 16 flowey_lib_common::download_gh_release 1
      shell: bash
    - name: unpack protoc
      run: |-
        flowey.exe e 16 flowey_lib_common::resolve_protoc 0
        flowey.exe e 16 flowey_lib_hvlite::cfg_openvmm_magicpath 0
      shell: bash
    - name: symlink protoc
      run: |-
        flowey.exe e 16 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
        flowey.exe e 16 flowey_lib_hvlite::init_cross_build 0
        flowey.exe e 16 flowey_lib_hvlite::init_cross_build 2
      shell: bash
    - name: cargo build xtask
      run: |-
        flowey.exe e 16 flowey_lib_common::run_cargo_build 0
        flowey.exe e 16 flowey_lib_hvlite::run_cargo_build 0
        flowey.exe e 16 flowey_lib_hvlite::build_xtask 0
      shell: bash
    - name: determine clippy exclusions
      run: flowey.exe e 16 flowey_lib_hvlite::_jobs::check_clippy 0
      shell: bash
    - name: cargo clippy
      run: flowey.exe e 16 flowey_lib_common::run_cargo_clippy 0
      shell: bash
    - name: cargo clippy
      run: flowey.exe e 16 flowey_lib_common::run_cargo_clippy 1
      shell: bash
    - name: cargo clippy
      run: flowey.exe e 16 flowey_lib_common::run_cargo_clippy 2
      shell: bash
    - name: create cargo-nextest cache dir
      run: |-
        flowey.exe e 16 flowey_lib_common::download_cargo_nextest 0
        flowey.exe e 16 flowey_lib_common::download_cargo_nextest 1
        flowey.exe e 16 flowey_lib_common::download_cargo_nextest 2
        flowey.exe e 16 flowey_lib_common::download_cargo_nextest 3
      shell: bash
    - name: Pre-processing cache vars
      run: |-
        flowey.exe e 16 flowey_lib_common::cache 0
        flowey.exe v 16 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar4
        flowey.exe v 16 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar5
      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 16 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__1.outputs.cache-hit <<EOF
        ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
        EOF
        flowey.exe e 16 flowey_lib_common::cache 2
        flowey.exe e 16 flowey_lib_common::download_cargo_nextest 4
      shell: bash
    - name: report $CARGO_HOME
      run: flowey.exe e 16 flowey_lib_common::install_rust 3
      shell: bash
    - name: installing cargo-nextest
      run: |-
        flowey.exe e 16 flowey_lib_common::install_cargo_nextest 0
        flowey.exe e 16 flowey_lib_hvlite::init_cross_build 1
        flowey.exe e 16 flowey_lib_hvlite::run_cargo_nextest_run 0
      shell: bash
    - name: generate nextest command
      run: flowey.exe e 16 flowey_lib_common::gen_cargo_nextest_run_cmd 1
      shell: bash
    - name: run 'unit-tests crypto (rust)' nextest tests
      run: |-
        flowey.exe e 16 flowey_lib_common::run_cargo_nextest_run 2
        flowey.exe e 16 flowey_lib_common::run_cargo_nextest_run 3
        flowey.exe e 16 flowey_lib_hvlite::build_nextest_unit_tests 3
        flowey.exe e 16 flowey_lib_common::publish_test_results 5
        flowey.exe e 16 flowey_lib_common::publish_test_results 6
        flowey.exe e 16 flowey_lib_common::publish_test_results 4
        flowey.exe v 16 'flowey_lib_common::publish_test_results:11:flowey_lib_common/src/publish_test_results.rs:95:47' --is-raw-string --condvar flowey_lib_common::publish_test_results:7:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env github floweyvar2
        flowey.exe v 16 'flowey_lib_common::publish_test_results:7:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
      shell: bash
    - id: flowey_lib_common__publish_test_results__7
      uses: actions/upload-artifact@v7
      with:
        name: aarch64-windows-unit-tests-unit-tests crypto (rust)-junit-xml
        path: ${{ env.floweyvar2 }}
      name: 'publish test results: aarch64-windows-unit-tests-unit-tests crypto (rust) (JUnit XML)'
      if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
    - name: cargo build xtask
      run: |-
        flowey.exe e 16 flowey_lib_hvlite::init_cross_build 3
        flowey.exe e 16 flowey_lib_common::run_cargo_build 1
        flowey.exe e 16 flowey_lib_hvlite::run_cargo_build 1
        flowey.exe e 16 flowey_lib_hvlite::build_xtask 1
      shell: bash
    - name: determine unit test exclusions
      run: flowey.exe e 16 flowey_lib_hvlite::build_nextest_unit_tests 0
      shell: bash
    - name: generate nextest command
      run: flowey.exe e 16 flowey_lib_common::gen_cargo_nextest_run_cmd 2
      shell: bash
    - name: run 'unit-tests' nextest tests
      run: |-
        flowey.exe e 16 flowey_lib_common::run_cargo_nextest_run 4
        flowey.exe e 16 flowey_lib_common::run_cargo_nextest_run 5
        flowey.exe e 16 flowey_lib_hvlite::build_nextest_unit_tests 1
        flowey.exe e 16 flowey_lib_common::publish_test_results 8
        flowey.exe e 16 flowey_lib_common::publish_test_results 9
        flowey.exe e 16 flowey_lib_common::publish_test_results 10
        flowey.exe v 16 'flowey_lib_common::publish_test_results:18:flowey_lib_common/src/publish_test_results.rs:95:47' --is-raw-string --condvar flowey_lib_common::publish_test_results:14:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env github floweyvar3
        flowey.exe v 16 'flowey_lib_common::publish_test_results:14:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
      shell: bash
    - id: flowey_lib_common__publish_test_results__11
      uses: actions/upload-artifact@v7
      with:
        name: aarch64-windows-unit-tests-unit-tests-junit-xml
        path: ${{ env.floweyvar3 }}
      name: 'publish test results: aarch64-windows-unit-tests-unit-tests (JUnit XML)'
      if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
    - name: generate nextest command
      run: flowey.exe e 16 flowey_lib_common::gen_cargo_nextest_run_cmd 0
      shell: bash
    - name: run 'unit-tests crypto (native)' nextest tests
      run: |-
        flowey.exe e 16 flowey_lib_common::run_cargo_nextest_run 0
        flowey.exe e 16 flowey_lib_common::run_cargo_nextest_run 1
        flowey.exe e 16 flowey_lib_hvlite::build_nextest_unit_tests 2
        flowey.exe e 16 flowey_lib_common::publish_test_results 0
        flowey.exe e 16 flowey_lib_common::publish_test_results 1
        flowey.exe e 16 flowey_lib_common::publish_test_results 2
        flowey.exe v 16 'flowey_lib_common::publish_test_results:4:flowey_lib_common/src/publish_test_results.rs:95:47' --is-raw-string --condvar flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env github floweyvar1
        flowey.exe v 16 'flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
      shell: bash
    - id: flowey_lib_common__publish_test_results__3
      uses: actions/upload-artifact@v7
      with:
        name: aarch64-windows-unit-tests-unit-tests crypto (native)-junit-xml
        path: ${{ env.floweyvar1 }}
      name: 'publish test results: aarch64-windows-unit-tests-unit-tests crypto (native) (JUnit XML)'
      if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
    - name: report test results to overall pipeline status
      run: |-
        flowey.exe e 16 flowey_lib_hvlite::build_nextest_unit_tests 4
        flowey.exe e 16 flowey_lib_hvlite::_jobs::build_and_run_nextest_unit_tests 0
      shell: bash
    - name: run doctests for aarch64-pc-windows-msvc
      run: flowey.exe e 16 flowey_lib_hvlite::_jobs::build_and_run_doc_tests 0
      shell: bash
    - name: 'validate cache entry: cargo-nextest'
      run: flowey.exe e 16 flowey_lib_common::cache 3
      shell: bash
    - name: 'validate cache entry: gh-release-download'
      run: flowey.exe e 16 flowey_lib_common::cache 7
      shell: bash
  job17:
    name: clippy [aarch64-linux], unit tests [aarch64-linux]
    runs-on:
    - self-hosted
    - 1ES.Pool=openvmm-gh-arm-westus2
    - 1ES.ImageOverride=ubuntu2404-arm64
    - JobId=job17-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}
    permissions:
      contents: read
      id-token: write
    needs:
    - job0
    if: contains(github.event.pull_request.labels.*.name, 'release-ci-required') && github.event.pull_request.draft == false
    steps:
    - run: |
        set -x
        i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
        sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
        curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.95.0 -y
        . "$HOME/.cargo/env"
        echo "$HOME/.cargo/bin" >> "$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-pr-release.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-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

        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: checking if packages need to be installed
      run: flowey e 17 flowey_lib_common::install_dist_pkg 0
      shell: bash
    - name: installing packages
      run: flowey e 17 flowey_lib_common::install_dist_pkg 1
      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 <<EOF
        ${{ github.workspace }}
        EOF
        flowey e 17 flowey_lib_common::git_checkout 3
        flowey e 17 flowey_lib_hvlite::git_checkout_openvmm_repo 0
      shell: bash
    - name: set '-Dwarnings' in .cargo/config.toml
      run: flowey e 17 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
      shell: bash
    - name: create gh-release-download cache dir
      run: flowey e 17 flowey_lib_common::download_gh_release 0
      shell: bash
    - name: Pre-processing cache vars
      run: |-
        flowey e 17 flowey_lib_common::cache 4
        flowey v 17 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar8
        flowey v 17 '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.floweyvar8 }}
        path: ${{ env.floweyvar9 }}
      name: 'Restore cache: gh-release-download'
    - name: download artifacts from github releases
      run: |-
        flowey v 17 'flowey_lib_common::cache:12:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__5.outputs.cache-hit <<EOF
        ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
        EOF
        flowey e 17 flowey_lib_common::cache 6
        flowey e 17 flowey_lib_common::download_gh_release 1
      shell: bash
    - name: unpack protoc
      run: |-
        flowey e 17 flowey_lib_common::resolve_protoc 0
        flowey e 17 flowey_lib_hvlite::cfg_openvmm_magicpath 0
      shell: bash
    - name: symlink protoc
      run: |-
        flowey e 17 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
        flowey e 17 flowey_lib_hvlite::init_cross_build 0
      shell: bash
    - name: cargo clippy
      run: |-
        flowey e 17 flowey_lib_common::run_cargo_clippy 1
        flowey e 17 flowey_lib_hvlite::init_cross_build 2
      shell: bash
    - name: cargo build xtask
      run: |-
        flowey e 17 flowey_lib_common::run_cargo_build 0
        flowey e 17 flowey_lib_hvlite::run_cargo_build 0
      shell: bash
    - name: split debug symbols
      run: |-
        flowey e 17 flowey_lib_hvlite::run_split_debug_info 1
        flowey e 17 flowey_lib_hvlite::run_cargo_build 1
        flowey e 17 flowey_lib_hvlite::build_xtask 0
      shell: bash
    - name: determine clippy exclusions
      run: flowey e 17 flowey_lib_hvlite::_jobs::check_clippy 0
      shell: bash
    - name: cargo clippy
      run: flowey e 17 flowey_lib_common::run_cargo_clippy 0
      shell: bash
    - name: cargo clippy
      run: flowey e 17 flowey_lib_common::run_cargo_clippy 2
      shell: bash
    - name: cargo clippy
      run: flowey e 17 flowey_lib_common::run_cargo_clippy 4
      shell: bash
    - name: cargo clippy
      run: flowey e 17 flowey_lib_common::run_cargo_clippy 3
      shell: bash
    - name: create cargo-nextest cache dir
      run: |-
        flowey e 17 flowey_lib_common::download_cargo_nextest 0
        flowey e 17 flowey_lib_common::download_cargo_nextest 1
        flowey e 17 flowey_lib_common::download_cargo_nextest 2
        flowey e 17 flowey_lib_common::download_cargo_nextest 3
      shell: bash
    - name: Pre-processing cache vars
      run: |-
        flowey e 17 flowey_lib_common::cache 0
        flowey v 17 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar6
        flowey v 17 '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.floweyvar6 }}
        path: ${{ env.floweyvar7 }}
      name: 'Restore cache: cargo-nextest'
    - name: downloading cargo-nextest
      run: |-
        flowey v 17 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__1.outputs.cache-hit <<EOF
        ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
        EOF
        flowey e 17 flowey_lib_common::cache 2
        flowey e 17 flowey_lib_common::download_cargo_nextest 4
      shell: bash
    - name: report $CARGO_HOME
      run: flowey e 17 flowey_lib_common::install_rust 3
      shell: bash
    - name: installing cargo-nextest
      run: |-
        flowey e 17 flowey_lib_common::install_cargo_nextest 0
        flowey e 17 flowey_lib_hvlite::init_cross_build 1
        flowey e 17 flowey_lib_hvlite::run_cargo_nextest_run 0
      shell: bash
    - name: generate nextest command
      run: flowey e 17 flowey_lib_common::gen_cargo_nextest_run_cmd 1
      shell: bash
    - name: run 'unit-tests crypto (native)' nextest tests
      run: |-
        flowey e 17 flowey_lib_common::run_cargo_nextest_run 2
        flowey e 17 flowey_lib_common::run_cargo_nextest_run 3
        flowey e 17 flowey_lib_hvlite::build_nextest_unit_tests 2
        flowey e 17 flowey_lib_common::publish_test_results 5
        flowey e 17 flowey_lib_common::publish_test_results 6
        flowey e 17 flowey_lib_common::publish_test_results 4
        flowey v 17 'flowey_lib_common::publish_test_results:11:flowey_lib_common/src/publish_test_results.rs:95:47' --is-raw-string --condvar flowey_lib_common::publish_test_results:7:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env github floweyvar2
        flowey v 17 'flowey_lib_common::publish_test_results:7:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
      shell: bash
    - id: flowey_lib_common__publish_test_results__7
      uses: actions/upload-artifact@v7
      with:
        name: aarch64-linux-unit-tests-unit-tests crypto (native)-junit-xml
        path: ${{ env.floweyvar2 }}
      name: 'publish test results: aarch64-linux-unit-tests-unit-tests crypto (native) (JUnit XML)'
      if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
    - name: generate nextest command
      run: flowey e 17 flowey_lib_common::gen_cargo_nextest_run_cmd 3
      shell: bash
    - name: run 'unit-tests crypto (rust)' nextest tests
      run: |-
        flowey e 17 flowey_lib_common::run_cargo_nextest_run 6
        flowey e 17 flowey_lib_common::run_cargo_nextest_run 7
        flowey e 17 flowey_lib_hvlite::build_nextest_unit_tests 3
        flowey e 17 flowey_lib_common::publish_test_results 8
        flowey e 17 flowey_lib_common::publish_test_results 9
        flowey e 17 flowey_lib_common::publish_test_results 10
        flowey v 17 'flowey_lib_common::publish_test_results:18:flowey_lib_common/src/publish_test_results.rs:95:47' --is-raw-string --condvar flowey_lib_common::publish_test_results:14:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env github floweyvar3
        flowey v 17 'flowey_lib_common::publish_test_results:14:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
      shell: bash
    - id: flowey_lib_common__publish_test_results__11
      uses: actions/upload-artifact@v7
      with:
        name: aarch64-linux-unit-tests-unit-tests crypto (rust)-junit-xml
        path: ${{ env.floweyvar3 }}
      name: 'publish test results: aarch64-linux-unit-tests-unit-tests crypto (rust) (JUnit XML)'
      if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
    - name: generate nextest command
      run: flowey e 17 flowey_lib_common::gen_cargo_nextest_run_cmd 2
      shell: bash
    - name: run 'unit-tests crypto (openssl)' nextest tests
      run: |-
        flowey e 17 flowey_lib_common::run_cargo_nextest_run 4
        flowey e 17 flowey_lib_common::run_cargo_nextest_run 5
        flowey e 17 flowey_lib_hvlite::build_nextest_unit_tests 4
        flowey e 17 flowey_lib_common::publish_test_results 12
        flowey e 17 flowey_lib_common::publish_test_results 13
        flowey e 17 flowey_lib_common::publish_test_results 14
        flowey v 17 'flowey_lib_common::publish_test_results:25:flowey_lib_common/src/publish_test_results.rs:95:47' --is-raw-string --condvar flowey_lib_common::publish_test_results:21:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env github floweyvar4
        flowey v 17 'flowey_lib_common::publish_test_results:21:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
      shell: bash
    - id: flowey_lib_common__publish_test_results__15
      uses: actions/upload-artifact@v7
      with:
        name: aarch64-linux-unit-tests-unit-tests crypto (openssl)-junit-xml
        path: ${{ env.floweyvar4 }}
      name: 'publish test results: aarch64-linux-unit-tests-unit-tests crypto (openssl) (JUnit XML)'
      if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
    - name: generate nextest command
      run: flowey e 17 flowey_lib_common::gen_cargo_nextest_run_cmd 0
      shell: bash
    - name: run 'unit-tests crypto (all)' nextest tests
      run: |-
        flowey e 17 flowey_lib_common::run_cargo_nextest_run 0
        flowey e 17 flowey_lib_common::run_cargo_nextest_run 1
        flowey e 17 flowey_lib_hvlite::build_nextest_unit_tests 5
        flowey e 17 flowey_lib_common::publish_test_results 16
        flowey e 17 flowey_lib_common::publish_test_results 17
        flowey e 17 flowey_lib_common::publish_test_results 18
        flowey v 17 'flowey_lib_common::publish_test_results:32:flowey_lib_common/src/publish_test_results.rs:95:47' --is-raw-string --condvar flowey_lib_common::publish_test_results:28:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env github floweyvar5
        flowey v 17 'flowey_lib_common::publish_test_results:28:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
      shell: bash
    - id: flowey_lib_common__publish_test_results__19
      uses: actions/upload-artifact@v7
      with:
        name: aarch64-linux-unit-tests-unit-tests crypto (all)-junit-xml
        path: ${{ env.floweyvar5 }}
      name: 'publish test results: aarch64-linux-unit-tests-unit-tests crypto (all) (JUnit XML)'
      if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
    - name: cargo build xtask
      run: |-
        flowey e 17 flowey_lib_hvlite::init_cross_build 3
        flowey e 17 flowey_lib_common::run_cargo_build 1
        flowey e 17 flowey_lib_hvlite::run_cargo_build 2
      shell: bash
    - name: split debug symbols
      run: |-
        flowey e 17 flowey_lib_hvlite::run_split_debug_info 0
        flowey e 17 flowey_lib_hvlite::run_cargo_build 3
        flowey e 17 flowey_lib_hvlite::build_xtask 1
      shell: bash
    - name: determine unit test exclusions
      run: flowey e 17 flowey_lib_hvlite::build_nextest_unit_tests 0
      shell: bash
    - name: generate nextest command
      run: flowey e 17 flowey_lib_common::gen_cargo_nextest_run_cmd 4
      shell: bash
    - name: run 'unit-tests' nextest tests
      run: |-
        flowey e 17 flowey_lib_common::run_cargo_nextest_run 8
        flowey e 17 flowey_lib_common::run_cargo_nextest_run 9
        flowey e 17 flowey_lib_hvlite::build_nextest_unit_tests 1
        flowey e 17 flowey_lib_common::publish_test_results 0
        flowey e 17 flowey_lib_common::publish_test_results 1
        flowey e 17 flowey_lib_common::publish_test_results 2
        flowey v 17 'flowey_lib_common::publish_test_results:4:flowey_lib_common/src/publish_test_results.rs:95:47' --is-raw-string --condvar flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env github floweyvar1
        flowey v 17 'flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
      shell: bash
    - id: flowey_lib_common__publish_test_results__3
      uses: actions/upload-artifact@v7
      with:
        name: aarch64-linux-unit-tests-unit-tests-junit-xml
        path: ${{ env.floweyvar1 }}
      name: 'publish test results: aarch64-linux-unit-tests-unit-tests (JUnit XML)'
      if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
    - name: report test results to overall pipeline status
      run: |-
        flowey e 17 flowey_lib_hvlite::build_nextest_unit_tests 6
        flowey e 17 flowey_lib_hvlite::_jobs::build_and_run_nextest_unit_tests 0
      shell: bash
    - name: run doctests for aarch64-unknown-linux-gnu
      run: flowey e 17 flowey_lib_hvlite::_jobs::build_and_run_doc_tests 0
      shell: bash
    - name: 'validate cache entry: cargo-nextest'
      run: flowey e 17 flowey_lib_common::cache 3
      shell: bash
    - name: 'validate cache entry: gh-release-download'
      run: flowey e 17 flowey_lib_common::cache 7
      shell: bash
  job18:
    name: clippy [aarch64-linux-musl, misc nostd], unit tests [aarch64-linux-musl]
    runs-on:
    - self-hosted
    - 1ES.Pool=openvmm-gh-arm-westus2
    - 1ES.ImageOverride=ubuntu2404-arm64
    - JobId=job18-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}
    permissions:
      contents: read
      id-token: write
    needs:
    - job0
    if: contains(github.event.pull_request.labels.*.name, 'release-ci-required') && github.event.pull_request.draft == false
    steps:
    - run: |
        set -x
        i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
        sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
        curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.95.0 -y
        . "$HOME/.cargo/env"
        echo "$HOME/.cargo/bin" >> "$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-pr-release.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-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

        echo '"debug"' | flowey v 18 'FLOWEY_LOG' update
        echo "${{ runner.temp }}/work" | flowey v 18 '_internal_WORKING_DIR' --is-raw-string update

        cat <<'EOF' | flowey v 18 'verbose' update
        ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
        EOF
      shell: bash
    - name: add default cargo home to path
      run: flowey e 18 flowey_lib_common::install_rust 0
      shell: bash
    - name: install Rust
      run: flowey e 18 flowey_lib_common::install_rust 1
      shell: bash
    - name: detect active toolchain
      run: |-
        flowey e 18 flowey_lib_common::install_rust 2
        flowey e 18 flowey_lib_common::cfg_cargo_common_flags 0
      shell: bash
    - name: check if openvmm needs to be cloned
      run: |-
        flowey e 18 flowey_lib_common::git_checkout 0
        flowey v 18 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:489:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46 write-to-env github floweyvar11
        flowey v 18 '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.floweyvar11 }}
      name: checkout repo openvmm
      if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
    - name: report cloned repo directories
      run: |-
        flowey v 18 'flowey_lib_common::git_checkout:4:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.workspace <<EOF
        ${{ github.workspace }}
        EOF
        flowey e 18 flowey_lib_common::git_checkout 3
        flowey e 18 flowey_lib_hvlite::git_checkout_openvmm_repo 0
        flowey e 18 flowey_lib_hvlite::cfg_openvmm_magicpath 0
      shell: bash
    - name: create gh-release-download cache dir
      run: flowey e 18 flowey_lib_common::download_gh_release 0
      shell: bash
    - name: Pre-processing cache vars
      run: |-
        flowey e 18 flowey_lib_common::cache 4
        flowey v 18 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar9
        flowey v 18 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar10
      shell: bash
    - id: flowey_lib_common__cache__5
      uses: actions/cache@v5
      with:
        key: ${{ env.floweyvar9 }}
        path: ${{ env.floweyvar10 }}
      name: 'Restore cache: gh-release-download'
    - name: download artifacts from github releases
      run: |-
        flowey v 18 'flowey_lib_common::cache:12:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__5.outputs.cache-hit <<EOF
        ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
        EOF
        flowey e 18 flowey_lib_common::cache 6
        flowey e 18 flowey_lib_common::download_gh_release 1
      shell: bash
    - name: unpack openvmm-deps archive
      run: flowey e 18 flowey_lib_hvlite::resolve_openvmm_deps 0
      shell: bash
    - name: extract Aarch64 sysroot.tar.gz
      run: flowey e 18 flowey_lib_hvlite::init_openvmm_magicpath_openhcl_sysroot 0
      shell: bash
    - name: checking if packages need to be installed
      run: flowey e 18 flowey_lib_common::install_dist_pkg 0
      shell: bash
    - name: installing packages
      run: flowey e 18 flowey_lib_common::install_dist_pkg 1
      shell: bash
    - name: set '-Dwarnings' in .cargo/config.toml
      run: flowey e 18 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
      shell: bash
    - name: unpack protoc
      run: flowey e 18 flowey_lib_common::resolve_protoc 0
      shell: bash
    - name: symlink protoc
      run: |-
        flowey e 18 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
        flowey e 18 flowey_lib_hvlite::init_cross_build 2
      shell: bash
    - name: cargo clippy
      run: flowey e 18 flowey_lib_common::run_cargo_clippy 3
      shell: bash
    - name: cargo clippy
      run: flowey e 18 flowey_lib_common::run_cargo_clippy 5
      shell: bash
    - name: cargo clippy
      run: flowey e 18 flowey_lib_common::run_cargo_clippy 1
      shell: bash
    - name: cargo clippy
      run: flowey e 18 flowey_lib_common::run_cargo_clippy 7
      shell: bash
    - name: cargo clippy
      run: |-
        flowey e 18 flowey_lib_common::run_cargo_clippy 6
        flowey e 18 flowey_lib_hvlite::init_cross_build 0
      shell: bash
    - name: cargo build xtask
      run: |-
        flowey e 18 flowey_lib_common::run_cargo_build 0
        flowey e 18 flowey_lib_hvlite::run_cargo_build 0
      shell: bash
    - name: split debug symbols
      run: |-
        flowey e 18 flowey_lib_hvlite::run_split_debug_info 1
        flowey e 18 flowey_lib_hvlite::run_cargo_build 1
        flowey e 18 flowey_lib_hvlite::build_xtask 0
      shell: bash
    - name: determine clippy exclusions
      run: flowey e 18 flowey_lib_hvlite::_jobs::check_clippy 0
      shell: bash
    - name: cargo clippy
      run: flowey e 18 flowey_lib_common::run_cargo_clippy 0
      shell: bash
    - name: cargo clippy
      run: flowey e 18 flowey_lib_common::run_cargo_clippy 2
      shell: bash
    - name: cargo clippy
      run: flowey e 18 flowey_lib_common::run_cargo_clippy 4
      shell: bash
    - name: create cargo-nextest cache dir
      run: |-
        flowey e 18 flowey_lib_common::download_cargo_nextest 0
        flowey e 18 flowey_lib_common::download_cargo_nextest 1
        flowey e 18 flowey_lib_common::download_cargo_nextest 2
        flowey e 18 flowey_lib_common::download_cargo_nextest 3
      shell: bash
    - name: Pre-processing cache vars
      run: |-
        flowey e 18 flowey_lib_common::cache 0
        flowey v 18 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar7
        flowey v 18 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar8
      shell: bash
    - id: flowey_lib_common__cache__1
      uses: actions/cache@v5
      with:
        key: ${{ env.floweyvar7 }}
        path: ${{ env.floweyvar8 }}
      name: 'Restore cache: cargo-nextest'
    - name: downloading cargo-nextest
      run: |-
        flowey v 18 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__1.outputs.cache-hit <<EOF
        ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
        EOF
        flowey e 18 flowey_lib_common::cache 2
        flowey e 18 flowey_lib_common::download_cargo_nextest 4
      shell: bash
    - name: report $CARGO_HOME
      run: flowey e 18 flowey_lib_common::install_rust 3
      shell: bash
    - name: installing cargo-nextest
      run: |-
        flowey e 18 flowey_lib_common::install_cargo_nextest 0
        flowey e 18 flowey_lib_hvlite::init_cross_build 3
        flowey e 18 flowey_lib_hvlite::run_cargo_nextest_run 0
      shell: bash
    - name: generate nextest command
      run: flowey e 18 flowey_lib_common::gen_cargo_nextest_run_cmd 1
      shell: bash
    - name: run 'unit-tests crypto (native)' nextest tests
      run: |-
        flowey e 18 flowey_lib_common::run_cargo_nextest_run 2
        flowey e 18 flowey_lib_common::run_cargo_nextest_run 3
        flowey e 18 flowey_lib_hvlite::build_nextest_unit_tests 2
        flowey e 18 flowey_lib_common::publish_test_results 5
        flowey e 18 flowey_lib_common::publish_test_results 6
        flowey e 18 flowey_lib_common::publish_test_results 4
        flowey v 18 'flowey_lib_common::publish_test_results:11:flowey_lib_common/src/publish_test_results.rs:95:47' --is-raw-string --condvar flowey_lib_common::publish_test_results:7:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env github floweyvar2
        flowey v 18 'flowey_lib_common::publish_test_results:7:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
      shell: bash
    - id: flowey_lib_common__publish_test_results__7
      uses: actions/upload-artifact@v7
      with:
        name: aarch64-linux-musl-unit-tests-unit-tests crypto (native)-junit-xml
        path: ${{ env.floweyvar2 }}
      name: 'publish test results: aarch64-linux-musl-unit-tests-unit-tests crypto (native) (JUnit XML)'
      if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
    - name: generate nextest command
      run: flowey e 18 flowey_lib_common::gen_cargo_nextest_run_cmd 3
      shell: bash
    - name: run 'unit-tests crypto (rust)' nextest tests
      run: |-
        flowey e 18 flowey_lib_common::run_cargo_nextest_run 6
        flowey e 18 flowey_lib_common::run_cargo_nextest_run 7
        flowey e 18 flowey_lib_hvlite::build_nextest_unit_tests 3
        flowey e 18 flowey_lib_common::publish_test_results 8
        flowey e 18 flowey_lib_common::publish_test_results 9
        flowey e 18 flowey_lib_common::publish_test_results 10
        flowey v 18 'flowey_lib_common::publish_test_results:18:flowey_lib_common/src/publish_test_results.rs:95:47' --is-raw-string --condvar flowey_lib_common::publish_test_results:14:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env github floweyvar3
        flowey v 18 'flowey_lib_common::publish_test_results:14:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
      shell: bash
    - id: flowey_lib_common__publish_test_results__11
      uses: actions/upload-artifact@v7
      with:
        name: aarch64-linux-musl-unit-tests-unit-tests crypto (rust)-junit-xml
        path: ${{ env.floweyvar3 }}
      name: 'publish test results: aarch64-linux-musl-unit-tests-unit-tests crypto (rust) (JUnit XML)'
      if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
    - name: generate nextest command
      run: flowey e 18 flowey_lib_common::gen_cargo_nextest_run_cmd 2
      shell: bash
    - name: run 'unit-tests crypto (openssl)' nextest tests
      run: |-
        flowey e 18 flowey_lib_common::run_cargo_nextest_run 4
        flowey e 18 flowey_lib_common::run_cargo_nextest_run 5
        flowey e 18 flowey_lib_hvlite::build_nextest_unit_tests 4
        flowey e 18 flowey_lib_common::publish_test_results 12
        flowey e 18 flowey_lib_common::publish_test_results 13
        flowey e 18 flowey_lib_common::publish_test_results 14
        flowey v 18 'flowey_lib_common::publish_test_results:25:flowey_lib_common/src/publish_test_results.rs:95:47' --is-raw-string --condvar flowey_lib_common::publish_test_results:21:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env github floweyvar4
        flowey v 18 'flowey_lib_common::publish_test_results:21:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
      shell: bash
    - id: flowey_lib_common__publish_test_results__15
      uses: actions/upload-artifact@v7
      with:
        name: aarch64-linux-musl-unit-tests-unit-tests crypto (openssl)-junit-xml
        path: ${{ env.floweyvar4 }}
      name: 'publish test results: aarch64-linux-musl-unit-tests-unit-tests crypto (openssl) (JUnit XML)'
      if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
    - name: generate nextest command
      run: flowey e 18 flowey_lib_common::gen_cargo_nextest_run_cmd 4
      shell: bash
    - name: run 'unit-tests crypto (symcrypt)' nextest tests
      run: |-
        flowey e 18 flowey_lib_common::run_cargo_nextest_run 8
        flowey e 18 flowey_lib_common::run_cargo_nextest_run 9
        flowey e 18 flowey_lib_hvlite::build_nextest_unit_tests 5
        flowey e 18 flowey_lib_common::publish_test_results 16
        flowey e 18 flowey_lib_common::publish_test_results 17
        flowey e 18 flowey_lib_common::publish_test_results 18
        flowey v 18 'flowey_lib_common::publish_test_results:32:flowey_lib_common/src/publish_test_results.rs:95:47' --is-raw-string --condvar flowey_lib_common::publish_test_results:28:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env github floweyvar5
        flowey v 18 'flowey_lib_common::publish_test_results:28:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
      shell: bash
    - id: flowey_lib_common__publish_test_results__19
      uses: actions/upload-artifact@v7
      with:
        name: aarch64-linux-musl-unit-tests-unit-tests crypto (symcrypt)-junit-xml
        path: ${{ env.floweyvar5 }}
      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 18 flowey_lib_common::gen_cargo_nextest_run_cmd 0
      shell: bash
    - name: run 'unit-tests crypto (all)' nextest tests
      run: |-
        flowey e 18 flowey_lib_common::run_cargo_nextest_run 0
        flowey e 18 flowey_lib_common::run_cargo_nextest_run 1
        flowey e 18 flowey_lib_hvlite::build_nextest_unit_tests 6
        flowey e 18 flowey_lib_common::publish_test_results 20
        flowey e 18 flowey_lib_common::publish_test_results 21
        flowey e 18 flowey_lib_common::publish_test_results 22
        flowey v 18 'flowey_lib_common::publish_test_results:39:flowey_lib_common/src/publish_test_results.rs:95:47' --is-raw-string --condvar flowey_lib_common::publish_test_results:35:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env github floweyvar6
        flowey v 18 'flowey_lib_common::publish_test_results:35:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
      shell: bash
    - id: flowey_lib_common__publish_test_results__23
      uses: actions/upload-artifact@v7
      with:
        name: aarch64-linux-musl-unit-tests-unit-tests crypto (all)-junit-xml
        path: ${{ env.floweyvar6 }}
      name: 'publish test results: aarch64-linux-musl-unit-tests-unit-tests crypto (all) (JUnit XML)'
      if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
    - name: cargo build xtask
      run: |-
        flowey e 18 flowey_lib_hvlite::init_cross_build 1
        flowey e 18 flowey_lib_common::run_cargo_build 1
        flowey e 18 flowey_lib_hvlite::run_cargo_build 2
      shell: bash
    - name: split debug symbols
      run: |-
        flowey e 18 flowey_lib_hvlite::run_split_debug_info 0
        flowey e 18 flowey_lib_hvlite::run_cargo_build 3
        flowey e 18 flowey_lib_hvlite::build_xtask 1
      shell: bash
    - name: determine unit test exclusions
      run: flowey e 18 flowey_lib_hvlite::build_nextest_unit_tests 0
      shell: bash
    - name: generate nextest command
      run: flowey e 18 flowey_lib_common::gen_cargo_nextest_run_cmd 5
      shell: bash
    - name: run 'unit-tests' nextest tests
      run: |-
        flowey e 18 flowey_lib_common::run_cargo_nextest_run 10
        flowey e 18 flowey_lib_common::run_cargo_nextest_run 11
        flowey e 18 flowey_lib_hvlite::build_nextest_unit_tests 1
        flowey e 18 flowey_lib_common::publish_test_results 0
        flowey e 18 flowey_lib_common::publish_test_results 1
        flowey e 18 flowey_lib_common::publish_test_results 2
        flowey v 18 'flowey_lib_common::publish_test_results:4:flowey_lib_common/src/publish_test_results.rs:95:47' --is-raw-string --condvar flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env github floweyvar1
        flowey v 18 'flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
      shell: bash
    - id: flowey_lib_common__publish_test_results__3
      uses: actions/upload-artifact@v7
      with:
        name: aarch64-linux-musl-unit-tests-unit-tests-junit-xml
        path: ${{ env.floweyvar1 }}
      name: 'publish test results: aarch64-linux-musl-unit-tests-unit-tests (JUnit XML)'
      if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
    - name: report test results to overall pipeline status
      run: |-
        flowey e 18 flowey_lib_hvlite::build_nextest_unit_tests 7
        flowey e 18 flowey_lib_hvlite::_jobs::build_and_run_nextest_unit_tests 0
      shell: bash
    - name: run doctests for aarch64-unknown-linux-musl
      run: flowey e 18 flowey_lib_hvlite::_jobs::build_and_run_doc_tests 0
      shell: bash
    - name: 'validate cache entry: cargo-nextest'
      run: flowey e 18 flowey_lib_common::cache 3
      shell: bash
    - name: 'validate cache entry: gh-release-download'
      run: flowey e 18 flowey_lib_common::cache 7
      shell: bash
  job19:
    name: run vmm-tests [x64-windows-intel]
    runs-on:
    - self-hosted
    - 1ES.Pool=openvmm-gh-intel-westus3
    - 1ES.ImageOverride=win-amd64
    - JobId=job19-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}
    permissions:
      contents: read
      id-token: write
    needs:
    - job0
    - job11
    - job2
    - job3
    - job7
    if: contains(github.event.pull_request.labels.*.name, 'release-ci-required') && github.event.pull_request.draft == false
    steps:
    - 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-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-vmgstool-dev,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
      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-vmgstool-dev" | flowey.exe v 19 'artifact_use_from_x64-windows-vmgstool-dev' --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
      shell: bash
    - name: Pre-processing cache vars
      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
      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 19 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__1.outputs.cache-hit <<EOF
        ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
        EOF
        flowey.exe e 19 flowey_lib_common::cache 2
        flowey.exe e 19 flowey_lib_common::download_cargo_nextest 4
      shell: bash
    - name: check if openvmm needs to be cloned
      run: |-
        flowey.exe e 19 flowey_lib_common::git_checkout 0
        flowey.exe v 19 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:489:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46 write-to-env github floweyvar3
        flowey.exe v 19 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION
      shell: bash
    - id: flowey_lib_common__git_checkout__1
      uses: actions/checkout@v6
      with:
        fetch-depth: '1'
        path: repo0
        persist-credentials: ${{ env.floweyvar3 }}
      name: checkout repo openvmm
      if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
    - name: report cloned repo directories
      run: |-
        flowey.exe v 19 'flowey_lib_common::git_checkout:4:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.workspace <<EOF
        ${{ github.workspace }}
        EOF
        flowey.exe e 19 flowey_lib_common::git_checkout 3
        flowey.exe e 19 flowey_lib_hvlite::git_checkout_openvmm_repo 0
        flowey.exe e 19 flowey_lib_hvlite::run_cargo_nextest_run 0
        flowey.exe e 19 flowey_core::pipeline::artifact::resolve 5
        flowey.exe e 19 flowey_core::pipeline::artifact::resolve 6
        flowey.exe e 19 flowey_core::pipeline::artifact::resolve 1
        flowey.exe e 19 flowey_core::pipeline::artifact::resolve 0
        flowey.exe e 19 flowey_core::pipeline::artifact::resolve 9
        flowey.exe e 19 flowey_core::pipeline::artifact::resolve 2
        flowey.exe e 19 flowey_core::pipeline::artifact::resolve 4
        flowey.exe e 19 flowey_core::pipeline::artifact::resolve 11
        flowey.exe e 19 flowey_core::pipeline::artifact::resolve 12
        flowey.exe e 19 flowey_core::pipeline::artifact::resolve 10
        flowey.exe e 19 flowey_core::pipeline::artifact::resolve 3
        flowey.exe e 19 flowey_core::pipeline::artifact::resolve 8
      shell: bash
    - name: creating new test content dir
      run: flowey.exe e 19 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 0
      shell: bash
    - name: resolve OpenHCL igvm artifact
      run: flowey.exe e 19 flowey_lib_hvlite::artifact_openhcl_igvm_from_recipe::resolve 0
      shell: bash
    - name: create gh-release-download cache dir
      run: flowey.exe e 19 flowey_lib_common::download_gh_release 0
      shell: bash
    - name: Pre-processing cache vars
      run: |-
        flowey.exe e 19 flowey_lib_common::cache 8
        flowey.exe v 19 'flowey_lib_common::cache:18:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar8
        flowey.exe v 19 'flowey_lib_common::cache:17:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar9
      shell: bash
    - id: flowey_lib_common__cache__9
      uses: actions/cache@v5
      with:
        key: ${{ env.floweyvar8 }}
        path: ${{ env.floweyvar9 }}
      name: 'Restore cache: gh-release-download'
    - name: download artifacts from github releases
      run: |-
        flowey.exe v 19 'flowey_lib_common::cache:20:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__9.outputs.cache-hit <<EOF
        ${{ steps.flowey_lib_common__cache__9.outputs.cache-hit }}
        EOF
        flowey.exe e 19 flowey_lib_common::cache 10
        flowey.exe e 19 flowey_lib_common::download_gh_release 1
      shell: bash
    - name: extract azcopy from archive
      run: flowey.exe e 19 flowey_lib_common::download_azcopy 0
      shell: bash
    - name: calculating required VMM tests disk images
      run: flowey.exe e 19 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 0
      shell: bash
    - name: downloading VMM test disk images
      run: |-
        flowey.exe e 19 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 1
        flowey.exe e 19 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 2
      shell: bash
    - name: create gh cache dir
      run: flowey.exe e 19 flowey_lib_common::download_gh_cli 0
      shell: bash
    - name: Pre-processing cache vars
      run: |-
        flowey.exe e 19 flowey_lib_common::cache 4
        flowey.exe v 19 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar6
        flowey.exe v 19 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar7
      shell: bash
    - id: flowey_lib_common__cache__5
      uses: actions/cache@v5
      with:
        key: ${{ env.floweyvar6 }}
        path: ${{ env.floweyvar7 }}
      name: 'Restore cache: gh-cli'
    - name: installing gh
      run: |-
        flowey.exe v 19 'flowey_lib_common::cache:12:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__5.outputs.cache-hit <<EOF
        ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
        EOF
        flowey.exe e 19 flowey_lib_common::cache 6
        flowey.exe e 19 flowey_lib_common::download_gh_cli 1
        flowey.exe v 19 'flowey_lib_hvlite::_jobs::cfg_common:0:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.token <<EOF
        ${{ github.token }}
        EOF
      shell: bash
    - name: setup gh cli
      run: flowey.exe e 19 flowey_lib_common::use_gh_cli 0
      shell: bash
    - name: get latest completed action id
      run: flowey.exe e 19 flowey_lib_common::gh_latest_completed_workflow_id 0
      shell: bash
    - name: download artifacts from github actions run
      run: |-
        flowey.exe e 19 flowey_lib_common::download_gh_artifact 0
        flowey.exe e 19 flowey_lib_hvlite::download_release_igvm_files_from_gh::resolve 0
      shell: bash
    - name: unpack openvmm-test-initrd archives
      run: flowey.exe e 19 flowey_lib_hvlite::resolve_openvmm_test_initrd 0
      shell: bash
    - name: unpack openvmm-test-linux archives
      run: flowey.exe e 19 flowey_lib_hvlite::resolve_openvmm_test_linux_kernel 0
      shell: bash
    - name: unpack mu_msvm package (x64)
      run: flowey.exe e 19 flowey_lib_hvlite::download_uefi_mu_msvm 0
      shell: bash
    - name: unpack openvmm-test-virtio-win archive
      run: flowey.exe e 19 flowey_lib_hvlite::resolve_openvmm_test_virtio_win 0
      shell: bash
    - name: setting up vmm_tests env
      run: |-
        flowey.exe e 19 flowey_lib_hvlite::init_vmm_tests_env 0
        flowey.exe e 19 flowey_lib_hvlite::run_cargo_nextest_run 1
        flowey.exe e 19 flowey_core::pipeline::artifact::resolve 13
        flowey.exe e 19 flowey_lib_hvlite::test_nextest_vmm_tests_archive 0
      shell: bash
    - name: generate nextest command
      run: flowey.exe e 19 flowey_lib_common::gen_cargo_nextest_run_cmd 0
      shell: bash
    - name: install vmm tests deps (windows)
      run: flowey.exe e 19 flowey_lib_hvlite::install_vmm_tests_deps 0
      shell: bash
    - name: starting test_igvm_agent_rpc_server
      run: |-
        flowey.exe e 19 flowey_lib_hvlite::run_test_igvm_agent_rpc_server 0
        flowey.exe e 19 flowey_core::pipeline::artifact::resolve 7
      shell: bash
    - name: running vmm_test prep_steps
      run: flowey.exe e 19 flowey_lib_hvlite::run_prep_steps 0
      shell: bash
    - name: run 'vmm_tests' nextest tests
      run: |-
        flowey.exe e 19 flowey_lib_common::run_cargo_nextest_run 0
        flowey.exe e 19 flowey_lib_common::run_cargo_nextest_run 1
        flowey.exe e 19 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 1
      shell: bash
    - name: stopping test_igvm_agent_rpc_server
      run: |-
        flowey.exe e 19 flowey_lib_hvlite::stop_test_igvm_agent_rpc_server 0
        flowey.exe e 19 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 2
        flowey.exe e 19 flowey_lib_common::publish_test_results 4
        flowey.exe e 19 flowey_lib_common::publish_test_results 5
        flowey.exe v 19 'flowey_lib_common::publish_test_results:9:flowey_lib_common/src/publish_test_results.rs:152:62' --is-raw-string --condvar flowey_lib_common::publish_test_results:7:flowey_lib_common/src/publish_test_results.rs:144:57 write-to-env github floweyvar2
        flowey.exe v 19 'flowey_lib_common::publish_test_results:7:flowey_lib_common/src/publish_test_results.rs:144:57' write-to-env github FLOWEY_CONDITION
      shell: bash
    - id: flowey_lib_common__publish_test_results__6
      uses: actions/upload-artifact@v7
      with:
        name: x64-windows-intel-vmm-tests-logs
        path: ${{ env.floweyvar2 }}
      name: 'publish test results: x64-windows-intel-vmm-tests (logs)'
      if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
    - name: 🦀 flowey rust steps
      run: |-
        flowey.exe e 19 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 3
        flowey.exe e 19 flowey_lib_common::publish_test_results 0
        flowey.exe e 19 flowey_lib_common::publish_test_results 1
        flowey.exe e 19 flowey_lib_common::publish_test_results 2
        flowey.exe v 19 'flowey_lib_common::publish_test_results:4:flowey_lib_common/src/publish_test_results.rs:95:47' --is-raw-string --condvar flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env github floweyvar1
        flowey.exe v 19 'flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
      shell: bash
    - id: flowey_lib_common__publish_test_results__3
      uses: actions/upload-artifact@v7
      with:
        name: x64-windows-intel-vmm-tests-junit-xml
        path: ${{ env.floweyvar1 }}
      name: 'publish test results: x64-windows-intel-vmm-tests (JUnit XML)'
      if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
    - name: report test results to overall pipeline status
      run: flowey.exe e 19 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 4
      shell: bash
    - name: 'validate cache entry: cargo-nextest'
      run: flowey.exe e 19 flowey_lib_common::cache 3
      shell: bash
    - name: 'validate cache entry: gh-cli'
      run: flowey.exe e 19 flowey_lib_common::cache 7
      shell: bash
    - name: 'validate cache entry: gh-release-download'
      run: flowey.exe e 19 flowey_lib_common::cache 11
      shell: bash
  job2:
    name: build artifacts (shared VMM tests) [windows]
    runs-on:
    - self-hosted
    - 1ES.Pool=openvmm-gh-amd-westus3
    - 1ES.ImageOverride=win-amd64
    - JobId=job2-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}
    permissions:
      contents: read
      id-token: write
    needs:
    - job0
    if: contains(github.event.pull_request.labels.*.name, 'release-ci-required') && github.event.pull_request.draft == false
    steps:
    - run: |
        set -x
        i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
        sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
        curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.95.0 -y
        . "$HOME/.cargo/env"
        echo "$HOME/.cargo/bin" >> "$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 <<EOF
        ${{ github.workspace }}
        EOF
        flowey.exe e 2 flowey_lib_common::git_checkout 3
        flowey.exe e 2 flowey_lib_hvlite::git_checkout_openvmm_repo 0
      shell: bash
    - name: set '-Dwarnings' in .cargo/config.toml
      run: flowey.exe e 2 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
      shell: bash
    - name: create gh-release-download cache dir
      run: flowey.exe e 2 flowey_lib_common::download_gh_release 0
      shell: bash
    - name: Pre-processing cache vars
      run: |-
        flowey.exe e 2 flowey_lib_common::cache 0
        flowey.exe v 2 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar2
        flowey.exe v 2 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar3
      shell: bash
    - id: flowey_lib_common__cache__1
      uses: actions/cache@v5
      with:
        key: ${{ env.floweyvar2 }}
        path: ${{ env.floweyvar3 }}
      name: 'Restore cache: gh-release-download'
    - name: download artifacts from github releases
      run: |-
        flowey.exe v 2 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__1.outputs.cache-hit <<EOF
        ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
        EOF
        flowey.exe e 2 flowey_lib_common::cache 2
        flowey.exe e 2 flowey_lib_common::download_gh_release 1
      shell: bash
    - name: unpack protoc
      run: |-
        flowey.exe e 2 flowey_lib_common::resolve_protoc 0
        flowey.exe e 2 flowey_lib_hvlite::cfg_openvmm_magicpath 0
      shell: bash
    - name: symlink protoc
      run: |-
        flowey.exe e 2 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
        flowey.exe e 2 flowey_lib_hvlite::init_cross_build 0
      shell: bash
    - name: cargo build pipette
      run: |-
        flowey.exe e 2 flowey_lib_common::run_cargo_build 0
        flowey.exe e 2 flowey_lib_hvlite::run_cargo_build 0
        flowey.exe e 2 flowey_lib_hvlite::build_pipette 0
        flowey.exe e 2 flowey_core::pipeline::artifact::publish 0
        flowey.exe e 2 flowey_lib_hvlite::init_cross_build 1
      shell: bash
    - name: cargo build pipette
      run: |-
        flowey.exe e 2 flowey_lib_common::run_cargo_build 1
        flowey.exe e 2 flowey_lib_hvlite::run_cargo_build 1
        flowey.exe e 2 flowey_lib_hvlite::build_pipette 1
        flowey.exe e 2 flowey_core::pipeline::artifact::publish 1
      shell: bash
    - name: 'validate cache entry: gh-release-download'
      run: flowey.exe e 2 flowey_lib_common::cache 3
      shell: bash
    - name: 🌼📦 Publish aarch64-windows-pipette
      uses: actions/upload-artifact@v7
      with:
        name: aarch64-windows-pipette
        path: ${{ runner.temp }}/publish_artifacts/aarch64-windows-pipette/
        include-hidden-files: true
    - name: 🌼📦 Publish x64-windows-pipette
      uses: actions/upload-artifact@v7
      with:
        name: x64-windows-pipette
        path: ${{ runner.temp }}/publish_artifacts/x64-windows-pipette/
        include-hidden-files: true
  job20:
    name: run vmm-tests [x64-windows-intel-mi-secure]
    runs-on:
    - self-hosted
    - 1ES.Pool=openvmm-gh-intel-westus3
    - 1ES.ImageOverride=win-amd64
    - JobId=job20-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}
    permissions:
      contents: read
      id-token: write
    needs:
    - job0
    - job12
    - job2
    - job3
    - job7
    if: contains(github.event.pull_request.labels.*.name, 'release-ci-required') && github.event.pull_request.draft == false
    steps:
    - 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-vmgstool-dev,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
      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 20 'FLOWEY_LOG' update
        echo "${{ runner.temp }}/work" | flowey.exe v 20 '_internal_WORKING_DIR' --is-raw-string update

        cat <<'EOF' | flowey.exe v 20 'verbose' update
        ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
        EOF
        echo "${{ runner.temp }}\\used_artifacts\\x64-guest_test_uefi" | flowey.exe v 20 'artifact_use_from_x64-guest_test_uefi' --is-raw-string update
        echo "${{ runner.temp }}\\used_artifacts\\x64-linux-musl-pipette" | flowey.exe v 20 'artifact_use_from_x64-linux-musl-pipette' --is-raw-string update
        echo "${{ runner.temp }}\\used_artifacts\\x64-linux-musl-tmk_vmm" | flowey.exe v 20 'artifact_use_from_x64-linux-musl-tmk_vmm' --is-raw-string update
        echo "${{ runner.temp }}\\used_artifacts\\x64-linux-tpm_guest_tests" | flowey.exe v 20 'artifact_use_from_x64-linux-tpm_guest_tests' --is-raw-string update
        echo "${{ runner.temp }}\\used_artifacts\\x64-mi-secure-openhcl-igvm" | flowey.exe v 20 'artifact_use_from_x64-mi-secure-openhcl-igvm' --is-raw-string update
        echo "${{ runner.temp }}\\used_artifacts\\x64-tmks" | flowey.exe v 20 'artifact_use_from_x64-tmks' --is-raw-string update
        echo "${{ runner.temp }}\\used_artifacts\\x64-windows-openvmm" | flowey.exe v 20 'artifact_use_from_x64-windows-openvmm' --is-raw-string update
        echo "${{ runner.temp }}\\used_artifacts\\x64-windows-pipette" | flowey.exe v 20 'artifact_use_from_x64-windows-pipette' --is-raw-string update
        echo "${{ runner.temp }}\\used_artifacts\\x64-windows-prep_steps" | flowey.exe v 20 '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 20 '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 20 'artifact_use_from_x64-windows-tmk_vmm' --is-raw-string update
        echo "${{ runner.temp }}\\used_artifacts\\x64-windows-tpm_guest_tests" | flowey.exe v 20 'artifact_use_from_x64-windows-tpm_guest_tests' --is-raw-string update
        echo "${{ runner.temp }}\\used_artifacts\\x64-windows-vmgstool" | flowey.exe v 20 'artifact_use_from_x64-windows-vmgstool' --is-raw-string update
        echo "${{ runner.temp }}\\used_artifacts\\x64-windows-vmgstool-dev" | flowey.exe v 20 'artifact_use_from_x64-windows-vmgstool-dev' --is-raw-string update
        echo "${{ runner.temp }}\\used_artifacts\\x64-windows-vmm-tests-archive" | flowey.exe v 20 'artifact_use_from_x64-windows-vmm-tests-archive' --is-raw-string update
      shell: bash
    - name: create cargo-nextest cache dir
      run: |-
        flowey.exe e 20 flowey_lib_common::download_cargo_nextest 0
        flowey.exe e 20 flowey_lib_common::download_cargo_nextest 1
        flowey.exe e 20 flowey_lib_common::download_cargo_nextest 2
        flowey.exe e 20 flowey_lib_common::download_cargo_nextest 3
      shell: bash
    - name: Pre-processing cache vars
      run: |-
        flowey.exe e 20 flowey_lib_common::cache 0
        flowey.exe v 20 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar4
        flowey.exe v 20 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar5
      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 20 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__1.outputs.cache-hit <<EOF
        ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
        EOF
        flowey.exe e 20 flowey_lib_common::cache 2
        flowey.exe e 20 flowey_lib_common::download_cargo_nextest 4
      shell: bash
    - name: check if openvmm needs to be cloned
      run: |-
        flowey.exe e 20 flowey_lib_common::git_checkout 0
        flowey.exe v 20 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:489:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46 write-to-env github floweyvar3
        flowey.exe v 20 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION
      shell: bash
    - id: flowey_lib_common__git_checkout__1
      uses: actions/checkout@v6
      with:
        fetch-depth: '1'
        path: repo0
        persist-credentials: ${{ env.floweyvar3 }}
      name: checkout repo openvmm
      if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
    - name: report cloned repo directories
      run: |-
        flowey.exe v 20 'flowey_lib_common::git_checkout:4:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.workspace <<EOF
        ${{ github.workspace }}
        EOF
        flowey.exe e 20 flowey_lib_common::git_checkout 3
        flowey.exe e 20 flowey_lib_hvlite::git_checkout_openvmm_repo 0
        flowey.exe e 20 flowey_lib_hvlite::run_cargo_nextest_run 0
        flowey.exe e 20 flowey_core::pipeline::artifact::resolve 5
        flowey.exe e 20 flowey_core::pipeline::artifact::resolve 6
        flowey.exe e 20 flowey_core::pipeline::artifact::resolve 1
        flowey.exe e 20 flowey_core::pipeline::artifact::resolve 0
        flowey.exe e 20 flowey_core::pipeline::artifact::resolve 9
        flowey.exe e 20 flowey_core::pipeline::artifact::resolve 2
        flowey.exe e 20 flowey_core::pipeline::artifact::resolve 4
        flowey.exe e 20 flowey_core::pipeline::artifact::resolve 11
        flowey.exe e 20 flowey_core::pipeline::artifact::resolve 12
        flowey.exe e 20 flowey_core::pipeline::artifact::resolve 10
        flowey.exe e 20 flowey_core::pipeline::artifact::resolve 3
        flowey.exe e 20 flowey_core::pipeline::artifact::resolve 8
      shell: bash
    - name: creating new test content dir
      run: flowey.exe e 20 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 0
      shell: bash
    - name: resolve OpenHCL igvm artifact
      run: flowey.exe e 20 flowey_lib_hvlite::artifact_openhcl_igvm_from_recipe::resolve 0
      shell: bash
    - name: create gh-release-download cache dir
      run: flowey.exe e 20 flowey_lib_common::download_gh_release 0
      shell: bash
    - name: Pre-processing cache vars
      run: |-
        flowey.exe e 20 flowey_lib_common::cache 8
        flowey.exe v 20 'flowey_lib_common::cache:18:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar8
        flowey.exe v 20 'flowey_lib_common::cache:17:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar9
      shell: bash
    - id: flowey_lib_common__cache__9
      uses: actions/cache@v5
      with:
        key: ${{ env.floweyvar8 }}
        path: ${{ env.floweyvar9 }}
      name: 'Restore cache: gh-release-download'
    - name: download artifacts from github releases
      run: |-
        flowey.exe v 20 'flowey_lib_common::cache:20:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__9.outputs.cache-hit <<EOF
        ${{ steps.flowey_lib_common__cache__9.outputs.cache-hit }}
        EOF
        flowey.exe e 20 flowey_lib_common::cache 10
        flowey.exe e 20 flowey_lib_common::download_gh_release 1
      shell: bash
    - name: extract azcopy from archive
      run: flowey.exe e 20 flowey_lib_common::download_azcopy 0
      shell: bash
    - name: calculating required VMM tests disk images
      run: flowey.exe e 20 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 0
      shell: bash
    - name: downloading VMM test disk images
      run: |-
        flowey.exe e 20 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 1
        flowey.exe e 20 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 2
      shell: bash
    - name: create gh cache dir
      run: flowey.exe e 20 flowey_lib_common::download_gh_cli 0
      shell: bash
    - name: Pre-processing cache vars
      run: |-
        flowey.exe e 20 flowey_lib_common::cache 4
        flowey.exe v 20 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar6
        flowey.exe v 20 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar7
      shell: bash
    - id: flowey_lib_common__cache__5
      uses: actions/cache@v5
      with:
        key: ${{ env.floweyvar6 }}
        path: ${{ env.floweyvar7 }}
      name: 'Restore cache: gh-cli'
    - name: installing gh
      run: |-
        flowey.exe v 20 'flowey_lib_common::cache:12:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__5.outputs.cache-hit <<EOF
        ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
        EOF
        flowey.exe e 20 flowey_lib_common::cache 6
        flowey.exe e 20 flowey_lib_common::download_gh_cli 1
        flowey.exe v 20 'flowey_lib_hvlite::_jobs::cfg_common:0:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.token <<EOF
        ${{ github.token }}
        EOF
      shell: bash
    - name: setup gh cli
      run: flowey.exe e 20 flowey_lib_common::use_gh_cli 0
      shell: bash
    - name: get latest completed action id
      run: flowey.exe e 20 flowey_lib_common::gh_latest_completed_workflow_id 0
      shell: bash
    - name: download artifacts from github actions run
      run: |-
        flowey.exe e 20 flowey_lib_common::download_gh_artifact 0
        flowey.exe e 20 flowey_lib_hvlite::download_release_igvm_files_from_gh::resolve 0
      shell: bash
    - name: unpack openvmm-test-initrd archives
      run: flowey.exe e 20 flowey_lib_hvlite::resolve_openvmm_test_initrd 0
      shell: bash
    - name: unpack openvmm-test-linux archives
      run: flowey.exe e 20 flowey_lib_hvlite::resolve_openvmm_test_linux_kernel 0
      shell: bash
    - name: unpack mu_msvm package (x64)
      run: flowey.exe e 20 flowey_lib_hvlite::download_uefi_mu_msvm 0
      shell: bash
    - name: unpack openvmm-test-virtio-win archive
      run: flowey.exe e 20 flowey_lib_hvlite::resolve_openvmm_test_virtio_win 0
      shell: bash
    - name: setting up vmm_tests env
      run: |-
        flowey.exe e 20 flowey_lib_hvlite::init_vmm_tests_env 0
        flowey.exe e 20 flowey_lib_hvlite::run_cargo_nextest_run 1
        flowey.exe e 20 flowey_core::pipeline::artifact::resolve 13
        flowey.exe e 20 flowey_lib_hvlite::test_nextest_vmm_tests_archive 0
      shell: bash
    - name: generate nextest command
      run: flowey.exe e 20 flowey_lib_common::gen_cargo_nextest_run_cmd 0
      shell: bash
    - name: install vmm tests deps (windows)
      run: flowey.exe e 20 flowey_lib_hvlite::install_vmm_tests_deps 0
      shell: bash
    - name: starting test_igvm_agent_rpc_server
      run: flowey.exe e 20 flowey_lib_hvlite::run_test_igvm_agent_rpc_server 0
      shell: bash
    - name: run 'vmm_tests' nextest tests
      run: |-
        flowey.exe e 20 flowey_lib_common::run_cargo_nextest_run 0
        flowey.exe e 20 flowey_lib_common::run_cargo_nextest_run 1
        flowey.exe e 20 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 1
      shell: bash
    - name: stopping test_igvm_agent_rpc_server
      run: |-
        flowey.exe e 20 flowey_lib_hvlite::stop_test_igvm_agent_rpc_server 0
        flowey.exe e 20 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 2
        flowey.exe e 20 flowey_lib_common::publish_test_results 4
        flowey.exe e 20 flowey_lib_common::publish_test_results 5
        flowey.exe v 20 'flowey_lib_common::publish_test_results:9:flowey_lib_common/src/publish_test_results.rs:152:62' --is-raw-string --condvar flowey_lib_common::publish_test_results:7:flowey_lib_common/src/publish_test_results.rs:144:57 write-to-env github floweyvar2
        flowey.exe v 20 'flowey_lib_common::publish_test_results:7:flowey_lib_common/src/publish_test_results.rs:144:57' write-to-env github FLOWEY_CONDITION
      shell: bash
    - id: flowey_lib_common__publish_test_results__6
      uses: actions/upload-artifact@v7
      with:
        name: x64-windows-intel-mi-secure-vmm-tests-logs
        path: ${{ env.floweyvar2 }}
      name: 'publish test results: x64-windows-intel-mi-secure-vmm-tests (logs)'
      if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
    - name: 🦀 flowey rust steps
      run: |-
        flowey.exe e 20 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 3
        flowey.exe e 20 flowey_lib_common::publish_test_results 0
        flowey.exe e 20 flowey_lib_common::publish_test_results 1
        flowey.exe e 20 flowey_lib_common::publish_test_results 2
        flowey.exe v 20 'flowey_lib_common::publish_test_results:4:flowey_lib_common/src/publish_test_results.rs:95:47' --is-raw-string --condvar flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env github floweyvar1
        flowey.exe v 20 'flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
      shell: bash
    - id: flowey_lib_common__publish_test_results__3
      uses: actions/upload-artifact@v7
      with:
        name: x64-windows-intel-mi-secure-vmm-tests-junit-xml
        path: ${{ env.floweyvar1 }}
      name: 'publish test results: x64-windows-intel-mi-secure-vmm-tests (JUnit XML)'
      if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
    - name: report test results to overall pipeline status
      run: flowey.exe e 20 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 4
      shell: bash
    - name: 'validate cache entry: cargo-nextest'
      run: flowey.exe e 20 flowey_lib_common::cache 3
      shell: bash
    - name: 'validate cache entry: gh-cli'
      run: flowey.exe e 20 flowey_lib_common::cache 7
      shell: bash
    - name: 'validate cache entry: gh-release-download'
      run: flowey.exe e 20 flowey_lib_common::cache 11
      shell: bash
  job21:
    name: run vmm-tests [x64-windows-intel-tdx]
    runs-on:
    - self-hosted
    - Windows
    - X64
    - TDX
    - Baremetal
    permissions:
      contents: read
      id-token: write
    needs:
    - job0
    - job11
    - job2
    - job3
    - job7
    if: contains(github.event.pull_request.labels.*.name, 'release-ci-required') && github.event.pull_request.draft == false
    steps:
    - 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-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-vmgstool-dev,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
      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 21 'FLOWEY_LOG' update
        echo "${{ runner.temp }}/work" | flowey.exe v 21 '_internal_WORKING_DIR' --is-raw-string update

        cat <<'EOF' | flowey.exe v 21 'verbose' update
        ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
        EOF
        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-vmgstool-dev" | flowey.exe v 21 'artifact_use_from_x64-windows-vmgstool-dev' --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: create cargo-nextest cache dir
      run: |-
        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.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__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 <<EOF
        ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
        EOF
        flowey.exe e 21 flowey_lib_common::cache 2
        flowey.exe e 21 flowey_lib_common::download_cargo_nextest 4
      shell: bash
    - name: check if openvmm needs to be cloned
      run: |-
        flowey.exe e 21 flowey_lib_common::git_checkout 0
        flowey.exe v 21 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:489:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46 write-to-env github floweyvar3
        flowey.exe v 21 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION
      shell: bash
    - id: flowey_lib_common__git_checkout__1
      uses: actions/checkout@v6
      with:
        fetch-depth: '1'
        path: repo0
        persist-credentials: ${{ env.floweyvar3 }}
      name: checkout repo openvmm
      if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
    - name: report cloned repo directories
      run: |-
        flowey.exe v 21 'flowey_lib_common::git_checkout:4:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.workspace <<EOF
        ${{ github.workspace }}
        EOF
        flowey.exe e 21 flowey_lib_common::git_checkout 3
        flowey.exe e 21 flowey_lib_hvlite::git_checkout_openvmm_repo 0
        flowey.exe e 21 flowey_lib_hvlite::run_cargo_nextest_run 0
        flowey.exe e 21 flowey_core::pipeline::artifact::resolve 5
        flowey.exe e 21 flowey_core::pipeline::artifact::resolve 6
        flowey.exe e 21 flowey_core::pipeline::artifact::resolve 1
        flowey.exe e 21 flowey_core::pipeline::artifact::resolve 0
        flowey.exe e 21 flowey_core::pipeline::artifact::resolve 9
        flowey.exe e 21 flowey_core::pipeline::artifact::resolve 2
        flowey.exe e 21 flowey_core::pipeline::artifact::resolve 4
        flowey.exe e 21 flowey_core::pipeline::artifact::resolve 11
        flowey.exe e 21 flowey_core::pipeline::artifact::resolve 12
        flowey.exe e 21 flowey_core::pipeline::artifact::resolve 10
        flowey.exe e 21 flowey_core::pipeline::artifact::resolve 3
        flowey.exe e 21 flowey_core::pipeline::artifact::resolve 8
      shell: bash
    - name: creating new test content dir
      run: flowey.exe e 21 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 0
      shell: bash
    - name: resolve OpenHCL igvm artifact
      run: flowey.exe e 21 flowey_lib_hvlite::artifact_openhcl_igvm_from_recipe::resolve 0
      shell: bash
    - name: create gh-release-download cache dir
      run: flowey.exe e 21 flowey_lib_common::download_gh_release 0
      shell: bash
    - name: Pre-processing cache vars
      run: |-
        flowey.exe e 21 flowey_lib_common::cache 8
        flowey.exe v 21 'flowey_lib_common::cache:18:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar8
        flowey.exe v 21 'flowey_lib_common::cache:17:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar9
      shell: bash
    - id: flowey_lib_common__cache__9
      uses: actions/cache@v5
      with:
        key: ${{ env.floweyvar8 }}
        path: ${{ env.floweyvar9 }}
      name: 'Restore cache: gh-release-download'
    - name: download artifacts from github releases
      run: |-
        flowey.exe v 21 'flowey_lib_common::cache:20:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__9.outputs.cache-hit <<EOF
        ${{ steps.flowey_lib_common__cache__9.outputs.cache-hit }}
        EOF
        flowey.exe e 21 flowey_lib_common::cache 10
        flowey.exe e 21 flowey_lib_common::download_gh_release 1
      shell: bash
    - name: extract azcopy from archive
      run: flowey.exe e 21 flowey_lib_common::download_azcopy 0
      shell: bash
    - name: calculating required VMM tests disk images
      run: flowey.exe e 21 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 0
      shell: bash
    - name: downloading VMM test disk images
      run: |-
        flowey.exe e 21 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 1
        flowey.exe e 21 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 2
      shell: bash
    - name: create gh cache dir
      run: flowey.exe e 21 flowey_lib_common::download_gh_cli 0
      shell: bash
    - name: Pre-processing cache vars
      run: |-
        flowey.exe e 21 flowey_lib_common::cache 4
        flowey.exe v 21 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar6
        flowey.exe v 21 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar7
      shell: bash
    - id: flowey_lib_common__cache__5
      uses: actions/cache@v5
      with:
        key: ${{ env.floweyvar6 }}
        path: ${{ env.floweyvar7 }}
      name: 'Restore cache: gh-cli'
    - name: installing gh
      run: |-
        flowey.exe v 21 'flowey_lib_common::cache:12:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__5.outputs.cache-hit <<EOF
        ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
        EOF
        flowey.exe e 21 flowey_lib_common::cache 6
        flowey.exe e 21 flowey_lib_common::download_gh_cli 1
        flowey.exe v 21 'flowey_lib_hvlite::_jobs::cfg_common:0:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.token <<EOF
        ${{ github.token }}
        EOF
      shell: bash
    - name: setup gh cli
      run: flowey.exe e 21 flowey_lib_common::use_gh_cli 0
      shell: bash
    - name: get latest completed action id
      run: flowey.exe e 21 flowey_lib_common::gh_latest_completed_workflow_id 0
      shell: bash
    - name: download artifacts from github actions run
      run: |-
        flowey.exe e 21 flowey_lib_common::download_gh_artifact 0
        flowey.exe e 21 flowey_lib_hvlite::download_release_igvm_files_from_gh::resolve 0
      shell: bash
    - name: unpack openvmm-test-initrd archives
      run: flowey.exe e 21 flowey_lib_hvlite::resolve_openvmm_test_initrd 0
      shell: bash
    - name: unpack openvmm-test-linux archives
      run: flowey.exe e 21 flowey_lib_hvlite::resolve_openvmm_test_linux_kernel 0
      shell: bash
    - name: unpack mu_msvm package (x64)
      run: flowey.exe e 21 flowey_lib_hvlite::download_uefi_mu_msvm 0
      shell: bash
    - name: unpack openvmm-test-virtio-win archive
      run: flowey.exe e 21 flowey_lib_hvlite::resolve_openvmm_test_virtio_win 0
      shell: bash
    - name: setting up vmm_tests env
      run: |-
        flowey.exe e 21 flowey_lib_hvlite::init_vmm_tests_env 0
        flowey.exe e 21 flowey_lib_hvlite::run_cargo_nextest_run 1
        flowey.exe e 21 flowey_core::pipeline::artifact::resolve 13
        flowey.exe e 21 flowey_lib_hvlite::test_nextest_vmm_tests_archive 0
      shell: bash
    - name: generate nextest command
      run: flowey.exe e 21 flowey_lib_common::gen_cargo_nextest_run_cmd 0
      shell: bash
    - name: install vmm tests deps (windows)
      run: flowey.exe e 21 flowey_lib_hvlite::install_vmm_tests_deps 0
      shell: bash
    - name: starting test_igvm_agent_rpc_server
      run: |-
        flowey.exe e 21 flowey_lib_hvlite::run_test_igvm_agent_rpc_server 0
        flowey.exe e 21 flowey_core::pipeline::artifact::resolve 7
      shell: bash
    - name: running vmm_test prep_steps
      run: flowey.exe e 21 flowey_lib_hvlite::run_prep_steps 0
      shell: bash
    - name: run 'vmm_tests' nextest tests
      run: |-
        flowey.exe e 21 flowey_lib_common::run_cargo_nextest_run 0
        flowey.exe e 21 flowey_lib_common::run_cargo_nextest_run 1
        flowey.exe e 21 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 1
      shell: bash
    - name: stopping test_igvm_agent_rpc_server
      run: |-
        flowey.exe e 21 flowey_lib_hvlite::stop_test_igvm_agent_rpc_server 0
        flowey.exe e 21 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 2
        flowey.exe e 21 flowey_lib_common::publish_test_results 4
        flowey.exe e 21 flowey_lib_common::publish_test_results 5
        flowey.exe v 21 'flowey_lib_common::publish_test_results:9:flowey_lib_common/src/publish_test_results.rs:152:62' --is-raw-string --condvar flowey_lib_common::publish_test_results:7:flowey_lib_common/src/publish_test_results.rs:144:57 write-to-env github floweyvar2
        flowey.exe v 21 'flowey_lib_common::publish_test_results:7:flowey_lib_common/src/publish_test_results.rs:144:57' write-to-env github FLOWEY_CONDITION
      shell: bash
    - id: flowey_lib_common__publish_test_results__6
      uses: actions/upload-artifact@v7
      with:
        name: x64-windows-intel-tdx-vmm-tests-logs
        path: ${{ env.floweyvar2 }}
      name: 'publish test results: x64-windows-intel-tdx-vmm-tests (logs)'
      if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
    - name: 🦀 flowey rust steps
      run: |-
        flowey.exe e 21 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 3
        flowey.exe e 21 flowey_lib_common::publish_test_results 0
        flowey.exe e 21 flowey_lib_common::publish_test_results 1
        flowey.exe e 21 flowey_lib_common::publish_test_results 2
        flowey.exe v 21 'flowey_lib_common::publish_test_results:4:flowey_lib_common/src/publish_test_results.rs:95:47' --is-raw-string --condvar flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env github floweyvar1
        flowey.exe v 21 'flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
      shell: bash
    - id: flowey_lib_common__publish_test_results__3
      uses: actions/upload-artifact@v7
      with:
        name: x64-windows-intel-tdx-vmm-tests-junit-xml
        path: ${{ env.floweyvar1 }}
      name: 'publish test results: x64-windows-intel-tdx-vmm-tests (JUnit XML)'
      if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
    - name: report test results to overall pipeline status
      run: flowey.exe e 21 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 4
      shell: bash
    - name: 'validate cache entry: cargo-nextest'
      run: flowey.exe e 21 flowey_lib_common::cache 3
      shell: bash
    - name: 'validate cache entry: gh-cli'
      run: flowey.exe e 21 flowey_lib_common::cache 7
      shell: bash
    - name: 'validate cache entry: gh-release-download'
      run: flowey.exe e 21 flowey_lib_common::cache 11
      shell: bash
  job22:
    name: run vmm-tests [x64-windows-amd]
    runs-on:
    - self-hosted
    - 1ES.Pool=openvmm-gh-amd-westus3
    - 1ES.ImageOverride=win-amd64
    - JobId=job22-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}
    permissions:
      contents: read
      id-token: write
    needs:
    - job0
    - job11
    - job2
    - job3
    - job7
    if: contains(github.event.pull_request.labels.*.name, 'release-ci-required') && github.event.pull_request.draft == false
    steps:
    - 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-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-vmgstool-dev,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
      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 22 'FLOWEY_LOG' update
        echo "${{ runner.temp }}/work" | flowey.exe v 22 '_internal_WORKING_DIR' --is-raw-string update

        cat <<'EOF' | flowey.exe v 22 'verbose' update
        ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
        EOF
        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-vmgstool-dev" | flowey.exe v 22 'artifact_use_from_x64-windows-vmgstool-dev' --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: create cargo-nextest cache dir
      run: |-
        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: 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
    - 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 <<EOF
        ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
        EOF
        flowey.exe e 22 flowey_lib_common::cache 2
        flowey.exe e 22 flowey_lib_common::download_cargo_nextest 4
      shell: bash
    - name: check if openvmm needs to be cloned
      run: |-
        flowey.exe e 22 flowey_lib_common::git_checkout 0
        flowey.exe v 22 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:489:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46 write-to-env github floweyvar3
        flowey.exe v 22 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION
      shell: bash
    - id: flowey_lib_common__git_checkout__1
      uses: actions/checkout@v6
      with:
        fetch-depth: '1'
        path: repo0
        persist-credentials: ${{ env.floweyvar3 }}
      name: checkout repo openvmm
      if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
    - name: report cloned repo directories
      run: |-
        flowey.exe v 22 'flowey_lib_common::git_checkout:4:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.workspace <<EOF
        ${{ github.workspace }}
        EOF
        flowey.exe e 22 flowey_lib_common::git_checkout 3
        flowey.exe e 22 flowey_lib_hvlite::git_checkout_openvmm_repo 0
        flowey.exe e 22 flowey_lib_hvlite::run_cargo_nextest_run 0
        flowey.exe e 22 flowey_core::pipeline::artifact::resolve 5
        flowey.exe e 22 flowey_core::pipeline::artifact::resolve 6
        flowey.exe e 22 flowey_core::pipeline::artifact::resolve 1
        flowey.exe e 22 flowey_core::pipeline::artifact::resolve 0
        flowey.exe e 22 flowey_core::pipeline::artifact::resolve 9
        flowey.exe e 22 flowey_core::pipeline::artifact::resolve 2
        flowey.exe e 22 flowey_core::pipeline::artifact::resolve 4
        flowey.exe e 22 flowey_core::pipeline::artifact::resolve 11
        flowey.exe e 22 flowey_core::pipeline::artifact::resolve 12
        flowey.exe e 22 flowey_core::pipeline::artifact::resolve 10
        flowey.exe e 22 flowey_core::pipeline::artifact::resolve 3
        flowey.exe e 22 flowey_core::pipeline::artifact::resolve 8
      shell: bash
    - name: creating new test content dir
      run: flowey.exe e 22 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 0
      shell: bash
    - name: resolve OpenHCL igvm artifact
      run: flowey.exe e 22 flowey_lib_hvlite::artifact_openhcl_igvm_from_recipe::resolve 0
      shell: bash
    - name: create gh-release-download cache dir
      run: flowey.exe e 22 flowey_lib_common::download_gh_release 0
      shell: bash
    - name: Pre-processing cache vars
      run: |-
        flowey.exe e 22 flowey_lib_common::cache 8
        flowey.exe v 22 'flowey_lib_common::cache:18:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar8
        flowey.exe v 22 'flowey_lib_common::cache:17:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar9
      shell: bash
    - id: flowey_lib_common__cache__9
      uses: actions/cache@v5
      with:
        key: ${{ env.floweyvar8 }}
        path: ${{ env.floweyvar9 }}
      name: 'Restore cache: gh-release-download'
    - name: download artifacts from github releases
      run: |-
        flowey.exe v 22 'flowey_lib_common::cache:20:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__9.outputs.cache-hit <<EOF
        ${{ steps.flowey_lib_common__cache__9.outputs.cache-hit }}
        EOF
        flowey.exe e 22 flowey_lib_common::cache 10
        flowey.exe e 22 flowey_lib_common::download_gh_release 1
      shell: bash
    - name: extract azcopy from archive
      run: flowey.exe e 22 flowey_lib_common::download_azcopy 0
      shell: bash
    - name: calculating required VMM tests disk images
      run: flowey.exe e 22 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 0
      shell: bash
    - name: downloading VMM test disk images
      run: |-
        flowey.exe e 22 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 1
        flowey.exe e 22 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 2
      shell: bash
    - name: create gh cache dir
      run: flowey.exe e 22 flowey_lib_common::download_gh_cli 0
      shell: bash
    - name: Pre-processing cache vars
      run: |-
        flowey.exe e 22 flowey_lib_common::cache 4
        flowey.exe v 22 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar6
        flowey.exe v 22 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar7
      shell: bash
    - id: flowey_lib_common__cache__5
      uses: actions/cache@v5
      with:
        key: ${{ env.floweyvar6 }}
        path: ${{ env.floweyvar7 }}
      name: 'Restore cache: gh-cli'
    - name: installing gh
      run: |-
        flowey.exe v 22 'flowey_lib_common::cache:12:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__5.outputs.cache-hit <<EOF
        ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
        EOF
        flowey.exe e 22 flowey_lib_common::cache 6
        flowey.exe e 22 flowey_lib_common::download_gh_cli 1
        flowey.exe v 22 'flowey_lib_hvlite::_jobs::cfg_common:0:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.token <<EOF
        ${{ github.token }}
        EOF
      shell: bash
    - name: setup gh cli
      run: flowey.exe e 22 flowey_lib_common::use_gh_cli 0
      shell: bash
    - name: get latest completed action id
      run: flowey.exe e 22 flowey_lib_common::gh_latest_completed_workflow_id 0
      shell: bash
    - name: download artifacts from github actions run
      run: |-
        flowey.exe e 22 flowey_lib_common::download_gh_artifact 0
        flowey.exe e 22 flowey_lib_hvlite::download_release_igvm_files_from_gh::resolve 0
      shell: bash
    - name: unpack openvmm-test-initrd archives
      run: flowey.exe e 22 flowey_lib_hvlite::resolve_openvmm_test_initrd 0
      shell: bash
    - name: unpack openvmm-test-linux archives
      run: flowey.exe e 22 flowey_lib_hvlite::resolve_openvmm_test_linux_kernel 0
      shell: bash
    - name: unpack mu_msvm package (x64)
      run: flowey.exe e 22 flowey_lib_hvlite::download_uefi_mu_msvm 0
      shell: bash
    - name: unpack openvmm-test-virtio-win archive
      run: flowey.exe e 22 flowey_lib_hvlite::resolve_openvmm_test_virtio_win 0
      shell: bash
    - name: setting up vmm_tests env
      run: |-
        flowey.exe e 22 flowey_lib_hvlite::init_vmm_tests_env 0
        flowey.exe e 22 flowey_lib_hvlite::run_cargo_nextest_run 1
        flowey.exe e 22 flowey_core::pipeline::artifact::resolve 13
        flowey.exe e 22 flowey_lib_hvlite::test_nextest_vmm_tests_archive 0
      shell: bash
    - name: generate nextest command
      run: flowey.exe e 22 flowey_lib_common::gen_cargo_nextest_run_cmd 0
      shell: bash
    - name: install vmm tests deps (windows)
      run: flowey.exe e 22 flowey_lib_hvlite::install_vmm_tests_deps 0
      shell: bash
    - name: starting test_igvm_agent_rpc_server
      run: |-
        flowey.exe e 22 flowey_lib_hvlite::run_test_igvm_agent_rpc_server 0
        flowey.exe e 22 flowey_core::pipeline::artifact::resolve 7
      shell: bash
    - name: running vmm_test prep_steps
      run: flowey.exe e 22 flowey_lib_hvlite::run_prep_steps 0
      shell: bash
    - name: run 'vmm_tests' nextest tests
      run: |-
        flowey.exe e 22 flowey_lib_common::run_cargo_nextest_run 0
        flowey.exe e 22 flowey_lib_common::run_cargo_nextest_run 1
        flowey.exe e 22 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 1
      shell: bash
    - name: stopping test_igvm_agent_rpc_server
      run: |-
        flowey.exe e 22 flowey_lib_hvlite::stop_test_igvm_agent_rpc_server 0
        flowey.exe e 22 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 2
        flowey.exe e 22 flowey_lib_common::publish_test_results 4
        flowey.exe e 22 flowey_lib_common::publish_test_results 5
        flowey.exe v 22 'flowey_lib_common::publish_test_results:9:flowey_lib_common/src/publish_test_results.rs:152:62' --is-raw-string --condvar flowey_lib_common::publish_test_results:7:flowey_lib_common/src/publish_test_results.rs:144:57 write-to-env github floweyvar2
        flowey.exe v 22 'flowey_lib_common::publish_test_results:7:flowey_lib_common/src/publish_test_results.rs:144:57' write-to-env github FLOWEY_CONDITION
      shell: bash
    - id: flowey_lib_common__publish_test_results__6
      uses: actions/upload-artifact@v7
      with:
        name: x64-windows-amd-vmm-tests-logs
        path: ${{ env.floweyvar2 }}
      name: 'publish test results: x64-windows-amd-vmm-tests (logs)'
      if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
    - name: 🦀 flowey rust steps
      run: |-
        flowey.exe e 22 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 3
        flowey.exe e 22 flowey_lib_common::publish_test_results 0
        flowey.exe e 22 flowey_lib_common::publish_test_results 1
        flowey.exe e 22 flowey_lib_common::publish_test_results 2
        flowey.exe v 22 'flowey_lib_common::publish_test_results:4:flowey_lib_common/src/publish_test_results.rs:95:47' --is-raw-string --condvar flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env github floweyvar1
        flowey.exe v 22 'flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
      shell: bash
    - id: flowey_lib_common__publish_test_results__3
      uses: actions/upload-artifact@v7
      with:
        name: x64-windows-amd-vmm-tests-junit-xml
        path: ${{ env.floweyvar1 }}
      name: 'publish test results: x64-windows-amd-vmm-tests (JUnit XML)'
      if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
    - name: report test results to overall pipeline status
      run: flowey.exe e 22 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 4
      shell: bash
    - name: 'validate cache entry: cargo-nextest'
      run: flowey.exe e 22 flowey_lib_common::cache 3
      shell: bash
    - name: 'validate cache entry: gh-cli'
      run: flowey.exe e 22 flowey_lib_common::cache 7
      shell: bash
    - name: 'validate cache entry: gh-release-download'
      run: flowey.exe e 22 flowey_lib_common::cache 11
      shell: bash
  job23:
    name: run vmm-tests [x64-windows-amd-snp]
    runs-on:
    - self-hosted
    - Windows
    - X64
    - SNP
    - Baremetal
    permissions:
      contents: read
      id-token: write
    needs:
    - job0
    - job11
    - job2
    - job3
    - job7
    if: contains(github.event.pull_request.labels.*.name, 'release-ci-required') && github.event.pull_request.draft == false
    steps:
    - 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-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-vmgstool-dev,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
      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 23 'FLOWEY_LOG' update
        echo "${{ runner.temp }}/work" | flowey.exe v 23 '_internal_WORKING_DIR' --is-raw-string update

        cat <<'EOF' | flowey.exe v 23 'verbose' update
        ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
        EOF
        echo "${{ runner.temp }}\\used_artifacts\\x64-guest_test_uefi" | flowey.exe v 23 'artifact_use_from_x64-guest_test_uefi' --is-raw-string update
        echo "${{ runner.temp }}\\used_artifacts\\x64-linux-musl-pipette" | flowey.exe v 23 'artifact_use_from_x64-linux-musl-pipette' --is-raw-string update
        echo "${{ runner.temp }}\\used_artifacts\\x64-linux-musl-tmk_vmm" | flowey.exe v 23 'artifact_use_from_x64-linux-musl-tmk_vmm' --is-raw-string update
        echo "${{ runner.temp }}\\used_artifacts\\x64-linux-tpm_guest_tests" | flowey.exe v 23 'artifact_use_from_x64-linux-tpm_guest_tests' --is-raw-string update
        echo "${{ runner.temp }}\\used_artifacts\\x64-openhcl-igvm" | flowey.exe v 23 'artifact_use_from_x64-openhcl-igvm' --is-raw-string update
        echo "${{ runner.temp }}\\used_artifacts\\x64-tmks" | flowey.exe v 23 'artifact_use_from_x64-tmks' --is-raw-string update
        echo "${{ runner.temp }}\\used_artifacts\\x64-windows-openvmm" | flowey.exe v 23 'artifact_use_from_x64-windows-openvmm' --is-raw-string update
        echo "${{ runner.temp }}\\used_artifacts\\x64-windows-pipette" | flowey.exe v 23 'artifact_use_from_x64-windows-pipette' --is-raw-string update
        echo "${{ runner.temp }}\\used_artifacts\\x64-windows-prep_steps" | flowey.exe v 23 '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 23 '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 23 'artifact_use_from_x64-windows-tmk_vmm' --is-raw-string update
        echo "${{ runner.temp }}\\used_artifacts\\x64-windows-tpm_guest_tests" | flowey.exe v 23 'artifact_use_from_x64-windows-tpm_guest_tests' --is-raw-string update
        echo "${{ runner.temp }}\\used_artifacts\\x64-windows-vmgstool" | flowey.exe v 23 'artifact_use_from_x64-windows-vmgstool' --is-raw-string update
        echo "${{ runner.temp }}\\used_artifacts\\x64-windows-vmgstool-dev" | flowey.exe v 23 'artifact_use_from_x64-windows-vmgstool-dev' --is-raw-string update
        echo "${{ runner.temp }}\\used_artifacts\\x64-windows-vmm-tests-archive" | flowey.exe v 23 'artifact_use_from_x64-windows-vmm-tests-archive' --is-raw-string update
      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 <<EOF
        ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
        EOF
        flowey.exe e 23 flowey_lib_common::cache 2
        flowey.exe e 23 flowey_lib_common::download_cargo_nextest 4
      shell: bash
    - name: check if openvmm needs to be cloned
      run: |-
        flowey.exe e 23 flowey_lib_common::git_checkout 0
        flowey.exe v 23 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:489:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46 write-to-env github floweyvar3
        flowey.exe v 23 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION
      shell: bash
    - id: flowey_lib_common__git_checkout__1
      uses: actions/checkout@v6
      with:
        fetch-depth: '1'
        path: repo0
        persist-credentials: ${{ env.floweyvar3 }}
      name: checkout repo openvmm
      if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
    - name: report cloned repo directories
      run: |-
        flowey.exe v 23 'flowey_lib_common::git_checkout:4:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.workspace <<EOF
        ${{ github.workspace }}
        EOF
        flowey.exe e 23 flowey_lib_common::git_checkout 3
        flowey.exe e 23 flowey_lib_hvlite::git_checkout_openvmm_repo 0
        flowey.exe e 23 flowey_lib_hvlite::run_cargo_nextest_run 0
        flowey.exe e 23 flowey_core::pipeline::artifact::resolve 5
        flowey.exe e 23 flowey_core::pipeline::artifact::resolve 6
        flowey.exe e 23 flowey_core::pipeline::artifact::resolve 1
        flowey.exe e 23 flowey_core::pipeline::artifact::resolve 0
        flowey.exe e 23 flowey_core::pipeline::artifact::resolve 9
        flowey.exe e 23 flowey_core::pipeline::artifact::resolve 2
        flowey.exe e 23 flowey_core::pipeline::artifact::resolve 4
        flowey.exe e 23 flowey_core::pipeline::artifact::resolve 11
        flowey.exe e 23 flowey_core::pipeline::artifact::resolve 12
        flowey.exe e 23 flowey_core::pipeline::artifact::resolve 10
        flowey.exe e 23 flowey_core::pipeline::artifact::resolve 3
        flowey.exe e 23 flowey_core::pipeline::artifact::resolve 8
      shell: bash
    - name: creating new test content dir
      run: flowey.exe e 23 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 0
      shell: bash
    - name: resolve OpenHCL igvm artifact
      run: flowey.exe e 23 flowey_lib_hvlite::artifact_openhcl_igvm_from_recipe::resolve 0
      shell: bash
    - name: create gh-release-download cache dir
      run: flowey.exe e 23 flowey_lib_common::download_gh_release 0
      shell: bash
    - name: Pre-processing cache vars
      run: |-
        flowey.exe e 23 flowey_lib_common::cache 8
        flowey.exe v 23 'flowey_lib_common::cache:18:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar8
        flowey.exe v 23 'flowey_lib_common::cache:17:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar9
      shell: bash
    - id: flowey_lib_common__cache__9
      uses: actions/cache@v5
      with:
        key: ${{ env.floweyvar8 }}
        path: ${{ env.floweyvar9 }}
      name: 'Restore cache: gh-release-download'
    - name: download artifacts from github releases
      run: |-
        flowey.exe v 23 'flowey_lib_common::cache:20:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__9.outputs.cache-hit <<EOF
        ${{ steps.flowey_lib_common__cache__9.outputs.cache-hit }}
        EOF
        flowey.exe e 23 flowey_lib_common::cache 10
        flowey.exe e 23 flowey_lib_common::download_gh_release 1
      shell: bash
    - name: extract azcopy from archive
      run: flowey.exe e 23 flowey_lib_common::download_azcopy 0
      shell: bash
    - name: calculating required VMM tests disk images
      run: flowey.exe e 23 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 0
      shell: bash
    - name: downloading VMM test disk images
      run: |-
        flowey.exe e 23 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 1
        flowey.exe e 23 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 2
      shell: bash
    - name: create gh cache dir
      run: flowey.exe e 23 flowey_lib_common::download_gh_cli 0
      shell: bash
    - name: Pre-processing cache vars
      run: |-
        flowey.exe e 23 flowey_lib_common::cache 4
        flowey.exe v 23 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar6
        flowey.exe v 23 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar7
      shell: bash
    - id: flowey_lib_common__cache__5
      uses: actions/cache@v5
      with:
        key: ${{ env.floweyvar6 }}
        path: ${{ env.floweyvar7 }}
      name: 'Restore cache: gh-cli'
    - name: installing gh
      run: |-
        flowey.exe v 23 'flowey_lib_common::cache:12:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__5.outputs.cache-hit <<EOF
        ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
        EOF
        flowey.exe e 23 flowey_lib_common::cache 6
        flowey.exe e 23 flowey_lib_common::download_gh_cli 1
        flowey.exe v 23 'flowey_lib_hvlite::_jobs::cfg_common:0:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.token <<EOF
        ${{ github.token }}
        EOF
      shell: bash
    - name: setup gh cli
      run: flowey.exe e 23 flowey_lib_common::use_gh_cli 0
      shell: bash
    - name: get latest completed action id
      run: flowey.exe e 23 flowey_lib_common::gh_latest_completed_workflow_id 0
      shell: bash
    - name: download artifacts from github actions run
      run: |-
        flowey.exe e 23 flowey_lib_common::download_gh_artifact 0
        flowey.exe e 23 flowey_lib_hvlite::download_release_igvm_files_from_gh::resolve 0
      shell: bash
    - name: unpack openvmm-test-initrd archives
      run: flowey.exe e 23 flowey_lib_hvlite::resolve_openvmm_test_initrd 0
      shell: bash
    - name: unpack openvmm-test-linux archives
      run: flowey.exe e 23 flowey_lib_hvlite::resolve_openvmm_test_linux_kernel 0
      shell: bash
    - name: unpack mu_msvm package (x64)
      run: flowey.exe e 23 flowey_lib_hvlite::download_uefi_mu_msvm 0
      shell: bash
    - name: unpack openvmm-test-virtio-win archive
      run: flowey.exe e 23 flowey_lib_hvlite::resolve_openvmm_test_virtio_win 0
      shell: bash
    - name: setting up vmm_tests env
      run: |-
        flowey.exe e 23 flowey_lib_hvlite::init_vmm_tests_env 0
        flowey.exe e 23 flowey_lib_hvlite::run_cargo_nextest_run 1
        flowey.exe e 23 flowey_core::pipeline::artifact::resolve 13
        flowey.exe e 23 flowey_lib_hvlite::test_nextest_vmm_tests_archive 0
      shell: bash
    - name: generate nextest command
      run: flowey.exe e 23 flowey_lib_common::gen_cargo_nextest_run_cmd 0
      shell: bash
    - name: install vmm tests deps (windows)
      run: flowey.exe e 23 flowey_lib_hvlite::install_vmm_tests_deps 0
      shell: bash
    - name: starting test_igvm_agent_rpc_server
      run: |-
        flowey.exe e 23 flowey_lib_hvlite::run_test_igvm_agent_rpc_server 0
        flowey.exe e 23 flowey_core::pipeline::artifact::resolve 7
      shell: bash
    - name: running vmm_test prep_steps
      run: flowey.exe e 23 flowey_lib_hvlite::run_prep_steps 0
      shell: bash
    - name: run 'vmm_tests' nextest tests
      run: |-
        flowey.exe e 23 flowey_lib_common::run_cargo_nextest_run 0
        flowey.exe e 23 flowey_lib_common::run_cargo_nextest_run 1
        flowey.exe e 23 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 1
      shell: bash
    - name: stopping test_igvm_agent_rpc_server
      run: |-
        flowey.exe e 23 flowey_lib_hvlite::stop_test_igvm_agent_rpc_server 0
        flowey.exe e 23 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 2
        flowey.exe e 23 flowey_lib_common::publish_test_results 4
        flowey.exe e 23 flowey_lib_common::publish_test_results 5
        flowey.exe v 23 'flowey_lib_common::publish_test_results:9:flowey_lib_common/src/publish_test_results.rs:152:62' --is-raw-string --condvar flowey_lib_common::publish_test_results:7:flowey_lib_common/src/publish_test_results.rs:144:57 write-to-env github floweyvar2
        flowey.exe v 23 'flowey_lib_common::publish_test_results:7:flowey_lib_common/src/publish_test_results.rs:144:57' write-to-env github FLOWEY_CONDITION
      shell: bash
    - id: flowey_lib_common__publish_test_results__6
      uses: actions/upload-artifact@v7
      with:
        name: x64-windows-amd-snp-vmm-tests-logs
        path: ${{ env.floweyvar2 }}
      name: 'publish test results: x64-windows-amd-snp-vmm-tests (logs)'
      if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
    - name: 🦀 flowey rust steps
      run: |-
        flowey.exe e 23 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 3
        flowey.exe e 23 flowey_lib_common::publish_test_results 0
        flowey.exe e 23 flowey_lib_common::publish_test_results 1
        flowey.exe e 23 flowey_lib_common::publish_test_results 2
        flowey.exe v 23 'flowey_lib_common::publish_test_results:4:flowey_lib_common/src/publish_test_results.rs:95:47' --is-raw-string --condvar flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env github floweyvar1
        flowey.exe v 23 'flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
      shell: bash
    - id: flowey_lib_common__publish_test_results__3
      uses: actions/upload-artifact@v7
      with:
        name: x64-windows-amd-snp-vmm-tests-junit-xml
        path: ${{ env.floweyvar1 }}
      name: 'publish test results: x64-windows-amd-snp-vmm-tests (JUnit XML)'
      if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
    - name: report test results to overall pipeline status
      run: flowey.exe e 23 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 4
      shell: bash
    - name: 'validate cache entry: cargo-nextest'
      run: flowey.exe e 23 flowey_lib_common::cache 3
      shell: bash
    - name: 'validate cache entry: gh-cli'
      run: flowey.exe e 23 flowey_lib_common::cache 7
      shell: bash
    - name: 'validate cache entry: gh-release-download'
      run: flowey.exe e 23 flowey_lib_common::cache 11
      shell: bash
  job24:
    name: run vmm-tests [x64-linux-amd-kvm]
    runs-on:
    - self-hosted
    - 1ES.Pool=openvmm-gh-amd-westus3
    - 1ES.ImageOverride=ubuntu2404-amd64
    - JobId=job24-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}
    permissions:
      contents: read
      id-token: write
    needs:
    - job0
    - job2
    - job3
    - job9
    if: contains(github.event.pull_request.labels.*.name, 'release-ci-required') && github.event.pull_request.draft == false
    steps:
    - name: 🌼📦 Download artifacts
      uses: actions/download-artifact@v8
      with:
        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-prep_steps,x64-linux-vmm-tests-archive,x64-tmks,x64-windows-pipette}'
        path: ${{ runner.temp }}/used_artifacts/
    - run: echo "${{ runner.temp }}/used_artifacts/_internal-flowey-bootstrap-x86_64-linux-uid-1" >> $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 24 'FLOWEY_LOG' update
        echo "${{ runner.temp }}/work" | flowey v 24 '_internal_WORKING_DIR' --is-raw-string update

        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-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-openvmm" | flowey v 24 'artifact_use_from_x64-linux-openvmm' --is-raw-string update
        echo "$AgentTempDirNormal/used_artifacts/x64-linux-openvmm_vhost" | flowey v 24 'artifact_use_from_x64-linux-openvmm_vhost' --is-raw-string update
        echo "$AgentTempDirNormal/used_artifacts/x64-linux-prep_steps" | flowey v 24 'artifact_use_from_x64-linux-prep_steps' --is-raw-string update
        echo "$AgentTempDirNormal/used_artifacts/x64-linux-vmm-tests-archive" | flowey v 24 'artifact_use_from_x64-linux-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: creating new test content dir
      run: |-
        flowey e 24 flowey_core::pipeline::artifact::resolve 3
        flowey e 24 flowey_core::pipeline::artifact::resolve 4
        flowey e 24 flowey_core::pipeline::artifact::resolve 8
        flowey e 24 flowey_core::pipeline::artifact::resolve 1
        flowey e 24 flowey_core::pipeline::artifact::resolve 0
        flowey e 24 flowey_core::pipeline::artifact::resolve 2
        flowey e 24 flowey_core::pipeline::artifact::resolve 7
        flowey e 24 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 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:
        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::cache:20:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__9.outputs.cache-hit <<EOF
        ${{ steps.flowey_lib_common__cache__9.outputs.cache-hit }}
        EOF
        flowey e 24 flowey_lib_common::cache 10
        flowey e 24 flowey_lib_common::download_gh_release 1
      shell: bash
    - name: extract azcopy from archive
      run: flowey e 24 flowey_lib_common::download_azcopy 0
      shell: bash
    - name: calculating required VMM tests disk images
      run: flowey e 24 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 0
      shell: bash
    - name: downloading VMM test disk images
      run: |-
        flowey e 24 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 1
        flowey e 24 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 2
      shell: bash
    - name: create gh cache dir
      run: flowey e 24 flowey_lib_common::download_gh_cli 0
      shell: bash
    - name: Pre-processing cache vars
      run: |-
        flowey e 24 flowey_lib_common::cache 4
        flowey v 24 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar6
        flowey v 24 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar7
      shell: bash
    - id: flowey_lib_common__cache__5
      uses: actions/cache@v5
      with:
        key: ${{ env.floweyvar6 }}
        path: ${{ env.floweyvar7 }}
      name: 'Restore cache: gh-cli'
    - name: installing gh
      run: |-
        flowey v 24 'flowey_lib_common::cache:12:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__5.outputs.cache-hit <<EOF
        ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
        EOF
        flowey e 24 flowey_lib_common::cache 6
        flowey e 24 flowey_lib_common::download_gh_cli 1
        flowey v 24 'flowey_lib_hvlite::_jobs::cfg_common:0:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.token <<EOF
        ${{ github.token }}
        EOF
      shell: bash
    - name: setup gh cli
      run: flowey e 24 flowey_lib_common::use_gh_cli 0
      shell: bash
    - name: get latest completed action id
      run: flowey e 24 flowey_lib_common::gh_latest_completed_workflow_id 0
      shell: bash
    - name: download artifacts from github actions run
      run: |-
        flowey e 24 flowey_lib_common::download_gh_artifact 0
        flowey e 24 flowey_lib_hvlite::download_release_igvm_files_from_gh::resolve 0
      shell: bash
    - name: unpack openvmm-test-initrd archives
      run: flowey e 24 flowey_lib_hvlite::resolve_openvmm_test_initrd 0
      shell: bash
    - name: unpack openvmm-test-linux archives
      run: flowey e 24 flowey_lib_hvlite::resolve_openvmm_test_linux_kernel 0
      shell: bash
    - name: unpack mu_msvm package (x64)
      run: flowey e 24 flowey_lib_hvlite::download_uefi_mu_msvm 0
      shell: bash
    - name: unpack openvmm-test-virtio-win archive
      run: flowey e 24 flowey_lib_hvlite::resolve_openvmm_test_virtio_win 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 1
      shell: bash
    - name: ensure 2 MiB hugetlb pages are available
      run: flowey e 24 flowey_lib_hvlite::test_nextest_vmm_tests_archive 2
      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 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.floweyvar4 }}
        path: ${{ env.floweyvar5 }}
      name: 'Restore cache: cargo-nextest'
    - name: downloading cargo-nextest
      run: |-
        flowey v 24 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__1.outputs.cache-hit <<EOF
        ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
        EOF
        flowey e 24 flowey_lib_common::cache 2
        flowey e 24 flowey_lib_common::download_cargo_nextest 4
      shell: bash
    - name: check if openvmm needs to be cloned
      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 floweyvar3
        flowey v 24 '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.floweyvar3 }}
      name: checkout repo openvmm
      if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
    - name: report cloned repo directories
      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 <<EOF
        ${{ github.workspace }}
        EOF
        flowey e 24 flowey_lib_common::git_checkout 3
        flowey e 24 flowey_lib_hvlite::git_checkout_openvmm_repo 0
        flowey e 24 flowey_lib_hvlite::run_cargo_nextest_run 0
        flowey e 24 flowey_lib_hvlite::test_nextest_vmm_tests_archive 0
        flowey e 24 flowey_lib_hvlite::run_cargo_nextest_run 1
        flowey e 24 flowey_core::pipeline::artifact::resolve 6
        flowey e 24 flowey_lib_hvlite::test_nextest_vmm_tests_archive 3
      shell: bash
    - name: generate nextest command
      run: flowey e 24 flowey_lib_common::gen_cargo_nextest_run_cmd 0
      shell: bash
    - name: install vmm tests deps (linux)
      run: |-
        flowey e 24 flowey_lib_hvlite::install_vmm_tests_deps 0
        flowey e 24 flowey_core::pipeline::artifact::resolve 5
      shell: bash
    - name: running vmm_test prep_steps
      run: flowey e 24 flowey_lib_hvlite::run_prep_steps 0
      shell: bash
    - name: run 'vmm_tests' nextest tests
      run: |-
        flowey e 24 flowey_lib_common::run_cargo_nextest_run 0
        flowey e 24 flowey_lib_common::run_cargo_nextest_run 1
        flowey e 24 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 1
        flowey e 24 flowey_lib_common::publish_test_results 4
        flowey e 24 flowey_lib_common::publish_test_results 5
        flowey v 24 'flowey_lib_common::publish_test_results:9:flowey_lib_common/src/publish_test_results.rs:152:62' --is-raw-string --condvar flowey_lib_common::publish_test_results:7:flowey_lib_common/src/publish_test_results.rs:144:57 write-to-env github floweyvar2
        flowey v 24 'flowey_lib_common::publish_test_results:7:flowey_lib_common/src/publish_test_results.rs:144:57' write-to-env github FLOWEY_CONDITION
      shell: bash
    - id: flowey_lib_common__publish_test_results__6
      uses: actions/upload-artifact@v7
      with:
        name: x64-linux-amd-kvm-vmm-tests-logs
        path: ${{ env.floweyvar2 }}
      name: 'publish test results: x64-linux-amd-kvm-vmm-tests (logs)'
      if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
    - name: 🦀 flowey rust steps
      run: |-
        flowey e 24 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 2
        flowey e 24 flowey_lib_common::publish_test_results 0
        flowey e 24 flowey_lib_common::publish_test_results 1
        flowey e 24 flowey_lib_common::publish_test_results 2
        flowey v 24 'flowey_lib_common::publish_test_results:4:flowey_lib_common/src/publish_test_results.rs:95:47' --is-raw-string --condvar flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env github floweyvar1
        flowey v 24 'flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
      shell: bash
    - id: flowey_lib_common__publish_test_results__3
      uses: actions/upload-artifact@v7
      with:
        name: x64-linux-amd-kvm-vmm-tests-junit-xml
        path: ${{ env.floweyvar1 }}
      name: 'publish test results: x64-linux-amd-kvm-vmm-tests (JUnit XML)'
      if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
    - name: report test results to overall pipeline status
      run: flowey e 24 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 3
      shell: bash
    - name: 'validate cache entry: cargo-nextest'
      run: flowey e 24 flowey_lib_common::cache 3
      shell: bash
    - name: 'validate cache entry: gh-cli'
      run: flowey e 24 flowey_lib_common::cache 7
      shell: bash
    - name: 'validate cache entry: gh-release-download'
      run: flowey e 24 flowey_lib_common::cache 11
      shell: bash
  job25:
    name: run vmm-tests [x64-linux-intel-mshv]
    runs-on:
    - self-hosted
    - 1ES.Pool=openvmm-gh-intel-westus3
    - 1ES.ImageOverride=azurelinux3-amd64-dom0
    - JobId=job25-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}
    permissions:
      contents: read
      id-token: write
    needs:
    - job0
    - job2
    - job3
    - job9
    if: contains(github.event.pull_request.labels.*.name, 'release-ci-required') && github.event.pull_request.draft == false
    steps:
    - run: |
        set -x
        sudo tdnf install -y gcc glibc-devel
        curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.95.0 -y
        . "$HOME/.cargo/env"
        echo "$HOME/.cargo/bin" >> "$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-release.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-linux-prep_steps,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-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

        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
        echo "$AgentTempDirNormal/used_artifacts/x64-guest_test_uefi" | flowey v 25 'artifact_use_from_x64-guest_test_uefi' --is-raw-string update
        echo "$AgentTempDirNormal/used_artifacts/x64-linux-musl-openvmm" | flowey v 25 'artifact_use_from_x64-linux-musl-openvmm' --is-raw-string update
        echo "$AgentTempDirNormal/used_artifacts/x64-linux-musl-openvmm_vhost" | flowey v 25 'artifact_use_from_x64-linux-musl-openvmm_vhost' --is-raw-string update
        echo "$AgentTempDirNormal/used_artifacts/x64-linux-musl-pipette" | flowey v 25 'artifact_use_from_x64-linux-musl-pipette' --is-raw-string update
        echo "$AgentTempDirNormal/used_artifacts/x64-linux-musl-tmk_vmm" | flowey v 25 'artifact_use_from_x64-linux-musl-tmk_vmm' --is-raw-string update
        echo "$AgentTempDirNormal/used_artifacts/x64-linux-musl-vmm-tests-archive" | flowey v 25 'artifact_use_from_x64-linux-musl-vmm-tests-archive' --is-raw-string update
        echo "$AgentTempDirNormal/used_artifacts/x64-linux-prep_steps" | flowey v 25 'artifact_use_from_x64-linux-prep_steps' --is-raw-string update
        echo "$AgentTempDirNormal/used_artifacts/x64-tmks" | flowey v 25 'artifact_use_from_x64-tmks' --is-raw-string update
        echo "$AgentTempDirNormal/used_artifacts/x64-windows-pipette" | flowey v 25 'artifact_use_from_x64-windows-pipette' --is-raw-string update
      shell: bash
    - name: creating new test content dir
      run: |-
        flowey e 25 flowey_core::pipeline::artifact::resolve 1
        flowey e 25 flowey_core::pipeline::artifact::resolve 2
        flowey e 25 flowey_core::pipeline::artifact::resolve 8
        flowey e 25 flowey_core::pipeline::artifact::resolve 3
        flowey e 25 flowey_core::pipeline::artifact::resolve 0
        flowey e 25 flowey_core::pipeline::artifact::resolve 4
        flowey e 25 flowey_core::pipeline::artifact::resolve 7
        flowey e 25 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 25 flowey_lib_common::install_dist_pkg 0
      shell: bash
    - name: installing packages
      run: flowey e 25 flowey_lib_common::install_dist_pkg 1
      shell: bash
    - name: create gh-release-download cache dir
      run: flowey e 25 flowey_lib_common::download_gh_release 0
      shell: bash
    - name: Pre-processing cache vars
      run: |-
        flowey e 25 flowey_lib_common::cache 8
        flowey v 25 'flowey_lib_common::cache:18:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar8
        flowey v 25 '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:
        key: ${{ env.floweyvar8 }}
        path: ${{ env.floweyvar9 }}
      name: 'Restore cache: gh-release-download'
    - name: download artifacts from github releases
      run: |-
        flowey v 25 'flowey_lib_common::cache:20:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__9.outputs.cache-hit <<EOF
        ${{ steps.flowey_lib_common__cache__9.outputs.cache-hit }}
        EOF
        flowey e 25 flowey_lib_common::cache 10
        flowey e 25 flowey_lib_common::download_gh_release 1
      shell: bash
    - name: extract azcopy from archive
      run: flowey e 25 flowey_lib_common::download_azcopy 0
      shell: bash
    - name: calculating required VMM tests disk images
      run: flowey e 25 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 0
      shell: bash
    - name: downloading VMM test disk images
      run: |-
        flowey e 25 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 1
        flowey e 25 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 2
      shell: bash
    - name: create gh cache dir
      run: flowey e 25 flowey_lib_common::download_gh_cli 0
      shell: bash
    - name: Pre-processing cache vars
      run: |-
        flowey e 25 flowey_lib_common::cache 4
        flowey v 25 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar6
        flowey v 25 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar7
      shell: bash
    - id: flowey_lib_common__cache__5
      uses: actions/cache@v5
      with:
        key: ${{ env.floweyvar6 }}
        path: ${{ env.floweyvar7 }}
      name: 'Restore cache: gh-cli'
    - name: installing gh
      run: |-
        flowey v 25 'flowey_lib_common::cache:12:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__5.outputs.cache-hit <<EOF
        ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
        EOF
        flowey e 25 flowey_lib_common::cache 6
        flowey e 25 flowey_lib_common::download_gh_cli 1
        flowey v 25 'flowey_lib_hvlite::_jobs::cfg_common:0:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.token <<EOF
        ${{ github.token }}
        EOF
      shell: bash
    - name: setup gh cli
      run: flowey e 25 flowey_lib_common::use_gh_cli 0
      shell: bash
    - name: get latest completed action id
      run: flowey e 25 flowey_lib_common::gh_latest_completed_workflow_id 0
      shell: bash
    - name: download artifacts from github actions run
      run: |-
        flowey e 25 flowey_lib_common::download_gh_artifact 0
        flowey e 25 flowey_lib_hvlite::download_release_igvm_files_from_gh::resolve 0
      shell: bash
    - name: unpack openvmm-test-initrd archives
      run: flowey e 25 flowey_lib_hvlite::resolve_openvmm_test_initrd 0
      shell: bash
    - name: unpack openvmm-test-linux archives
      run: flowey e 25 flowey_lib_hvlite::resolve_openvmm_test_linux_kernel 0
      shell: bash
    - name: unpack mu_msvm package (x64)
      run: flowey e 25 flowey_lib_hvlite::download_uefi_mu_msvm 0
      shell: bash
    - name: unpack openvmm-test-virtio-win archive
      run: flowey e 25 flowey_lib_hvlite::resolve_openvmm_test_virtio_win 0
      shell: bash
    - name: setting up vmm_tests env
      run: flowey e 25 flowey_lib_hvlite::init_vmm_tests_env 0
      shell: bash
    - name: ensure hypervisor device is accessible
      run: flowey e 25 flowey_lib_hvlite::test_nextest_vmm_tests_archive 0
      shell: bash
    - name: create cargo-nextest cache dir
      run: |-
        flowey e 25 flowey_lib_common::download_cargo_nextest 0
        flowey e 25 flowey_lib_common::download_cargo_nextest 1
        flowey e 25 flowey_lib_common::download_cargo_nextest 2
        flowey e 25 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 floweyvar4
        flowey 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
      with:
        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 <<EOF
        ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
        EOF
        flowey e 25 flowey_lib_common::cache 2
        flowey e 25 flowey_lib_common::download_cargo_nextest 4
      shell: bash
    - name: check if openvmm needs to be cloned
      run: |-
        flowey e 25 flowey_lib_common::git_checkout 0
        flowey v 25 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:489:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46 write-to-env github floweyvar3
        flowey v 25 '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.floweyvar3 }}
      name: checkout repo openvmm
      if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
    - name: report cloned repo directories
      run: |-
        flowey v 25 'flowey_lib_common::git_checkout:4:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.workspace <<EOF
        ${{ github.workspace }}
        EOF
        flowey e 25 flowey_lib_common::git_checkout 3
        flowey e 25 flowey_lib_hvlite::git_checkout_openvmm_repo 0
        flowey e 25 flowey_lib_hvlite::run_cargo_nextest_run 0
        flowey e 25 flowey_lib_hvlite::run_cargo_nextest_run 1
        flowey e 25 flowey_core::pipeline::artifact::resolve 5
        flowey e 25 flowey_lib_hvlite::test_nextest_vmm_tests_archive 1
      shell: bash
    - name: generate nextest command
      run: flowey e 25 flowey_lib_common::gen_cargo_nextest_run_cmd 0
      shell: bash
    - name: install vmm tests deps (linux)
      run: |-
        flowey e 25 flowey_lib_hvlite::install_vmm_tests_deps 0
        flowey e 25 flowey_core::pipeline::artifact::resolve 6
      shell: bash
    - name: running vmm_test prep_steps
      run: flowey e 25 flowey_lib_hvlite::run_prep_steps 0
      shell: bash
    - name: run 'vmm_tests' nextest tests
      run: |-
        flowey e 25 flowey_lib_common::run_cargo_nextest_run 0
        flowey e 25 flowey_lib_common::run_cargo_nextest_run 1
        flowey e 25 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 1
        flowey e 25 flowey_lib_common::publish_test_results 4
        flowey e 25 flowey_lib_common::publish_test_results 5
        flowey v 25 'flowey_lib_common::publish_test_results:9:flowey_lib_common/src/publish_test_results.rs:152:62' --is-raw-string --condvar flowey_lib_common::publish_test_results:7:flowey_lib_common/src/publish_test_results.rs:144:57 write-to-env github floweyvar2
        flowey v 25 'flowey_lib_common::publish_test_results:7:flowey_lib_common/src/publish_test_results.rs:144:57' write-to-env github FLOWEY_CONDITION
      shell: bash
    - id: flowey_lib_common__publish_test_results__6
      uses: actions/upload-artifact@v7
      with:
        name: x64-linux-intel-mshv-vmm-tests-logs
        path: ${{ env.floweyvar2 }}
      name: 'publish test results: x64-linux-intel-mshv-vmm-tests (logs)'
      if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
    - name: 🦀 flowey rust steps
      run: |-
        flowey e 25 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 2
        flowey e 25 flowey_lib_common::publish_test_results 0
        flowey e 25 flowey_lib_common::publish_test_results 1
        flowey e 25 flowey_lib_common::publish_test_results 2
        flowey v 25 'flowey_lib_common::publish_test_results:4:flowey_lib_common/src/publish_test_results.rs:95:47' --is-raw-string --condvar flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env github floweyvar1
        flowey v 25 'flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
      shell: bash
    - id: flowey_lib_common__publish_test_results__3
      uses: actions/upload-artifact@v7
      with:
        name: x64-linux-intel-mshv-vmm-tests-junit-xml
        path: ${{ env.floweyvar1 }}
      name: 'publish test results: x64-linux-intel-mshv-vmm-tests (JUnit XML)'
      if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
    - name: report test results to overall pipeline status
      run: flowey e 25 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 3
      shell: bash
    - name: 'validate cache entry: cargo-nextest'
      run: flowey e 25 flowey_lib_common::cache 3
      shell: bash
    - name: 'validate cache entry: gh-cli'
      run: flowey e 25 flowey_lib_common::cache 7
      shell: bash
    - name: 'validate cache entry: gh-release-download'
      run: flowey e 25 flowey_lib_common::cache 11
      shell: bash
  job26:
    name: run vmm-tests [aarch64-windows]
    runs-on:
    - self-hosted
    - Windows
    - ARM64
    - Baremetal
    permissions:
      contents: read
      id-token: write
    needs:
    - job0
    - job10
    - job2
    - job3
    - job5
    if: contains(github.event.pull_request.labels.*.name, 'release-ci-required') && github.event.pull_request.draft == false
    steps:
    - run: |
        set -x
        i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
        sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
        curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.95.0 -y
        . "$HOME/.cargo/env"
        echo "$HOME/.cargo/bin" >> "$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-release.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-vmgstool-dev,aarch64-windows-vmm-tests-archive}'
        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.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 26 'FLOWEY_LOG' update
        echo "${{ runner.temp }}/work" | flowey.exe v 26 '_internal_WORKING_DIR' --is-raw-string update

        cat <<'EOF' | flowey.exe v 26 'verbose' update
        ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
        EOF
        echo "${{ runner.temp }}\\used_artifacts\\aarch64-guest_test_uefi" | flowey.exe v 26 'artifact_use_from_aarch64-guest_test_uefi' --is-raw-string update
        echo "${{ runner.temp }}\\used_artifacts\\aarch64-linux-musl-pipette" | flowey.exe v 26 'artifact_use_from_aarch64-linux-musl-pipette' --is-raw-string update
        echo "${{ runner.temp }}\\used_artifacts\\aarch64-linux-musl-tmk_vmm" | flowey.exe v 26 'artifact_use_from_aarch64-linux-musl-tmk_vmm' --is-raw-string update
        echo "${{ runner.temp }}\\used_artifacts\\aarch64-openhcl-igvm" | flowey.exe v 26 'artifact_use_from_aarch64-openhcl-igvm' --is-raw-string update
        echo "${{ runner.temp }}\\used_artifacts\\aarch64-tmks" | flowey.exe v 26 'artifact_use_from_aarch64-tmks' --is-raw-string update
        echo "${{ runner.temp }}\\used_artifacts\\aarch64-windows-openvmm" | flowey.exe v 26 'artifact_use_from_aarch64-windows-openvmm' --is-raw-string update
        echo "${{ runner.temp }}\\used_artifacts\\aarch64-windows-pipette" | flowey.exe v 26 'artifact_use_from_aarch64-windows-pipette' --is-raw-string update
        echo "${{ runner.temp }}\\used_artifacts\\aarch64-windows-tmk_vmm" | flowey.exe v 26 'artifact_use_from_aarch64-windows-tmk_vmm' --is-raw-string update
        echo "${{ runner.temp }}\\used_artifacts\\aarch64-windows-vmgstool" | flowey.exe v 26 'artifact_use_from_aarch64-windows-vmgstool' --is-raw-string update
        echo "${{ runner.temp }}\\used_artifacts\\aarch64-windows-vmgstool-dev" | flowey.exe v 26 'artifact_use_from_aarch64-windows-vmgstool-dev' --is-raw-string update
        echo "${{ runner.temp }}\\used_artifacts\\aarch64-windows-vmm-tests-archive" | flowey.exe v 26 'artifact_use_from_aarch64-windows-vmm-tests-archive' --is-raw-string update
      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
      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
      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 26 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__1.outputs.cache-hit <<EOF
        ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
        EOF
        flowey.exe e 26 flowey_lib_common::cache 2
        flowey.exe e 26 flowey_lib_common::download_cargo_nextest 4
      shell: bash
    - name: check if openvmm needs to be cloned
      run: |-
        flowey.exe e 26 flowey_lib_common::git_checkout 0
        flowey.exe v 26 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:489:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46 write-to-env github floweyvar3
        flowey.exe v 26 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION
      shell: bash
    - id: flowey_lib_common__git_checkout__1
      uses: actions/checkout@v6
      with:
        fetch-depth: '1'
        path: repo0
        persist-credentials: ${{ env.floweyvar3 }}
      name: checkout repo openvmm
      if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
    - name: report cloned repo directories
      run: |-
        flowey.exe v 26 'flowey_lib_common::git_checkout:4:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.workspace <<EOF
        ${{ github.workspace }}
        EOF
        flowey.exe e 26 flowey_lib_common::git_checkout 3
        flowey.exe e 26 flowey_lib_hvlite::git_checkout_openvmm_repo 0
        flowey.exe e 26 flowey_lib_hvlite::run_cargo_nextest_run 0
        flowey.exe e 26 flowey_core::pipeline::artifact::resolve 4
        flowey.exe e 26 flowey_core::pipeline::artifact::resolve 5
        flowey.exe e 26 flowey_core::pipeline::artifact::resolve 1
        flowey.exe e 26 flowey_core::pipeline::artifact::resolve 0
        flowey.exe e 26 flowey_core::pipeline::artifact::resolve 6
        flowey.exe e 26 flowey_core::pipeline::artifact::resolve 2
        flowey.exe e 26 flowey_core::pipeline::artifact::resolve 3
        flowey.exe e 26 flowey_core::pipeline::artifact::resolve 7
        flowey.exe e 26 flowey_core::pipeline::artifact::resolve 8
      shell: bash
    - name: creating new test content dir
      run: flowey.exe e 26 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 0
      shell: bash
    - name: resolve OpenHCL igvm artifact
      run: flowey.exe e 26 flowey_lib_hvlite::artifact_openhcl_igvm_from_recipe::resolve 0
      shell: bash
    - name: create gh-release-download cache dir
      run: flowey.exe e 26 flowey_lib_common::download_gh_release 0
      shell: bash
    - name: Pre-processing cache vars
      run: |-
        flowey.exe e 26 flowey_lib_common::cache 8
        flowey.exe v 26 'flowey_lib_common::cache:18:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar8
        flowey.exe v 26 'flowey_lib_common::cache:17:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar9
      shell: bash
    - id: flowey_lib_common__cache__9
      uses: actions/cache@v5
      with:
        key: ${{ env.floweyvar8 }}
        path: ${{ env.floweyvar9 }}
      name: 'Restore cache: gh-release-download'
    - name: download artifacts from github releases
      run: |-
        flowey.exe v 26 'flowey_lib_common::cache:20:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__9.outputs.cache-hit <<EOF
        ${{ steps.flowey_lib_common__cache__9.outputs.cache-hit }}
        EOF
        flowey.exe e 26 flowey_lib_common::cache 10
        flowey.exe e 26 flowey_lib_common::download_gh_release 1
      shell: bash
    - name: extract azcopy from archive
      run: flowey.exe e 26 flowey_lib_common::download_azcopy 0
      shell: bash
    - name: calculating required VMM tests disk images
      run: flowey.exe e 26 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 0
      shell: bash
    - name: downloading VMM test disk images
      run: |-
        flowey.exe e 26 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 1
        flowey.exe e 26 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 2
      shell: bash
    - name: create gh cache dir
      run: flowey.exe e 26 flowey_lib_common::download_gh_cli 0
      shell: bash
    - name: Pre-processing cache vars
      run: |-
        flowey.exe e 26 flowey_lib_common::cache 4
        flowey.exe v 26 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar6
        flowey.exe v 26 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar7
      shell: bash
    - id: flowey_lib_common__cache__5
      uses: actions/cache@v5
      with:
        key: ${{ env.floweyvar6 }}
        path: ${{ env.floweyvar7 }}
      name: 'Restore cache: gh-cli'
    - name: installing gh
      run: |-
        flowey.exe v 26 'flowey_lib_common::cache:12:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__5.outputs.cache-hit <<EOF
        ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
        EOF
        flowey.exe e 26 flowey_lib_common::cache 6
        flowey.exe e 26 flowey_lib_common::download_gh_cli 1
        flowey.exe v 26 'flowey_lib_hvlite::_jobs::cfg_common:0:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.token <<EOF
        ${{ github.token }}
        EOF
      shell: bash
    - name: setup gh cli
      run: flowey.exe e 26 flowey_lib_common::use_gh_cli 0
      shell: bash
    - name: get latest completed action id
      run: flowey.exe e 26 flowey_lib_common::gh_latest_completed_workflow_id 0
      shell: bash
    - name: download artifacts from github actions run
      run: |-
        flowey.exe e 26 flowey_lib_common::download_gh_artifact 0
        flowey.exe e 26 flowey_lib_hvlite::download_release_igvm_files_from_gh::resolve 0
      shell: bash
    - name: unpack openvmm-test-initrd archives
      run: flowey.exe e 26 flowey_lib_hvlite::resolve_openvmm_test_initrd 0
      shell: bash
    - name: unpack openvmm-test-linux archives
      run: flowey.exe e 26 flowey_lib_hvlite::resolve_openvmm_test_linux_kernel 0
      shell: bash
    - name: unpack mu_msvm package (aarch64)
      run: flowey.exe e 26 flowey_lib_hvlite::download_uefi_mu_msvm 0
      shell: bash
    - name: unpack openvmm-test-virtio-win archive
      run: flowey.exe e 26 flowey_lib_hvlite::resolve_openvmm_test_virtio_win 0
      shell: bash
    - name: setting up vmm_tests env
      run: |-
        flowey.exe e 26 flowey_lib_hvlite::init_vmm_tests_env 0
        flowey.exe e 26 flowey_lib_hvlite::run_cargo_nextest_run 1
        flowey.exe e 26 flowey_core::pipeline::artifact::resolve 9
        flowey.exe e 26 flowey_lib_hvlite::test_nextest_vmm_tests_archive 0
      shell: bash
    - name: generate nextest command
      run: flowey.exe e 26 flowey_lib_common::gen_cargo_nextest_run_cmd 0
      shell: bash
    - name: install vmm tests deps (windows)
      run: flowey.exe e 26 flowey_lib_hvlite::install_vmm_tests_deps 0
      shell: bash
    - name: starting test_igvm_agent_rpc_server
      run: flowey.exe e 26 flowey_lib_hvlite::run_test_igvm_agent_rpc_server 0
      shell: bash
    - name: run 'vmm_tests' nextest tests
      run: |-
        flowey.exe e 26 flowey_lib_common::run_cargo_nextest_run 0
        flowey.exe e 26 flowey_lib_common::run_cargo_nextest_run 1
        flowey.exe e 26 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 1
      shell: bash
    - name: stopping test_igvm_agent_rpc_server
      run: |-
        flowey.exe e 26 flowey_lib_hvlite::stop_test_igvm_agent_rpc_server 0
        flowey.exe e 26 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 2
        flowey.exe e 26 flowey_lib_common::publish_test_results 4
        flowey.exe e 26 flowey_lib_common::publish_test_results 5
        flowey.exe v 26 'flowey_lib_common::publish_test_results:9:flowey_lib_common/src/publish_test_results.rs:152:62' --is-raw-string --condvar flowey_lib_common::publish_test_results:7:flowey_lib_common/src/publish_test_results.rs:144:57 write-to-env github floweyvar2
        flowey.exe v 26 'flowey_lib_common::publish_test_results:7:flowey_lib_common/src/publish_test_results.rs:144:57' write-to-env github FLOWEY_CONDITION
      shell: bash
    - id: flowey_lib_common__publish_test_results__6
      uses: actions/upload-artifact@v7
      with:
        name: aarch64-windows-vmm-tests-logs
        path: ${{ env.floweyvar2 }}
      name: 'publish test results: aarch64-windows-vmm-tests (logs)'
      if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
    - name: 🦀 flowey rust steps
      run: |-
        flowey.exe e 26 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 3
        flowey.exe e 26 flowey_lib_common::publish_test_results 0
        flowey.exe e 26 flowey_lib_common::publish_test_results 1
        flowey.exe e 26 flowey_lib_common::publish_test_results 2
        flowey.exe v 26 'flowey_lib_common::publish_test_results:4:flowey_lib_common/src/publish_test_results.rs:95:47' --is-raw-string --condvar flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env github floweyvar1
        flowey.exe v 26 'flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env github FLOWEY_CONDITION
      shell: bash
    - id: flowey_lib_common__publish_test_results__3
      uses: actions/upload-artifact@v7
      with:
        name: aarch64-windows-vmm-tests-junit-xml
        path: ${{ env.floweyvar1 }}
      name: 'publish test results: aarch64-windows-vmm-tests (JUnit XML)'
      if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
    - name: report test results to overall pipeline status
      run: flowey.exe e 26 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 4
      shell: bash
    - name: 'validate cache entry: cargo-nextest'
      run: flowey.exe e 26 flowey_lib_common::cache 3
      shell: bash
    - name: 'validate cache entry: gh-cli'
      run: flowey.exe e 26 flowey_lib_common::cache 7
      shell: bash
    - name: 'validate cache entry: gh-release-download'
      run: flowey.exe e 26 flowey_lib_common::cache 11
      shell: bash
  job27:
    name: test flowey local backend
    runs-on: ubuntu-latest
    permissions:
      contents: read
      id-token: write
    needs:
    - job0
    if: contains(github.event.pull_request.labels.*.name, 'release-ci-required') && github.event.pull_request.draft == false
    steps:
    - 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: 🌼🛫 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
      shell: bash
    - name: check if openvmm needs to be cloned
      run: |-
        flowey e 27 flowey_lib_common::git_checkout 0
        flowey v 27 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:489:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46 write-to-env github floweyvar1
        flowey v 27 '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 27 'flowey_lib_common::git_checkout:4:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.workspace <<EOF
        ${{ github.workspace }}
        EOF
        flowey e 27 flowey_lib_common::git_checkout 3
        flowey e 27 flowey_lib_hvlite::git_checkout_openvmm_repo 0
      shell: bash
    - name: add default cargo home to path
      run: flowey e 27 flowey_lib_common::install_rust 0
      shell: bash
    - name: install Rust
      run: flowey e 27 flowey_lib_common::install_rust 1
      shell: bash
    - name: detect active toolchain
      run: |-
        flowey e 27 flowey_lib_common::install_rust 2
        flowey v 27 'flowey_lib_hvlite::_jobs::test_local_flowey_build_igvm:3:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.token <<EOF
        ${{ github.token }}
        EOF
      shell: bash
    - name: test cargo xflowey build-igvm x64 --install-missing-deps
      run: flowey e 27 flowey_lib_hvlite::_jobs::test_local_flowey_build_igvm 1
      shell: bash
  job3:
    name: build artifacts (shared VMM tests) [linux]
    runs-on:
    - self-hosted
    - 1ES.Pool=openvmm-gh-amd-westus3
    - 1ES.ImageOverride=ubuntu2404-amd64
    - JobId=job3-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}
    permissions:
      contents: read
      id-token: write
    needs:
    - job0
    if: contains(github.event.pull_request.labels.*.name, 'release-ci-required') && github.event.pull_request.draft == false
    steps:
    - 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: 🌼🛫 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 3 'FLOWEY_LOG' update
        echo "${{ runner.temp }}/work" | flowey v 3 '_internal_WORKING_DIR' --is-raw-string update

        cat <<'EOF' | flowey v 3 '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 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 e 3 flowey_lib_common::install_rust 0
      shell: bash
    - name: install Rust
      run: flowey e 3 flowey_lib_common::install_rust 1
      shell: bash
    - name: detect active toolchain
      run: |-
        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 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
      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 3 'flowey_lib_common::git_checkout:4:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.workspace <<EOF
        ${{ github.workspace }}
        EOF
        flowey e 3 flowey_lib_common::git_checkout 3
        flowey e 3 flowey_lib_hvlite::git_checkout_openvmm_repo 0
      shell: bash
    - name: set '-Dwarnings' in .cargo/config.toml
      run: flowey e 3 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
      shell: bash
    - name: create gh-release-download cache dir
      run: flowey e 3 flowey_lib_common::download_gh_release 0
      shell: bash
    - name: Pre-processing cache vars
      run: |-
        flowey e 3 flowey_lib_common::cache 0
        flowey v 3 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar2
        flowey v 3 '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
      with:
        key: ${{ env.floweyvar2 }}
        path: ${{ env.floweyvar3 }}
      name: 'Restore cache: gh-release-download'
    - name: download artifacts from github releases
      run: |-
        flowey v 3 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__1.outputs.cache-hit <<EOF
        ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
        EOF
        flowey e 3 flowey_lib_common::cache 2
        flowey e 3 flowey_lib_common::download_gh_release 1
      shell: bash
    - name: checking if packages need to be installed
      run: flowey e 3 flowey_lib_common::install_dist_pkg 0
      shell: bash
    - name: installing packages
      run: flowey e 3 flowey_lib_common::install_dist_pkg 1
      shell: bash
    - name: unpack protoc
      run: |-
        flowey e 3 flowey_lib_common::resolve_protoc 0
        flowey e 3 flowey_lib_hvlite::cfg_openvmm_magicpath 0
      shell: bash
    - name: symlink protoc
      run: flowey e 3 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
      shell: bash
    - name: unpack openvmm-deps archive
      run: flowey e 3 flowey_lib_hvlite::resolve_openvmm_deps 0
      shell: bash
    - name: extract Aarch64 sysroot.tar.gz
      run: |-
        flowey e 3 flowey_lib_hvlite::init_openvmm_magicpath_openhcl_sysroot 1
        flowey e 3 flowey_lib_hvlite::init_cross_build 2
      shell: bash
    - name: cargo build tmk_vmm
      run: |-
        flowey e 3 flowey_lib_common::run_cargo_build 6
        flowey e 3 flowey_lib_hvlite::run_cargo_build 14
      shell: bash
    - name: split debug symbols
      run: |-
        flowey e 3 flowey_lib_hvlite::run_split_debug_info 2
        flowey e 3 flowey_lib_hvlite::run_cargo_build 15
        flowey e 3 flowey_lib_hvlite::build_tmk_vmm 0
        flowey e 3 flowey_core::pipeline::artifact::publish 6
        flowey e 3 flowey_lib_hvlite::init_cross_build 9
      shell: bash
    - name: cargo build guest_test_uefi
      run: |-
        flowey e 3 flowey_lib_common::run_cargo_build 1
        flowey e 3 flowey_lib_hvlite::run_cargo_build 1
      shell: bash
    - name: build guest_test_uefi.img
      run: |-
        flowey e 3 flowey_lib_hvlite::build_guest_test_uefi 0
        flowey e 3 flowey_core::pipeline::artifact::publish 7
        flowey e 3 flowey_lib_hvlite::init_cross_build 5
        flowey e 3 flowey_lib_hvlite::run_cargo_build 10
        flowey e 3 flowey_lib_hvlite::run_cargo_build 11
      shell: bash
    - name: cargo build simple_tmk
      run: |-
        flowey e 3 flowey_lib_common::run_cargo_build 4
        flowey e 3 flowey_lib_hvlite::run_cargo_build 12
      shell: bash
    - name: split debug symbols
      run: |-
        flowey e 3 flowey_lib_hvlite::run_split_debug_info 5
        flowey e 3 flowey_lib_hvlite::run_cargo_build 13
        flowey e 3 flowey_lib_hvlite::build_tmks 0
        flowey e 3 flowey_core::pipeline::artifact::publish 8
        flowey e 3 flowey_lib_hvlite::init_cross_build 6
      shell: bash
    - name: cargo build tpm_guest_tests
      run: |-
        flowey e 3 flowey_lib_common::run_cargo_build 9
        flowey e 3 flowey_lib_hvlite::run_cargo_build 20
      shell: bash
    - name: split debug symbols
      run: |-
        flowey e 3 flowey_lib_hvlite::run_split_debug_info 7
        flowey e 3 flowey_lib_hvlite::run_cargo_build 21
        flowey e 3 flowey_lib_hvlite::build_tpm_guest_tests 1
        flowey e 3 flowey_core::pipeline::artifact::publish 9
      shell: bash
    - name: extract X86_64 sysroot.tar.gz
      run: |-
        flowey e 3 flowey_lib_hvlite::init_openvmm_magicpath_openhcl_sysroot 0
        flowey e 3 flowey_lib_hvlite::init_cross_build 7
      shell: bash
    - name: cargo build pipette
      run: |-
        flowey e 3 flowey_lib_common::run_cargo_build 3
        flowey e 3 flowey_lib_hvlite::run_cargo_build 4
      shell: bash
    - name: split debug symbols
      run: |-
        flowey e 3 flowey_lib_hvlite::run_split_debug_info 4
        flowey e 3 flowey_lib_hvlite::run_cargo_build 5
        flowey e 3 flowey_lib_hvlite::build_pipette 1
        flowey e 3 flowey_core::pipeline::artifact::publish 0
        flowey e 3 flowey_lib_hvlite::init_cross_build 8
      shell: bash
    - name: cargo build tmk_vmm
      run: |-
        flowey e 3 flowey_lib_common::run_cargo_build 7
        flowey e 3 flowey_lib_hvlite::run_cargo_build 16
      shell: bash
    - name: split debug symbols
      run: |-
        flowey e 3 flowey_lib_hvlite::run_split_debug_info 6
        flowey e 3 flowey_lib_hvlite::run_cargo_build 17
        flowey e 3 flowey_lib_hvlite::build_tmk_vmm 1
        flowey e 3 flowey_core::pipeline::artifact::publish 1
        flowey e 3 flowey_lib_hvlite::init_cross_build 4
      shell: bash
    - name: cargo build guest_test_uefi
      run: |-
        flowey e 3 flowey_lib_common::run_cargo_build 0
        flowey e 3 flowey_lib_hvlite::run_cargo_build 0
      shell: bash
    - name: build guest_test_uefi.img
      run: |-
        flowey e 3 flowey_lib_hvlite::build_guest_test_uefi 1
        flowey e 3 flowey_core::pipeline::artifact::publish 2
        flowey e 3 flowey_lib_hvlite::init_cross_build 0
        flowey e 3 flowey_lib_hvlite::run_cargo_build 6
        flowey e 3 flowey_lib_hvlite::run_cargo_build 7
      shell: bash
    - name: cargo build simple_tmk
      run: |-
        flowey e 3 flowey_lib_common::run_cargo_build 5
        flowey e 3 flowey_lib_hvlite::run_cargo_build 8
      shell: bash
    - name: split debug symbols
      run: |-
        flowey e 3 flowey_lib_hvlite::run_split_debug_info 1
        flowey e 3 flowey_lib_hvlite::run_cargo_build 9
        flowey e 3 flowey_lib_hvlite::build_tmks 1
        flowey e 3 flowey_core::pipeline::artifact::publish 3
        flowey e 3 flowey_lib_hvlite::init_cross_build 1
      shell: bash
    - name: cargo build tpm_guest_tests
      run: |-
        flowey e 3 flowey_lib_common::run_cargo_build 8
        flowey e 3 flowey_lib_hvlite::run_cargo_build 18
      shell: bash
    - name: split debug symbols
      run: |-
        flowey e 3 flowey_lib_hvlite::run_split_debug_info 3
        flowey e 3 flowey_lib_hvlite::run_cargo_build 19
        flowey e 3 flowey_lib_hvlite::build_tpm_guest_tests 0
        flowey e 3 flowey_core::pipeline::artifact::publish 4
        flowey e 3 flowey_lib_hvlite::init_cross_build 3
      shell: bash
    - name: cargo build pipette
      run: |-
        flowey e 3 flowey_lib_common::run_cargo_build 2
        flowey e 3 flowey_lib_hvlite::run_cargo_build 2
      shell: bash
    - name: split debug symbols
      run: |-
        flowey e 3 flowey_lib_hvlite::run_split_debug_info 0
        flowey e 3 flowey_lib_hvlite::run_cargo_build 3
        flowey e 3 flowey_lib_hvlite::build_pipette 0
        flowey e 3 flowey_core::pipeline::artifact::publish 5
      shell: bash
    - name: 'validate cache entry: gh-release-download'
      run: flowey e 3 flowey_lib_common::cache 3
      shell: bash
    - name: 🌼📦 Publish aarch64-guest_test_uefi
      uses: actions/upload-artifact@v7
      with:
        name: aarch64-guest_test_uefi
        path: ${{ runner.temp }}/publish_artifacts/aarch64-guest_test_uefi/
        include-hidden-files: true
    - name: 🌼📦 Publish aarch64-linux-musl-pipette
      uses: actions/upload-artifact@v7
      with:
        name: aarch64-linux-musl-pipette
        path: ${{ runner.temp }}/publish_artifacts/aarch64-linux-musl-pipette/
        include-hidden-files: true
    - name: 🌼📦 Publish aarch64-linux-musl-tmk_vmm
      uses: actions/upload-artifact@v7
      with:
        name: aarch64-linux-musl-tmk_vmm
        path: ${{ runner.temp }}/publish_artifacts/aarch64-linux-musl-tmk_vmm/
        include-hidden-files: true
    - name: 🌼📦 Publish aarch64-linux-tpm_guest_tests
      uses: actions/upload-artifact@v7
      with:
        name: aarch64-linux-tpm_guest_tests
        path: ${{ runner.temp }}/publish_artifacts/aarch64-linux-tpm_guest_tests/
        include-hidden-files: true
    - name: 🌼📦 Publish aarch64-tmks
      uses: actions/upload-artifact@v7
      with:
        name: aarch64-tmks
        path: ${{ runner.temp }}/publish_artifacts/aarch64-tmks/
        include-hidden-files: true
    - name: 🌼📦 Publish x64-guest_test_uefi
      uses: actions/upload-artifact@v7
      with:
        name: x64-guest_test_uefi
        path: ${{ runner.temp }}/publish_artifacts/x64-guest_test_uefi/
        include-hidden-files: true
    - name: 🌼📦 Publish x64-linux-musl-pipette
      uses: actions/upload-artifact@v7
      with:
        name: x64-linux-musl-pipette
        path: ${{ runner.temp }}/publish_artifacts/x64-linux-musl-pipette/
        include-hidden-files: true
    - name: 🌼📦 Publish x64-linux-musl-tmk_vmm
      uses: actions/upload-artifact@v7
      with:
        name: x64-linux-musl-tmk_vmm
        path: ${{ runner.temp }}/publish_artifacts/x64-linux-musl-tmk_vmm/
        include-hidden-files: true
    - name: 🌼📦 Publish x64-linux-tpm_guest_tests
      uses: actions/upload-artifact@v7
      with:
        name: x64-linux-tpm_guest_tests
        path: ${{ runner.temp }}/publish_artifacts/x64-linux-tpm_guest_tests/
        include-hidden-files: true
    - name: 🌼📦 Publish x64-tmks
      uses: actions/upload-artifact@v7
      with:
        name: x64-tmks
        path: ${{ runner.temp }}/publish_artifacts/x64-tmks/
        include-hidden-files: true
  job4:
    name: build artifacts (not for VMM tests) [aarch64-windows]
    runs-on:
    - self-hosted
    - 1ES.Pool=openvmm-gh-amd-westus3
    - 1ES.ImageOverride=win-amd64
    - JobId=job4-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}
    permissions:
      contents: read
      id-token: write
    needs:
    - job0
    if: contains(github.event.pull_request.labels.*.name, 'release-ci-required') && github.event.pull_request.draft == false
    steps:
    - run: |
        set -x
        i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
        sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
        curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.95.0 -y
        . "$HOME/.cargo/env"
        echo "$HOME/.cargo/bin" >> "$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 4 'FLOWEY_LOG' update
        echo "${{ runner.temp }}/work" | flowey.exe v 4 '_internal_WORKING_DIR' --is-raw-string update

        cat <<'EOF' | flowey.exe v 4 '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 4 '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 4 '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 4 '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 4 'artifact_publish_from_aarch64-windows-vmgs_lib' --is-raw-string update
      shell: bash
    - name: add default cargo home to path
      run: flowey.exe e 4 flowey_lib_common::install_rust 0
      shell: bash
    - name: install Rust
      run: flowey.exe e 4 flowey_lib_common::install_rust 1
      shell: bash
    - name: detect active toolchain
      run: |-
        flowey.exe e 4 flowey_lib_common::install_rust 2
        flowey.exe e 4 flowey_lib_common::cfg_cargo_common_flags 0
      shell: bash
    - name: check if openvmm needs to be cloned
      run: |-
        flowey.exe e 4 flowey_lib_common::git_checkout 0
        flowey.exe v 4 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:489:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46 write-to-env github floweyvar1
        flowey.exe v 4 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION
      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 4 'flowey_lib_common::git_checkout:4:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.workspace <<EOF
        ${{ github.workspace }}
        EOF
        flowey.exe e 4 flowey_lib_common::git_checkout 3
        flowey.exe e 4 flowey_lib_hvlite::git_checkout_openvmm_repo 0
      shell: bash
    - name: set '-Dwarnings' in .cargo/config.toml
      run: flowey.exe e 4 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
      shell: bash
    - name: create gh-release-download cache dir
      run: flowey.exe e 4 flowey_lib_common::download_gh_release 0
      shell: bash
    - name: Pre-processing cache vars
      run: |-
        flowey.exe e 4 flowey_lib_common::cache 0
        flowey.exe v 4 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar2
        flowey.exe v 4 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar3
      shell: bash
    - id: flowey_lib_common__cache__1
      uses: actions/cache@v5
      with:
        key: ${{ env.floweyvar2 }}
        path: ${{ env.floweyvar3 }}
      name: 'Restore cache: gh-release-download'
    - name: download artifacts from github releases
      run: |-
        flowey.exe v 4 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__1.outputs.cache-hit <<EOF
        ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
        EOF
        flowey.exe e 4 flowey_lib_common::cache 2
        flowey.exe e 4 flowey_lib_common::download_gh_release 1
      shell: bash
    - name: unpack protoc
      run: |-
        flowey.exe e 4 flowey_lib_common::resolve_protoc 0
        flowey.exe e 4 flowey_lib_hvlite::cfg_openvmm_magicpath 0
      shell: bash
    - name: symlink protoc
      run: |-
        flowey.exe e 4 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
        flowey.exe e 4 flowey_lib_hvlite::init_cross_build 1
      shell: bash
    - name: cargo build hypestv
      run: |-
        flowey.exe e 4 flowey_lib_common::run_cargo_build 0
        flowey.exe e 4 flowey_lib_hvlite::run_cargo_build 0
        flowey.exe e 4 flowey_lib_hvlite::build_hypestv 0
        flowey.exe e 4 flowey_core::pipeline::artifact::publish 0
        flowey.exe e 4 flowey_lib_hvlite::init_cross_build 0
      shell: bash
    - name: cargo build vmgs_lib
      run: |-
        flowey.exe e 4 flowey_lib_common::run_cargo_build 3
        flowey.exe e 4 flowey_lib_hvlite::run_cargo_build 3
        flowey.exe e 4 flowey_lib_hvlite::build_and_test_vmgs_lib 0
        flowey.exe e 4 flowey_lib_hvlite::build_and_test_vmgs_lib 1
        flowey.exe e 4 flowey_core::pipeline::artifact::publish 1
        flowey.exe e 4 flowey_lib_hvlite::init_cross_build 2
      shell: bash
    - name: cargo build igvmfilegen
      run: |-
        flowey.exe e 4 flowey_lib_common::run_cargo_build 1
        flowey.exe e 4 flowey_lib_hvlite::run_cargo_build 1
        flowey.exe e 4 flowey_lib_hvlite::build_igvmfilegen 0
        flowey.exe e 4 flowey_core::pipeline::artifact::publish 2
        flowey.exe e 4 flowey_lib_hvlite::init_cross_build 3
      shell: bash
    - name: cargo build ohcldiag-dev
      run: |-
        flowey.exe e 4 flowey_lib_common::run_cargo_build 2
        flowey.exe e 4 flowey_lib_hvlite::run_cargo_build 2
        flowey.exe e 4 flowey_lib_hvlite::build_ohcldiag_dev 0
        flowey.exe e 4 flowey_core::pipeline::artifact::publish 3
      shell: bash
    - name: 'validate cache entry: gh-release-download'
      run: flowey.exe e 4 flowey_lib_common::cache 3
      shell: bash
    - name: 🌼📦 Publish aarch64-windows-hypestv
      uses: actions/upload-artifact@v7
      with:
        name: aarch64-windows-hypestv
        path: ${{ runner.temp }}/publish_artifacts/aarch64-windows-hypestv/
        include-hidden-files: true
    - name: 🌼📦 Publish aarch64-windows-igvmfilegen
      uses: actions/upload-artifact@v7
      with:
        name: aarch64-windows-igvmfilegen
        path: ${{ runner.temp }}/publish_artifacts/aarch64-windows-igvmfilegen/
        include-hidden-files: true
    - name: 🌼📦 Publish aarch64-windows-ohcldiag-dev
      uses: actions/upload-artifact@v7
      with:
        name: aarch64-windows-ohcldiag-dev
        path: ${{ runner.temp }}/publish_artifacts/aarch64-windows-ohcldiag-dev/
        include-hidden-files: true
    - name: 🌼📦 Publish aarch64-windows-vmgs_lib
      uses: actions/upload-artifact@v7
      with:
        name: aarch64-windows-vmgs_lib
        path: ${{ runner.temp }}/publish_artifacts/aarch64-windows-vmgs_lib/
        include-hidden-files: true
  job5:
    name: build artifacts (for VMM tests) [aarch64-windows]
    runs-on:
    - self-hosted
    - 1ES.Pool=openvmm-gh-amd-westus3
    - 1ES.ImageOverride=win-amd64
    - JobId=job5-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}
    permissions:
      contents: read
      id-token: write
    needs:
    - job0
    if: contains(github.event.pull_request.labels.*.name, 'release-ci-required') && github.event.pull_request.draft == false
    steps:
    - run: |
        set -x
        i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
        sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
        curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.95.0 -y
        . "$HOME/.cargo/env"
        echo "$HOME/.cargo/bin" >> "$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 5 'FLOWEY_LOG' update
        echo "${{ runner.temp }}/work" | flowey.exe v 5 '_internal_WORKING_DIR' --is-raw-string update

        cat <<'EOF' | flowey.exe v 5 '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 5 'artifact_publish_from_aarch64-windows-openvmm' --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 5 '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 5 '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 5 '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 5 '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 5 'artifact_publish_from_aarch64-windows-vmgstool' --is-raw-string update
        mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-vmgstool-dev"
        echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-vmgstool-dev" | flowey.exe v 5 'artifact_publish_from_aarch64-windows-vmgstool-dev' --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 5 'artifact_publish_from_aarch64-windows-vmm-tests-archive' --is-raw-string update
      shell: bash
    - name: add default cargo home to path
      run: flowey.exe e 5 flowey_lib_common::install_rust 0
      shell: bash
    - name: install Rust
      run: flowey.exe e 5 flowey_lib_common::install_rust 1
      shell: bash
    - name: detect active toolchain
      run: |-
        flowey.exe e 5 flowey_lib_common::install_rust 2
        flowey.exe e 5 flowey_lib_common::cfg_cargo_common_flags 0
      shell: bash
    - name: check if openvmm needs to be cloned
      run: |-
        flowey.exe e 5 flowey_lib_common::git_checkout 0
        flowey.exe v 5 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:489:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46 write-to-env github floweyvar1
        flowey.exe v 5 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46' write-to-env github FLOWEY_CONDITION
      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 5 'flowey_lib_common::git_checkout:4:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.workspace <<EOF
        ${{ github.workspace }}
        EOF
        flowey.exe e 5 flowey_lib_common::git_checkout 3
        flowey.exe e 5 flowey_lib_hvlite::git_checkout_openvmm_repo 0
      shell: bash
    - name: set '-Dwarnings' in .cargo/config.toml
      run: flowey.exe e 5 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
      shell: bash
    - name: create gh-release-download cache dir
      run: flowey.exe e 5 flowey_lib_common::download_gh_release 0
      shell: bash
    - name: Pre-processing cache vars
      run: |-
        flowey.exe e 5 flowey_lib_common::cache 4
        flowey.exe v 5 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar4
        flowey.exe v 5 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar5
      shell: bash
    - id: flowey_lib_common__cache__5
      uses: actions/cache@v5
      with:
        key: ${{ env.floweyvar4 }}
        path: ${{ env.floweyvar5 }}
      name: 'Restore cache: gh-release-download'
    - name: download artifacts from github releases
      run: |-
        flowey.exe v 5 'flowey_lib_common::cache:12:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__5.outputs.cache-hit <<EOF
        ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
        EOF
        flowey.exe e 5 flowey_lib_common::cache 6
        flowey.exe e 5 flowey_lib_common::download_gh_release 1
      shell: bash
    - name: unpack protoc
      run: |-
        flowey.exe e 5 flowey_lib_common::resolve_protoc 0
        flowey.exe e 5 flowey_lib_hvlite::cfg_openvmm_magicpath 0
      shell: bash
    - name: symlink protoc
      run: |-
        flowey.exe e 5 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
        flowey.exe e 5 flowey_lib_hvlite::init_cross_build 5
      shell: bash
    - name: cargo build openvmm
      run: |-
        flowey.exe e 5 flowey_lib_common::run_cargo_build 0
        flowey.exe e 5 flowey_lib_hvlite::run_cargo_build 0
        flowey.exe e 5 flowey_lib_hvlite::build_openvmm 0
        flowey.exe e 5 flowey_core::pipeline::artifact::publish 0
        flowey.exe e 5 flowey_lib_hvlite::init_cross_build 1
      shell: bash
    - name: cargo build tmk_vmm
      run: |-
        flowey.exe e 5 flowey_lib_common::run_cargo_build 3
        flowey.exe e 5 flowey_lib_hvlite::run_cargo_build 5
        flowey.exe e 5 flowey_lib_hvlite::build_tmk_vmm 0
        flowey.exe e 5 flowey_core::pipeline::artifact::publish 1
        flowey.exe e 5 flowey_lib_hvlite::init_cross_build 6
      shell: bash
    - name: cargo build prep_steps
      run: |-
        flowey.exe e 5 flowey_lib_common::run_cargo_build 1
        flowey.exe e 5 flowey_lib_hvlite::run_cargo_build 1
        flowey.exe e 5 flowey_lib_hvlite::build_prep_steps 0
        flowey.exe e 5 flowey_core::pipeline::artifact::publish 2
        flowey.exe e 5 flowey_lib_hvlite::init_cross_build 4
      shell: bash
    - name: cargo build vmgstool
      run: |-
        flowey.exe e 5 flowey_lib_common::run_cargo_build 6
        flowey.exe e 5 flowey_lib_hvlite::run_cargo_build 10
        flowey.exe e 5 flowey_lib_hvlite::build_vmgstool 0
        flowey.exe e 5 flowey_core::pipeline::artifact::publish 3
        flowey.exe e 5 flowey_lib_hvlite::init_cross_build 3
      shell: bash
    - name: cargo build vmgstool
      run: |-
        flowey.exe e 5 flowey_lib_common::run_cargo_build 5
        flowey.exe e 5 flowey_lib_hvlite::run_cargo_build 9
        flowey.exe e 5 flowey_lib_hvlite::build_vmgstool 1
        flowey.exe e 5 flowey_core::pipeline::artifact::publish 4
        flowey.exe e 5 flowey_lib_hvlite::init_cross_build 2
        flowey.exe e 5 flowey_lib_hvlite::run_cargo_build 6
        flowey.exe e 5 flowey_lib_hvlite::run_cargo_build 7
      shell: bash
    - name: cargo build tpm_guest_tests
      run: |-
        flowey.exe e 5 flowey_lib_common::run_cargo_build 4
        flowey.exe e 5 flowey_lib_hvlite::run_cargo_build 8
        flowey.exe e 5 flowey_lib_hvlite::build_tpm_guest_tests 0
        flowey.exe e 5 flowey_core::pipeline::artifact::publish 5
        flowey.exe e 5 flowey_lib_hvlite::init_cross_build 7
        flowey.exe e 5 flowey_lib_hvlite::run_cargo_build 2
        flowey.exe e 5 flowey_lib_hvlite::run_cargo_build 3
      shell: bash
    - name: cargo build test_igvm_agent_rpc_server
      run: |-
        flowey.exe e 5 flowey_lib_common::run_cargo_build 2
        flowey.exe e 5 flowey_lib_hvlite::run_cargo_build 4
        flowey.exe e 5 flowey_lib_hvlite::build_test_igvm_agent_rpc_server 0
        flowey.exe e 5 flowey_core::pipeline::artifact::publish 6
      shell: bash
    - name: create cargo-nextest cache dir
      run: |-
        flowey.exe e 5 flowey_lib_common::download_cargo_nextest 0
        flowey.exe e 5 flowey_lib_common::download_cargo_nextest 1
        flowey.exe e 5 flowey_lib_common::download_cargo_nextest 2
        flowey.exe e 5 flowey_lib_common::download_cargo_nextest 3
      shell: bash
    - name: Pre-processing cache vars
      run: |-
        flowey.exe e 5 flowey_lib_common::cache 0
        flowey.exe v 5 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar2
        flowey.exe v 5 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar3
      shell: bash
    - id: flowey_lib_common__cache__1
      uses: actions/cache@v5
      with:
        key: ${{ env.floweyvar2 }}
        path: ${{ env.floweyvar3 }}
      name: 'Restore cache: cargo-nextest'
    - name: downloading cargo-nextest
      run: |-
        flowey.exe v 5 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__1.outputs.cache-hit <<EOF
        ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
        EOF
        flowey.exe e 5 flowey_lib_common::cache 2
        flowey.exe e 5 flowey_lib_common::download_cargo_nextest 4
      shell: bash
    - name: report $CARGO_HOME
      run: flowey.exe e 5 flowey_lib_common::install_rust 3
      shell: bash
    - name: installing cargo-nextest
      run: |-
        flowey.exe e 5 flowey_lib_common::install_cargo_nextest 0
        flowey.exe e 5 flowey_lib_hvlite::init_cross_build 0
      shell: bash
    - name: build + archive 'vmm_tests' nextests
      run: |-
        flowey.exe e 5 flowey_lib_common::run_cargo_nextest_archive 0
        flowey.exe e 5 flowey_lib_hvlite::build_nextest_vmm_tests 0
        flowey.exe e 5 flowey_core::pipeline::artifact::publish 7
      shell: bash
    - name: 'validate cache entry: cargo-nextest'
      run: flowey.exe e 5 flowey_lib_common::cache 3
      shell: bash
    - name: 'validate cache entry: gh-release-download'
      run: flowey.exe e 5 flowey_lib_common::cache 7
      shell: bash
    - name: 🌼📦 Publish aarch64-windows-openvmm
      uses: actions/upload-artifact@v7
      with:
        name: aarch64-windows-openvmm
        path: ${{ runner.temp }}/publish_artifacts/aarch64-windows-openvmm/
        include-hidden-files: true
    - name: 🌼📦 Publish aarch64-windows-prep_steps
      uses: actions/upload-artifact@v7
      with:
        name: aarch64-windows-prep_steps
        path: ${{ runner.temp }}/publish_artifacts/aarch64-windows-prep_steps/
        include-hidden-files: true
    - name: 🌼📦 Publish aarch64-windows-test_igvm_agent_rpc_server
      uses: actions/upload-artifact@v7
      with:
        name: aarch64-windows-test_igvm_agent_rpc_server
        path: ${{ runner.temp }}/publish_artifacts/aarch64-windows-test_igvm_agent_rpc_server/
        include-hidden-files: true
    - name: 🌼📦 Publish aarch64-windows-tmk_vmm
      uses: actions/upload-artifact@v7
      with:
        name: aarch64-windows-tmk_vmm
        path: ${{ runner.temp }}/publish_artifacts/aarch64-windows-tmk_vmm/
        include-hidden-files: true
    - name: 🌼📦 Publish aarch64-windows-tpm_guest_tests
      uses: actions/upload-artifact@v7
      with:
        name: aarch64-windows-tpm_guest_tests
        path: ${{ runner.temp }}/publish_artifacts/aarch64-windows-tpm_guest_tests/
        include-hidden-files: true
    - name: 🌼📦 Publish aarch64-windows-vmgstool
      uses: actions/upload-artifact@v7
      with:
        name: aarch64-windows-vmgstool
        path: ${{ runner.temp }}/publish_artifacts/aarch64-windows-vmgstool/
        include-hidden-files: true
    - name: 🌼📦 Publish aarch64-windows-vmgstool-dev
      uses: actions/upload-artifact@v7
      with:
        name: aarch64-windows-vmgstool-dev
        path: ${{ runner.temp }}/publish_artifacts/aarch64-windows-vmgstool-dev/
        include-hidden-files: true
    - name: 🌼📦 Publish aarch64-windows-vmm-tests-archive
      uses: actions/upload-artifact@v7
      with:
        name: aarch64-windows-vmm-tests-archive
        path: ${{ runner.temp }}/publish_artifacts/aarch64-windows-vmm-tests-archive/
        include-hidden-files: true
  job6:
    name: build artifacts (not for VMM tests) [x64-windows]
    runs-on:
    - self-hosted
    - 1ES.Pool=openvmm-gh-amd-westus3
    - 1ES.ImageOverride=win-amd64
    - JobId=job6-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}
    permissions:
      contents: read
      id-token: write
    needs:
    - job0
    if: contains(github.event.pull_request.labels.*.name, 'release-ci-required') && github.event.pull_request.draft == false
    steps:
    - run: |
        set -x
        i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
        sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
        curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.95.0 -y
        . "$HOME/.cargo/env"
        echo "$HOME/.cargo/bin" >> "$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 6 'FLOWEY_LOG' update
        echo "${{ runner.temp }}/work" | flowey.exe v 6 '_internal_WORKING_DIR' --is-raw-string update

        cat <<'EOF' | flowey.exe v 6 'verbose' update
        ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
        EOF
        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.exe e 6 flowey_lib_common::install_rust 0
      shell: bash
    - name: install Rust
      run: flowey.exe e 6 flowey_lib_common::install_rust 1
      shell: bash
    - name: detect active toolchain
      run: |-
        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.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
      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 6 'flowey_lib_common::git_checkout:4:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.workspace <<EOF
        ${{ github.workspace }}
        EOF
        flowey.exe e 6 flowey_lib_common::git_checkout 3
        flowey.exe e 6 flowey_lib_hvlite::git_checkout_openvmm_repo 0
      shell: bash
    - name: set '-Dwarnings' in .cargo/config.toml
      run: flowey.exe e 6 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
      shell: bash
    - name: create gh-release-download cache dir
      run: flowey.exe e 6 flowey_lib_common::download_gh_release 0
      shell: bash
    - name: Pre-processing cache vars
      run: |-
        flowey.exe e 6 flowey_lib_common::cache 0
        flowey.exe v 6 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar2
        flowey.exe v 6 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar3
      shell: bash
    - id: flowey_lib_common__cache__1
      uses: actions/cache@v5
      with:
        key: ${{ env.floweyvar2 }}
        path: ${{ env.floweyvar3 }}
      name: 'Restore cache: gh-release-download'
    - name: download artifacts from github releases
      run: |-
        flowey.exe v 6 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__1.outputs.cache-hit <<EOF
        ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
        EOF
        flowey.exe e 6 flowey_lib_common::cache 2
        flowey.exe e 6 flowey_lib_common::download_gh_release 1
      shell: bash
    - name: unpack protoc
      run: |-
        flowey.exe e 6 flowey_lib_common::resolve_protoc 0
        flowey.exe e 6 flowey_lib_hvlite::cfg_openvmm_magicpath 0
      shell: bash
    - name: symlink protoc
      run: |-
        flowey.exe e 6 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
        flowey.exe e 6 flowey_lib_hvlite::init_cross_build 1
      shell: bash
    - name: cargo build hypestv
      run: |-
        flowey.exe e 6 flowey_lib_common::run_cargo_build 0
        flowey.exe e 6 flowey_lib_hvlite::run_cargo_build 0
        flowey.exe e 6 flowey_lib_hvlite::build_hypestv 0
        flowey.exe e 6 flowey_core::pipeline::artifact::publish 0
        flowey.exe e 6 flowey_lib_hvlite::init_cross_build 0
      shell: bash
    - name: cargo build vmgs_lib
      run: |-
        flowey.exe e 6 flowey_lib_common::run_cargo_build 3
        flowey.exe e 6 flowey_lib_hvlite::run_cargo_build 3
        flowey.exe e 6 flowey_lib_hvlite::build_and_test_vmgs_lib 0
      shell: bash
    - name: test vmgs_lib
      run: |-
        flowey.exe e 6 flowey_lib_hvlite::build_and_test_vmgs_lib 1
        flowey.exe e 6 flowey_lib_hvlite::build_and_test_vmgs_lib 2
        flowey.exe e 6 flowey_core::pipeline::artifact::publish 1
        flowey.exe e 6 flowey_lib_hvlite::init_cross_build 2
      shell: bash
    - name: cargo build igvmfilegen
      run: |-
        flowey.exe e 6 flowey_lib_common::run_cargo_build 1
        flowey.exe e 6 flowey_lib_hvlite::run_cargo_build 1
        flowey.exe e 6 flowey_lib_hvlite::build_igvmfilegen 0
        flowey.exe e 6 flowey_core::pipeline::artifact::publish 2
        flowey.exe e 6 flowey_lib_hvlite::init_cross_build 3
      shell: bash
    - name: cargo build ohcldiag-dev
      run: |-
        flowey.exe e 6 flowey_lib_common::run_cargo_build 2
        flowey.exe e 6 flowey_lib_hvlite::run_cargo_build 2
        flowey.exe e 6 flowey_lib_hvlite::build_ohcldiag_dev 0
        flowey.exe e 6 flowey_core::pipeline::artifact::publish 3
      shell: bash
    - name: 'validate cache entry: gh-release-download'
      run: flowey.exe e 6 flowey_lib_common::cache 3
      shell: bash
    - name: 🌼📦 Publish x64-windows-hypestv
      uses: actions/upload-artifact@v7
      with:
        name: x64-windows-hypestv
        path: ${{ runner.temp }}/publish_artifacts/x64-windows-hypestv/
        include-hidden-files: true
    - name: 🌼📦 Publish x64-windows-igvmfilegen
      uses: actions/upload-artifact@v7
      with:
        name: x64-windows-igvmfilegen
        path: ${{ runner.temp }}/publish_artifacts/x64-windows-igvmfilegen/
        include-hidden-files: true
    - name: 🌼📦 Publish x64-windows-ohcldiag-dev
      uses: actions/upload-artifact@v7
      with:
        name: x64-windows-ohcldiag-dev
        path: ${{ runner.temp }}/publish_artifacts/x64-windows-ohcldiag-dev/
        include-hidden-files: true
    - name: 🌼📦 Publish x64-windows-vmgs_lib
      uses: actions/upload-artifact@v7
      with:
        name: x64-windows-vmgs_lib
        path: ${{ runner.temp }}/publish_artifacts/x64-windows-vmgs_lib/
        include-hidden-files: true
  job7:
    name: build artifacts (for VMM tests) [x64-windows]
    runs-on:
    - self-hosted
    - 1ES.Pool=openvmm-gh-amd-westus3
    - 1ES.ImageOverride=win-amd64
    - JobId=job7-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}
    permissions:
      contents: read
      id-token: write
    needs:
    - job0
    if: contains(github.event.pull_request.labels.*.name, 'release-ci-required') && github.event.pull_request.draft == false
    steps:
    - run: |
        set -x
        i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done;
        sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y
        curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.95.0 -y
        . "$HOME/.cargo/env"
        echo "$HOME/.cargo/bin" >> "$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 7 'FLOWEY_LOG' update
        echo "${{ runner.temp }}/work" | flowey.exe v 7 '_internal_WORKING_DIR' --is-raw-string update

        cat <<'EOF' | flowey.exe v 7 'verbose' update
        ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
        EOF
        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-vmgstool-dev"
        echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-vmgstool-dev" | flowey.exe v 7 'artifact_publish_from_x64-windows-vmgstool-dev' --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.exe e 7 flowey_lib_common::install_rust 0
      shell: bash
    - name: install Rust
      run: flowey.exe e 7 flowey_lib_common::install_rust 1
      shell: bash
    - name: detect active toolchain
      run: |-
        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.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
      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 7 'flowey_lib_common::git_checkout:4:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.workspace <<EOF
        ${{ github.workspace }}
        EOF
        flowey.exe e 7 flowey_lib_common::git_checkout 3
        flowey.exe e 7 flowey_lib_hvlite::git_checkout_openvmm_repo 0
      shell: bash
    - name: set '-Dwarnings' in .cargo/config.toml
      run: flowey.exe e 7 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
      shell: bash
    - name: create gh-release-download cache dir
      run: flowey.exe e 7 flowey_lib_common::download_gh_release 0
      shell: bash
    - name: Pre-processing cache vars
      run: |-
        flowey.exe e 7 flowey_lib_common::cache 4
        flowey.exe v 7 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar4
        flowey.exe v 7 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar5
      shell: bash
    - id: flowey_lib_common__cache__5
      uses: actions/cache@v5
      with:
        key: ${{ env.floweyvar4 }}
        path: ${{ env.floweyvar5 }}
      name: 'Restore cache: gh-release-download'
    - name: download artifacts from github releases
      run: |-
        flowey.exe v 7 'flowey_lib_common::cache:12:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__5.outputs.cache-hit <<EOF
        ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
        EOF
        flowey.exe e 7 flowey_lib_common::cache 6
        flowey.exe e 7 flowey_lib_common::download_gh_release 1
      shell: bash
    - name: unpack protoc
      run: |-
        flowey.exe e 7 flowey_lib_common::resolve_protoc 0
        flowey.exe e 7 flowey_lib_hvlite::cfg_openvmm_magicpath 0
      shell: bash
    - name: symlink protoc
      run: |-
        flowey.exe e 7 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
        flowey.exe e 7 flowey_lib_hvlite::init_cross_build 5
      shell: bash
    - name: cargo build openvmm
      run: |-
        flowey.exe e 7 flowey_lib_common::run_cargo_build 0
        flowey.exe e 7 flowey_lib_hvlite::run_cargo_build 0
        flowey.exe e 7 flowey_lib_hvlite::build_openvmm 0
        flowey.exe e 7 flowey_core::pipeline::artifact::publish 0
        flowey.exe e 7 flowey_lib_hvlite::init_cross_build 1
      shell: bash
    - name: cargo build tmk_vmm
      run: |-
        flowey.exe e 7 flowey_lib_common::run_cargo_build 3
        flowey.exe e 7 flowey_lib_hvlite::run_cargo_build 5
        flowey.exe e 7 flowey_lib_hvlite::build_tmk_vmm 0
        flowey.exe e 7 flowey_core::pipeline::artifact::publish 1
        flowey.exe e 7 flowey_lib_hvlite::init_cross_build 6
      shell: bash
    - name: cargo build prep_steps
      run: |-
        flowey.exe e 7 flowey_lib_common::run_cargo_build 1
        flowey.exe e 7 flowey_lib_hvlite::run_cargo_build 1
        flowey.exe e 7 flowey_lib_hvlite::build_prep_steps 0
        flowey.exe e 7 flowey_core::pipeline::artifact::publish 2
        flowey.exe e 7 flowey_lib_hvlite::init_cross_build 4
      shell: bash
    - name: cargo build vmgstool
      run: |-
        flowey.exe e 7 flowey_lib_common::run_cargo_build 6
        flowey.exe e 7 flowey_lib_hvlite::run_cargo_build 10
        flowey.exe e 7 flowey_lib_hvlite::build_vmgstool 0
        flowey.exe e 7 flowey_core::pipeline::artifact::publish 3
        flowey.exe e 7 flowey_lib_hvlite::init_cross_build 3
      shell: bash
    - name: cargo build vmgstool
      run: |-
        flowey.exe e 7 flowey_lib_common::run_cargo_build 5
        flowey.exe e 7 flowey_lib_hvlite::run_cargo_build 9
        flowey.exe e 7 flowey_lib_hvlite::build_vmgstool 1
        flowey.exe e 7 flowey_core::pipeline::artifact::publish 4
        flowey.exe e 7 flowey_lib_hvlite::init_cross_build 2
        flowey.exe e 7 flowey_lib_hvlite::run_cargo_build 6
        flowey.exe e 7 flowey_lib_hvlite::run_cargo_build 7
      shell: bash
    - name: cargo build tpm_guest_tests
      run: |-
        flowey.exe e 7 flowey_lib_common::run_cargo_build 4
        flowey.exe e 7 flowey_lib_hvlite::run_cargo_build 8
        flowey.exe e 7 flowey_lib_hvlite::build_tpm_guest_tests 0
        flowey.exe e 7 flowey_core::pipeline::artifact::publish 5
        flowey.exe e 7 flowey_lib_hvlite::init_cross_build 7
        flowey.exe e 7 flowey_lib_hvlite::run_cargo_build 2
        flowey.exe e 7 flowey_lib_hvlite::run_cargo_build 3
      shell: bash
    - name: cargo build test_igvm_agent_rpc_server
      run: |-
        flowey.exe e 7 flowey_lib_common::run_cargo_build 2
        flowey.exe e 7 flowey_lib_hvlite::run_cargo_build 4
        flowey.exe e 7 flowey_lib_hvlite::build_test_igvm_agent_rpc_server 0
        flowey.exe e 7 flowey_core::pipeline::artifact::publish 6
      shell: bash
    - name: create cargo-nextest cache dir
      run: |-
        flowey.exe e 7 flowey_lib_common::download_cargo_nextest 0
        flowey.exe e 7 flowey_lib_common::download_cargo_nextest 1
        flowey.exe e 7 flowey_lib_common::download_cargo_nextest 2
        flowey.exe e 7 flowey_lib_common::download_cargo_nextest 3
      shell: bash
    - name: Pre-processing cache vars
      run: |-
        flowey.exe e 7 flowey_lib_common::cache 0
        flowey.exe v 7 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar2
        flowey.exe v 7 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar3
      shell: bash
    - id: flowey_lib_common__cache__1
      uses: actions/cache@v5
      with:
        key: ${{ env.floweyvar2 }}
        path: ${{ env.floweyvar3 }}
      name: 'Restore cache: cargo-nextest'
    - name: downloading cargo-nextest
      run: |-
        flowey.exe v 7 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__1.outputs.cache-hit <<EOF
        ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
        EOF
        flowey.exe e 7 flowey_lib_common::cache 2
        flowey.exe e 7 flowey_lib_common::download_cargo_nextest 4
      shell: bash
    - name: report $CARGO_HOME
      run: flowey.exe e 7 flowey_lib_common::install_rust 3
      shell: bash
    - name: installing cargo-nextest
      run: |-
        flowey.exe e 7 flowey_lib_common::install_cargo_nextest 0
        flowey.exe e 7 flowey_lib_hvlite::init_cross_build 0
      shell: bash
    - name: build + archive 'vmm_tests' nextests
      run: |-
        flowey.exe e 7 flowey_lib_common::run_cargo_nextest_archive 0
        flowey.exe e 7 flowey_lib_hvlite::build_nextest_vmm_tests 0
        flowey.exe e 7 flowey_core::pipeline::artifact::publish 7
      shell: bash
    - name: 'validate cache entry: cargo-nextest'
      run: flowey.exe e 7 flowey_lib_common::cache 3
      shell: bash
    - name: 'validate cache entry: gh-release-download'
      run: flowey.exe e 7 flowey_lib_common::cache 7
      shell: bash
    - name: 🌼📦 Publish x64-windows-openvmm
      uses: actions/upload-artifact@v7
      with:
        name: x64-windows-openvmm
        path: ${{ runner.temp }}/publish_artifacts/x64-windows-openvmm/
        include-hidden-files: true
    - name: 🌼📦 Publish x64-windows-prep_steps
      uses: actions/upload-artifact@v7
      with:
        name: x64-windows-prep_steps
        path: ${{ runner.temp }}/publish_artifacts/x64-windows-prep_steps/
        include-hidden-files: true
    - name: 🌼📦 Publish x64-windows-test_igvm_agent_rpc_server
      uses: actions/upload-artifact@v7
      with:
        name: x64-windows-test_igvm_agent_rpc_server
        path: ${{ runner.temp }}/publish_artifacts/x64-windows-test_igvm_agent_rpc_server/
        include-hidden-files: true
    - name: 🌼📦 Publish x64-windows-tmk_vmm
      uses: actions/upload-artifact@v7
      with:
        name: x64-windows-tmk_vmm
        path: ${{ runner.temp }}/publish_artifacts/x64-windows-tmk_vmm/
        include-hidden-files: true
    - name: 🌼📦 Publish x64-windows-tpm_guest_tests
      uses: actions/upload-artifact@v7
      with:
        name: x64-windows-tpm_guest_tests
        path: ${{ runner.temp }}/publish_artifacts/x64-windows-tpm_guest_tests/
        include-hidden-files: true
    - name: 🌼📦 Publish x64-windows-vmgstool
      uses: actions/upload-artifact@v7
      with:
        name: x64-windows-vmgstool
        path: ${{ runner.temp }}/publish_artifacts/x64-windows-vmgstool/
        include-hidden-files: true
    - name: 🌼📦 Publish x64-windows-vmgstool-dev
      uses: actions/upload-artifact@v7
      with:
        name: x64-windows-vmgstool-dev
        path: ${{ runner.temp }}/publish_artifacts/x64-windows-vmgstool-dev/
        include-hidden-files: true
    - name: 🌼📦 Publish x64-windows-vmm-tests-archive
      uses: actions/upload-artifact@v7
      with:
        name: x64-windows-vmm-tests-archive
        path: ${{ runner.temp }}/publish_artifacts/x64-windows-vmm-tests-archive/
        include-hidden-files: true
    - name: 🌼🧼 Redact bootstrap var db
      run: rm $AgentTempDirNormal/bootstrapped-flowey/job7.json
      shell: bash
    - name: 🌼🥾 Publish bootstrapped flowey
      uses: actions/upload-artifact@v7
      with:
        name: _internal-flowey-bootstrap-x86_64-windows-uid-6
        path: ${{ runner.temp }}/bootstrapped-flowey
  job8:
    name: build artifacts (for VMM tests) [aarch64-linux]
    runs-on:
    - self-hosted
    - 1ES.Pool=openvmm-gh-amd-westus3
    - 1ES.ImageOverride=ubuntu2404-amd64
    - JobId=job8-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}
    permissions:
      contents: read
      id-token: write
    needs:
    - job0
    if: contains(github.event.pull_request.labels.*.name, 'release-ci-required') && github.event.pull_request.draft == false
    steps:
    - 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: 🌼🛫 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 8 'FLOWEY_LOG' update
        echo "${{ runner.temp }}/work" | flowey v 8 '_internal_WORKING_DIR' --is-raw-string update

        cat <<'EOF' | flowey v 8 'verbose' update
        ${{ inputs.verbose != '' && inputs.verbose || 'false' }}
        EOF
        mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-igvmfilegen"
        echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-igvmfilegen" | flowey v 8 'artifact_publish_from_aarch64-linux-igvmfilegen' --is-raw-string update
        mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-musl-openvmm"
        echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-musl-openvmm" | flowey v 8 'artifact_publish_from_aarch64-linux-musl-openvmm' --is-raw-string update
        mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-musl-openvmm_vhost"
        echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-musl-openvmm_vhost" | flowey v 8 'artifact_publish_from_aarch64-linux-musl-openvmm_vhost' --is-raw-string update
        mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-ohcldiag-dev"
        echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-ohcldiag-dev" | flowey v 8 '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 8 '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 8 'artifact_publish_from_aarch64-linux-openvmm_vhost' --is-raw-string update
        mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-prep_steps"
        echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-prep_steps" | flowey v 8 'artifact_publish_from_aarch64-linux-prep_steps' --is-raw-string update
        mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-vmgs_lib"
        echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-vmgs_lib" | flowey v 8 '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 8 'artifact_publish_from_aarch64-linux-vmgstool' --is-raw-string update
        mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-vmgstool-dev"
        echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-vmgstool-dev" | flowey v 8 'artifact_publish_from_aarch64-linux-vmgstool-dev' --is-raw-string update
      shell: bash
    - name: add default cargo home to path
      run: flowey e 8 flowey_lib_common::install_rust 0
      shell: bash
    - name: install Rust
      run: flowey e 8 flowey_lib_common::install_rust 1
      shell: bash
    - name: detect active toolchain
      run: |-
        flowey e 8 flowey_lib_common::install_rust 2
        flowey e 8 flowey_lib_common::cfg_cargo_common_flags 0
      shell: bash
    - name: checking if packages need to be installed
      run: flowey e 8 flowey_lib_common::install_dist_pkg 0
      shell: bash
    - name: installing packages
      run: flowey e 8 flowey_lib_common::install_dist_pkg 1
      shell: bash
    - name: check if openvmm needs to be cloned
      run: |-
        flowey e 8 flowey_lib_common::git_checkout 0
        flowey v 8 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:489:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46 write-to-env github floweyvar1
        flowey v 8 '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 8 'flowey_lib_common::git_checkout:4:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.workspace <<EOF
        ${{ github.workspace }}
        EOF
        flowey e 8 flowey_lib_common::git_checkout 3
        flowey e 8 flowey_lib_hvlite::git_checkout_openvmm_repo 0
      shell: bash
    - name: set '-Dwarnings' in .cargo/config.toml
      run: flowey e 8 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
      shell: bash
    - name: create gh-release-download cache dir
      run: flowey e 8 flowey_lib_common::download_gh_release 0
      shell: bash
    - name: Pre-processing cache vars
      run: |-
        flowey e 8 flowey_lib_common::cache 0
        flowey v 8 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar2
        flowey v 8 '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
      with:
        key: ${{ env.floweyvar2 }}
        path: ${{ env.floweyvar3 }}
      name: 'Restore cache: gh-release-download'
    - name: download artifacts from github releases
      run: |-
        flowey v 8 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__1.outputs.cache-hit <<EOF
        ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
        EOF
        flowey e 8 flowey_lib_common::cache 2
        flowey e 8 flowey_lib_common::download_gh_release 1
      shell: bash
    - name: unpack protoc
      run: |-
        flowey e 8 flowey_lib_common::resolve_protoc 0
        flowey e 8 flowey_lib_hvlite::cfg_openvmm_magicpath 0
      shell: bash
    - name: symlink protoc
      run: |-
        flowey e 8 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
        flowey e 8 flowey_lib_hvlite::init_cross_build 0
      shell: bash
    - name: cargo build openvmm
      run: |-
        flowey e 8 flowey_lib_common::run_cargo_build 2
        flowey e 8 flowey_lib_hvlite::run_cargo_build 4
      shell: bash
    - name: split debug symbols
      run: |-
        flowey e 8 flowey_lib_hvlite::run_split_debug_info 1
        flowey e 8 flowey_lib_hvlite::run_cargo_build 5
        flowey e 8 flowey_lib_hvlite::build_openvmm 0
        flowey e 8 flowey_core::pipeline::artifact::publish 0
        flowey e 8 flowey_lib_hvlite::init_cross_build 2
      shell: bash
    - name: cargo build openvmm_vhost
      run: |-
        flowey e 8 flowey_lib_common::run_cargo_build 4
        flowey e 8 flowey_lib_hvlite::run_cargo_build 8
      shell: bash
    - name: split debug symbols
      run: |-
        flowey e 8 flowey_lib_hvlite::run_split_debug_info 3
        flowey e 8 flowey_lib_hvlite::run_cargo_build 9
        flowey e 8 flowey_lib_hvlite::build_openvmm_vhost 0
        flowey e 8 flowey_core::pipeline::artifact::publish 1
        flowey e 8 flowey_lib_hvlite::init_cross_build 5
      shell: bash
    - name: cargo build vmgstool
      run: |-
        flowey e 8 flowey_lib_common::run_cargo_build 9
        flowey e 8 flowey_lib_hvlite::run_cargo_build 17
      shell: bash
    - name: split debug symbols
      run: |-
        flowey e 8 flowey_lib_hvlite::run_split_debug_info 8
        flowey e 8 flowey_lib_hvlite::run_cargo_build 18
        flowey e 8 flowey_lib_hvlite::build_vmgstool 0
        flowey e 8 flowey_core::pipeline::artifact::publish 2
        flowey e 8 flowey_lib_hvlite::init_cross_build 4
      shell: bash
    - name: cargo build vmgstool
      run: |-
        flowey e 8 flowey_lib_common::run_cargo_build 8
        flowey e 8 flowey_lib_hvlite::run_cargo_build 15
      shell: bash
    - name: split debug symbols
      run: |-
        flowey e 8 flowey_lib_hvlite::run_split_debug_info 7
        flowey e 8 flowey_lib_hvlite::run_cargo_build 16
        flowey e 8 flowey_lib_hvlite::build_vmgstool 1
        flowey e 8 flowey_core::pipeline::artifact::publish 3
        flowey e 8 flowey_lib_hvlite::init_cross_build 3
      shell: bash
    - name: cargo build vmgs_lib
      run: |-
        flowey e 8 flowey_lib_common::run_cargo_build 7
        flowey e 8 flowey_lib_hvlite::run_cargo_build 14
        flowey e 8 flowey_lib_hvlite::build_and_test_vmgs_lib 0
        flowey e 8 flowey_lib_hvlite::build_and_test_vmgs_lib 1
        flowey e 8 flowey_core::pipeline::artifact::publish 4
        flowey e 8 flowey_lib_hvlite::init_cross_build 1
      shell: bash
    - name: cargo build igvmfilegen
      run: |-
        flowey e 8 flowey_lib_common::run_cargo_build 0
        flowey e 8 flowey_lib_hvlite::run_cargo_build 0
      shell: bash
    - name: split debug symbols
      run: |-
        flowey e 8 flowey_lib_hvlite::run_split_debug_info 6
        flowey e 8 flowey_lib_hvlite::run_cargo_build 1
        flowey e 8 flowey_lib_hvlite::build_igvmfilegen 0
        flowey e 8 flowey_core::pipeline::artifact::publish 5
        flowey e 8 flowey_lib_hvlite::init_cross_build 6
      shell: bash
    - name: cargo build ohcldiag-dev
      run: |-
        flowey e 8 flowey_lib_common::run_cargo_build 1
        flowey e 8 flowey_lib_hvlite::run_cargo_build 2
      shell: bash
    - name: split debug symbols
      run: |-
        flowey e 8 flowey_lib_hvlite::run_split_debug_info 0
        flowey e 8 flowey_lib_hvlite::run_cargo_build 3
        flowey e 8 flowey_lib_hvlite::build_ohcldiag_dev 0
        flowey e 8 flowey_core::pipeline::artifact::publish 6
      shell: bash
    - name: unpack openvmm-deps archive
      run: flowey e 8 flowey_lib_hvlite::resolve_openvmm_deps 0
      shell: bash
    - name: extract Aarch64 sysroot.tar.gz
      run: |-
        flowey e 8 flowey_lib_hvlite::init_openvmm_magicpath_openhcl_sysroot 0
        flowey e 8 flowey_lib_hvlite::init_cross_build 7
      shell: bash
    - name: cargo build openvmm
      run: |-
        flowey e 8 flowey_lib_common::run_cargo_build 3
        flowey e 8 flowey_lib_hvlite::run_cargo_build 6
      shell: bash
    - name: split debug symbols
      run: |-
        flowey e 8 flowey_lib_hvlite::run_split_debug_info 2
        flowey e 8 flowey_lib_hvlite::run_cargo_build 7
        flowey e 8 flowey_lib_hvlite::build_openvmm 1
        flowey e 8 flowey_core::pipeline::artifact::publish 7
        flowey e 8 flowey_lib_hvlite::init_cross_build 8
      shell: bash
    - name: cargo build openvmm_vhost
      run: |-
        flowey e 8 flowey_lib_common::run_cargo_build 5
        flowey e 8 flowey_lib_hvlite::run_cargo_build 10
      shell: bash
    - name: split debug symbols
      run: |-
        flowey e 8 flowey_lib_hvlite::run_split_debug_info 4
        flowey e 8 flowey_lib_hvlite::run_cargo_build 11
        flowey e 8 flowey_lib_hvlite::build_openvmm_vhost 1
        flowey e 8 flowey_core::pipeline::artifact::publish 8
        flowey e 8 flowey_lib_hvlite::init_cross_build 9
      shell: bash
    - name: cargo build prep_steps
      run: |-
        flowey e 8 flowey_lib_common::run_cargo_build 6
        flowey e 8 flowey_lib_hvlite::run_cargo_build 12
      shell: bash
    - name: split debug symbols
      run: |-
        flowey e 8 flowey_lib_hvlite::run_split_debug_info 5
        flowey e 8 flowey_lib_hvlite::run_cargo_build 13
        flowey e 8 flowey_lib_hvlite::build_prep_steps 0
        flowey e 8 flowey_core::pipeline::artifact::publish 9
      shell: bash
    - name: 'validate cache entry: gh-release-download'
      run: flowey e 8 flowey_lib_common::cache 3
      shell: bash
    - name: 🌼📦 Publish aarch64-linux-igvmfilegen
      uses: actions/upload-artifact@v7
      with:
        name: aarch64-linux-igvmfilegen
        path: ${{ runner.temp }}/publish_artifacts/aarch64-linux-igvmfilegen/
        include-hidden-files: true
    - name: 🌼📦 Publish aarch64-linux-musl-openvmm
      uses: actions/upload-artifact@v7
      with:
        name: aarch64-linux-musl-openvmm
        path: ${{ runner.temp }}/publish_artifacts/aarch64-linux-musl-openvmm/
        include-hidden-files: true
    - name: 🌼📦 Publish aarch64-linux-musl-openvmm_vhost
      uses: actions/upload-artifact@v7
      with:
        name: aarch64-linux-musl-openvmm_vhost
        path: ${{ runner.temp }}/publish_artifacts/aarch64-linux-musl-openvmm_vhost/
        include-hidden-files: true
    - name: 🌼📦 Publish aarch64-linux-ohcldiag-dev
      uses: actions/upload-artifact@v7
      with:
        name: aarch64-linux-ohcldiag-dev
        path: ${{ runner.temp }}/publish_artifacts/aarch64-linux-ohcldiag-dev/
        include-hidden-files: true
    - name: 🌼📦 Publish aarch64-linux-openvmm
      uses: actions/upload-artifact@v7
      with:
        name: aarch64-linux-openvmm
        path: ${{ runner.temp }}/publish_artifacts/aarch64-linux-openvmm/
        include-hidden-files: true
    - name: 🌼📦 Publish aarch64-linux-openvmm_vhost
      uses: actions/upload-artifact@v7
      with:
        name: aarch64-linux-openvmm_vhost
        path: ${{ runner.temp }}/publish_artifacts/aarch64-linux-openvmm_vhost/
        include-hidden-files: true
    - name: 🌼📦 Publish aarch64-linux-prep_steps
      uses: actions/upload-artifact@v7
      with:
        name: aarch64-linux-prep_steps
        path: ${{ runner.temp }}/publish_artifacts/aarch64-linux-prep_steps/
        include-hidden-files: true
    - name: 🌼📦 Publish aarch64-linux-vmgs_lib
      uses: actions/upload-artifact@v7
      with:
        name: aarch64-linux-vmgs_lib
        path: ${{ runner.temp }}/publish_artifacts/aarch64-linux-vmgs_lib/
        include-hidden-files: true
    - name: 🌼📦 Publish aarch64-linux-vmgstool
      uses: actions/upload-artifact@v7
      with:
        name: aarch64-linux-vmgstool
        path: ${{ runner.temp }}/publish_artifacts/aarch64-linux-vmgstool/
        include-hidden-files: true
    - name: 🌼📦 Publish aarch64-linux-vmgstool-dev
      uses: actions/upload-artifact@v7
      with:
        name: aarch64-linux-vmgstool-dev
        path: ${{ runner.temp }}/publish_artifacts/aarch64-linux-vmgstool-dev/
        include-hidden-files: true
  job9:
    name: build artifacts (for VMM tests) [x64-linux]
    runs-on:
    - self-hosted
    - 1ES.Pool=openvmm-gh-amd-westus3
    - 1ES.ImageOverride=ubuntu2404-amd64
    - JobId=job9-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}
    permissions:
      contents: read
      id-token: write
    needs:
    - job0
    if: contains(github.event.pull_request.labels.*.name, 'release-ci-required') && github.event.pull_request.draft == false
    steps:
    - 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: 🌼🛫 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 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-igvmfilegen"
        echo "$AgentTempDirNormal/publish_artifacts/x64-linux-igvmfilegen" | flowey v 9 'artifact_publish_from_x64-linux-igvmfilegen' --is-raw-string update
        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-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-linux-ohcldiag-dev"
        echo "$AgentTempDirNormal/publish_artifacts/x64-linux-ohcldiag-dev" | flowey v 9 '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 9 '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 9 'artifact_publish_from_x64-linux-openvmm_vhost' --is-raw-string update
        mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-prep_steps"
        echo "$AgentTempDirNormal/publish_artifacts/x64-linux-prep_steps" | flowey v 9 'artifact_publish_from_x64-linux-prep_steps' --is-raw-string update
        mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-vmgs_lib"
        echo "$AgentTempDirNormal/publish_artifacts/x64-linux-vmgs_lib" | flowey v 9 '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 9 'artifact_publish_from_x64-linux-vmgstool' --is-raw-string update
        mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-vmgstool-dev"
        echo "$AgentTempDirNormal/publish_artifacts/x64-linux-vmgstool-dev" | flowey v 9 'artifact_publish_from_x64-linux-vmgstool-dev' --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 9 'artifact_publish_from_x64-linux-vmm-tests-archive' --is-raw-string update
      shell: bash
    - name: add default cargo home to path
      run: flowey e 9 flowey_lib_common::install_rust 0
      shell: bash
    - name: install Rust
      run: flowey e 9 flowey_lib_common::install_rust 1
      shell: bash
    - name: detect active toolchain
      run: |-
        flowey e 9 flowey_lib_common::install_rust 2
        flowey e 9 flowey_lib_common::cfg_cargo_common_flags 0
      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: check if openvmm needs to be cloned
      run: |-
        flowey e 9 flowey_lib_common::git_checkout 0
        flowey v 9 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:489:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:490:46 write-to-env github floweyvar1
        flowey v 9 '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 9 'flowey_lib_common::git_checkout:4:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.workspace <<EOF
        ${{ github.workspace }}
        EOF
        flowey e 9 flowey_lib_common::git_checkout 3
        flowey e 9 flowey_lib_hvlite::git_checkout_openvmm_repo 0
      shell: bash
    - name: set '-Dwarnings' in .cargo/config.toml
      run: flowey e 9 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
      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 floweyvar4
        flowey v 9 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar5
      shell: bash
    - id: flowey_lib_common__cache__5
      uses: actions/cache@v5
      with:
        key: ${{ env.floweyvar4 }}
        path: ${{ env.floweyvar5 }}
      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 <<EOF
        ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
        EOF
        flowey e 9 flowey_lib_common::cache 6
        flowey e 9 flowey_lib_common::download_gh_release 1
      shell: bash
    - name: unpack protoc
      run: |-
        flowey e 9 flowey_lib_common::resolve_protoc 0
        flowey e 9 flowey_lib_hvlite::cfg_openvmm_magicpath 0
      shell: bash
    - name: symlink protoc
      run: |-
        flowey e 9 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
        flowey e 9 flowey_lib_hvlite::init_cross_build 1
      shell: bash
    - name: cargo build openvmm
      run: |-
        flowey e 9 flowey_lib_common::run_cargo_build 2
        flowey e 9 flowey_lib_hvlite::run_cargo_build 4
      shell: bash
    - name: split debug symbols
      run: |-
        flowey e 9 flowey_lib_hvlite::run_split_debug_info 1
        flowey e 9 flowey_lib_hvlite::run_cargo_build 5
        flowey e 9 flowey_lib_hvlite::build_openvmm 0
        flowey e 9 flowey_core::pipeline::artifact::publish 0
        flowey e 9 flowey_lib_hvlite::init_cross_build 3
      shell: bash
    - name: cargo build openvmm_vhost
      run: |-
        flowey e 9 flowey_lib_common::run_cargo_build 4
        flowey e 9 flowey_lib_hvlite::run_cargo_build 8
      shell: bash
    - name: split debug symbols
      run: |-
        flowey e 9 flowey_lib_hvlite::run_split_debug_info 3
        flowey e 9 flowey_lib_hvlite::run_cargo_build 9
        flowey e 9 flowey_lib_hvlite::build_openvmm_vhost 0
        flowey e 9 flowey_core::pipeline::artifact::publish 1
        flowey e 9 flowey_lib_hvlite::init_cross_build 6
      shell: bash
    - name: cargo build vmgstool
      run: |-
        flowey e 9 flowey_lib_common::run_cargo_build 9
        flowey e 9 flowey_lib_hvlite::run_cargo_build 17
      shell: bash
    - name: split debug symbols
      run: |-
        flowey e 9 flowey_lib_hvlite::run_split_debug_info 8
        flowey e 9 flowey_lib_hvlite::run_cargo_build 18
        flowey e 9 flowey_lib_hvlite::build_vmgstool 0
        flowey e 9 flowey_core::pipeline::artifact::publish 2
        flowey e 9 flowey_lib_hvlite::init_cross_build 5
      shell: bash
    - name: cargo build vmgstool
      run: |-
        flowey e 9 flowey_lib_common::run_cargo_build 8
        flowey e 9 flowey_lib_hvlite::run_cargo_build 15
      shell: bash
    - name: split debug symbols
      run: |-
        flowey e 9 flowey_lib_hvlite::run_split_debug_info 7
        flowey e 9 flowey_lib_hvlite::run_cargo_build 16
        flowey e 9 flowey_lib_hvlite::build_vmgstool 1
        flowey e 9 flowey_core::pipeline::artifact::publish 3
        flowey e 9 flowey_lib_hvlite::init_cross_build 4
      shell: bash
    - name: cargo build vmgs_lib
      run: |-
        flowey e 9 flowey_lib_common::run_cargo_build 7
        flowey e 9 flowey_lib_hvlite::run_cargo_build 14
        flowey e 9 flowey_lib_hvlite::build_and_test_vmgs_lib 0
      shell: bash
    - name: test vmgs_lib
      run: |-
        flowey e 9 flowey_lib_hvlite::build_and_test_vmgs_lib 1
        flowey e 9 flowey_lib_hvlite::build_and_test_vmgs_lib 2
        flowey e 9 flowey_core::pipeline::artifact::publish 4
        flowey e 9 flowey_lib_hvlite::init_cross_build 2
      shell: bash
    - name: cargo build igvmfilegen
      run: |-
        flowey e 9 flowey_lib_common::run_cargo_build 0
        flowey e 9 flowey_lib_hvlite::run_cargo_build 0
      shell: bash
    - name: split debug symbols
      run: |-
        flowey e 9 flowey_lib_hvlite::run_split_debug_info 6
        flowey e 9 flowey_lib_hvlite::run_cargo_build 1
        flowey e 9 flowey_lib_hvlite::build_igvmfilegen 0
        flowey e 9 flowey_core::pipeline::artifact::publish 5
        flowey e 9 flowey_lib_hvlite::init_cross_build 7
      shell: bash
    - name: cargo build ohcldiag-dev
      run: |-
        flowey e 9 flowey_lib_common::run_cargo_build 1
        flowey e 9 flowey_lib_hvlite::run_cargo_build 2
      shell: bash
    - name: split debug symbols
      run: |-
        flowey e 9 flowey_lib_hvlite::run_split_debug_info 0
        flowey e 9 flowey_lib_hvlite::run_cargo_build 3
        flowey e 9 flowey_lib_hvlite::build_ohcldiag_dev 0
        flowey e 9 flowey_core::pipeline::artifact::publish 6
      shell: bash
    - name: unpack openvmm-deps archive
      run: flowey e 9 flowey_lib_hvlite::resolve_openvmm_deps 0
      shell: bash
    - name: extract X86_64 sysroot.tar.gz
      run: |-
        flowey e 9 flowey_lib_hvlite::init_openvmm_magicpath_openhcl_sysroot 0
        flowey e 9 flowey_lib_hvlite::init_cross_build 9
      shell: bash
    - name: cargo build openvmm
      run: |-
        flowey e 9 flowey_lib_common::run_cargo_build 3
        flowey e 9 flowey_lib_hvlite::run_cargo_build 6
      shell: bash
    - name: split debug symbols
      run: |-
        flowey e 9 flowey_lib_hvlite::run_split_debug_info 2
        flowey e 9 flowey_lib_hvlite::run_cargo_build 7
        flowey e 9 flowey_lib_hvlite::build_openvmm 1
        flowey e 9 flowey_core::pipeline::artifact::publish 7
        flowey e 9 flowey_lib_hvlite::init_cross_build 10
      shell: bash
    - name: cargo build openvmm_vhost
      run: |-
        flowey e 9 flowey_lib_common::run_cargo_build 5
        flowey e 9 flowey_lib_hvlite::run_cargo_build 10
      shell: bash
    - name: split debug symbols
      run: |-
        flowey e 9 flowey_lib_hvlite::run_split_debug_info 4
        flowey e 9 flowey_lib_hvlite::run_cargo_build 11
        flowey e 9 flowey_lib_hvlite::build_openvmm_vhost 1
        flowey e 9 flowey_core::pipeline::artifact::publish 8
        flowey e 9 flowey_lib_hvlite::init_cross_build 11
      shell: bash
    - name: cargo build prep_steps
      run: |-
        flowey e 9 flowey_lib_common::run_cargo_build 6
        flowey e 9 flowey_lib_hvlite::run_cargo_build 12
      shell: bash
    - name: split debug symbols
      run: |-
        flowey e 9 flowey_lib_hvlite::run_split_debug_info 5
        flowey e 9 flowey_lib_hvlite::run_cargo_build 13
        flowey e 9 flowey_lib_hvlite::build_prep_steps 0
        flowey e 9 flowey_core::pipeline::artifact::publish 9
      shell: bash
    - name: create cargo-nextest cache dir
      run: |-
        flowey e 9 flowey_lib_common::download_cargo_nextest 0
        flowey e 9 flowey_lib_common::download_cargo_nextest 1
        flowey e 9 flowey_lib_common::download_cargo_nextest 2
        flowey e 9 flowey_lib_common::download_cargo_nextest 3
      shell: bash
    - name: Pre-processing cache vars
      run: |-
        flowey e 9 flowey_lib_common::cache 0
        flowey v 9 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar2
        flowey v 9 '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
      with:
        key: ${{ env.floweyvar2 }}
        path: ${{ env.floweyvar3 }}
      name: 'Restore cache: cargo-nextest'
    - name: downloading cargo-nextest
      run: |-
        flowey v 9 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__1.outputs.cache-hit <<EOF
        ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
        EOF
        flowey e 9 flowey_lib_common::cache 2
        flowey e 9 flowey_lib_common::download_cargo_nextest 4
      shell: bash
    - name: report $CARGO_HOME
      run: flowey e 9 flowey_lib_common::install_rust 3
      shell: bash
    - name: installing cargo-nextest
      run: |-
        flowey e 9 flowey_lib_common::install_cargo_nextest 0
        flowey e 9 flowey_lib_hvlite::init_cross_build 0
      shell: bash
    - name: build + archive 'vmm_tests' nextests
      run: |-
        flowey e 9 flowey_lib_common::run_cargo_nextest_archive 0
        flowey e 9 flowey_lib_hvlite::build_nextest_vmm_tests 0
        flowey e 9 flowey_core::pipeline::artifact::publish 10
        flowey e 9 flowey_lib_hvlite::init_cross_build 8
      shell: bash
    - name: build + archive 'vmm_tests' nextests
      run: |-
        flowey e 9 flowey_lib_common::run_cargo_nextest_archive 1
        flowey e 9 flowey_lib_hvlite::build_nextest_vmm_tests 1
        flowey e 9 flowey_core::pipeline::artifact::publish 11
      shell: bash
    - name: 'validate cache entry: cargo-nextest'
      run: flowey e 9 flowey_lib_common::cache 3
      shell: bash
    - name: 'validate cache entry: gh-release-download'
      run: flowey e 9 flowey_lib_common::cache 7
      shell: bash
    - name: 🌼📦 Publish x64-linux-igvmfilegen
      uses: actions/upload-artifact@v7
      with:
        name: x64-linux-igvmfilegen
        path: ${{ runner.temp }}/publish_artifacts/x64-linux-igvmfilegen/
        include-hidden-files: true
    - name: 🌼📦 Publish x64-linux-musl-openvmm
      uses: actions/upload-artifact@v7
      with:
        name: x64-linux-musl-openvmm
        path: ${{ runner.temp }}/publish_artifacts/x64-linux-musl-openvmm/
        include-hidden-files: true
    - name: 🌼📦 Publish x64-linux-musl-openvmm_vhost
      uses: actions/upload-artifact@v7
      with:
        name: x64-linux-musl-openvmm_vhost
        path: ${{ runner.temp }}/publish_artifacts/x64-linux-musl-openvmm_vhost/
        include-hidden-files: true
    - name: 🌼📦 Publish x64-linux-musl-vmm-tests-archive
      uses: actions/upload-artifact@v7
      with:
        name: x64-linux-musl-vmm-tests-archive
        path: ${{ runner.temp }}/publish_artifacts/x64-linux-musl-vmm-tests-archive/
        include-hidden-files: true
    - name: 🌼📦 Publish x64-linux-ohcldiag-dev
      uses: actions/upload-artifact@v7
      with:
        name: x64-linux-ohcldiag-dev
        path: ${{ runner.temp }}/publish_artifacts/x64-linux-ohcldiag-dev/
        include-hidden-files: true
    - name: 🌼📦 Publish x64-linux-openvmm
      uses: actions/upload-artifact@v7
      with:
        name: x64-linux-openvmm
        path: ${{ runner.temp }}/publish_artifacts/x64-linux-openvmm/
        include-hidden-files: true
    - name: 🌼📦 Publish x64-linux-openvmm_vhost
      uses: actions/upload-artifact@v7
      with:
        name: x64-linux-openvmm_vhost
        path: ${{ runner.temp }}/publish_artifacts/x64-linux-openvmm_vhost/
        include-hidden-files: true
    - name: 🌼📦 Publish x64-linux-prep_steps
      uses: actions/upload-artifact@v7
      with:
        name: x64-linux-prep_steps
        path: ${{ runner.temp }}/publish_artifacts/x64-linux-prep_steps/
        include-hidden-files: true
    - name: 🌼📦 Publish x64-linux-vmgs_lib
      uses: actions/upload-artifact@v7
      with:
        name: x64-linux-vmgs_lib
        path: ${{ runner.temp }}/publish_artifacts/x64-linux-vmgs_lib/
        include-hidden-files: true
    - name: 🌼📦 Publish x64-linux-vmgstool
      uses: actions/upload-artifact@v7
      with:
        name: x64-linux-vmgstool
        path: ${{ runner.temp }}/publish_artifacts/x64-linux-vmgstool/
        include-hidden-files: true
    - name: 🌼📦 Publish x64-linux-vmgstool-dev
      uses: actions/upload-artifact@v7
      with:
        name: x64-linux-vmgstool-dev
        path: ${{ runner.temp }}/publish_artifacts/x64-linux-vmgstool-dev/
        include-hidden-files: true
    - name: 🌼📦 Publish x64-linux-vmm-tests-archive
      uses: actions/upload-artifact@v7
      with:
        name: x64-linux-vmm-tests-archive
        path: ${{ runner.temp }}/publish_artifacts/x64-linux-vmm-tests-archive/
        include-hidden-files: true
