Skip to content

Save state of NVMe devices during servicing #198

Save state of NVMe devices during servicing

Save state of NVMe devices during servicing #198

Workflow file for this run

##############################
# THIS FILE IS AUTOGENERATED #
# DO NOT MANUALLY EDIT #
##############################
name: '[flowey] OpenVMM PR'
on:
workflow_dispatch:
inputs:
param0:
description: Run with verbose output
default: false
required: false
type: boolean
pull_request:
branches:
- main
concurrency:
group: ${{ github.ref }}
cancel-in-progress: true
jobs:
job0:
name: build mdbook guide [x64-windows]
runs-on:
- self-hosted
- 1ES.Pool=HvLite-GitHub-Win-Pool-WestUS3
permissions:
contents: read
id-token: write
pages: write
steps:
- run: echo "injected!"
name: ๐ŸŒผ๐Ÿฅพ Bootstrap flowey
shell: bash
- uses: Azure/login@v2
with:
client-id: ${{ secrets.OPENVMM_CLIENT_ID }}
tenant-id: ${{ secrets.OPENVMM_TENANT_ID }}
subscription-id: ${{ secrets.OPENVMM_SUBSCRIPTION_ID }}
- name: Pull Azure Key Vault secrets
run: |
VPackAccessToken=$(az keyvault secret show --name "VPackAccessToken" --vault-name "HvLite-PATs" --query value --output tsv)
echo "::add-mask::$VPackAccessToken"
echo "VPackAccessToken=$VPackAccessToken" >> $GITHUB_ENV
MsAzurePull=$(az keyvault secret show --name "MsAzurePull" --vault-name "HvLite-PATs" --query value --output tsv)
echo "::add-mask::$MsAzurePull"
echo "MsAzurePull=$MsAzurePull" >> $GITHUB_ENV
shell: bash
- run: |
set -x
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
rustup show
if: runner.os == 'Linux'
name: rustup (Linux)
shell: bash
- run: |
set -x
curl -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
./rustup-init.exe -y
echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
if: runner.os == 'Windows' && runner.arch == 'X64'
name: rustup (Windows X64)
shell: bash
- run: |
set -x
curl -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
./rustup-init.exe -y
echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
if: runner.os == 'Windows' && runner.arch == 'ARM64'
name: rustup (Windows ARM64)
shell: bash
- uses: actions/checkout@v4
with:
path: flowey_bootstrap
- name: Update Index
run: |
rustc -vV
cargo update --dry-run
working-directory: flowey_bootstrap
shell: bash
- name: Build flowey
run: CARGO_INCREMENTAL=0 RUSTC_BOOTSTRAP=1 RUSTFLAGS="-Z threads=8" cargo build -p flowey_hvlite --target x86_64-pc-windows-msvc --profile flowey-ci
working-directory: flowey_bootstrap
shell: bash
- name: Stage flowey artifact
run: |
mkdir ./flowey_bootstrap_temp
mv ./.github/workflows/openvmm-pr.yaml ./flowey_bootstrap_temp/pipeline.yaml
mv ./.github/workflows/openvmm-pr.json ./flowey_bootstrap_temp/pipeline.json
mv target/x86_64-pc-windows-msvc/flowey-ci/flowey_hvlite.exe ./flowey_bootstrap_temp/flowey.exe
working-directory: flowey_bootstrap
shell: bash
- name: Copy flowey artifact
run: |
OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
mkdir -p $OutDirNormal
cp -r ./flowey_bootstrap_temp/* $OutDirNormal
working-directory: flowey_bootstrap
shell: bash
- name: Cleanup staged flowey artifact
run: rm -rf ./flowey_bootstrap_temp
working-directory: flowey_bootstrap
shell: bash
- run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $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/bootstrapped-flowey/flowey.exe
echo '"debug"' | flowey.exe v 0 'FLOWEY_LOG' --update-from-stdin
echo "${{ runner.temp }}/work" | flowey.exe v 0 '_internal_WORKING_DIR' --update-from-stdin --is-raw-string
cat <<'EOF' | flowey.exe v 0 'param0' --update-from-stdin
${{ inputs.param0 != '' && inputs.param0 || 'false' }}
EOF
mkdir -p "$AgentTempDirNormal/publish_artifacts/guide"
echo "${{ runner.temp }}\\publish_artifacts\\guide" | flowey.exe v 0 'artifact_publish_from_guide' --update-from-stdin --is-raw-string
shell: bash
- name: ๐ŸŒผ๐Ÿ”Ž Self-check YAML
run: |-
ESCAPED_AGENT_TEMPDIR=$(
cat <<'EOF' | sed 's/\\/\\\\/g'
${{ runner.temp }}
EOF
)
flowey.exe pipeline github --check $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out .github/workflows/openvmm-pr.yaml ci checkin-gates --config=pr
shell: bash
- name: check if hvlite needs to be cloned
run: flowey.exe e 0 flowey_lib_common::git_checkout 0
shell: bash
- run: |
flowey.exe v 0 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:469:46' --write-to-gh-env FLOWEY_CONDITION
shell: bash
name: ๐ŸŒผโ“ Write to 'FLOWEY_CONDITION'
- run: |
flowey.exe v 0 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:468:80' --write-to-gh-env floweyvar4 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar4'
if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
- id: flowey_lib_common__git_checkout__1
uses: actions/checkout@v4
with:
fetch-depth: '1'
path: repo0
persist-credentials: ${{ env.floweyvar4 }}
name: checkout repo hvlite
if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
- run: ${{ github.workspace }}
shell: flowey.exe v 0 'flowey_lib_common::git_checkout:4:flowey_lib_common/src/git_checkout.rs:523:31' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'github.workspace'
- name: report cloned repo directories
run: flowey.exe e 0 flowey_lib_common::git_checkout 3
shell: bash
- name: resolve OpenVMM repo requests
run: flowey.exe e 0 flowey_lib_hvlite::git_checkout_openvmm_repo 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey.exe e 0 flowey_lib_hvlite::_jobs::build_and_publish_guide 0
shell: bash
- name: create gh-release-download cache dir
run: flowey.exe e 0 flowey_lib_common::download_gh_release 0
shell: bash
- name: Pre-processing cache vars
run: flowey.exe e 0 flowey_lib_common::cache 4
shell: bash
- run: |
flowey.exe v 0 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar7 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar7'
- run: |
flowey.exe v 0 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar8 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar8'
- id: flowey_lib_common__cache__5
uses: actions/cache@v4
with:
key: ${{ env.floweyvar7 }}
path: ${{ env.floweyvar8 }}
name: 'Restore cache: gh-release-download'
- run: ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
shell: flowey.exe v 0 'flowey_lib_common::cache:12:flowey_lib_common/src/cache.rs:509:46' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'steps.flowey_lib_common__cache__5.outputs.cache-hit'
- name: map Github cache-hit to flowey
run: flowey.exe e 0 flowey_lib_common::cache 6
shell: bash
- name: create gh cache dir
run: flowey.exe e 0 flowey_lib_common::download_gh_cli 0
shell: bash
- name: Pre-processing cache vars
run: flowey.exe e 0 flowey_lib_common::cache 0
shell: bash
- run: |
flowey.exe v 0 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar5 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar5'
- run: |
flowey.exe v 0 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar6 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar6'
- id: flowey_lib_common__cache__1
uses: actions/cache@v4
with:
key: ${{ env.floweyvar5 }}
path: ${{ env.floweyvar6 }}
name: 'Restore cache: gh-cli'
- run: ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
shell: flowey.exe v 0 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:509:46' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'steps.flowey_lib_common__cache__1.outputs.cache-hit'
- name: map Github cache-hit to flowey
run: flowey.exe e 0 flowey_lib_common::cache 2
shell: bash
- name: installing gh
run: flowey.exe e 0 flowey_lib_common::download_gh_cli 1
shell: bash
- run: ${{ secrets.OPENVMM_CLIENT_ID }}
shell: flowey.exe v 0 'flowey_lib_hvlite::_jobs::cfg_gh_azure_login:0:flowey_lib_hvlite/src/_jobs/cfg_gh_azure_login.rs:36:29' --is-secret --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'secrets.OPENVMM_CLIENT_ID'
- run: ${{ secrets.OPENVMM_TENANT_ID }}
shell: flowey.exe v 0 'flowey_lib_hvlite::_jobs::cfg_gh_azure_login:1:flowey_lib_hvlite/src/_jobs/cfg_gh_azure_login.rs:37:29' --is-secret --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'secrets.OPENVMM_TENANT_ID'
- run: ${{ secrets.OPENVMM_SUBSCRIPTION_ID }}
shell: flowey.exe v 0 'flowey_lib_hvlite::_jobs::cfg_gh_azure_login:2:flowey_lib_hvlite/src/_jobs/cfg_gh_azure_login.rs:38:35' --is-secret --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'secrets.OPENVMM_SUBSCRIPTION_ID'
- name: Create OpenIDConnect Credentials
run: flowey.exe e 0 flowey_lib_hvlite::_jobs::cfg_gh_azure_login 3
shell: bash
- name: Read Azure Login Credentials
run: flowey.exe e 0 flowey_lib_common::gh_task_azure_login 0
shell: bash
- run: |
flowey.exe v 0 'flowey_lib_common::gh_task_azure_login:0:flowey_lib_common/src/gh_task_azure_login.rs:53:48' --is-secret --write-to-gh-env floweyvar1 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar1'
- run: |
flowey.exe v 0 'flowey_lib_common::gh_task_azure_login:2:flowey_lib_common/src/gh_task_azure_login.rs:55:60' --is-secret --write-to-gh-env floweyvar2 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar2'
- run: |
flowey.exe v 0 'flowey_lib_common::gh_task_azure_login:1:flowey_lib_common/src/gh_task_azure_login.rs:54:48' --is-secret --write-to-gh-env floweyvar3 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar3'
- id: flowey_lib_common__gh_task_azure_login__1
uses: Azure/login@v2
with:
client-id: ${{ env.floweyvar1 }}
subscription-id: ${{ env.floweyvar2 }}
tenant-id: ${{ env.floweyvar3 }}
name: Azure Login
- name: installing azure-cli
run: flowey.exe e 0 flowey_lib_common::install_azure_cli 0
shell: bash
- name: Downloading secrets from key vault HvLite-PATs
run: flowey.exe e 0 flowey_lib_common::gh_download_azure_key_vault_secret 0
shell: bash
- name: setup gh cli
run: flowey.exe e 0 flowey_lib_common::use_gh_cli 0
shell: bash
- name: download artifacts from github releases
run: flowey.exe e 0 flowey_lib_common::download_gh_release 1
shell: bash
- name: unpack mdbook
run: flowey.exe e 0 flowey_lib_common::download_mdbook 0
shell: bash
- name: build HvLite guide (mdbook)
run: flowey.exe e 0 flowey_lib_hvlite::build_guide 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey.exe e 0 flowey_lib_hvlite::artifact_guide::publish 0
shell: bash
- name: copying guide to artifact dir
run: flowey.exe e 0 flowey_lib_common::copy_to_artifact_dir 0
shell: bash
- name: 'validate cache entry: gh-release-download'
run: flowey.exe e 0 flowey_lib_common::cache 7
shell: bash
- name: 'validate cache entry: gh-cli'
run: flowey.exe e 0 flowey_lib_common::cache 3
shell: bash
- name: ๐ŸŒผ๐Ÿ“ฆ Publish guide
uses: actions/upload-artifact@v4
with:
name: guide
path: ${{ runner.temp }}/publish_artifacts/guide/
job1:
name: build and check docs [x64-windows]
runs-on:
- self-hosted
- 1ES.Pool=HvLite-GitHub-Win-Pool-WestUS3
permissions:
contents: read
id-token: write
steps:
- run: echo "injected!"
name: ๐ŸŒผ๐Ÿฅพ Bootstrap flowey
shell: bash
- uses: Azure/login@v2
with:
client-id: ${{ secrets.OPENVMM_CLIENT_ID }}
tenant-id: ${{ secrets.OPENVMM_TENANT_ID }}
subscription-id: ${{ secrets.OPENVMM_SUBSCRIPTION_ID }}
- name: Pull Azure Key Vault secrets
run: |
VPackAccessToken=$(az keyvault secret show --name "VPackAccessToken" --vault-name "HvLite-PATs" --query value --output tsv)
echo "::add-mask::$VPackAccessToken"
echo "VPackAccessToken=$VPackAccessToken" >> $GITHUB_ENV
MsAzurePull=$(az keyvault secret show --name "MsAzurePull" --vault-name "HvLite-PATs" --query value --output tsv)
echo "::add-mask::$MsAzurePull"
echo "MsAzurePull=$MsAzurePull" >> $GITHUB_ENV
shell: bash
- run: |
set -x
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
rustup show
if: runner.os == 'Linux'
name: rustup (Linux)
shell: bash
- run: |
set -x
curl -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
./rustup-init.exe -y
echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
if: runner.os == 'Windows' && runner.arch == 'X64'
name: rustup (Windows X64)
shell: bash
- run: |
set -x
curl -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
./rustup-init.exe -y
echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
if: runner.os == 'Windows' && runner.arch == 'ARM64'
name: rustup (Windows ARM64)
shell: bash
- uses: actions/checkout@v4
with:
path: flowey_bootstrap
- name: Update Index
run: |
rustc -vV
cargo update --dry-run
working-directory: flowey_bootstrap
shell: bash
- name: Build flowey
run: CARGO_INCREMENTAL=0 RUSTC_BOOTSTRAP=1 RUSTFLAGS="-Z threads=8" cargo build -p flowey_hvlite --target x86_64-pc-windows-msvc --profile flowey-ci
working-directory: flowey_bootstrap
shell: bash
- name: Stage flowey artifact
run: |
mkdir ./flowey_bootstrap_temp
mv ./.github/workflows/openvmm-pr.yaml ./flowey_bootstrap_temp/pipeline.yaml
mv ./.github/workflows/openvmm-pr.json ./flowey_bootstrap_temp/pipeline.json
mv target/x86_64-pc-windows-msvc/flowey-ci/flowey_hvlite.exe ./flowey_bootstrap_temp/flowey.exe
working-directory: flowey_bootstrap
shell: bash
- name: Copy flowey artifact
run: |
OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
mkdir -p $OutDirNormal
cp -r ./flowey_bootstrap_temp/* $OutDirNormal
working-directory: flowey_bootstrap
shell: bash
- name: Cleanup staged flowey artifact
run: rm -rf ./flowey_bootstrap_temp
working-directory: flowey_bootstrap
shell: bash
- run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $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/bootstrapped-flowey/flowey.exe
echo '"debug"' | flowey.exe v 1 'FLOWEY_LOG' --update-from-stdin
echo "${{ runner.temp }}/work" | flowey.exe v 1 '_internal_WORKING_DIR' --update-from-stdin --is-raw-string
cat <<'EOF' | flowey.exe v 1 'param0' --update-from-stdin
${{ inputs.param0 != '' && inputs.param0 || 'false' }}
EOF
mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-rustdoc"
echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-rustdoc" | flowey.exe v 1 'artifact_publish_from_x64-windows-rustdoc' --update-from-stdin --is-raw-string
shell: bash
- name: ๐ŸŒผ๐Ÿ”Ž Self-check YAML
run: |-
ESCAPED_AGENT_TEMPDIR=$(
cat <<'EOF' | sed 's/\\/\\\\/g'
${{ runner.temp }}
EOF
)
flowey.exe pipeline github --check $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out .github/workflows/openvmm-pr.yaml ci checkin-gates --config=pr
shell: bash
- name: check if hvlite needs to be cloned
run: flowey.exe e 1 flowey_lib_common::git_checkout 0
shell: bash
- run: |
flowey.exe v 1 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:469:46' --write-to-gh-env FLOWEY_CONDITION
shell: bash
name: ๐ŸŒผโ“ Write to 'FLOWEY_CONDITION'
- run: |
flowey.exe v 1 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:468:80' --write-to-gh-env floweyvar8 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar8'
if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
- id: flowey_lib_common__git_checkout__1
uses: actions/checkout@v4
with:
fetch-depth: '1'
path: repo0
persist-credentials: ${{ env.floweyvar8 }}
name: checkout repo hvlite
if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
- run: ${{ github.workspace }}
shell: flowey.exe v 1 'flowey_lib_common::git_checkout:4:flowey_lib_common/src/git_checkout.rs:523:31' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'github.workspace'
- name: report cloned repo directories
run: flowey.exe e 1 flowey_lib_common::git_checkout 3
shell: bash
- name: resolve OpenVMM repo requests
run: flowey.exe e 1 flowey_lib_hvlite::git_checkout_openvmm_repo 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 4
shell: bash
- run: |
flowey.exe v 1 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar6 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar6'
- run: |
flowey.exe v 1 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar7 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar7'
- id: flowey_lib_common__cache__5
uses: actions/cache@v4
with:
key: ${{ env.floweyvar6 }}
path: ${{ env.floweyvar7 }}
name: 'Restore cache: gh-release-download'
- run: ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
shell: flowey.exe v 1 'flowey_lib_common::cache:12:flowey_lib_common/src/cache.rs:509:46' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'steps.flowey_lib_common__cache__5.outputs.cache-hit'
- name: map Github cache-hit to flowey
run: flowey.exe e 1 flowey_lib_common::cache 6
shell: bash
- name: create gh cache dir
run: flowey.exe e 1 flowey_lib_common::download_gh_cli 0
shell: bash
- name: Pre-processing cache vars
run: flowey.exe e 1 flowey_lib_common::cache 0
shell: bash
- run: |
flowey.exe v 1 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar4 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar4'
- run: |
flowey.exe v 1 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar5 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar5'
- id: flowey_lib_common__cache__1
uses: actions/cache@v4
with:
key: ${{ env.floweyvar4 }}
path: ${{ env.floweyvar5 }}
name: 'Restore cache: gh-cli'
- run: ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
shell: flowey.exe v 1 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:509:46' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'steps.flowey_lib_common__cache__1.outputs.cache-hit'
- name: map Github cache-hit to flowey
run: flowey.exe e 1 flowey_lib_common::cache 2
shell: bash
- name: installing gh
run: flowey.exe e 1 flowey_lib_common::download_gh_cli 1
shell: bash
- run: ${{ secrets.OPENVMM_CLIENT_ID }}
shell: flowey.exe v 1 'flowey_lib_hvlite::_jobs::cfg_gh_azure_login:0:flowey_lib_hvlite/src/_jobs/cfg_gh_azure_login.rs:36:29' --is-secret --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'secrets.OPENVMM_CLIENT_ID'
- run: ${{ secrets.OPENVMM_TENANT_ID }}
shell: flowey.exe v 1 'flowey_lib_hvlite::_jobs::cfg_gh_azure_login:1:flowey_lib_hvlite/src/_jobs/cfg_gh_azure_login.rs:37:29' --is-secret --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'secrets.OPENVMM_TENANT_ID'
- run: ${{ secrets.OPENVMM_SUBSCRIPTION_ID }}
shell: flowey.exe v 1 'flowey_lib_hvlite::_jobs::cfg_gh_azure_login:2:flowey_lib_hvlite/src/_jobs/cfg_gh_azure_login.rs:38:35' --is-secret --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'secrets.OPENVMM_SUBSCRIPTION_ID'
- name: Create OpenIDConnect Credentials
run: flowey.exe e 1 flowey_lib_hvlite::_jobs::cfg_gh_azure_login 3
shell: bash
- name: Read Azure Login Credentials
run: flowey.exe e 1 flowey_lib_common::gh_task_azure_login 0
shell: bash
- run: |
flowey.exe v 1 'flowey_lib_common::gh_task_azure_login:0:flowey_lib_common/src/gh_task_azure_login.rs:53:48' --is-secret --write-to-gh-env floweyvar1 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar1'
- run: |
flowey.exe v 1 'flowey_lib_common::gh_task_azure_login:2:flowey_lib_common/src/gh_task_azure_login.rs:55:60' --is-secret --write-to-gh-env floweyvar2 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar2'
- run: |
flowey.exe v 1 'flowey_lib_common::gh_task_azure_login:1:flowey_lib_common/src/gh_task_azure_login.rs:54:48' --is-secret --write-to-gh-env floweyvar3 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar3'
- id: flowey_lib_common__gh_task_azure_login__1
uses: Azure/login@v2
with:
client-id: ${{ env.floweyvar1 }}
subscription-id: ${{ env.floweyvar2 }}
tenant-id: ${{ env.floweyvar3 }}
name: Azure Login
- name: installing azure-cli
run: flowey.exe e 1 flowey_lib_common::install_azure_cli 0
shell: bash
- name: Downloading secrets from key vault HvLite-PATs
run: flowey.exe e 1 flowey_lib_common::gh_download_azure_key_vault_secret 0
shell: bash
- name: setup gh cli
run: flowey.exe e 1 flowey_lib_common::use_gh_cli 0
shell: bash
- name: download artifacts from github releases
run: flowey.exe e 1 flowey_lib_common::download_gh_release 1
shell: bash
- name: unpack protoc
run: flowey.exe e 1 flowey_lib_common::download_protoc 0
shell: bash
- name: report openvmm magicpath dir
run: 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
shell: bash
- name: install Rust
run: flowey.exe e 1 flowey_lib_common::install_rust 0
shell: bash
- name: unpack Microsoft.WSL.LxUtil.x64.zip
run: flowey.exe e 1 flowey_lib_hvlite::download_lxutil 0
shell: bash
- name: move lxutil.dll into its magic folder
run: flowey.exe e 1 flowey_lib_hvlite::init_openvmm_magicpath_lxutil 0
shell: bash
- name: detect active toolchain
run: flowey.exe e 1 flowey_lib_common::install_rust 1
shell: bash
- name: report common cargo flags
run: flowey.exe e 1 flowey_lib_common::cfg_cargo_common_flags 0
shell: bash
- name: construct cargo doc command
run: flowey.exe e 1 flowey_lib_common::run_cargo_doc 0
shell: bash
- name: document repo for target x86_64-pc-windows-msvc
run: flowey.exe e 1 flowey_lib_hvlite::build_rustdoc 0
shell: bash
- name: zip rustdoc dir
run: flowey.exe e 1 flowey_lib_hvlite::artifact_rustdoc::publish 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey.exe e 1 flowey_lib_hvlite::artifact_rustdoc::publish 1
shell: bash
- name: copying rustdoc to artifact dir
run: flowey.exe e 1 flowey_lib_common::copy_to_artifact_dir 0
shell: bash
- name: 'validate cache entry: gh-cli'
run: flowey.exe e 1 flowey_lib_common::cache 3
shell: bash
- name: 'validate cache entry: gh-release-download'
run: flowey.exe e 1 flowey_lib_common::cache 7
shell: bash
- name: ๐ŸŒผ๐Ÿ“ฆ Publish x64-windows-rustdoc
uses: actions/upload-artifact@v4
with:
name: x64-windows-rustdoc
path: ${{ runner.temp }}/publish_artifacts/x64-windows-rustdoc/
job10:
name: build artifacts [x64-linux]
runs-on:
- self-hosted
- 1ES.Pool=HvLite-GitHub-Linux-Pool-WestUS3
permissions:
contents: read
id-token: write
steps:
- run: echo "injected!"
name: ๐ŸŒผ๐Ÿฅพ Bootstrap flowey
shell: bash
- uses: Azure/login@v2
with:
client-id: ${{ secrets.OPENVMM_CLIENT_ID }}
tenant-id: ${{ secrets.OPENVMM_TENANT_ID }}
subscription-id: ${{ secrets.OPENVMM_SUBSCRIPTION_ID }}
- name: Pull Azure Key Vault secrets
run: |
VPackAccessToken=$(az keyvault secret show --name "VPackAccessToken" --vault-name "HvLite-PATs" --query value --output tsv)
echo "::add-mask::$VPackAccessToken"
echo "VPackAccessToken=$VPackAccessToken" >> $GITHUB_ENV
MsAzurePull=$(az keyvault secret show --name "MsAzurePull" --vault-name "HvLite-PATs" --query value --output tsv)
echo "::add-mask::$MsAzurePull"
echo "MsAzurePull=$MsAzurePull" >> $GITHUB_ENV
shell: bash
- run: |
set -x
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
rustup show
if: runner.os == 'Linux'
name: rustup (Linux)
shell: bash
- run: |
set -x
curl -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
./rustup-init.exe -y
echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
if: runner.os == 'Windows' && runner.arch == 'X64'
name: rustup (Windows X64)
shell: bash
- run: |
set -x
curl -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
./rustup-init.exe -y
echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
if: runner.os == 'Windows' && runner.arch == 'ARM64'
name: rustup (Windows ARM64)
shell: bash
- uses: actions/checkout@v4
with:
path: flowey_bootstrap
- name: Update Index
run: |
rustc -vV
cargo update --dry-run
working-directory: flowey_bootstrap
shell: bash
- name: Build flowey
run: CARGO_INCREMENTAL=0 RUSTC_BOOTSTRAP=1 RUSTFLAGS="-Z threads=8" cargo build -p flowey_hvlite --target x86_64-unknown-linux-gnu --profile flowey-ci
working-directory: flowey_bootstrap
shell: bash
- name: Stage flowey artifact
run: |
mkdir ./flowey_bootstrap_temp
mv ./.github/workflows/openvmm-pr.yaml ./flowey_bootstrap_temp/pipeline.yaml
mv ./.github/workflows/openvmm-pr.json ./flowey_bootstrap_temp/pipeline.json
mv target/x86_64-unknown-linux-gnu/flowey-ci/flowey_hvlite ./flowey_bootstrap_temp/flowey
working-directory: flowey_bootstrap
shell: bash
- name: Copy flowey artifact
run: |
OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
mkdir -p $OutDirNormal
cp -r ./flowey_bootstrap_temp/* $OutDirNormal
working-directory: flowey_bootstrap
shell: bash
- name: Cleanup staged flowey artifact
run: rm -rf ./flowey_bootstrap_temp
working-directory: flowey_bootstrap
shell: bash
- run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $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/bootstrapped-flowey/flowey
echo '"debug"' | flowey v 10 'FLOWEY_LOG' --update-from-stdin
echo "${{ runner.temp }}/work" | flowey v 10 '_internal_WORKING_DIR' --update-from-stdin --is-raw-string
cat <<'EOF' | flowey v 10 'param0' --update-from-stdin
${{ inputs.param0 != '' && inputs.param0 || 'false' }}
EOF
mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-guest_test_uefi"
echo "$AgentTempDirNormal/publish_artifacts/x64-guest_test_uefi" | flowey v 10 'artifact_publish_from_x64-guest_test_uefi' --update-from-stdin --is-raw-string
mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-igvmfilegen"
echo "$AgentTempDirNormal/publish_artifacts/x64-linux-igvmfilegen" | flowey v 10 'artifact_publish_from_x64-linux-igvmfilegen' --update-from-stdin --is-raw-string
mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-ohcldiag-dev"
echo "$AgentTempDirNormal/publish_artifacts/x64-linux-ohcldiag-dev" | flowey v 10 'artifact_publish_from_x64-linux-ohcldiag-dev' --update-from-stdin --is-raw-string
mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-openvmm"
echo "$AgentTempDirNormal/publish_artifacts/x64-linux-openvmm" | flowey v 10 'artifact_publish_from_x64-linux-openvmm' --update-from-stdin --is-raw-string
mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-vmgs_lib"
echo "$AgentTempDirNormal/publish_artifacts/x64-linux-vmgs_lib" | flowey v 10 'artifact_publish_from_x64-linux-vmgs_lib' --update-from-stdin --is-raw-string
mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-vmgstool"
echo "$AgentTempDirNormal/publish_artifacts/x64-linux-vmgstool" | flowey v 10 'artifact_publish_from_x64-linux-vmgstool' --update-from-stdin --is-raw-string
mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-vmm-tests-archive"
echo "$AgentTempDirNormal/publish_artifacts/x64-linux-vmm-tests-archive" | flowey v 10 'artifact_publish_from_x64-linux-vmm-tests-archive' --update-from-stdin --is-raw-string
shell: bash
- name: ๐ŸŒผ๐Ÿ”Ž Self-check YAML
run: |-
ESCAPED_AGENT_TEMPDIR=$(
cat <<'EOF' | sed 's/\\/\\\\/g'
${{ runner.temp }}
EOF
)
flowey pipeline github --check $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out .github/workflows/openvmm-pr.yaml ci checkin-gates --config=pr
shell: bash
- name: install Rust
run: flowey e 10 flowey_lib_common::install_rust 0
shell: bash
- name: detect active toolchain
run: flowey e 10 flowey_lib_common::install_rust 1
shell: bash
- name: report common cargo flags
run: flowey e 10 flowey_lib_common::cfg_cargo_common_flags 0
shell: bash
- name: checking if apt packages need to be installed
run: flowey e 10 flowey_lib_common::install_apt_pkg 0
shell: bash
- name: installing `apt` packages
run: flowey e 10 flowey_lib_common::install_apt_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 8
shell: bash
- run: |
flowey v 10 'flowey_lib_common::cache:18:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar8 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar8'
- run: |
flowey v 10 'flowey_lib_common::cache:17:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar9 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar9'
- id: flowey_lib_common__cache__9
uses: actions/cache@v4
with:
key: ${{ env.floweyvar8 }}
path: ${{ env.floweyvar9 }}
name: 'Restore cache: gh-release-download'
- run: ${{ steps.flowey_lib_common__cache__9.outputs.cache-hit }}
shell: flowey v 10 'flowey_lib_common::cache:20:flowey_lib_common/src/cache.rs:509:46' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'steps.flowey_lib_common__cache__9.outputs.cache-hit'
- name: map Github cache-hit to flowey
run: flowey e 10 flowey_lib_common::cache 10
shell: bash
- name: create gh cache dir
run: flowey e 10 flowey_lib_common::download_gh_cli 0
shell: bash
- name: Pre-processing cache vars
run: flowey e 10 flowey_lib_common::cache 4
shell: bash
- run: |
flowey v 10 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar6 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar6'
- run: |
flowey v 10 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar7 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar7'
- id: flowey_lib_common__cache__5
uses: actions/cache@v4
with:
key: ${{ env.floweyvar6 }}
path: ${{ env.floweyvar7 }}
name: 'Restore cache: gh-cli'
- run: ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
shell: flowey v 10 'flowey_lib_common::cache:12:flowey_lib_common/src/cache.rs:509:46' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'steps.flowey_lib_common__cache__5.outputs.cache-hit'
- name: map Github cache-hit to flowey
run: flowey e 10 flowey_lib_common::cache 6
shell: bash
- name: installing gh
run: flowey e 10 flowey_lib_common::download_gh_cli 1
shell: bash
- run: ${{ secrets.OPENVMM_CLIENT_ID }}
shell: flowey v 10 'flowey_lib_hvlite::_jobs::cfg_gh_azure_login:0:flowey_lib_hvlite/src/_jobs/cfg_gh_azure_login.rs:36:29' --is-secret --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'secrets.OPENVMM_CLIENT_ID'
- run: ${{ secrets.OPENVMM_TENANT_ID }}
shell: flowey v 10 'flowey_lib_hvlite::_jobs::cfg_gh_azure_login:1:flowey_lib_hvlite/src/_jobs/cfg_gh_azure_login.rs:37:29' --is-secret --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'secrets.OPENVMM_TENANT_ID'
- run: ${{ secrets.OPENVMM_SUBSCRIPTION_ID }}
shell: flowey v 10 'flowey_lib_hvlite::_jobs::cfg_gh_azure_login:2:flowey_lib_hvlite/src/_jobs/cfg_gh_azure_login.rs:38:35' --is-secret --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'secrets.OPENVMM_SUBSCRIPTION_ID'
- name: Create OpenIDConnect Credentials
run: flowey e 10 flowey_lib_hvlite::_jobs::cfg_gh_azure_login 3
shell: bash
- name: Read Azure Login Credentials
run: flowey e 10 flowey_lib_common::gh_task_azure_login 0
shell: bash
- run: |
flowey v 10 'flowey_lib_common::gh_task_azure_login:0:flowey_lib_common/src/gh_task_azure_login.rs:53:48' --is-secret --write-to-gh-env floweyvar1 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar1'
- run: |
flowey v 10 'flowey_lib_common::gh_task_azure_login:2:flowey_lib_common/src/gh_task_azure_login.rs:55:60' --is-secret --write-to-gh-env floweyvar2 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar2'
- run: |
flowey v 10 'flowey_lib_common::gh_task_azure_login:1:flowey_lib_common/src/gh_task_azure_login.rs:54:48' --is-secret --write-to-gh-env floweyvar3 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar3'
- id: flowey_lib_common__gh_task_azure_login__1
uses: Azure/login@v2
with:
client-id: ${{ env.floweyvar1 }}
subscription-id: ${{ env.floweyvar2 }}
tenant-id: ${{ env.floweyvar3 }}
name: Azure Login
- name: installing azure-cli
run: flowey e 10 flowey_lib_common::install_azure_cli 0
shell: bash
- name: Downloading secrets from key vault HvLite-PATs
run: flowey e 10 flowey_lib_common::gh_download_azure_key_vault_secret 0
shell: bash
- name: setup gh cli
run: flowey e 10 flowey_lib_common::use_gh_cli 0
shell: bash
- name: download artifacts from github releases
run: flowey e 10 flowey_lib_common::download_gh_release 1
shell: bash
- name: unpack Microsoft.WSL.LxUtil.x64.zip
run: flowey e 10 flowey_lib_hvlite::download_lxutil 0
shell: bash
- name: check if hvlite needs to be cloned
run: flowey e 10 flowey_lib_common::git_checkout 0
shell: bash
- run: |
flowey v 10 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:469:46' --write-to-gh-env FLOWEY_CONDITION
shell: bash
name: ๐ŸŒผโ“ Write to 'FLOWEY_CONDITION'
- run: |
flowey v 10 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:468:80' --write-to-gh-env floweyvar10 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar10'
if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
- id: flowey_lib_common__git_checkout__1
uses: actions/checkout@v4
with:
fetch-depth: '1'
path: repo0
persist-credentials: ${{ env.floweyvar10 }}
name: checkout repo hvlite
if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
- run: ${{ github.workspace }}
shell: flowey v 10 'flowey_lib_common::git_checkout:4:flowey_lib_common/src/git_checkout.rs:523:31' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'github.workspace'
- name: report cloned repo directories
run: flowey e 10 flowey_lib_common::git_checkout 3
shell: bash
- name: resolve OpenVMM repo requests
run: flowey e 10 flowey_lib_hvlite::git_checkout_openvmm_repo 0
shell: bash
- name: report openvmm magicpath dir
run: flowey e 10 flowey_lib_hvlite::cfg_openvmm_magicpath 0
shell: bash
- name: move lxutil.dll into its magic folder
run: flowey e 10 flowey_lib_hvlite::init_openvmm_magicpath_lxutil 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::download_protoc 0
shell: bash
- name: symlink protoc
run: flowey e 10 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
shell: bash
- name: cargo build openvmm
run: flowey e 10 flowey_lib_common::run_cargo_build 3
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 10 flowey_lib_hvlite::run_cargo_build 5
shell: bash
- name: split debug symbols
run: flowey e 10 flowey_lib_hvlite::run_split_debug_info 1
shell: bash
- name: reporting split debug info
run: flowey e 10 flowey_lib_hvlite::run_cargo_build 6
shell: bash
- name: report built openvmm
run: flowey e 10 flowey_lib_hvlite::build_openvmm 0
shell: bash
- name: copying openvmm to publish dir
run: flowey e 10 flowey_lib_hvlite::artifact_openvmm::publish 0
shell: bash
- name: cargo build vmgstool
run: flowey e 10 flowey_lib_common::run_cargo_build 5
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 10 flowey_lib_hvlite::run_cargo_build 8
shell: bash
- name: split debug symbols
run: flowey e 10 flowey_lib_hvlite::run_split_debug_info 2
shell: bash
- name: reporting split debug info
run: flowey e 10 flowey_lib_hvlite::run_cargo_build 9
shell: bash
- name: report built vmgstool
run: flowey e 10 flowey_lib_hvlite::build_vmgstool 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 10 flowey_lib_hvlite::artifact_vmgstool::publish 0
shell: bash
- name: copying vmgstool to artifact dir
run: flowey e 10 flowey_lib_common::copy_to_artifact_dir 4
shell: bash
- name: cargo build vmgs_lib
run: flowey e 10 flowey_lib_common::run_cargo_build 4
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 10 flowey_lib_hvlite::run_cargo_build 7
shell: bash
- name: check built vmgs_lib
run: flowey e 10 flowey_lib_hvlite::build_and_test_vmgs_lib 0
shell: bash
- name: test vmgs_lib
run: flowey e 10 flowey_lib_hvlite::build_and_test_vmgs_lib 1
shell: bash
- name: report built vmgs_lib
run: flowey e 10 flowey_lib_hvlite::build_and_test_vmgs_lib 2
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 10 flowey_lib_hvlite::artifact_vmgs_lib::publish 0
shell: bash
- name: copying vmgs_lib to artifact dir
run: flowey e 10 flowey_lib_common::copy_to_artifact_dir 3
shell: bash
- name: cargo build igvmfilegen
run: flowey e 10 flowey_lib_common::run_cargo_build 1
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 10 flowey_lib_hvlite::run_cargo_build 1
shell: bash
- name: split debug symbols
run: flowey e 10 flowey_lib_hvlite::run_split_debug_info 3
shell: bash
- name: reporting split debug info
run: flowey e 10 flowey_lib_hvlite::run_cargo_build 2
shell: bash
- name: report built igvmfilegen
run: flowey e 10 flowey_lib_hvlite::build_igvmfilegen 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 10 flowey_lib_hvlite::artifact_igvmfilegen::publish 0
shell: bash
- name: copying igvmfilegen to artifact dir
run: flowey e 10 flowey_lib_common::copy_to_artifact_dir 1
shell: bash
- name: cargo build ohcldiag-dev
run: flowey e 10 flowey_lib_common::run_cargo_build 2
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 10 flowey_lib_hvlite::run_cargo_build 3
shell: bash
- name: split debug symbols
run: flowey e 10 flowey_lib_hvlite::run_split_debug_info 0
shell: bash
- name: reporting split debug info
run: flowey e 10 flowey_lib_hvlite::run_cargo_build 4
shell: bash
- name: report built ohcldiag_dev
run: flowey e 10 flowey_lib_hvlite::build_ohcldiag_dev 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 10 flowey_lib_hvlite::artifact_ohcldiag_dev::publish 0
shell: bash
- name: copying ohcldiag-dev to artifact dir
run: flowey e 10 flowey_lib_common::copy_to_artifact_dir 2
shell: bash
- name: cargo build guest_test_uefi
run: flowey e 10 flowey_lib_common::run_cargo_build 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 10 flowey_lib_hvlite::run_cargo_build 0
shell: bash
- name: build guest_test_uefi.img
run: flowey e 10 flowey_lib_hvlite::build_guest_test_uefi 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 10 flowey_lib_hvlite::artifact_guest_test_uefi::publish 0
shell: bash
- name: copying guest_test_uefi to artifact dir
run: flowey e 10 flowey_lib_common::copy_to_artifact_dir 0
shell: bash
- name: create cargo-nextest cache dir
run: flowey e 10 flowey_lib_common::download_cargo_nextest 0
shell: bash
- name: Pre-processing cache vars
run: flowey e 10 flowey_lib_common::cache 0
shell: bash
- run: |
flowey v 10 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar4 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar4'
- run: |
flowey v 10 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar5 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar5'
- id: flowey_lib_common__cache__1
uses: actions/cache@v4
with:
key: ${{ env.floweyvar4 }}
path: ${{ env.floweyvar5 }}
name: 'Restore cache: cargo-nextest'
- run: ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
shell: flowey v 10 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:509:46' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'steps.flowey_lib_common__cache__1.outputs.cache-hit'
- name: map Github cache-hit to flowey
run: flowey e 10 flowey_lib_common::cache 2
shell: bash
- name: report cargo install persistent dir
run: flowey e 10 flowey_lib_common::cfg_persistent_dir_cargo_install 0
shell: bash
- name: report $CARGO_HOME
run: flowey e 10 flowey_lib_common::install_rust 2
shell: bash
- name: installing cargo-nextest
run: flowey e 10 flowey_lib_common::download_cargo_nextest 1
shell: bash
- name: build + archive 'vmm_tests' nextests
run: flowey e 10 flowey_lib_common::run_cargo_nextest_archive 0
shell: bash
- name: report built vmm_tests
run: flowey e 10 flowey_lib_hvlite::build_nextest_vmm_tests 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 10 flowey_lib_hvlite::artifact_nextest_vmm_tests_archive::publish 0
shell: bash
- name: copying vmm_tests to artifact dir
run: flowey e 10 flowey_lib_common::copy_to_artifact_dir 5
shell: bash
- name: 'validate cache entry: cargo-nextest'
run: flowey e 10 flowey_lib_common::cache 3
shell: bash
- name: 'validate cache entry: gh-cli'
run: flowey e 10 flowey_lib_common::cache 7
shell: bash
- name: 'validate cache entry: gh-release-download'
run: flowey e 10 flowey_lib_common::cache 11
shell: bash
- name: ๐ŸŒผ๐Ÿ“ฆ Publish x64-guest_test_uefi
uses: actions/upload-artifact@v4
with:
name: x64-guest_test_uefi
path: ${{ runner.temp }}/publish_artifacts/x64-guest_test_uefi/
- name: ๐ŸŒผ๐Ÿ“ฆ Publish x64-linux-igvmfilegen
uses: actions/upload-artifact@v4
with:
name: x64-linux-igvmfilegen
path: ${{ runner.temp }}/publish_artifacts/x64-linux-igvmfilegen/
- name: ๐ŸŒผ๐Ÿ“ฆ Publish x64-linux-ohcldiag-dev
uses: actions/upload-artifact@v4
with:
name: x64-linux-ohcldiag-dev
path: ${{ runner.temp }}/publish_artifacts/x64-linux-ohcldiag-dev/
- name: ๐ŸŒผ๐Ÿ“ฆ Publish x64-linux-openvmm
uses: actions/upload-artifact@v4
with:
name: x64-linux-openvmm
path: ${{ runner.temp }}/publish_artifacts/x64-linux-openvmm/
- name: ๐ŸŒผ๐Ÿ“ฆ Publish x64-linux-vmgs_lib
uses: actions/upload-artifact@v4
with:
name: x64-linux-vmgs_lib
path: ${{ runner.temp }}/publish_artifacts/x64-linux-vmgs_lib/
- name: ๐ŸŒผ๐Ÿ“ฆ Publish x64-linux-vmgstool
uses: actions/upload-artifact@v4
with:
name: x64-linux-vmgstool
path: ${{ runner.temp }}/publish_artifacts/x64-linux-vmgstool/
- name: ๐ŸŒผ๐Ÿ“ฆ Publish x64-linux-vmm-tests-archive
uses: actions/upload-artifact@v4
with:
name: x64-linux-vmm-tests-archive
path: ${{ runner.temp }}/publish_artifacts/x64-linux-vmm-tests-archive/
job11:
name: build openhcl [aarch64-linux]
runs-on:
- self-hosted
- 1ES.Pool=HvLite-GitHub-Linux-Pool-WestUS3
permissions:
contents: read
id-token: write
steps:
- run: echo "injected!"
name: ๐ŸŒผ๐Ÿฅพ Bootstrap flowey
shell: bash
- uses: Azure/login@v2
with:
client-id: ${{ secrets.OPENVMM_CLIENT_ID }}
tenant-id: ${{ secrets.OPENVMM_TENANT_ID }}
subscription-id: ${{ secrets.OPENVMM_SUBSCRIPTION_ID }}
- name: Pull Azure Key Vault secrets
run: |
VPackAccessToken=$(az keyvault secret show --name "VPackAccessToken" --vault-name "HvLite-PATs" --query value --output tsv)
echo "::add-mask::$VPackAccessToken"
echo "VPackAccessToken=$VPackAccessToken" >> $GITHUB_ENV
MsAzurePull=$(az keyvault secret show --name "MsAzurePull" --vault-name "HvLite-PATs" --query value --output tsv)
echo "::add-mask::$MsAzurePull"
echo "MsAzurePull=$MsAzurePull" >> $GITHUB_ENV
shell: bash
- run: |
set -x
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
rustup show
if: runner.os == 'Linux'
name: rustup (Linux)
shell: bash
- run: |
set -x
curl -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
./rustup-init.exe -y
echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
if: runner.os == 'Windows' && runner.arch == 'X64'
name: rustup (Windows X64)
shell: bash
- run: |
set -x
curl -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
./rustup-init.exe -y
echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
if: runner.os == 'Windows' && runner.arch == 'ARM64'
name: rustup (Windows ARM64)
shell: bash
- uses: actions/checkout@v4
with:
path: flowey_bootstrap
- name: Update Index
run: |
rustc -vV
cargo update --dry-run
working-directory: flowey_bootstrap
shell: bash
- name: Build flowey
run: CARGO_INCREMENTAL=0 RUSTC_BOOTSTRAP=1 RUSTFLAGS="-Z threads=8" cargo build -p flowey_hvlite --target x86_64-unknown-linux-gnu --profile flowey-ci
working-directory: flowey_bootstrap
shell: bash
- name: Stage flowey artifact
run: |
mkdir ./flowey_bootstrap_temp
mv ./.github/workflows/openvmm-pr.yaml ./flowey_bootstrap_temp/pipeline.yaml
mv ./.github/workflows/openvmm-pr.json ./flowey_bootstrap_temp/pipeline.json
mv target/x86_64-unknown-linux-gnu/flowey-ci/flowey_hvlite ./flowey_bootstrap_temp/flowey
working-directory: flowey_bootstrap
shell: bash
- name: Copy flowey artifact
run: |
OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
mkdir -p $OutDirNormal
cp -r ./flowey_bootstrap_temp/* $OutDirNormal
working-directory: flowey_bootstrap
shell: bash
- name: Cleanup staged flowey artifact
run: rm -rf ./flowey_bootstrap_temp
working-directory: flowey_bootstrap
shell: bash
- run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $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/bootstrapped-flowey/flowey
echo '"debug"' | flowey v 11 'FLOWEY_LOG' --update-from-stdin
echo "${{ runner.temp }}/work" | flowey v 11 '_internal_WORKING_DIR' --update-from-stdin --is-raw-string
cat <<'EOF' | flowey v 11 'param0' --update-from-stdin
${{ inputs.param0 != '' && inputs.param0 || 'false' }}
EOF
mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-musl-pipette"
echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-musl-pipette" | flowey v 11 'artifact_publish_from_aarch64-linux-musl-pipette' --update-from-stdin --is-raw-string
mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-openhcl-igvm"
echo "$AgentTempDirNormal/publish_artifacts/aarch64-openhcl-igvm" | flowey v 11 'artifact_publish_from_aarch64-openhcl-igvm' --update-from-stdin --is-raw-string
mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-openhcl-igvm-extras"
echo "$AgentTempDirNormal/publish_artifacts/aarch64-openhcl-igvm-extras" | flowey v 11 'artifact_publish_from_aarch64-openhcl-igvm-extras' --update-from-stdin --is-raw-string
shell: bash
- name: ๐ŸŒผ๐Ÿ”Ž Self-check YAML
run: |-
ESCAPED_AGENT_TEMPDIR=$(
cat <<'EOF' | sed 's/\\/\\\\/g'
${{ runner.temp }}
EOF
)
flowey pipeline github --check $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out .github/workflows/openvmm-pr.yaml ci checkin-gates --config=pr
shell: bash
- name: checking if apt packages need to be installed
run: flowey e 11 flowey_lib_common::install_apt_pkg 0
shell: bash
- name: installing `apt` packages
run: flowey e 11 flowey_lib_common::install_apt_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 4
shell: bash
- run: |
flowey v 11 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar6 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar6'
- run: |
flowey v 11 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar7 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar7'
- id: flowey_lib_common__cache__5
uses: actions/cache@v4
with:
key: ${{ env.floweyvar6 }}
path: ${{ env.floweyvar7 }}
name: 'Restore cache: gh-release-download'
- run: ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
shell: flowey v 11 'flowey_lib_common::cache:12:flowey_lib_common/src/cache.rs:509:46' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'steps.flowey_lib_common__cache__5.outputs.cache-hit'
- name: map Github cache-hit to flowey
run: flowey e 11 flowey_lib_common::cache 6
shell: bash
- name: create gh cache dir
run: flowey e 11 flowey_lib_common::download_gh_cli 0
shell: bash
- name: Pre-processing cache vars
run: flowey e 11 flowey_lib_common::cache 0
shell: bash
- run: |
flowey v 11 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar4 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar4'
- run: |
flowey v 11 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar5 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar5'
- id: flowey_lib_common__cache__1
uses: actions/cache@v4
with:
key: ${{ env.floweyvar4 }}
path: ${{ env.floweyvar5 }}
name: 'Restore cache: gh-cli'
- run: ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
shell: flowey v 11 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:509:46' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'steps.flowey_lib_common__cache__1.outputs.cache-hit'
- name: map Github cache-hit to flowey
run: flowey e 11 flowey_lib_common::cache 2
shell: bash
- name: installing gh
run: flowey e 11 flowey_lib_common::download_gh_cli 1
shell: bash
- run: ${{ secrets.OPENVMM_CLIENT_ID }}
shell: flowey v 11 'flowey_lib_hvlite::_jobs::cfg_gh_azure_login:0:flowey_lib_hvlite/src/_jobs/cfg_gh_azure_login.rs:36:29' --is-secret --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'secrets.OPENVMM_CLIENT_ID'
- run: ${{ secrets.OPENVMM_TENANT_ID }}
shell: flowey v 11 'flowey_lib_hvlite::_jobs::cfg_gh_azure_login:1:flowey_lib_hvlite/src/_jobs/cfg_gh_azure_login.rs:37:29' --is-secret --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'secrets.OPENVMM_TENANT_ID'
- run: ${{ secrets.OPENVMM_SUBSCRIPTION_ID }}
shell: flowey v 11 'flowey_lib_hvlite::_jobs::cfg_gh_azure_login:2:flowey_lib_hvlite/src/_jobs/cfg_gh_azure_login.rs:38:35' --is-secret --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'secrets.OPENVMM_SUBSCRIPTION_ID'
- name: Create OpenIDConnect Credentials
run: flowey e 11 flowey_lib_hvlite::_jobs::cfg_gh_azure_login 3
shell: bash
- name: Read Azure Login Credentials
run: flowey e 11 flowey_lib_common::gh_task_azure_login 0
shell: bash
- run: |
flowey v 11 'flowey_lib_common::gh_task_azure_login:0:flowey_lib_common/src/gh_task_azure_login.rs:53:48' --is-secret --write-to-gh-env floweyvar1 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar1'
- run: |
flowey v 11 'flowey_lib_common::gh_task_azure_login:2:flowey_lib_common/src/gh_task_azure_login.rs:55:60' --is-secret --write-to-gh-env floweyvar2 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar2'
- run: |
flowey v 11 'flowey_lib_common::gh_task_azure_login:1:flowey_lib_common/src/gh_task_azure_login.rs:54:48' --is-secret --write-to-gh-env floweyvar3 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar3'
- id: flowey_lib_common__gh_task_azure_login__1
uses: Azure/login@v2
with:
client-id: ${{ env.floweyvar1 }}
subscription-id: ${{ env.floweyvar2 }}
tenant-id: ${{ env.floweyvar3 }}
name: Azure Login
- name: installing azure-cli
run: flowey e 11 flowey_lib_common::install_azure_cli 0
shell: bash
- name: Downloading secrets from key vault HvLite-PATs
run: flowey e 11 flowey_lib_common::gh_download_azure_key_vault_secret 0
shell: bash
- name: setup gh cli
run: flowey e 11 flowey_lib_common::use_gh_cli 0
shell: bash
- name: download artifacts from github releases
run: flowey e 11 flowey_lib_common::download_gh_release 1
shell: bash
- name: unpack mu_msvm package (aarch64)
run: flowey e 11 flowey_lib_hvlite::download_uefi_mu_msvm 0
shell: bash
- name: install Rust
run: flowey e 11 flowey_lib_common::install_rust 0
shell: bash
- name: detect active toolchain
run: flowey e 11 flowey_lib_common::install_rust 1
shell: bash
- name: report common cargo flags
run: flowey e 11 flowey_lib_common::cfg_cargo_common_flags 0
shell: bash
- name: check if hvlite needs to be cloned
run: flowey e 11 flowey_lib_common::git_checkout 0
shell: bash
- run: |
flowey v 11 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:469:46' --write-to-gh-env FLOWEY_CONDITION
shell: bash
name: ๐ŸŒผโ“ Write to 'FLOWEY_CONDITION'
- run: |
flowey v 11 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:468:80' --write-to-gh-env floweyvar8 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar8'
if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
- id: flowey_lib_common__git_checkout__1
uses: actions/checkout@v4
with:
fetch-depth: '1'
path: repo0
persist-credentials: ${{ env.floweyvar8 }}
name: checkout repo hvlite
if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
- run: ${{ github.workspace }}
shell: flowey v 11 'flowey_lib_common::git_checkout:4:flowey_lib_common/src/git_checkout.rs:523:31' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'github.workspace'
- name: report cloned repo directories
run: flowey e 11 flowey_lib_common::git_checkout 3
shell: bash
- name: resolve OpenVMM repo requests
run: 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::download_protoc 0
shell: bash
- name: report openvmm magicpath dir
run: 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
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 11 flowey_lib_hvlite::run_cargo_build 2
shell: bash
- name: unpack openvmm-deps archive
run: flowey e 11 flowey_lib_hvlite::download_openvmm_deps 0
shell: bash
- name: extract X64 sysroot.tar.gz
run: flowey e 11 flowey_lib_hvlite::init_openvmm_magicpath_openhcl_sysroot 1
shell: bash
- name: cargo build openhcl_boot
run: flowey e 11 flowey_lib_common::run_cargo_build 1
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 11 flowey_lib_hvlite::run_cargo_build 3
shell: bash
- name: split debug symbols
run: flowey e 11 flowey_lib_hvlite::run_split_debug_info 2
shell: bash
- name: reporting split debug info
run: flowey e 11 flowey_lib_hvlite::run_cargo_build 4
shell: bash
- name: report built openhcl_boot
run: flowey e 11 flowey_lib_hvlite::build_openhcl_boot 0
shell: bash
- name: unpack Microsoft.OHCL.Kernel.6.6.51.5-dev-arm64.zip
run: flowey e 11 flowey_lib_hvlite::download_openhcl_kernel_package 1
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 16
shell: bash
- name: extract Aarch64 sysroot.tar.gz
run: flowey e 11 flowey_lib_hvlite::init_openvmm_magicpath_openhcl_sysroot 0
shell: bash
- name: cargo build openvmm_hcl
run: flowey e 11 flowey_lib_common::run_cargo_build 2
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 11 flowey_lib_hvlite::run_cargo_build 5
shell: bash
- name: report built openvmm_hcl
run: flowey e 11 flowey_lib_hvlite::build_openvmm_hcl 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 12
shell: bash
- name: split debug symbols
run: flowey e 11 flowey_lib_hvlite::run_split_debug_info 0
shell: bash
- name: ๐ŸŒผ Zip Vars
run: flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 13
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 14
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 15
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 17
shell: bash
- name: building openhcl initrd
run: flowey e 11 flowey_lib_hvlite::build_openhcl_initrd 1
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 18
shell: bash
- name: enumerate igvm resources
run: flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 19
shell: bash
- name: cargo build igvmfilegen
run: flowey e 11 flowey_lib_common::run_cargo_build 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: 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 4
shell: bash
- name: reporting split debug info
run: flowey e 11 flowey_lib_hvlite::run_cargo_build 1
shell: bash
- name: report built igvmfilegen
run: flowey e 11 flowey_lib_hvlite::build_igvmfilegen 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 20
shell: bash
- name: ๐ŸŒผ write_into Var
run: 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 1
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 11 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 4
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 5
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 1
shell: bash
- name: split debug symbols
run: flowey e 11 flowey_lib_hvlite::run_split_debug_info 1
shell: bash
- name: ๐ŸŒผ Zip Vars
run: flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 2
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 3
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 4
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 6
shell: bash
- name: unpack Microsoft.OHCL.Kernel.6.6.51.2-main-arm64.zip
run: flowey e 11 flowey_lib_hvlite::download_openhcl_kernel_package 0
shell: bash
- name: building openhcl initrd
run: flowey e 11 flowey_lib_hvlite::build_openhcl_initrd 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 7
shell: bash
- name: enumerate igvm resources
run: flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 8
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 9
shell: bash
- name: ๐ŸŒผ write_into Var
run: 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 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 11 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 0
shell: bash
- name: describe OpenHCL igvm artifact
run: 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
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 11
shell: bash
- name: ๐ŸŒผ Zip Vars
run: flowey e 11 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 5
shell: bash
- name: ๐ŸŒผ Zip Vars
run: flowey e 11 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 6
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 11 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 7
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 11 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 0
shell: bash
- name: ๐ŸŒผ Zip Vars
run: flowey e 11 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 1
shell: bash
- name: ๐ŸŒผ Zip Vars
run: flowey e 11 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 2
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 11 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 3
shell: bash
- name: describe OpenHCL igvm extras artifact
run: 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: cargo build pipette
run: flowey e 11 flowey_lib_common::run_cargo_build 3
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 11 flowey_lib_hvlite::run_cargo_build 6
shell: bash
- name: split debug symbols
run: flowey e 11 flowey_lib_hvlite::run_split_debug_info 3
shell: bash
- name: reporting split debug info
run: flowey e 11 flowey_lib_hvlite::run_cargo_build 7
shell: bash
- name: report built pipette
run: flowey e 11 flowey_lib_hvlite::build_pipette 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 11 flowey_lib_hvlite::artifact_pipette::publish 0
shell: bash
- name: copying pipette to artifact dir
run: flowey e 11 flowey_lib_common::copy_to_artifact_dir 2
shell: bash
- name: 'validate cache entry: gh-cli'
run: flowey e 11 flowey_lib_common::cache 3
shell: bash
- name: 'validate cache entry: gh-release-download'
run: flowey e 11 flowey_lib_common::cache 7
shell: bash
- name: ๐ŸŒผ๐Ÿ“ฆ Publish aarch64-linux-musl-pipette
uses: actions/upload-artifact@v4
with:
name: aarch64-linux-musl-pipette
path: ${{ runner.temp }}/publish_artifacts/aarch64-linux-musl-pipette/
- name: ๐ŸŒผ๐Ÿ“ฆ Publish aarch64-openhcl-igvm
uses: actions/upload-artifact@v4
with:
name: aarch64-openhcl-igvm
path: ${{ runner.temp }}/publish_artifacts/aarch64-openhcl-igvm/
- name: ๐ŸŒผ๐Ÿ“ฆ Publish aarch64-openhcl-igvm-extras
uses: actions/upload-artifact@v4
with:
name: aarch64-openhcl-igvm-extras
path: ${{ runner.temp }}/publish_artifacts/aarch64-openhcl-igvm-extras/
job12:
name: build openhcl [x64-linux]
runs-on:
- self-hosted
- 1ES.Pool=HvLite-GitHub-Linux-Pool-WestUS3
permissions:
contents: read
id-token: write
steps:
- run: echo "injected!"
name: ๐ŸŒผ๐Ÿฅพ Bootstrap flowey
shell: bash
- uses: Azure/login@v2
with:
client-id: ${{ secrets.OPENVMM_CLIENT_ID }}
tenant-id: ${{ secrets.OPENVMM_TENANT_ID }}
subscription-id: ${{ secrets.OPENVMM_SUBSCRIPTION_ID }}
- name: Pull Azure Key Vault secrets
run: |
VPackAccessToken=$(az keyvault secret show --name "VPackAccessToken" --vault-name "HvLite-PATs" --query value --output tsv)
echo "::add-mask::$VPackAccessToken"
echo "VPackAccessToken=$VPackAccessToken" >> $GITHUB_ENV
MsAzurePull=$(az keyvault secret show --name "MsAzurePull" --vault-name "HvLite-PATs" --query value --output tsv)
echo "::add-mask::$MsAzurePull"
echo "MsAzurePull=$MsAzurePull" >> $GITHUB_ENV
shell: bash
- run: |
set -x
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
rustup show
if: runner.os == 'Linux'
name: rustup (Linux)
shell: bash
- run: |
set -x
curl -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
./rustup-init.exe -y
echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
if: runner.os == 'Windows' && runner.arch == 'X64'
name: rustup (Windows X64)
shell: bash
- run: |
set -x
curl -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
./rustup-init.exe -y
echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
if: runner.os == 'Windows' && runner.arch == 'ARM64'
name: rustup (Windows ARM64)
shell: bash
- uses: actions/checkout@v4
with:
path: flowey_bootstrap
- name: Update Index
run: |
rustc -vV
cargo update --dry-run
working-directory: flowey_bootstrap
shell: bash
- name: Build flowey
run: CARGO_INCREMENTAL=0 RUSTC_BOOTSTRAP=1 RUSTFLAGS="-Z threads=8" cargo build -p flowey_hvlite --target x86_64-unknown-linux-gnu --profile flowey-ci
working-directory: flowey_bootstrap
shell: bash
- name: Stage flowey artifact
run: |
mkdir ./flowey_bootstrap_temp
mv ./.github/workflows/openvmm-pr.yaml ./flowey_bootstrap_temp/pipeline.yaml
mv ./.github/workflows/openvmm-pr.json ./flowey_bootstrap_temp/pipeline.json
mv target/x86_64-unknown-linux-gnu/flowey-ci/flowey_hvlite ./flowey_bootstrap_temp/flowey
working-directory: flowey_bootstrap
shell: bash
- name: Copy flowey artifact
run: |
OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
mkdir -p $OutDirNormal
cp -r ./flowey_bootstrap_temp/* $OutDirNormal
working-directory: flowey_bootstrap
shell: bash
- name: Cleanup staged flowey artifact
run: rm -rf ./flowey_bootstrap_temp
working-directory: flowey_bootstrap
shell: bash
- run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $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/bootstrapped-flowey/flowey
echo '"debug"' | flowey v 12 'FLOWEY_LOG' --update-from-stdin
echo "${{ runner.temp }}/work" | flowey v 12 '_internal_WORKING_DIR' --update-from-stdin --is-raw-string
cat <<'EOF' | flowey v 12 'param0' --update-from-stdin
${{ inputs.param0 != '' && inputs.param0 || 'false' }}
EOF
mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-musl-pipette"
echo "$AgentTempDirNormal/publish_artifacts/x64-linux-musl-pipette" | flowey v 12 'artifact_publish_from_x64-linux-musl-pipette' --update-from-stdin --is-raw-string
mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-openhcl-igvm"
echo "$AgentTempDirNormal/publish_artifacts/x64-openhcl-igvm" | flowey v 12 'artifact_publish_from_x64-openhcl-igvm' --update-from-stdin --is-raw-string
mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-openhcl-igvm-extras"
echo "$AgentTempDirNormal/publish_artifacts/x64-openhcl-igvm-extras" | flowey v 12 'artifact_publish_from_x64-openhcl-igvm-extras' --update-from-stdin --is-raw-string
shell: bash
- name: ๐ŸŒผ๐Ÿ”Ž Self-check YAML
run: |-
ESCAPED_AGENT_TEMPDIR=$(
cat <<'EOF' | sed 's/\\/\\\\/g'
${{ runner.temp }}
EOF
)
flowey pipeline github --check $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out .github/workflows/openvmm-pr.yaml ci checkin-gates --config=pr
shell: bash
- name: checking if apt packages need to be installed
run: flowey e 12 flowey_lib_common::install_apt_pkg 0
shell: bash
- name: installing `apt` packages
run: flowey e 12 flowey_lib_common::install_apt_pkg 1
shell: bash
- name: create gh-release-download cache dir
run: flowey e 12 flowey_lib_common::download_gh_release 0
shell: bash
- name: Pre-processing cache vars
run: flowey e 12 flowey_lib_common::cache 4
shell: bash
- run: |
flowey v 12 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar6 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar6'
- run: |
flowey v 12 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar7 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar7'
- id: flowey_lib_common__cache__5
uses: actions/cache@v4
with:
key: ${{ env.floweyvar6 }}
path: ${{ env.floweyvar7 }}
name: 'Restore cache: gh-release-download'
- run: ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
shell: flowey v 12 'flowey_lib_common::cache:12:flowey_lib_common/src/cache.rs:509:46' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'steps.flowey_lib_common__cache__5.outputs.cache-hit'
- name: map Github cache-hit to flowey
run: flowey e 12 flowey_lib_common::cache 6
shell: bash
- name: create gh cache dir
run: flowey e 12 flowey_lib_common::download_gh_cli 0
shell: bash
- name: Pre-processing cache vars
run: flowey e 12 flowey_lib_common::cache 0
shell: bash
- run: |
flowey v 12 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar4 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar4'
- run: |
flowey v 12 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar5 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar5'
- id: flowey_lib_common__cache__1
uses: actions/cache@v4
with:
key: ${{ env.floweyvar4 }}
path: ${{ env.floweyvar5 }}
name: 'Restore cache: gh-cli'
- run: ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
shell: flowey v 12 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:509:46' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'steps.flowey_lib_common__cache__1.outputs.cache-hit'
- name: map Github cache-hit to flowey
run: flowey e 12 flowey_lib_common::cache 2
shell: bash
- name: installing gh
run: flowey e 12 flowey_lib_common::download_gh_cli 1
shell: bash
- run: ${{ secrets.OPENVMM_CLIENT_ID }}
shell: flowey v 12 'flowey_lib_hvlite::_jobs::cfg_gh_azure_login:0:flowey_lib_hvlite/src/_jobs/cfg_gh_azure_login.rs:36:29' --is-secret --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'secrets.OPENVMM_CLIENT_ID'
- run: ${{ secrets.OPENVMM_TENANT_ID }}
shell: flowey v 12 'flowey_lib_hvlite::_jobs::cfg_gh_azure_login:1:flowey_lib_hvlite/src/_jobs/cfg_gh_azure_login.rs:37:29' --is-secret --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'secrets.OPENVMM_TENANT_ID'
- run: ${{ secrets.OPENVMM_SUBSCRIPTION_ID }}
shell: flowey v 12 'flowey_lib_hvlite::_jobs::cfg_gh_azure_login:2:flowey_lib_hvlite/src/_jobs/cfg_gh_azure_login.rs:38:35' --is-secret --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'secrets.OPENVMM_SUBSCRIPTION_ID'
- name: Create OpenIDConnect Credentials
run: flowey e 12 flowey_lib_hvlite::_jobs::cfg_gh_azure_login 3
shell: bash
- name: Read Azure Login Credentials
run: flowey e 12 flowey_lib_common::gh_task_azure_login 0
shell: bash
- run: |
flowey v 12 'flowey_lib_common::gh_task_azure_login:0:flowey_lib_common/src/gh_task_azure_login.rs:53:48' --is-secret --write-to-gh-env floweyvar1 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar1'
- run: |
flowey v 12 'flowey_lib_common::gh_task_azure_login:2:flowey_lib_common/src/gh_task_azure_login.rs:55:60' --is-secret --write-to-gh-env floweyvar2 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar2'
- run: |
flowey v 12 'flowey_lib_common::gh_task_azure_login:1:flowey_lib_common/src/gh_task_azure_login.rs:54:48' --is-secret --write-to-gh-env floweyvar3 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar3'
- id: flowey_lib_common__gh_task_azure_login__1
uses: Azure/login@v2
with:
client-id: ${{ env.floweyvar1 }}
subscription-id: ${{ env.floweyvar2 }}
tenant-id: ${{ env.floweyvar3 }}
name: Azure Login
- name: installing azure-cli
run: flowey e 12 flowey_lib_common::install_azure_cli 0
shell: bash
- name: Downloading secrets from key vault HvLite-PATs
run: flowey e 12 flowey_lib_common::gh_download_azure_key_vault_secret 0
shell: bash
- name: setup gh cli
run: flowey e 12 flowey_lib_common::use_gh_cli 0
shell: bash
- name: download artifacts from github releases
run: flowey e 12 flowey_lib_common::download_gh_release 1
shell: bash
- name: unpack mu_msvm package (x64)
run: flowey e 12 flowey_lib_hvlite::download_uefi_mu_msvm 0
shell: bash
- name: install Rust
run: flowey e 12 flowey_lib_common::install_rust 0
shell: bash
- name: detect active toolchain
run: flowey e 12 flowey_lib_common::install_rust 1
shell: bash
- name: report common cargo flags
run: flowey e 12 flowey_lib_common::cfg_cargo_common_flags 0
shell: bash
- name: check if hvlite needs to be cloned
run: flowey e 12 flowey_lib_common::git_checkout 0
shell: bash
- run: |
flowey v 12 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:469:46' --write-to-gh-env FLOWEY_CONDITION
shell: bash
name: ๐ŸŒผโ“ Write to 'FLOWEY_CONDITION'
- run: |
flowey v 12 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:468:80' --write-to-gh-env floweyvar8 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar8'
if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
- id: flowey_lib_common__git_checkout__1
uses: actions/checkout@v4
with:
fetch-depth: '1'
path: repo0
persist-credentials: ${{ env.floweyvar8 }}
name: checkout repo hvlite
if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
- run: ${{ github.workspace }}
shell: flowey v 12 'flowey_lib_common::git_checkout:4:flowey_lib_common/src/git_checkout.rs:523:31' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'github.workspace'
- name: report cloned repo directories
run: flowey e 12 flowey_lib_common::git_checkout 3
shell: bash
- name: resolve OpenVMM repo requests
run: 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: unpack protoc
run: flowey e 12 flowey_lib_common::download_protoc 0
shell: bash
- name: report openvmm magicpath dir
run: 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
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 12 flowey_lib_hvlite::run_cargo_build 2
shell: bash
- name: cargo build openhcl_boot
run: flowey e 12 flowey_lib_common::run_cargo_build 1
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 12 flowey_lib_hvlite::run_cargo_build 3
shell: bash
- name: split debug symbols
run: flowey e 12 flowey_lib_hvlite::run_split_debug_info 5
shell: bash
- name: reporting split debug info
run: flowey e 12 flowey_lib_hvlite::run_cargo_build 4
shell: bash
- name: report built openhcl_boot
run: flowey e 12 flowey_lib_hvlite::build_openhcl_boot 0
shell: bash
- name: unpack Microsoft.OHCL.Kernel.6.6.51.5-dev-x64.zip
run: flowey e 12 flowey_lib_hvlite::download_openhcl_kernel_package 2
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 27
shell: bash
- name: unpack openvmm-deps archive
run: flowey e 12 flowey_lib_hvlite::download_openvmm_deps 0
shell: bash
- name: extract X64 sysroot.tar.gz
run: flowey e 12 flowey_lib_hvlite::init_openvmm_magicpath_openhcl_sysroot 0
shell: bash
- name: cargo build openvmm_hcl
run: flowey e 12 flowey_lib_common::run_cargo_build 2
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 12 flowey_lib_hvlite::run_cargo_build 5
shell: bash
- name: report built openvmm_hcl
run: flowey e 12 flowey_lib_hvlite::build_openvmm_hcl 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 23
shell: bash
- name: split debug symbols
run: flowey e 12 flowey_lib_hvlite::run_split_debug_info 2
shell: bash
- name: ๐ŸŒผ Zip Vars
run: flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 24
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 25
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 26
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 28
shell: bash
- name: building openhcl initrd
run: flowey e 12 flowey_lib_hvlite::build_openhcl_initrd 4
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 29
shell: bash
- name: enumerate igvm resources
run: flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 30
shell: bash
- name: cargo build igvmfilegen
run: flowey e 12 flowey_lib_common::run_cargo_build 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: 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 7
shell: bash
- name: reporting split debug info
run: flowey e 12 flowey_lib_hvlite::run_cargo_build 1
shell: bash
- name: report built igvmfilegen
run: flowey e 12 flowey_lib_hvlite::build_igvmfilegen 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 31
shell: bash
- name: ๐ŸŒผ write_into Var
run: 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 4
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 12 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 4
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 38
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 34
shell: bash
- name: split debug symbols
run: flowey e 12 flowey_lib_hvlite::run_split_debug_info 3
shell: bash
- name: ๐ŸŒผ Zip Vars
run: flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 35
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 36
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 37
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 39
shell: bash
- name: unpack Microsoft.OHCL.Kernel.6.6.51.2-main-x64.zip
run: flowey e 12 flowey_lib_hvlite::download_openhcl_kernel_package 0
shell: bash
- name: building openhcl initrd
run: flowey e 12 flowey_lib_hvlite::build_openhcl_initrd 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 40
shell: bash
- name: enumerate igvm resources
run: flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 41
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 42
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 43
shell: bash
- name: building igvm file
run: flowey e 12 flowey_lib_hvlite::run_igvmfilegen 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 12 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 8
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 49
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 45
shell: bash
- name: split debug symbols
run: flowey e 12 flowey_lib_hvlite::run_split_debug_info 0
shell: bash
- name: ๐ŸŒผ Zip Vars
run: flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 46
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 47
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 48
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 50
shell: bash
- name: building openhcl initrd
run: flowey e 12 flowey_lib_hvlite::build_openhcl_initrd 1
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 51
shell: bash
- name: enumerate igvm resources
run: flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 52
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 53
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 54
shell: bash
- name: building igvm file
run: flowey e 12 flowey_lib_hvlite::run_igvmfilegen 1
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 12 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 12
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 5
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 1
shell: bash
- name: split debug symbols
run: flowey e 12 flowey_lib_hvlite::run_split_debug_info 4
shell: bash
- name: ๐ŸŒผ Zip Vars
run: flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 2
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 3
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 4
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 6
shell: bash
- name: building openhcl initrd
run: flowey e 12 flowey_lib_hvlite::build_openhcl_initrd 2
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 7
shell: bash
- name: enumerate igvm resources
run: flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 8
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 9
shell: bash
- name: ๐ŸŒผ write_into Var
run: 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 2
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 12 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 0
shell: bash
- name: unpack Microsoft.OHCL.Kernel.6.6.51.2-main-cvm-x64.zip
run: flowey e 12 flowey_lib_hvlite::download_openhcl_kernel_package 1
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 16
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 12
shell: bash
- name: split debug symbols
run: flowey e 12 flowey_lib_hvlite::run_split_debug_info 1
shell: bash
- name: ๐ŸŒผ Zip Vars
run: flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 13
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 14
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 15
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 17
shell: bash
- name: building openhcl initrd
run: flowey e 12 flowey_lib_hvlite::build_openhcl_initrd 3
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 18
shell: bash
- name: enumerate igvm resources
run: flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 19
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 20
shell: bash
- name: ๐ŸŒผ write_into Var
run: 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 3
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 12 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 16
shell: bash
- name: describe OpenHCL igvm artifact
run: 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
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 22
shell: bash
- name: ๐ŸŒผ Zip Vars
run: flowey e 12 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 5
shell: bash
- name: ๐ŸŒผ Zip Vars
run: flowey e 12 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 6
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 12 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 7
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 33
shell: bash
- name: ๐ŸŒผ Zip Vars
run: flowey e 12 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 9
shell: bash
- name: ๐ŸŒผ Zip Vars
run: flowey e 12 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 10
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 12 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 11
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 44
shell: bash
- name: ๐ŸŒผ Zip Vars
run: flowey e 12 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 13
shell: bash
- name: ๐ŸŒผ Zip Vars
run: flowey e 12 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 14
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 12 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 15
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 11
shell: bash
- name: ๐ŸŒผ Zip Vars
run: flowey e 12 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 17
shell: bash
- name: ๐ŸŒผ Zip Vars
run: flowey e 12 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 18
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 12 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 19
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 0
shell: bash
- name: ๐ŸŒผ Zip Vars
run: flowey e 12 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 1
shell: bash
- name: ๐ŸŒผ Zip Vars
run: flowey e 12 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 2
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 12 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 3
shell: bash
- name: describe OpenHCL igvm extras artifact
run: 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: cargo build pipette
run: flowey e 12 flowey_lib_common::run_cargo_build 3
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 12 flowey_lib_hvlite::run_cargo_build 6
shell: bash
- name: split debug symbols
run: flowey e 12 flowey_lib_hvlite::run_split_debug_info 6
shell: bash
- name: reporting split debug info
run: flowey e 12 flowey_lib_hvlite::run_cargo_build 7
shell: bash
- name: report built pipette
run: flowey e 12 flowey_lib_hvlite::build_pipette 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 12 flowey_lib_hvlite::artifact_pipette::publish 0
shell: bash
- name: copying pipette to artifact dir
run: flowey e 12 flowey_lib_common::copy_to_artifact_dir 2
shell: bash
- name: 'validate cache entry: gh-cli'
run: flowey e 12 flowey_lib_common::cache 3
shell: bash
- name: 'validate cache entry: gh-release-download'
run: flowey e 12 flowey_lib_common::cache 7
shell: bash
- name: ๐ŸŒผ๐Ÿ“ฆ Publish x64-linux-musl-pipette
uses: actions/upload-artifact@v4
with:
name: x64-linux-musl-pipette
path: ${{ runner.temp }}/publish_artifacts/x64-linux-musl-pipette/
- name: ๐ŸŒผ๐Ÿ“ฆ Publish x64-openhcl-igvm
uses: actions/upload-artifact@v4
with:
name: x64-openhcl-igvm
path: ${{ runner.temp }}/publish_artifacts/x64-openhcl-igvm/
- name: ๐ŸŒผ๐Ÿ“ฆ Publish x64-openhcl-igvm-extras
uses: actions/upload-artifact@v4
with:
name: x64-openhcl-igvm-extras
path: ${{ runner.temp }}/publish_artifacts/x64-openhcl-igvm-extras/
- name: ๐ŸŒผ๐Ÿงผ Redact bootstrap var db
run: rm $AgentTempDirNormal/bootstrapped-flowey/job12.json
shell: bash
- name: ๐ŸŒผ๐Ÿฅพ Publish bootstrapped flowey
uses: actions/upload-artifact@v4
with:
name: _internal-flowey-bootstrap-x86_64-linux-uid-5
path: ${{ runner.temp }}/bootstrapped-flowey
job13:
name: clippy [windows], unit tests [x64-windows]
runs-on:
- self-hosted
- 1ES.Pool=HvLite-GitHub-Win-Pool-WestUS3
permissions:
contents: read
id-token: write
steps:
- run: echo "injected!"
name: ๐ŸŒผ๐Ÿฅพ Bootstrap flowey
shell: bash
- uses: Azure/login@v2
with:
client-id: ${{ secrets.OPENVMM_CLIENT_ID }}
tenant-id: ${{ secrets.OPENVMM_TENANT_ID }}
subscription-id: ${{ secrets.OPENVMM_SUBSCRIPTION_ID }}
- name: Pull Azure Key Vault secrets
run: |
VPackAccessToken=$(az keyvault secret show --name "VPackAccessToken" --vault-name "HvLite-PATs" --query value --output tsv)
echo "::add-mask::$VPackAccessToken"
echo "VPackAccessToken=$VPackAccessToken" >> $GITHUB_ENV
MsAzurePull=$(az keyvault secret show --name "MsAzurePull" --vault-name "HvLite-PATs" --query value --output tsv)
echo "::add-mask::$MsAzurePull"
echo "MsAzurePull=$MsAzurePull" >> $GITHUB_ENV
shell: bash
- run: |
set -x
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
rustup show
if: runner.os == 'Linux'
name: rustup (Linux)
shell: bash
- run: |
set -x
curl -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
./rustup-init.exe -y
echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
if: runner.os == 'Windows' && runner.arch == 'X64'
name: rustup (Windows X64)
shell: bash
- run: |
set -x
curl -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
./rustup-init.exe -y
echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
if: runner.os == 'Windows' && runner.arch == 'ARM64'
name: rustup (Windows ARM64)
shell: bash
- uses: actions/checkout@v4
with:
path: flowey_bootstrap
- name: Update Index
run: |
rustc -vV
cargo update --dry-run
working-directory: flowey_bootstrap
shell: bash
- name: Build flowey
run: CARGO_INCREMENTAL=0 RUSTC_BOOTSTRAP=1 RUSTFLAGS="-Z threads=8" cargo build -p flowey_hvlite --target x86_64-pc-windows-msvc --profile flowey-ci
working-directory: flowey_bootstrap
shell: bash
- name: Stage flowey artifact
run: |
mkdir ./flowey_bootstrap_temp
mv ./.github/workflows/openvmm-pr.yaml ./flowey_bootstrap_temp/pipeline.yaml
mv ./.github/workflows/openvmm-pr.json ./flowey_bootstrap_temp/pipeline.json
mv target/x86_64-pc-windows-msvc/flowey-ci/flowey_hvlite.exe ./flowey_bootstrap_temp/flowey.exe
working-directory: flowey_bootstrap
shell: bash
- name: Copy flowey artifact
run: |
OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
mkdir -p $OutDirNormal
cp -r ./flowey_bootstrap_temp/* $OutDirNormal
working-directory: flowey_bootstrap
shell: bash
- name: Cleanup staged flowey artifact
run: rm -rf ./flowey_bootstrap_temp
working-directory: flowey_bootstrap
shell: bash
- run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $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/bootstrapped-flowey/flowey.exe
echo '"debug"' | flowey.exe v 13 'FLOWEY_LOG' --update-from-stdin
echo "${{ runner.temp }}/work" | flowey.exe v 13 '_internal_WORKING_DIR' --update-from-stdin --is-raw-string
cat <<'EOF' | flowey.exe v 13 'param0' --update-from-stdin
${{ inputs.param0 != '' && inputs.param0 || 'false' }}
EOF
shell: bash
- name: ๐ŸŒผ๐Ÿ”Ž Self-check YAML
run: |-
ESCAPED_AGENT_TEMPDIR=$(
cat <<'EOF' | sed 's/\\/\\\\/g'
${{ runner.temp }}
EOF
)
flowey.exe pipeline github --check $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out .github/workflows/openvmm-pr.yaml ci checkin-gates --config=pr
shell: bash
- name: install Rust
run: flowey.exe e 13 flowey_lib_common::install_rust 0
shell: bash
- name: detect active toolchain
run: flowey.exe e 13 flowey_lib_common::install_rust 1
shell: bash
- name: report common cargo flags
run: flowey.exe e 13 flowey_lib_common::cfg_cargo_common_flags 0
shell: bash
- name: check if hvlite needs to be cloned
run: flowey.exe e 13 flowey_lib_common::git_checkout 0
shell: bash
- run: |
flowey.exe v 13 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:469:46' --write-to-gh-env FLOWEY_CONDITION
shell: bash
name: ๐ŸŒผโ“ Write to 'FLOWEY_CONDITION'
- run: |
flowey.exe v 13 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:468:80' --write-to-gh-env floweyvar4 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar4'
if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
- id: flowey_lib_common__git_checkout__1
uses: actions/checkout@v4
with:
fetch-depth: '1'
path: repo0
persist-credentials: ${{ env.floweyvar4 }}
name: checkout repo hvlite
if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
- run: ${{ github.workspace }}
shell: flowey.exe v 13 'flowey_lib_common::git_checkout:4:flowey_lib_common/src/git_checkout.rs:523:31' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'github.workspace'
- name: report cloned repo directories
run: flowey.exe e 13 flowey_lib_common::git_checkout 3
shell: bash
- name: resolve OpenVMM repo requests
run: 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 8
shell: bash
- run: |
flowey.exe v 13 'flowey_lib_common::cache:18:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar9 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar9'
- run: |
flowey.exe v 13 'flowey_lib_common::cache:17:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar10 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar10'
- id: flowey_lib_common__cache__9
uses: actions/cache@v4
with:
key: ${{ env.floweyvar9 }}
path: ${{ env.floweyvar10 }}
name: 'Restore cache: gh-release-download'
- run: ${{ steps.flowey_lib_common__cache__9.outputs.cache-hit }}
shell: flowey.exe v 13 'flowey_lib_common::cache:20:flowey_lib_common/src/cache.rs:509:46' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'steps.flowey_lib_common__cache__9.outputs.cache-hit'
- name: map Github cache-hit to flowey
run: flowey.exe e 13 flowey_lib_common::cache 10
shell: bash
- name: create gh cache dir
run: flowey.exe e 13 flowey_lib_common::download_gh_cli 0
shell: bash
- name: Pre-processing cache vars
run: flowey.exe e 13 flowey_lib_common::cache 4
shell: bash
- run: |
flowey.exe v 13 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar7 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar7'
- run: |
flowey.exe v 13 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar8 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar8'
- id: flowey_lib_common__cache__5
uses: actions/cache@v4
with:
key: ${{ env.floweyvar7 }}
path: ${{ env.floweyvar8 }}
name: 'Restore cache: gh-cli'
- run: ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
shell: flowey.exe v 13 'flowey_lib_common::cache:12:flowey_lib_common/src/cache.rs:509:46' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'steps.flowey_lib_common__cache__5.outputs.cache-hit'
- name: map Github cache-hit to flowey
run: flowey.exe e 13 flowey_lib_common::cache 6
shell: bash
- name: installing gh
run: flowey.exe e 13 flowey_lib_common::download_gh_cli 1
shell: bash
- run: ${{ secrets.OPENVMM_CLIENT_ID }}
shell: flowey.exe v 13 'flowey_lib_hvlite::_jobs::cfg_gh_azure_login:0:flowey_lib_hvlite/src/_jobs/cfg_gh_azure_login.rs:36:29' --is-secret --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'secrets.OPENVMM_CLIENT_ID'
- run: ${{ secrets.OPENVMM_TENANT_ID }}
shell: flowey.exe v 13 'flowey_lib_hvlite::_jobs::cfg_gh_azure_login:1:flowey_lib_hvlite/src/_jobs/cfg_gh_azure_login.rs:37:29' --is-secret --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'secrets.OPENVMM_TENANT_ID'
- run: ${{ secrets.OPENVMM_SUBSCRIPTION_ID }}
shell: flowey.exe v 13 'flowey_lib_hvlite::_jobs::cfg_gh_azure_login:2:flowey_lib_hvlite/src/_jobs/cfg_gh_azure_login.rs:38:35' --is-secret --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'secrets.OPENVMM_SUBSCRIPTION_ID'
- name: Create OpenIDConnect Credentials
run: flowey.exe e 13 flowey_lib_hvlite::_jobs::cfg_gh_azure_login 3
shell: bash
- name: Read Azure Login Credentials
run: flowey.exe e 13 flowey_lib_common::gh_task_azure_login 0
shell: bash
- run: |
flowey.exe v 13 'flowey_lib_common::gh_task_azure_login:0:flowey_lib_common/src/gh_task_azure_login.rs:53:48' --is-secret --write-to-gh-env floweyvar1 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar1'
- run: |
flowey.exe v 13 'flowey_lib_common::gh_task_azure_login:2:flowey_lib_common/src/gh_task_azure_login.rs:55:60' --is-secret --write-to-gh-env floweyvar2 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar2'
- run: |
flowey.exe v 13 'flowey_lib_common::gh_task_azure_login:1:flowey_lib_common/src/gh_task_azure_login.rs:54:48' --is-secret --write-to-gh-env floweyvar3 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar3'
- id: flowey_lib_common__gh_task_azure_login__1
uses: Azure/login@v2
with:
client-id: ${{ env.floweyvar1 }}
subscription-id: ${{ env.floweyvar2 }}
tenant-id: ${{ env.floweyvar3 }}
name: Azure Login
- name: installing azure-cli
run: flowey.exe e 13 flowey_lib_common::install_azure_cli 0
shell: bash
- name: Downloading secrets from key vault HvLite-PATs
run: flowey.exe e 13 flowey_lib_common::gh_download_azure_key_vault_secret 0
shell: bash
- name: setup gh cli
run: flowey.exe e 13 flowey_lib_common::use_gh_cli 0
shell: bash
- name: download artifacts from github releases
run: flowey.exe e 13 flowey_lib_common::download_gh_release 1
shell: bash
- name: unpack protoc
run: flowey.exe e 13 flowey_lib_common::download_protoc 0
shell: bash
- name: report openvmm magicpath dir
run: 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
shell: bash
- name: cargo build xtask
run: flowey.exe e 13 flowey_lib_common::run_cargo_build 1
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey.exe e 13 flowey_lib_hvlite::run_cargo_build 1
shell: bash
- name: report built xtask
run: flowey.exe e 13 flowey_lib_hvlite::build_xtask 1
shell: bash
- name: determine clippy exclusions
run: flowey.exe e 13 flowey_lib_hvlite::_jobs::check_clippy 1
shell: bash
- name: unpack Microsoft.WSL.LxUtil.x64.zip
run: flowey.exe e 13 flowey_lib_hvlite::download_lxutil 0
shell: bash
- name: unpack Microsoft.WSL.LxUtil.AARCH64.zip
run: flowey.exe e 13 flowey_lib_hvlite::download_lxutil 1
shell: bash
- name: move lxutil.dll into its magic folder
run: flowey.exe e 13 flowey_lib_hvlite::init_openvmm_magicpath_lxutil 0
shell: bash
- name: cargo clippy
run: flowey.exe e 13 flowey_lib_common::run_cargo_clippy 1
shell: bash
- name: cargo build xtask
run: flowey.exe e 13 flowey_lib_common::run_cargo_build 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey.exe e 13 flowey_lib_hvlite::run_cargo_build 0
shell: bash
- name: report built xtask
run: 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: create cargo-nextest cache dir
run: flowey.exe e 13 flowey_lib_common::download_cargo_nextest 0
shell: bash
- name: Pre-processing cache vars
run: flowey.exe e 13 flowey_lib_common::cache 0
shell: bash
- run: |
flowey.exe v 13 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar5 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar5'
- run: |
flowey.exe v 13 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar6 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar6'
- id: flowey_lib_common__cache__1
uses: actions/cache@v4
with:
key: ${{ env.floweyvar5 }}
path: ${{ env.floweyvar6 }}
name: 'Restore cache: cargo-nextest'
- run: ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
shell: flowey.exe v 13 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:509:46' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'steps.flowey_lib_common__cache__1.outputs.cache-hit'
- name: map Github cache-hit to flowey
run: flowey.exe e 13 flowey_lib_common::cache 2
shell: bash
- name: report cargo install persistent dir
run: flowey.exe e 13 flowey_lib_common::cfg_persistent_dir_cargo_install 0
shell: bash
- name: report $CARGO_HOME
run: flowey.exe e 13 flowey_lib_common::install_rust 2
shell: bash
- name: installing cargo-nextest
run: flowey.exe e 13 flowey_lib_common::download_cargo_nextest 1
shell: bash
- name: cargo build xtask
run: flowey.exe e 13 flowey_lib_common::run_cargo_build 2
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey.exe e 13 flowey_lib_hvlite::run_cargo_build 2
shell: bash
- name: report built xtask
run: flowey.exe e 13 flowey_lib_hvlite::build_xtask 2
shell: bash
- name: determine unit test exclusions
run: flowey.exe e 13 flowey_lib_hvlite::build_nextest_unit_tests 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey.exe e 13 flowey_lib_hvlite::run_cargo_nextest_run 0
shell: bash
- name: run 'unit-tests' nextest tests
run: flowey.exe e 13 flowey_lib_common::run_cargo_nextest_run 0
shell: bash
- name: checking for crash dumps
run: flowey.exe e 13 flowey_lib_common::run_cargo_nextest_run 1
shell: bash
- name: write results
run: flowey.exe e 13 flowey_lib_common::run_cargo_nextest_run 2
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey.exe e 13 flowey_lib_hvlite::_jobs::build_and_run_nextest_unit_tests 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey.exe e 13 flowey_lib_common::junit_publish_test_results 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey.exe e 13 flowey_lib_common::junit_publish_test_results 1
shell: bash
- run: |
flowey.exe v 13 'flowey_lib_common::junit_publish_test_results:0:flowey_lib_common/src/junit_publish_test_results.rs:103:46' --write-to-gh-env FLOWEY_CONDITION
shell: bash
name: ๐ŸŒผโ“ Write to 'FLOWEY_CONDITION'
- run: |
flowey.exe v 13 'flowey_lib_common::junit_publish_test_results:2:flowey_lib_common/src/junit_publish_test_results.rs:104:42' --write-to-gh-env floweyvar11 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar11'
if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
- id: flowey_lib_common__junit_publish_test_results__2
uses: actions/upload-artifact@v4
with:
name: x64-windows-unit-tests
path: ${{ env.floweyvar11 }}
name: 'publish JUnit test results: x64-windows-unit-tests'
if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
- name: report test results to overall pipeline status
run: flowey.exe e 13 flowey_lib_hvlite::_jobs::build_and_run_nextest_unit_tests 1
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-cli'
run: flowey.exe e 13 flowey_lib_common::cache 7
shell: bash
- name: 'validate cache entry: gh-release-download'
run: flowey.exe e 13 flowey_lib_common::cache 11
shell: bash
job14:
name: clippy [linux, macos], unit tests [x64-linux]
runs-on:
- self-hosted
- 1ES.Pool=HvLite-GitHub-Linux-Pool-WestUS3
permissions:
contents: read
id-token: write
steps:
- run: echo "injected!"
name: ๐ŸŒผ๐Ÿฅพ Bootstrap flowey
shell: bash
- uses: Azure/login@v2
with:
client-id: ${{ secrets.OPENVMM_CLIENT_ID }}
tenant-id: ${{ secrets.OPENVMM_TENANT_ID }}
subscription-id: ${{ secrets.OPENVMM_SUBSCRIPTION_ID }}
- name: Pull Azure Key Vault secrets
run: |
VPackAccessToken=$(az keyvault secret show --name "VPackAccessToken" --vault-name "HvLite-PATs" --query value --output tsv)
echo "::add-mask::$VPackAccessToken"
echo "VPackAccessToken=$VPackAccessToken" >> $GITHUB_ENV
MsAzurePull=$(az keyvault secret show --name "MsAzurePull" --vault-name "HvLite-PATs" --query value --output tsv)
echo "::add-mask::$MsAzurePull"
echo "MsAzurePull=$MsAzurePull" >> $GITHUB_ENV
shell: bash
- run: |
set -x
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
rustup show
if: runner.os == 'Linux'
name: rustup (Linux)
shell: bash
- run: |
set -x
curl -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
./rustup-init.exe -y
echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
if: runner.os == 'Windows' && runner.arch == 'X64'
name: rustup (Windows X64)
shell: bash
- run: |
set -x
curl -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
./rustup-init.exe -y
echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
if: runner.os == 'Windows' && runner.arch == 'ARM64'
name: rustup (Windows ARM64)
shell: bash
- uses: actions/checkout@v4
with:
path: flowey_bootstrap
- name: Update Index
run: |
rustc -vV
cargo update --dry-run
working-directory: flowey_bootstrap
shell: bash
- name: Build flowey
run: CARGO_INCREMENTAL=0 RUSTC_BOOTSTRAP=1 RUSTFLAGS="-Z threads=8" cargo build -p flowey_hvlite --target x86_64-unknown-linux-gnu --profile flowey-ci
working-directory: flowey_bootstrap
shell: bash
- name: Stage flowey artifact
run: |
mkdir ./flowey_bootstrap_temp
mv ./.github/workflows/openvmm-pr.yaml ./flowey_bootstrap_temp/pipeline.yaml
mv ./.github/workflows/openvmm-pr.json ./flowey_bootstrap_temp/pipeline.json
mv target/x86_64-unknown-linux-gnu/flowey-ci/flowey_hvlite ./flowey_bootstrap_temp/flowey
working-directory: flowey_bootstrap
shell: bash
- name: Copy flowey artifact
run: |
OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
mkdir -p $OutDirNormal
cp -r ./flowey_bootstrap_temp/* $OutDirNormal
working-directory: flowey_bootstrap
shell: bash
- name: Cleanup staged flowey artifact
run: rm -rf ./flowey_bootstrap_temp
working-directory: flowey_bootstrap
shell: bash
- run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $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/bootstrapped-flowey/flowey
echo '"debug"' | flowey v 14 'FLOWEY_LOG' --update-from-stdin
echo "${{ runner.temp }}/work" | flowey v 14 '_internal_WORKING_DIR' --update-from-stdin --is-raw-string
cat <<'EOF' | flowey v 14 'param0' --update-from-stdin
${{ inputs.param0 != '' && inputs.param0 || 'false' }}
EOF
shell: bash
- name: ๐ŸŒผ๐Ÿ”Ž Self-check YAML
run: |-
ESCAPED_AGENT_TEMPDIR=$(
cat <<'EOF' | sed 's/\\/\\\\/g'
${{ runner.temp }}
EOF
)
flowey pipeline github --check $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out .github/workflows/openvmm-pr.yaml ci checkin-gates --config=pr
shell: bash
- name: install Rust
run: flowey e 14 flowey_lib_common::install_rust 0
shell: bash
- name: detect active toolchain
run: flowey e 14 flowey_lib_common::install_rust 1
shell: bash
- name: report common cargo flags
run: flowey e 14 flowey_lib_common::cfg_cargo_common_flags 0
shell: bash
- name: checking if apt packages need to be installed
run: flowey e 14 flowey_lib_common::install_apt_pkg 0
shell: bash
- name: installing `apt` packages
run: flowey e 14 flowey_lib_common::install_apt_pkg 1
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 8
shell: bash
- run: |
flowey v 14 'flowey_lib_common::cache:18:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar9 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar9'
- run: |
flowey v 14 'flowey_lib_common::cache:17:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar10 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar10'
- id: flowey_lib_common__cache__9
uses: actions/cache@v4
with:
key: ${{ env.floweyvar9 }}
path: ${{ env.floweyvar10 }}
name: 'Restore cache: gh-release-download'
- run: ${{ steps.flowey_lib_common__cache__9.outputs.cache-hit }}
shell: flowey v 14 'flowey_lib_common::cache:20:flowey_lib_common/src/cache.rs:509:46' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'steps.flowey_lib_common__cache__9.outputs.cache-hit'
- name: map Github cache-hit to flowey
run: flowey e 14 flowey_lib_common::cache 10
shell: bash
- name: create gh cache dir
run: flowey e 14 flowey_lib_common::download_gh_cli 0
shell: bash
- name: Pre-processing cache vars
run: flowey e 14 flowey_lib_common::cache 4
shell: bash
- run: |
flowey v 14 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar7 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar7'
- run: |
flowey v 14 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar8 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar8'
- id: flowey_lib_common__cache__5
uses: actions/cache@v4
with:
key: ${{ env.floweyvar7 }}
path: ${{ env.floweyvar8 }}
name: 'Restore cache: gh-cli'
- run: ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
shell: flowey v 14 'flowey_lib_common::cache:12:flowey_lib_common/src/cache.rs:509:46' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'steps.flowey_lib_common__cache__5.outputs.cache-hit'
- name: map Github cache-hit to flowey
run: flowey e 14 flowey_lib_common::cache 6
shell: bash
- name: installing gh
run: flowey e 14 flowey_lib_common::download_gh_cli 1
shell: bash
- run: ${{ secrets.OPENVMM_CLIENT_ID }}
shell: flowey v 14 'flowey_lib_hvlite::_jobs::cfg_gh_azure_login:0:flowey_lib_hvlite/src/_jobs/cfg_gh_azure_login.rs:36:29' --is-secret --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'secrets.OPENVMM_CLIENT_ID'
- run: ${{ secrets.OPENVMM_TENANT_ID }}
shell: flowey v 14 'flowey_lib_hvlite::_jobs::cfg_gh_azure_login:1:flowey_lib_hvlite/src/_jobs/cfg_gh_azure_login.rs:37:29' --is-secret --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'secrets.OPENVMM_TENANT_ID'
- run: ${{ secrets.OPENVMM_SUBSCRIPTION_ID }}
shell: flowey v 14 'flowey_lib_hvlite::_jobs::cfg_gh_azure_login:2:flowey_lib_hvlite/src/_jobs/cfg_gh_azure_login.rs:38:35' --is-secret --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'secrets.OPENVMM_SUBSCRIPTION_ID'
- name: Create OpenIDConnect Credentials
run: flowey e 14 flowey_lib_hvlite::_jobs::cfg_gh_azure_login 3
shell: bash
- name: Read Azure Login Credentials
run: flowey e 14 flowey_lib_common::gh_task_azure_login 0
shell: bash
- run: |
flowey v 14 'flowey_lib_common::gh_task_azure_login:0:flowey_lib_common/src/gh_task_azure_login.rs:53:48' --is-secret --write-to-gh-env floweyvar1 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar1'
- run: |
flowey v 14 'flowey_lib_common::gh_task_azure_login:2:flowey_lib_common/src/gh_task_azure_login.rs:55:60' --is-secret --write-to-gh-env floweyvar2 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar2'
- run: |
flowey v 14 'flowey_lib_common::gh_task_azure_login:1:flowey_lib_common/src/gh_task_azure_login.rs:54:48' --is-secret --write-to-gh-env floweyvar3 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar3'
- id: flowey_lib_common__gh_task_azure_login__1
uses: Azure/login@v2
with:
client-id: ${{ env.floweyvar1 }}
subscription-id: ${{ env.floweyvar2 }}
tenant-id: ${{ env.floweyvar3 }}
name: Azure Login
- name: installing azure-cli
run: flowey e 14 flowey_lib_common::install_azure_cli 0
shell: bash
- name: Downloading secrets from key vault HvLite-PATs
run: flowey e 14 flowey_lib_common::gh_download_azure_key_vault_secret 0
shell: bash
- name: setup gh cli
run: flowey e 14 flowey_lib_common::use_gh_cli 0
shell: bash
- name: download artifacts from github releases
run: flowey e 14 flowey_lib_common::download_gh_release 1
shell: bash
- name: unpack Microsoft.WSL.LxUtil.x64.zip
run: flowey e 14 flowey_lib_hvlite::download_lxutil 0
shell: bash
- name: unpack Microsoft.WSL.LxUtil.AARCH64.zip
run: flowey e 14 flowey_lib_hvlite::download_lxutil 1
shell: bash
- name: check if hvlite needs to be cloned
run: flowey e 14 flowey_lib_common::git_checkout 0
shell: bash
- run: |
flowey v 14 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:469:46' --write-to-gh-env FLOWEY_CONDITION
shell: bash
name: ๐ŸŒผโ“ Write to 'FLOWEY_CONDITION'
- run: |
flowey v 14 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:468:80' --write-to-gh-env floweyvar4 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar4'
if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
- id: flowey_lib_common__git_checkout__1
uses: actions/checkout@v4
with:
fetch-depth: '1'
path: repo0
persist-credentials: ${{ env.floweyvar4 }}
name: checkout repo hvlite
if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
- run: ${{ github.workspace }}
shell: flowey v 14 'flowey_lib_common::git_checkout:4:flowey_lib_common/src/git_checkout.rs:523:31' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'github.workspace'
- name: report cloned repo directories
run: flowey e 14 flowey_lib_common::git_checkout 3
shell: bash
- name: resolve OpenVMM repo requests
run: flowey e 14 flowey_lib_hvlite::git_checkout_openvmm_repo 0
shell: bash
- name: report openvmm magicpath dir
run: flowey e 14 flowey_lib_hvlite::cfg_openvmm_magicpath 0
shell: bash
- name: move lxutil.dll into its magic folder
run: flowey e 14 flowey_lib_hvlite::init_openvmm_magicpath_lxutil 0
shell: bash
- name: set '-Dwarnings' in .cargo/config.toml
run: flowey e 14 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
shell: bash
- name: unpack protoc
run: flowey e 14 flowey_lib_common::download_protoc 0
shell: bash
- name: symlink protoc
run: flowey e 14 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
shell: bash
- name: cargo build xtask
run: flowey e 14 flowey_lib_common::run_cargo_build 3
shell: bash
- name: ๐ŸŒผ write_into Var
run: 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 3
shell: bash
- name: reporting split debug info
run: flowey e 14 flowey_lib_hvlite::run_cargo_build 3
shell: bash
- name: report built xtask
run: flowey e 14 flowey_lib_hvlite::build_xtask 1
shell: bash
- name: determine clippy exclusions
run: flowey e 14 flowey_lib_hvlite::_jobs::check_clippy 2
shell: bash
- name: cargo clippy
run: flowey e 14 flowey_lib_common::run_cargo_clippy 1
shell: bash
- name: cargo build xtask
run: flowey e 14 flowey_lib_common::run_cargo_build 2
shell: bash
- name: ๐ŸŒผ write_into Var
run: 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 2
shell: bash
- name: reporting split debug info
run: flowey e 14 flowey_lib_hvlite::run_cargo_build 1
shell: bash
- name: report built xtask
run: 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 1
shell: bash
- name: cargo clippy
run: flowey e 14 flowey_lib_common::run_cargo_clippy 0
shell: bash
- name: cargo build xtask
run: flowey e 14 flowey_lib_common::run_cargo_build 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 14 flowey_lib_hvlite::run_cargo_build 4
shell: bash
- name: split debug symbols
run: flowey e 14 flowey_lib_hvlite::run_split_debug_info 0
shell: bash
- name: reporting split debug info
run: flowey e 14 flowey_lib_hvlite::run_cargo_build 5
shell: bash
- name: report built xtask
run: flowey e 14 flowey_lib_hvlite::build_xtask 2
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 2
shell: bash
- name: create cargo-nextest cache dir
run: flowey e 14 flowey_lib_common::download_cargo_nextest 0
shell: bash
- name: Pre-processing cache vars
run: flowey e 14 flowey_lib_common::cache 0
shell: bash
- run: |
flowey v 14 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar5 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar5'
- run: |
flowey v 14 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar6 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar6'
- id: flowey_lib_common__cache__1
uses: actions/cache@v4
with:
key: ${{ env.floweyvar5 }}
path: ${{ env.floweyvar6 }}
name: 'Restore cache: cargo-nextest'
- run: ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
shell: flowey v 14 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:509:46' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'steps.flowey_lib_common__cache__1.outputs.cache-hit'
- name: map Github cache-hit to flowey
run: flowey e 14 flowey_lib_common::cache 2
shell: bash
- name: report cargo install persistent dir
run: flowey e 14 flowey_lib_common::cfg_persistent_dir_cargo_install 0
shell: bash
- name: report $CARGO_HOME
run: flowey e 14 flowey_lib_common::install_rust 2
shell: bash
- name: installing cargo-nextest
run: flowey e 14 flowey_lib_common::download_cargo_nextest 1
shell: bash
- name: cargo build xtask
run: flowey e 14 flowey_lib_common::run_cargo_build 1
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 14 flowey_lib_hvlite::run_cargo_build 6
shell: bash
- name: split debug symbols
run: flowey e 14 flowey_lib_hvlite::run_split_debug_info 1
shell: bash
- name: reporting split debug info
run: flowey e 14 flowey_lib_hvlite::run_cargo_build 7
shell: bash
- name: report built xtask
run: flowey e 14 flowey_lib_hvlite::build_xtask 3
shell: bash
- name: determine unit test exclusions
run: flowey e 14 flowey_lib_hvlite::build_nextest_unit_tests 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 14 flowey_lib_hvlite::run_cargo_nextest_run 0
shell: bash
- name: run 'unit-tests' nextest tests
run: flowey e 14 flowey_lib_common::run_cargo_nextest_run 0
shell: bash
- name: checking for crash dumps
run: flowey e 14 flowey_lib_common::run_cargo_nextest_run 1
shell: bash
- name: write results
run: flowey e 14 flowey_lib_common::run_cargo_nextest_run 2
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 14 flowey_lib_hvlite::_jobs::build_and_run_nextest_unit_tests 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 14 flowey_lib_common::junit_publish_test_results 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 14 flowey_lib_common::junit_publish_test_results 1
shell: bash
- run: |
flowey v 14 'flowey_lib_common::junit_publish_test_results:0:flowey_lib_common/src/junit_publish_test_results.rs:103:46' --write-to-gh-env FLOWEY_CONDITION
shell: bash
name: ๐ŸŒผโ“ Write to 'FLOWEY_CONDITION'
- run: |
flowey v 14 'flowey_lib_common::junit_publish_test_results:2:flowey_lib_common/src/junit_publish_test_results.rs:104:42' --write-to-gh-env floweyvar11 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar11'
if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
- id: flowey_lib_common__junit_publish_test_results__2
uses: actions/upload-artifact@v4
with:
name: x64-linux-unit-tests
path: ${{ env.floweyvar11 }}
name: 'publish JUnit test results: x64-linux-unit-tests'
if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
- name: report test results to overall pipeline status
run: flowey e 14 flowey_lib_hvlite::_jobs::build_and_run_nextest_unit_tests 1
shell: bash
- name: 'validate cache entry: cargo-nextest'
run: flowey e 14 flowey_lib_common::cache 3
shell: bash
- name: 'validate cache entry: gh-cli'
run: flowey e 14 flowey_lib_common::cache 7
shell: bash
- name: 'validate cache entry: gh-release-download'
run: flowey e 14 flowey_lib_common::cache 11
shell: bash
job15:
name: clippy [linux-musl, misc nostd], unit tests [x64-linux-musl]
runs-on:
- self-hosted
- 1ES.Pool=HvLite-GitHub-Linux-Pool-WestUS3
permissions:
contents: read
id-token: write
steps:
- run: echo "injected!"
name: ๐ŸŒผ๐Ÿฅพ Bootstrap flowey
shell: bash
- uses: Azure/login@v2
with:
client-id: ${{ secrets.OPENVMM_CLIENT_ID }}
tenant-id: ${{ secrets.OPENVMM_TENANT_ID }}
subscription-id: ${{ secrets.OPENVMM_SUBSCRIPTION_ID }}
- name: Pull Azure Key Vault secrets
run: |
VPackAccessToken=$(az keyvault secret show --name "VPackAccessToken" --vault-name "HvLite-PATs" --query value --output tsv)
echo "::add-mask::$VPackAccessToken"
echo "VPackAccessToken=$VPackAccessToken" >> $GITHUB_ENV
MsAzurePull=$(az keyvault secret show --name "MsAzurePull" --vault-name "HvLite-PATs" --query value --output tsv)
echo "::add-mask::$MsAzurePull"
echo "MsAzurePull=$MsAzurePull" >> $GITHUB_ENV
shell: bash
- run: |
set -x
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
rustup show
if: runner.os == 'Linux'
name: rustup (Linux)
shell: bash
- run: |
set -x
curl -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
./rustup-init.exe -y
echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
if: runner.os == 'Windows' && runner.arch == 'X64'
name: rustup (Windows X64)
shell: bash
- run: |
set -x
curl -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
./rustup-init.exe -y
echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
if: runner.os == 'Windows' && runner.arch == 'ARM64'
name: rustup (Windows ARM64)
shell: bash
- uses: actions/checkout@v4
with:
path: flowey_bootstrap
- name: Update Index
run: |
rustc -vV
cargo update --dry-run
working-directory: flowey_bootstrap
shell: bash
- name: Build flowey
run: CARGO_INCREMENTAL=0 RUSTC_BOOTSTRAP=1 RUSTFLAGS="-Z threads=8" cargo build -p flowey_hvlite --target x86_64-unknown-linux-gnu --profile flowey-ci
working-directory: flowey_bootstrap
shell: bash
- name: Stage flowey artifact
run: |
mkdir ./flowey_bootstrap_temp
mv ./.github/workflows/openvmm-pr.yaml ./flowey_bootstrap_temp/pipeline.yaml
mv ./.github/workflows/openvmm-pr.json ./flowey_bootstrap_temp/pipeline.json
mv target/x86_64-unknown-linux-gnu/flowey-ci/flowey_hvlite ./flowey_bootstrap_temp/flowey
working-directory: flowey_bootstrap
shell: bash
- name: Copy flowey artifact
run: |
OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
mkdir -p $OutDirNormal
cp -r ./flowey_bootstrap_temp/* $OutDirNormal
working-directory: flowey_bootstrap
shell: bash
- name: Cleanup staged flowey artifact
run: rm -rf ./flowey_bootstrap_temp
working-directory: flowey_bootstrap
shell: bash
- run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $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/bootstrapped-flowey/flowey
echo '"debug"' | flowey v 15 'FLOWEY_LOG' --update-from-stdin
echo "${{ runner.temp }}/work" | flowey v 15 '_internal_WORKING_DIR' --update-from-stdin --is-raw-string
cat <<'EOF' | flowey v 15 'param0' --update-from-stdin
${{ inputs.param0 != '' && inputs.param0 || 'false' }}
EOF
shell: bash
- name: ๐ŸŒผ๐Ÿ”Ž Self-check YAML
run: |-
ESCAPED_AGENT_TEMPDIR=$(
cat <<'EOF' | sed 's/\\/\\\\/g'
${{ runner.temp }}
EOF
)
flowey pipeline github --check $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out .github/workflows/openvmm-pr.yaml ci checkin-gates --config=pr
shell: bash
- name: install Rust
run: flowey e 15 flowey_lib_common::install_rust 0
shell: bash
- name: detect active toolchain
run: flowey e 15 flowey_lib_common::install_rust 1
shell: bash
- name: report common cargo flags
run: flowey e 15 flowey_lib_common::cfg_cargo_common_flags 0
shell: bash
- name: check if hvlite needs to be cloned
run: flowey e 15 flowey_lib_common::git_checkout 0
shell: bash
- run: |
flowey v 15 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:469:46' --write-to-gh-env FLOWEY_CONDITION
shell: bash
name: ๐ŸŒผโ“ Write to 'FLOWEY_CONDITION'
- run: |
flowey v 15 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:468:80' --write-to-gh-env floweyvar4 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar4'
if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
- id: flowey_lib_common__git_checkout__1
uses: actions/checkout@v4
with:
fetch-depth: '1'
path: repo0
persist-credentials: ${{ env.floweyvar4 }}
name: checkout repo hvlite
if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
- run: ${{ github.workspace }}
shell: flowey v 15 'flowey_lib_common::git_checkout:4:flowey_lib_common/src/git_checkout.rs:523:31' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'github.workspace'
- name: report cloned repo directories
run: flowey e 15 flowey_lib_common::git_checkout 3
shell: bash
- name: resolve OpenVMM repo requests
run: flowey e 15 flowey_lib_hvlite::git_checkout_openvmm_repo 0
shell: bash
- name: report openvmm magicpath dir
run: flowey e 15 flowey_lib_hvlite::cfg_openvmm_magicpath 0
shell: bash
- name: checking if apt packages need to be installed
run: flowey e 15 flowey_lib_common::install_apt_pkg 0
shell: bash
- name: installing `apt` packages
run: flowey e 15 flowey_lib_common::install_apt_pkg 1
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 8
shell: bash
- run: |
flowey v 15 'flowey_lib_common::cache:18:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar9 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar9'
- run: |
flowey v 15 'flowey_lib_common::cache:17:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar10 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar10'
- id: flowey_lib_common__cache__9
uses: actions/cache@v4
with:
key: ${{ env.floweyvar9 }}
path: ${{ env.floweyvar10 }}
name: 'Restore cache: gh-release-download'
- run: ${{ steps.flowey_lib_common__cache__9.outputs.cache-hit }}
shell: flowey v 15 'flowey_lib_common::cache:20:flowey_lib_common/src/cache.rs:509:46' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'steps.flowey_lib_common__cache__9.outputs.cache-hit'
- name: map Github cache-hit to flowey
run: flowey e 15 flowey_lib_common::cache 10
shell: bash
- name: create gh cache dir
run: flowey e 15 flowey_lib_common::download_gh_cli 0
shell: bash
- name: Pre-processing cache vars
run: flowey e 15 flowey_lib_common::cache 4
shell: bash
- run: |
flowey v 15 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar7 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar7'
- run: |
flowey v 15 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar8 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar8'
- id: flowey_lib_common__cache__5
uses: actions/cache@v4
with:
key: ${{ env.floweyvar7 }}
path: ${{ env.floweyvar8 }}
name: 'Restore cache: gh-cli'
- run: ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
shell: flowey v 15 'flowey_lib_common::cache:12:flowey_lib_common/src/cache.rs:509:46' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'steps.flowey_lib_common__cache__5.outputs.cache-hit'
- name: map Github cache-hit to flowey
run: flowey e 15 flowey_lib_common::cache 6
shell: bash
- name: installing gh
run: flowey e 15 flowey_lib_common::download_gh_cli 1
shell: bash
- run: ${{ secrets.OPENVMM_CLIENT_ID }}
shell: flowey v 15 'flowey_lib_hvlite::_jobs::cfg_gh_azure_login:0:flowey_lib_hvlite/src/_jobs/cfg_gh_azure_login.rs:36:29' --is-secret --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'secrets.OPENVMM_CLIENT_ID'
- run: ${{ secrets.OPENVMM_TENANT_ID }}
shell: flowey v 15 'flowey_lib_hvlite::_jobs::cfg_gh_azure_login:1:flowey_lib_hvlite/src/_jobs/cfg_gh_azure_login.rs:37:29' --is-secret --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'secrets.OPENVMM_TENANT_ID'
- run: ${{ secrets.OPENVMM_SUBSCRIPTION_ID }}
shell: flowey v 15 'flowey_lib_hvlite::_jobs::cfg_gh_azure_login:2:flowey_lib_hvlite/src/_jobs/cfg_gh_azure_login.rs:38:35' --is-secret --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'secrets.OPENVMM_SUBSCRIPTION_ID'
- name: Create OpenIDConnect Credentials
run: flowey e 15 flowey_lib_hvlite::_jobs::cfg_gh_azure_login 3
shell: bash
- name: Read Azure Login Credentials
run: flowey e 15 flowey_lib_common::gh_task_azure_login 0
shell: bash
- run: |
flowey v 15 'flowey_lib_common::gh_task_azure_login:0:flowey_lib_common/src/gh_task_azure_login.rs:53:48' --is-secret --write-to-gh-env floweyvar1 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar1'
- run: |
flowey v 15 'flowey_lib_common::gh_task_azure_login:2:flowey_lib_common/src/gh_task_azure_login.rs:55:60' --is-secret --write-to-gh-env floweyvar2 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar2'
- run: |
flowey v 15 'flowey_lib_common::gh_task_azure_login:1:flowey_lib_common/src/gh_task_azure_login.rs:54:48' --is-secret --write-to-gh-env floweyvar3 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar3'
- id: flowey_lib_common__gh_task_azure_login__1
uses: Azure/login@v2
with:
client-id: ${{ env.floweyvar1 }}
subscription-id: ${{ env.floweyvar2 }}
tenant-id: ${{ env.floweyvar3 }}
name: Azure Login
- name: installing azure-cli
run: flowey e 15 flowey_lib_common::install_azure_cli 0
shell: bash
- name: Downloading secrets from key vault HvLite-PATs
run: flowey e 15 flowey_lib_common::gh_download_azure_key_vault_secret 0
shell: bash
- name: setup gh cli
run: flowey e 15 flowey_lib_common::use_gh_cli 0
shell: bash
- name: download artifacts from github releases
run: flowey e 15 flowey_lib_common::download_gh_release 1
shell: bash
- name: unpack openvmm-deps archive
run: flowey e 15 flowey_lib_hvlite::download_openvmm_deps 0
shell: bash
- name: extract X64 sysroot.tar.gz
run: flowey e 15 flowey_lib_hvlite::init_openvmm_magicpath_openhcl_sysroot 1
shell: bash
- name: unpack Microsoft.WSL.LxUtil.x64.zip
run: flowey e 15 flowey_lib_hvlite::download_lxutil 0
shell: bash
- name: unpack Microsoft.WSL.LxUtil.AARCH64.zip
run: flowey e 15 flowey_lib_hvlite::download_lxutil 1
shell: bash
- name: move lxutil.dll into its magic folder
run: flowey e 15 flowey_lib_hvlite::init_openvmm_magicpath_lxutil 0
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::download_protoc 0
shell: bash
- name: symlink protoc
run: flowey e 15 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
shell: bash
- name: cargo build xtask
run: flowey e 15 flowey_lib_common::run_cargo_build 1
shell: bash
- name: ๐ŸŒผ write_into Var
run: 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
shell: bash
- name: reporting split debug info
run: flowey e 15 flowey_lib_hvlite::run_cargo_build 1
shell: bash
- name: report built xtask
run: 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 1
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 1
shell: bash
- name: extract Aarch64 sysroot.tar.gz
run: flowey e 15 flowey_lib_hvlite::init_openvmm_magicpath_openhcl_sysroot 0
shell: bash
- name: cargo build xtask
run: flowey e 15 flowey_lib_common::run_cargo_build 2
shell: bash
- name: ๐ŸŒผ write_into Var
run: 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 2
shell: bash
- name: reporting split debug info
run: flowey e 15 flowey_lib_hvlite::run_cargo_build 3
shell: bash
- name: report built xtask
run: flowey e 15 flowey_lib_hvlite::build_xtask 1
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 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 4
shell: bash
- name: create cargo-nextest cache dir
run: flowey e 15 flowey_lib_common::download_cargo_nextest 0
shell: bash
- name: Pre-processing cache vars
run: flowey e 15 flowey_lib_common::cache 0
shell: bash
- run: |
flowey v 15 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar5 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar5'
- run: |
flowey v 15 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar6 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar6'
- id: flowey_lib_common__cache__1
uses: actions/cache@v4
with:
key: ${{ env.floweyvar5 }}
path: ${{ env.floweyvar6 }}
name: 'Restore cache: cargo-nextest'
- run: ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
shell: flowey v 15 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:509:46' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'steps.flowey_lib_common__cache__1.outputs.cache-hit'
- name: map Github cache-hit to flowey
run: flowey e 15 flowey_lib_common::cache 2
shell: bash
- name: report cargo install persistent dir
run: flowey e 15 flowey_lib_common::cfg_persistent_dir_cargo_install 0
shell: bash
- name: report $CARGO_HOME
run: flowey e 15 flowey_lib_common::install_rust 2
shell: bash
- name: installing cargo-nextest
run: flowey e 15 flowey_lib_common::download_cargo_nextest 1
shell: bash
- name: cargo build xtask
run: flowey e 15 flowey_lib_common::run_cargo_build 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 15 flowey_lib_hvlite::run_cargo_build 4
shell: bash
- name: split debug symbols
run: flowey e 15 flowey_lib_hvlite::run_split_debug_info 0
shell: bash
- name: reporting split debug info
run: flowey e 15 flowey_lib_hvlite::run_cargo_build 5
shell: bash
- name: report built xtask
run: flowey e 15 flowey_lib_hvlite::build_xtask 2
shell: bash
- name: determine unit test exclusions
run: flowey e 15 flowey_lib_hvlite::build_nextest_unit_tests 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 15 flowey_lib_hvlite::run_cargo_nextest_run 0
shell: bash
- name: run 'unit-tests' nextest tests
run: flowey e 15 flowey_lib_common::run_cargo_nextest_run 0
shell: bash
- name: checking for crash dumps
run: flowey e 15 flowey_lib_common::run_cargo_nextest_run 1
shell: bash
- name: write results
run: flowey e 15 flowey_lib_common::run_cargo_nextest_run 2
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 15 flowey_lib_hvlite::_jobs::build_and_run_nextest_unit_tests 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 15 flowey_lib_common::junit_publish_test_results 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 15 flowey_lib_common::junit_publish_test_results 1
shell: bash
- run: |
flowey v 15 'flowey_lib_common::junit_publish_test_results:0:flowey_lib_common/src/junit_publish_test_results.rs:103:46' --write-to-gh-env FLOWEY_CONDITION
shell: bash
name: ๐ŸŒผโ“ Write to 'FLOWEY_CONDITION'
- run: |
flowey v 15 'flowey_lib_common::junit_publish_test_results:2:flowey_lib_common/src/junit_publish_test_results.rs:104:42' --write-to-gh-env floweyvar11 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar11'
if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
- id: flowey_lib_common__junit_publish_test_results__2
uses: actions/upload-artifact@v4
with:
name: x64-linux-musl-unit-tests
path: ${{ env.floweyvar11 }}
name: 'publish JUnit test results: x64-linux-musl-unit-tests'
if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
- name: report test results to overall pipeline status
run: flowey e 15 flowey_lib_hvlite::_jobs::build_and_run_nextest_unit_tests 1
shell: bash
- name: 'validate cache entry: cargo-nextest'
run: flowey e 15 flowey_lib_common::cache 3
shell: bash
- name: 'validate cache entry: gh-cli'
run: flowey e 15 flowey_lib_common::cache 7
shell: bash
- name: 'validate cache entry: gh-release-download'
run: flowey e 15 flowey_lib_common::cache 11
shell: bash
job16:
name: run vmm-tests [x64-windows-intel]
runs-on:
- self-hosted
- 1ES.Pool=HvLite-GitHub-Win-Pool-Intel-WestUS3
- 1ES.ImageOverride=HvLite-CI-Win-Ge-Image-256GB
permissions:
contents: read
id-token: write
needs:
- job12
- job12
- job10
- job8
- job8
- job8
steps:
- name: ๐ŸŒผ๐Ÿฅพ Download bootstrapped flowey
uses: actions/download-artifact@v4
with:
name: _internal-flowey-bootstrap-x86_64-windows-uid-9
path: ${{ runner.temp }}/bootstrapped-flowey
- name: ๐ŸŒผ๐Ÿ“ฆ Download x64-guest_test_uefi
uses: actions/download-artifact@v4
with:
name: x64-guest_test_uefi
path: ${{ runner.temp }}/used_artifacts/x64-guest_test_uefi/
- name: ๐ŸŒผ๐Ÿ“ฆ Download x64-linux-musl-pipette
uses: actions/download-artifact@v4
with:
name: x64-linux-musl-pipette
path: ${{ runner.temp }}/used_artifacts/x64-linux-musl-pipette/
- name: ๐ŸŒผ๐Ÿ“ฆ Download x64-openhcl-igvm
uses: actions/download-artifact@v4
with:
name: x64-openhcl-igvm
path: ${{ runner.temp }}/used_artifacts/x64-openhcl-igvm/
- name: ๐ŸŒผ๐Ÿ“ฆ Download x64-windows-openvmm
uses: actions/download-artifact@v4
with:
name: x64-windows-openvmm
path: ${{ runner.temp }}/used_artifacts/x64-windows-openvmm/
- name: ๐ŸŒผ๐Ÿ“ฆ Download x64-windows-pipette
uses: actions/download-artifact@v4
with:
name: x64-windows-pipette
path: ${{ runner.temp }}/used_artifacts/x64-windows-pipette/
- name: ๐ŸŒผ๐Ÿ“ฆ Download x64-windows-vmm-tests-archive
uses: actions/download-artifact@v4
with:
name: x64-windows-vmm-tests-archive
path: ${{ runner.temp }}/used_artifacts/x64-windows-vmm-tests-archive/
- run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $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/bootstrapped-flowey/flowey.exe
echo '"debug"' | flowey.exe v 16 'FLOWEY_LOG' --update-from-stdin
echo "${{ runner.temp }}/work" | flowey.exe v 16 '_internal_WORKING_DIR' --update-from-stdin --is-raw-string
cat <<'EOF' | flowey.exe v 16 'param0' --update-from-stdin
${{ inputs.param0 != '' && inputs.param0 || 'false' }}
EOF
echo "${{ runner.temp }}\\used_artifacts\\x64-guest_test_uefi" | flowey.exe v 16 'artifact_use_from_x64-guest_test_uefi' --update-from-stdin --is-raw-string
echo "${{ runner.temp }}\\used_artifacts\\x64-linux-musl-pipette" | flowey.exe v 16 'artifact_use_from_x64-linux-musl-pipette' --update-from-stdin --is-raw-string
echo "${{ runner.temp }}\\used_artifacts\\x64-openhcl-igvm" | flowey.exe v 16 'artifact_use_from_x64-openhcl-igvm' --update-from-stdin --is-raw-string
echo "${{ runner.temp }}\\used_artifacts\\x64-windows-openvmm" | flowey.exe v 16 'artifact_use_from_x64-windows-openvmm' --update-from-stdin --is-raw-string
echo "${{ runner.temp }}\\used_artifacts\\x64-windows-pipette" | flowey.exe v 16 'artifact_use_from_x64-windows-pipette' --update-from-stdin --is-raw-string
echo "${{ runner.temp }}\\used_artifacts\\x64-windows-vmm-tests-archive" | flowey.exe v 16 'artifact_use_from_x64-windows-vmm-tests-archive' --update-from-stdin --is-raw-string
shell: bash
- name: create cargo-nextest cache dir
run: flowey.exe e 16 flowey_lib_common::download_cargo_nextest 0
shell: bash
- name: Pre-processing cache vars
run: flowey.exe e 16 flowey_lib_common::cache 4
shell: bash
- run: |
flowey.exe v 16 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar8 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar8'
- run: |
flowey.exe v 16 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar9 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar9'
- id: flowey_lib_common__cache__5
uses: actions/cache@v4
with:
key: ${{ env.floweyvar8 }}
path: ${{ env.floweyvar9 }}
name: 'Restore cache: cargo-nextest'
- run: ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
shell: flowey.exe v 16 'flowey_lib_common::cache:12:flowey_lib_common/src/cache.rs:509:46' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'steps.flowey_lib_common__cache__5.outputs.cache-hit'
- name: map Github cache-hit to flowey
run: flowey.exe e 16 flowey_lib_common::cache 6
shell: bash
- name: installing cargo-nextest
run: flowey.exe e 16 flowey_lib_common::download_cargo_nextest 1
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 12
shell: bash
- run: |
flowey.exe v 16 'flowey_lib_common::cache:26:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar12 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar12'
- run: |
flowey.exe v 16 'flowey_lib_common::cache:25:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar13 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar13'
- id: flowey_lib_common__cache__13
uses: actions/cache@v4
with:
key: ${{ env.floweyvar12 }}
path: ${{ env.floweyvar13 }}
name: 'Restore cache: gh-release-download'
- run: ${{ steps.flowey_lib_common__cache__13.outputs.cache-hit }}
shell: flowey.exe v 16 'flowey_lib_common::cache:28:flowey_lib_common/src/cache.rs:509:46' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'steps.flowey_lib_common__cache__13.outputs.cache-hit'
- name: map Github cache-hit to flowey
run: flowey.exe e 16 flowey_lib_common::cache 14
shell: bash
- name: create gh cache dir
run: flowey.exe e 16 flowey_lib_common::download_gh_cli 0
shell: bash
- name: Pre-processing cache vars
run: flowey.exe e 16 flowey_lib_common::cache 8
shell: bash
- run: |
flowey.exe v 16 'flowey_lib_common::cache:18:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar10 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar10'
- run: |
flowey.exe v 16 'flowey_lib_common::cache:17:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar11 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar11'
- id: flowey_lib_common__cache__9
uses: actions/cache@v4
with:
key: ${{ env.floweyvar10 }}
path: ${{ env.floweyvar11 }}
name: 'Restore cache: gh-cli'
- run: ${{ steps.flowey_lib_common__cache__9.outputs.cache-hit }}
shell: flowey.exe v 16 'flowey_lib_common::cache:20:flowey_lib_common/src/cache.rs:509:46' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'steps.flowey_lib_common__cache__9.outputs.cache-hit'
- name: map Github cache-hit to flowey
run: flowey.exe e 16 flowey_lib_common::cache 10
shell: bash
- name: installing gh
run: flowey.exe e 16 flowey_lib_common::download_gh_cli 1
shell: bash
- run: ${{ secrets.OPENVMM_CLIENT_ID }}
shell: flowey.exe v 16 'flowey_lib_hvlite::_jobs::cfg_gh_azure_login:0:flowey_lib_hvlite/src/_jobs/cfg_gh_azure_login.rs:36:29' --is-secret --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'secrets.OPENVMM_CLIENT_ID'
- run: ${{ secrets.OPENVMM_TENANT_ID }}
shell: flowey.exe v 16 'flowey_lib_hvlite::_jobs::cfg_gh_azure_login:1:flowey_lib_hvlite/src/_jobs/cfg_gh_azure_login.rs:37:29' --is-secret --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'secrets.OPENVMM_TENANT_ID'
- run: ${{ secrets.OPENVMM_SUBSCRIPTION_ID }}
shell: flowey.exe v 16 'flowey_lib_hvlite::_jobs::cfg_gh_azure_login:2:flowey_lib_hvlite/src/_jobs/cfg_gh_azure_login.rs:38:35' --is-secret --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'secrets.OPENVMM_SUBSCRIPTION_ID'
- name: Create OpenIDConnect Credentials
run: flowey.exe e 16 flowey_lib_hvlite::_jobs::cfg_gh_azure_login 3
shell: bash
- name: Read Azure Login Credentials
run: flowey.exe e 16 flowey_lib_common::gh_task_azure_login 0
shell: bash
- run: |
flowey.exe v 16 'flowey_lib_common::gh_task_azure_login:0:flowey_lib_common/src/gh_task_azure_login.rs:53:48' --is-secret --write-to-gh-env floweyvar3 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar3'
- run: |
flowey.exe v 16 'flowey_lib_common::gh_task_azure_login:2:flowey_lib_common/src/gh_task_azure_login.rs:55:60' --is-secret --write-to-gh-env floweyvar4 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar4'
- run: |
flowey.exe v 16 'flowey_lib_common::gh_task_azure_login:1:flowey_lib_common/src/gh_task_azure_login.rs:54:48' --is-secret --write-to-gh-env floweyvar5 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar5'
- id: flowey_lib_common__gh_task_azure_login__1
uses: Azure/login@v2
with:
client-id: ${{ env.floweyvar3 }}
subscription-id: ${{ env.floweyvar4 }}
tenant-id: ${{ env.floweyvar5 }}
name: Azure Login
- name: installing azure-cli
run: flowey.exe e 16 flowey_lib_common::install_azure_cli 0
shell: bash
- name: Downloading secrets from key vault HvLite-PATs
run: flowey.exe e 16 flowey_lib_common::gh_download_azure_key_vault_secret 0
shell: bash
- name: setup gh cli
run: flowey.exe e 16 flowey_lib_common::use_gh_cli 0
shell: bash
- name: download artifacts from github releases
run: flowey.exe e 16 flowey_lib_common::download_gh_release 1
shell: bash
- name: unpack mu_msvm package (x64)
run: flowey.exe e 16 flowey_lib_hvlite::download_uefi_mu_msvm 0
shell: bash
- name: check if hvlite needs to be cloned
run: flowey.exe e 16 flowey_lib_common::git_checkout 0
shell: bash
- run: |
flowey.exe v 16 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:469:46' --write-to-gh-env FLOWEY_CONDITION
shell: bash
name: ๐ŸŒผโ“ Write to 'FLOWEY_CONDITION'
- run: |
flowey.exe v 16 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:468:80' --write-to-gh-env floweyvar2 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar2'
if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
- id: flowey_lib_common__git_checkout__1
uses: actions/checkout@v4
with:
fetch-depth: '1'
path: repo0
persist-credentials: ${{ env.floweyvar2 }}
name: checkout repo hvlite
if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
- run: ${{ github.workspace }}
shell: flowey.exe v 16 'flowey_lib_common::git_checkout:4:flowey_lib_common/src/git_checkout.rs:523:31' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'github.workspace'
- name: report cloned repo directories
run: flowey.exe e 16 flowey_lib_common::git_checkout 3
shell: bash
- name: resolve OpenVMM repo requests
run: flowey.exe e 16 flowey_lib_hvlite::git_checkout_openvmm_repo 0
shell: bash
- name: report openvmm magicpath dir
run: flowey.exe e 16 flowey_lib_hvlite::cfg_openvmm_magicpath 0
shell: bash
- name: move MSVM.fd into its magic folder
run: flowey.exe e 16 flowey_lib_hvlite::init_openvmm_magicpath_uefi_mu_msvm 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey.exe e 16 flowey_lib_hvlite::run_cargo_nextest_run 0
shell: bash
- name: creating new test content dir
run: flowey.exe e 16 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 0
shell: bash
- name: resolve openvmm artifact
run: flowey.exe e 16 flowey_lib_hvlite::artifact_openvmm::resolve 0
shell: bash
- name: resolve pipette artifact
run: flowey.exe e 16 flowey_lib_hvlite::artifact_pipette::resolve 1
shell: bash
- name: resolve pipette artifact
run: flowey.exe e 16 flowey_lib_hvlite::artifact_pipette::resolve 0
shell: bash
- name: resolve guest_test_uefi artifact
run: flowey.exe e 16 flowey_lib_hvlite::artifact_guest_test_uefi::resolve 0
shell: bash
- name: resolve OpenHCL igvm artifact
run: flowey.exe e 16 flowey_lib_hvlite::artifact_openhcl_igvm_from_recipe::resolve 0
shell: bash
- name: create azcopy cache dir
run: flowey.exe e 16 flowey_lib_common::download_azcopy 0
shell: bash
- name: Pre-processing cache vars
run: flowey.exe e 16 flowey_lib_common::cache 0
shell: bash
- run: |
flowey.exe v 16 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar6 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar6'
- run: |
flowey.exe v 16 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar7 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar7'
- id: flowey_lib_common__cache__1
uses: actions/cache@v4
with:
key: ${{ env.floweyvar6 }}
path: ${{ env.floweyvar7 }}
name: 'Restore cache: azcopy'
- run: ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
shell: flowey.exe v 16 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:509:46' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'steps.flowey_lib_common__cache__1.outputs.cache-hit'
- name: map Github cache-hit to flowey
run: flowey.exe e 16 flowey_lib_common::cache 2
shell: bash
- name: installing azcopy
run: flowey.exe e 16 flowey_lib_common::download_azcopy 1
shell: bash
- name: calculating required VMM tests disk images
run: flowey.exe e 16 flowey_lib_hvlite::download_openvmm_vmm_tests_vhds 0
shell: bash
- name: downloading VMM test disk images
run: flowey.exe e 16 flowey_lib_hvlite::download_openvmm_vmm_tests_vhds 1
shell: bash
- name: report downloaded VMM test disk images
run: flowey.exe e 16 flowey_lib_hvlite::download_openvmm_vmm_tests_vhds 2
shell: bash
- name: unpack openvmm-deps archive
run: flowey.exe e 16 flowey_lib_hvlite::download_openvmm_deps 0
shell: bash
- name: setting up vmm_tests env
run: flowey.exe e 16 flowey_lib_hvlite::init_vmm_tests_env 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey.exe e 16 flowey_lib_hvlite::run_cargo_nextest_run 1
shell: bash
- name: resolve vmm tests archive artifact
run: flowey.exe e 16 flowey_lib_hvlite::artifact_nextest_vmm_tests_archive::resolve 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey.exe e 16 flowey_lib_hvlite::test_nextest_vmm_tests_archive 0
shell: bash
- name: run 'vmm_tests' nextest tests
run: flowey.exe e 16 flowey_lib_common::run_cargo_nextest_run 0
shell: bash
- name: checking for crash dumps
run: flowey.exe e 16 flowey_lib_common::run_cargo_nextest_run 1
shell: bash
- name: write results
run: flowey.exe e 16 flowey_lib_common::run_cargo_nextest_run 2
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey.exe e 16 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 1
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey.exe e 16 flowey_lib_common::junit_publish_test_results 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey.exe e 16 flowey_lib_common::junit_publish_test_results 1
shell: bash
- run: |
flowey.exe v 16 'flowey_lib_common::junit_publish_test_results:0:flowey_lib_common/src/junit_publish_test_results.rs:103:46' --write-to-gh-env FLOWEY_CONDITION
shell: bash
name: ๐ŸŒผโ“ Write to 'FLOWEY_CONDITION'
- run: |
flowey.exe v 16 'flowey_lib_common::junit_publish_test_results:2:flowey_lib_common/src/junit_publish_test_results.rs:104:42' --write-to-gh-env floweyvar1 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar1'
if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
- id: flowey_lib_common__junit_publish_test_results__2
uses: actions/upload-artifact@v4
with:
name: x64-windows-intel-vmm-tests
path: ${{ env.floweyvar1 }}
name: 'publish JUnit test results: x64-windows-intel-vmm-tests'
if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
- name: report test results to overall pipeline status
run: flowey.exe e 16 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 2
shell: bash
- name: 'validate cache entry: gh-release-download'
run: flowey.exe e 16 flowey_lib_common::cache 15
shell: bash
- name: 'validate cache entry: azcopy'
run: flowey.exe e 16 flowey_lib_common::cache 3
shell: bash
- name: 'validate cache entry: cargo-nextest'
run: flowey.exe e 16 flowey_lib_common::cache 7
shell: bash
- name: 'validate cache entry: gh-cli'
run: flowey.exe e 16 flowey_lib_common::cache 11
shell: bash
job17:
name: run vmm-tests [x64-windows-amd]
runs-on:
- self-hosted
- 1ES.Pool=HvLite-GitHub-Win-Pool-WestUS3
- 1ES.ImageOverride=HvLite-CI-Win-Ge-Image-256GB
permissions:
contents: read
id-token: write
needs:
- job12
- job12
- job10
- job8
- job8
- job8
steps:
- name: ๐ŸŒผ๐Ÿฅพ Download bootstrapped flowey
uses: actions/download-artifact@v4
with:
name: _internal-flowey-bootstrap-x86_64-windows-uid-9
path: ${{ runner.temp }}/bootstrapped-flowey
- name: ๐ŸŒผ๐Ÿ“ฆ Download x64-guest_test_uefi
uses: actions/download-artifact@v4
with:
name: x64-guest_test_uefi
path: ${{ runner.temp }}/used_artifacts/x64-guest_test_uefi/
- name: ๐ŸŒผ๐Ÿ“ฆ Download x64-linux-musl-pipette
uses: actions/download-artifact@v4
with:
name: x64-linux-musl-pipette
path: ${{ runner.temp }}/used_artifacts/x64-linux-musl-pipette/
- name: ๐ŸŒผ๐Ÿ“ฆ Download x64-openhcl-igvm
uses: actions/download-artifact@v4
with:
name: x64-openhcl-igvm
path: ${{ runner.temp }}/used_artifacts/x64-openhcl-igvm/
- name: ๐ŸŒผ๐Ÿ“ฆ Download x64-windows-openvmm
uses: actions/download-artifact@v4
with:
name: x64-windows-openvmm
path: ${{ runner.temp }}/used_artifacts/x64-windows-openvmm/
- name: ๐ŸŒผ๐Ÿ“ฆ Download x64-windows-pipette
uses: actions/download-artifact@v4
with:
name: x64-windows-pipette
path: ${{ runner.temp }}/used_artifacts/x64-windows-pipette/
- name: ๐ŸŒผ๐Ÿ“ฆ Download x64-windows-vmm-tests-archive
uses: actions/download-artifact@v4
with:
name: x64-windows-vmm-tests-archive
path: ${{ runner.temp }}/used_artifacts/x64-windows-vmm-tests-archive/
- run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $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/bootstrapped-flowey/flowey.exe
echo '"debug"' | flowey.exe v 17 'FLOWEY_LOG' --update-from-stdin
echo "${{ runner.temp }}/work" | flowey.exe v 17 '_internal_WORKING_DIR' --update-from-stdin --is-raw-string
cat <<'EOF' | flowey.exe v 17 'param0' --update-from-stdin
${{ inputs.param0 != '' && inputs.param0 || 'false' }}
EOF
echo "${{ runner.temp }}\\used_artifacts\\x64-guest_test_uefi" | flowey.exe v 17 'artifact_use_from_x64-guest_test_uefi' --update-from-stdin --is-raw-string
echo "${{ runner.temp }}\\used_artifacts\\x64-linux-musl-pipette" | flowey.exe v 17 'artifact_use_from_x64-linux-musl-pipette' --update-from-stdin --is-raw-string
echo "${{ runner.temp }}\\used_artifacts\\x64-openhcl-igvm" | flowey.exe v 17 'artifact_use_from_x64-openhcl-igvm' --update-from-stdin --is-raw-string
echo "${{ runner.temp }}\\used_artifacts\\x64-windows-openvmm" | flowey.exe v 17 'artifact_use_from_x64-windows-openvmm' --update-from-stdin --is-raw-string
echo "${{ runner.temp }}\\used_artifacts\\x64-windows-pipette" | flowey.exe v 17 'artifact_use_from_x64-windows-pipette' --update-from-stdin --is-raw-string
echo "${{ runner.temp }}\\used_artifacts\\x64-windows-vmm-tests-archive" | flowey.exe v 17 'artifact_use_from_x64-windows-vmm-tests-archive' --update-from-stdin --is-raw-string
shell: bash
- name: create cargo-nextest cache dir
run: flowey.exe e 17 flowey_lib_common::download_cargo_nextest 0
shell: bash
- name: Pre-processing cache vars
run: flowey.exe e 17 flowey_lib_common::cache 4
shell: bash
- run: |
flowey.exe v 17 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar8 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar8'
- run: |
flowey.exe v 17 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar9 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar9'
- id: flowey_lib_common__cache__5
uses: actions/cache@v4
with:
key: ${{ env.floweyvar8 }}
path: ${{ env.floweyvar9 }}
name: 'Restore cache: cargo-nextest'
- run: ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
shell: flowey.exe v 17 'flowey_lib_common::cache:12:flowey_lib_common/src/cache.rs:509:46' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'steps.flowey_lib_common__cache__5.outputs.cache-hit'
- name: map Github cache-hit to flowey
run: flowey.exe e 17 flowey_lib_common::cache 6
shell: bash
- name: installing cargo-nextest
run: flowey.exe e 17 flowey_lib_common::download_cargo_nextest 1
shell: bash
- name: create gh-release-download cache dir
run: flowey.exe e 17 flowey_lib_common::download_gh_release 0
shell: bash
- name: Pre-processing cache vars
run: flowey.exe e 17 flowey_lib_common::cache 12
shell: bash
- run: |
flowey.exe v 17 'flowey_lib_common::cache:26:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar12 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar12'
- run: |
flowey.exe v 17 'flowey_lib_common::cache:25:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar13 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar13'
- id: flowey_lib_common__cache__13
uses: actions/cache@v4
with:
key: ${{ env.floweyvar12 }}
path: ${{ env.floweyvar13 }}
name: 'Restore cache: gh-release-download'
- run: ${{ steps.flowey_lib_common__cache__13.outputs.cache-hit }}
shell: flowey.exe v 17 'flowey_lib_common::cache:28:flowey_lib_common/src/cache.rs:509:46' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'steps.flowey_lib_common__cache__13.outputs.cache-hit'
- name: map Github cache-hit to flowey
run: flowey.exe e 17 flowey_lib_common::cache 14
shell: bash
- name: create gh cache dir
run: flowey.exe e 17 flowey_lib_common::download_gh_cli 0
shell: bash
- name: Pre-processing cache vars
run: flowey.exe e 17 flowey_lib_common::cache 8
shell: bash
- run: |
flowey.exe v 17 'flowey_lib_common::cache:18:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar10 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar10'
- run: |
flowey.exe v 17 'flowey_lib_common::cache:17:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar11 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar11'
- id: flowey_lib_common__cache__9
uses: actions/cache@v4
with:
key: ${{ env.floweyvar10 }}
path: ${{ env.floweyvar11 }}
name: 'Restore cache: gh-cli'
- run: ${{ steps.flowey_lib_common__cache__9.outputs.cache-hit }}
shell: flowey.exe v 17 'flowey_lib_common::cache:20:flowey_lib_common/src/cache.rs:509:46' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'steps.flowey_lib_common__cache__9.outputs.cache-hit'
- name: map Github cache-hit to flowey
run: flowey.exe e 17 flowey_lib_common::cache 10
shell: bash
- name: installing gh
run: flowey.exe e 17 flowey_lib_common::download_gh_cli 1
shell: bash
- run: ${{ secrets.OPENVMM_CLIENT_ID }}
shell: flowey.exe v 17 'flowey_lib_hvlite::_jobs::cfg_gh_azure_login:0:flowey_lib_hvlite/src/_jobs/cfg_gh_azure_login.rs:36:29' --is-secret --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'secrets.OPENVMM_CLIENT_ID'
- run: ${{ secrets.OPENVMM_TENANT_ID }}
shell: flowey.exe v 17 'flowey_lib_hvlite::_jobs::cfg_gh_azure_login:1:flowey_lib_hvlite/src/_jobs/cfg_gh_azure_login.rs:37:29' --is-secret --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'secrets.OPENVMM_TENANT_ID'
- run: ${{ secrets.OPENVMM_SUBSCRIPTION_ID }}
shell: flowey.exe v 17 'flowey_lib_hvlite::_jobs::cfg_gh_azure_login:2:flowey_lib_hvlite/src/_jobs/cfg_gh_azure_login.rs:38:35' --is-secret --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'secrets.OPENVMM_SUBSCRIPTION_ID'
- name: Create OpenIDConnect Credentials
run: flowey.exe e 17 flowey_lib_hvlite::_jobs::cfg_gh_azure_login 3
shell: bash
- name: Read Azure Login Credentials
run: flowey.exe e 17 flowey_lib_common::gh_task_azure_login 0
shell: bash
- run: |
flowey.exe v 17 'flowey_lib_common::gh_task_azure_login:0:flowey_lib_common/src/gh_task_azure_login.rs:53:48' --is-secret --write-to-gh-env floweyvar3 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar3'
- run: |
flowey.exe v 17 'flowey_lib_common::gh_task_azure_login:2:flowey_lib_common/src/gh_task_azure_login.rs:55:60' --is-secret --write-to-gh-env floweyvar4 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar4'
- run: |
flowey.exe v 17 'flowey_lib_common::gh_task_azure_login:1:flowey_lib_common/src/gh_task_azure_login.rs:54:48' --is-secret --write-to-gh-env floweyvar5 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar5'
- id: flowey_lib_common__gh_task_azure_login__1
uses: Azure/login@v2
with:
client-id: ${{ env.floweyvar3 }}
subscription-id: ${{ env.floweyvar4 }}
tenant-id: ${{ env.floweyvar5 }}
name: Azure Login
- name: installing azure-cli
run: flowey.exe e 17 flowey_lib_common::install_azure_cli 0
shell: bash
- name: Downloading secrets from key vault HvLite-PATs
run: flowey.exe e 17 flowey_lib_common::gh_download_azure_key_vault_secret 0
shell: bash
- name: setup gh cli
run: flowey.exe e 17 flowey_lib_common::use_gh_cli 0
shell: bash
- name: download artifacts from github releases
run: flowey.exe e 17 flowey_lib_common::download_gh_release 1
shell: bash
- name: unpack mu_msvm package (x64)
run: flowey.exe e 17 flowey_lib_hvlite::download_uefi_mu_msvm 0
shell: bash
- name: check if hvlite needs to be cloned
run: flowey.exe e 17 flowey_lib_common::git_checkout 0
shell: bash
- run: |
flowey.exe v 17 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:469:46' --write-to-gh-env FLOWEY_CONDITION
shell: bash
name: ๐ŸŒผโ“ Write to 'FLOWEY_CONDITION'
- run: |
flowey.exe v 17 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:468:80' --write-to-gh-env floweyvar2 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar2'
if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
- id: flowey_lib_common__git_checkout__1
uses: actions/checkout@v4
with:
fetch-depth: '1'
path: repo0
persist-credentials: ${{ env.floweyvar2 }}
name: checkout repo hvlite
if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
- run: ${{ github.workspace }}
shell: flowey.exe v 17 'flowey_lib_common::git_checkout:4:flowey_lib_common/src/git_checkout.rs:523:31' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'github.workspace'
- name: report cloned repo directories
run: flowey.exe e 17 flowey_lib_common::git_checkout 3
shell: bash
- name: resolve OpenVMM repo requests
run: flowey.exe e 17 flowey_lib_hvlite::git_checkout_openvmm_repo 0
shell: bash
- name: report openvmm magicpath dir
run: flowey.exe e 17 flowey_lib_hvlite::cfg_openvmm_magicpath 0
shell: bash
- name: move MSVM.fd into its magic folder
run: flowey.exe e 17 flowey_lib_hvlite::init_openvmm_magicpath_uefi_mu_msvm 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey.exe e 17 flowey_lib_hvlite::run_cargo_nextest_run 0
shell: bash
- name: creating new test content dir
run: flowey.exe e 17 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 0
shell: bash
- name: resolve openvmm artifact
run: flowey.exe e 17 flowey_lib_hvlite::artifact_openvmm::resolve 0
shell: bash
- name: resolve pipette artifact
run: flowey.exe e 17 flowey_lib_hvlite::artifact_pipette::resolve 1
shell: bash
- name: resolve pipette artifact
run: flowey.exe e 17 flowey_lib_hvlite::artifact_pipette::resolve 0
shell: bash
- name: resolve guest_test_uefi artifact
run: flowey.exe e 17 flowey_lib_hvlite::artifact_guest_test_uefi::resolve 0
shell: bash
- name: resolve OpenHCL igvm artifact
run: flowey.exe e 17 flowey_lib_hvlite::artifact_openhcl_igvm_from_recipe::resolve 0
shell: bash
- name: create azcopy cache dir
run: flowey.exe e 17 flowey_lib_common::download_azcopy 0
shell: bash
- name: Pre-processing cache vars
run: flowey.exe e 17 flowey_lib_common::cache 0
shell: bash
- run: |
flowey.exe v 17 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar6 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar6'
- run: |
flowey.exe v 17 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar7 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar7'
- id: flowey_lib_common__cache__1
uses: actions/cache@v4
with:
key: ${{ env.floweyvar6 }}
path: ${{ env.floweyvar7 }}
name: 'Restore cache: azcopy'
- run: ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
shell: flowey.exe v 17 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:509:46' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'steps.flowey_lib_common__cache__1.outputs.cache-hit'
- name: map Github cache-hit to flowey
run: flowey.exe e 17 flowey_lib_common::cache 2
shell: bash
- name: installing azcopy
run: flowey.exe e 17 flowey_lib_common::download_azcopy 1
shell: bash
- name: calculating required VMM tests disk images
run: flowey.exe e 17 flowey_lib_hvlite::download_openvmm_vmm_tests_vhds 0
shell: bash
- name: downloading VMM test disk images
run: flowey.exe e 17 flowey_lib_hvlite::download_openvmm_vmm_tests_vhds 1
shell: bash
- name: report downloaded VMM test disk images
run: flowey.exe e 17 flowey_lib_hvlite::download_openvmm_vmm_tests_vhds 2
shell: bash
- name: unpack openvmm-deps archive
run: flowey.exe e 17 flowey_lib_hvlite::download_openvmm_deps 0
shell: bash
- name: setting up vmm_tests env
run: flowey.exe e 17 flowey_lib_hvlite::init_vmm_tests_env 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey.exe e 17 flowey_lib_hvlite::run_cargo_nextest_run 1
shell: bash
- name: resolve vmm tests archive artifact
run: flowey.exe e 17 flowey_lib_hvlite::artifact_nextest_vmm_tests_archive::resolve 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey.exe e 17 flowey_lib_hvlite::test_nextest_vmm_tests_archive 0
shell: bash
- name: run 'vmm_tests' nextest tests
run: flowey.exe e 17 flowey_lib_common::run_cargo_nextest_run 0
shell: bash
- name: checking for crash dumps
run: flowey.exe e 17 flowey_lib_common::run_cargo_nextest_run 1
shell: bash
- name: write results
run: flowey.exe e 17 flowey_lib_common::run_cargo_nextest_run 2
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey.exe e 17 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 1
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey.exe e 17 flowey_lib_common::junit_publish_test_results 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey.exe e 17 flowey_lib_common::junit_publish_test_results 1
shell: bash
- run: |
flowey.exe v 17 'flowey_lib_common::junit_publish_test_results:0:flowey_lib_common/src/junit_publish_test_results.rs:103:46' --write-to-gh-env FLOWEY_CONDITION
shell: bash
name: ๐ŸŒผโ“ Write to 'FLOWEY_CONDITION'
- run: |
flowey.exe v 17 'flowey_lib_common::junit_publish_test_results:2:flowey_lib_common/src/junit_publish_test_results.rs:104:42' --write-to-gh-env floweyvar1 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar1'
if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
- id: flowey_lib_common__junit_publish_test_results__2
uses: actions/upload-artifact@v4
with:
name: x64-windows-amd-vmm-tests
path: ${{ env.floweyvar1 }}
name: 'publish JUnit test results: x64-windows-amd-vmm-tests'
if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
- name: report test results to overall pipeline status
run: flowey.exe e 17 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 2
shell: bash
- name: 'validate cache entry: gh-release-download'
run: flowey.exe e 17 flowey_lib_common::cache 15
shell: bash
- name: 'validate cache entry: azcopy'
run: flowey.exe e 17 flowey_lib_common::cache 3
shell: bash
- name: 'validate cache entry: cargo-nextest'
run: flowey.exe e 17 flowey_lib_common::cache 7
shell: bash
- name: 'validate cache entry: gh-cli'
run: flowey.exe e 17 flowey_lib_common::cache 11
shell: bash
job18:
name: run vmm-tests [x64-linux]
runs-on:
- self-hosted
- 1ES.Pool=HvLite-GitHub-Linux-Pool-WestUS3
permissions:
contents: read
id-token: write
needs:
- job12
- job10
- job10
- job8
- job10
steps:
- name: ๐ŸŒผ๐Ÿฅพ Download bootstrapped flowey
uses: actions/download-artifact@v4
with:
name: _internal-flowey-bootstrap-x86_64-linux-uid-5
path: ${{ runner.temp }}/bootstrapped-flowey
- name: ๐ŸŒผ๐Ÿ“ฆ Download x64-guest_test_uefi
uses: actions/download-artifact@v4
with:
name: x64-guest_test_uefi
path: ${{ runner.temp }}/used_artifacts/x64-guest_test_uefi/
- name: ๐ŸŒผ๐Ÿ“ฆ Download x64-linux-musl-pipette
uses: actions/download-artifact@v4
with:
name: x64-linux-musl-pipette
path: ${{ runner.temp }}/used_artifacts/x64-linux-musl-pipette/
- name: ๐ŸŒผ๐Ÿ“ฆ Download x64-linux-openvmm
uses: actions/download-artifact@v4
with:
name: x64-linux-openvmm
path: ${{ runner.temp }}/used_artifacts/x64-linux-openvmm/
- name: ๐ŸŒผ๐Ÿ“ฆ Download x64-linux-vmm-tests-archive
uses: actions/download-artifact@v4
with:
name: x64-linux-vmm-tests-archive
path: ${{ runner.temp }}/used_artifacts/x64-linux-vmm-tests-archive/
- name: ๐ŸŒผ๐Ÿ“ฆ Download x64-windows-pipette
uses: actions/download-artifact@v4
with:
name: x64-windows-pipette
path: ${{ runner.temp }}/used_artifacts/x64-windows-pipette/
- run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $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/bootstrapped-flowey/flowey
echo '"debug"' | flowey v 18 'FLOWEY_LOG' --update-from-stdin
echo "${{ runner.temp }}/work" | flowey v 18 '_internal_WORKING_DIR' --update-from-stdin --is-raw-string
cat <<'EOF' | flowey v 18 'param0' --update-from-stdin
${{ inputs.param0 != '' && inputs.param0 || 'false' }}
EOF
echo "$AgentTempDirNormal/used_artifacts/x64-guest_test_uefi" | flowey v 18 'artifact_use_from_x64-guest_test_uefi' --update-from-stdin --is-raw-string
echo "$AgentTempDirNormal/used_artifacts/x64-linux-musl-pipette" | flowey v 18 'artifact_use_from_x64-linux-musl-pipette' --update-from-stdin --is-raw-string
echo "$AgentTempDirNormal/used_artifacts/x64-linux-openvmm" | flowey v 18 'artifact_use_from_x64-linux-openvmm' --update-from-stdin --is-raw-string
echo "$AgentTempDirNormal/used_artifacts/x64-linux-vmm-tests-archive" | flowey v 18 'artifact_use_from_x64-linux-vmm-tests-archive' --update-from-stdin --is-raw-string
echo "$AgentTempDirNormal/used_artifacts/x64-windows-pipette" | flowey v 18 'artifact_use_from_x64-windows-pipette' --update-from-stdin --is-raw-string
shell: bash
- name: ensure /dev/kvm is accessible
run: flowey e 18 flowey_lib_hvlite::test_nextest_vmm_tests_archive 0
shell: bash
- name: create cargo-nextest cache dir
run: flowey e 18 flowey_lib_common::download_cargo_nextest 0
shell: bash
- name: Pre-processing cache vars
run: flowey e 18 flowey_lib_common::cache 4
shell: bash
- run: |
flowey v 18 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar8 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar8'
- run: |
flowey v 18 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar9 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar9'
- id: flowey_lib_common__cache__5
uses: actions/cache@v4
with:
key: ${{ env.floweyvar8 }}
path: ${{ env.floweyvar9 }}
name: 'Restore cache: cargo-nextest'
- run: ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
shell: flowey v 18 'flowey_lib_common::cache:12:flowey_lib_common/src/cache.rs:509:46' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'steps.flowey_lib_common__cache__5.outputs.cache-hit'
- name: map Github cache-hit to flowey
run: flowey e 18 flowey_lib_common::cache 6
shell: bash
- name: installing cargo-nextest
run: flowey e 18 flowey_lib_common::download_cargo_nextest 1
shell: bash
- name: checking if apt packages need to be installed
run: flowey e 18 flowey_lib_common::install_apt_pkg 0
shell: bash
- name: installing `apt` packages
run: flowey e 18 flowey_lib_common::install_apt_pkg 1
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 12
shell: bash
- run: |
flowey v 18 'flowey_lib_common::cache:26:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar12 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar12'
- run: |
flowey v 18 'flowey_lib_common::cache:25:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar13 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar13'
- id: flowey_lib_common__cache__13
uses: actions/cache@v4
with:
key: ${{ env.floweyvar12 }}
path: ${{ env.floweyvar13 }}
name: 'Restore cache: gh-release-download'
- run: ${{ steps.flowey_lib_common__cache__13.outputs.cache-hit }}
shell: flowey v 18 'flowey_lib_common::cache:28:flowey_lib_common/src/cache.rs:509:46' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'steps.flowey_lib_common__cache__13.outputs.cache-hit'
- name: map Github cache-hit to flowey
run: flowey e 18 flowey_lib_common::cache 14
shell: bash
- name: create gh cache dir
run: flowey e 18 flowey_lib_common::download_gh_cli 0
shell: bash
- name: Pre-processing cache vars
run: flowey e 18 flowey_lib_common::cache 8
shell: bash
- run: |
flowey v 18 'flowey_lib_common::cache:18:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar10 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar10'
- run: |
flowey v 18 'flowey_lib_common::cache:17:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar11 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar11'
- id: flowey_lib_common__cache__9
uses: actions/cache@v4
with:
key: ${{ env.floweyvar10 }}
path: ${{ env.floweyvar11 }}
name: 'Restore cache: gh-cli'
- run: ${{ steps.flowey_lib_common__cache__9.outputs.cache-hit }}
shell: flowey v 18 'flowey_lib_common::cache:20:flowey_lib_common/src/cache.rs:509:46' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'steps.flowey_lib_common__cache__9.outputs.cache-hit'
- name: map Github cache-hit to flowey
run: flowey e 18 flowey_lib_common::cache 10
shell: bash
- name: installing gh
run: flowey e 18 flowey_lib_common::download_gh_cli 1
shell: bash
- run: ${{ secrets.OPENVMM_CLIENT_ID }}
shell: flowey v 18 'flowey_lib_hvlite::_jobs::cfg_gh_azure_login:0:flowey_lib_hvlite/src/_jobs/cfg_gh_azure_login.rs:36:29' --is-secret --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'secrets.OPENVMM_CLIENT_ID'
- run: ${{ secrets.OPENVMM_TENANT_ID }}
shell: flowey v 18 'flowey_lib_hvlite::_jobs::cfg_gh_azure_login:1:flowey_lib_hvlite/src/_jobs/cfg_gh_azure_login.rs:37:29' --is-secret --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'secrets.OPENVMM_TENANT_ID'
- run: ${{ secrets.OPENVMM_SUBSCRIPTION_ID }}
shell: flowey v 18 'flowey_lib_hvlite::_jobs::cfg_gh_azure_login:2:flowey_lib_hvlite/src/_jobs/cfg_gh_azure_login.rs:38:35' --is-secret --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'secrets.OPENVMM_SUBSCRIPTION_ID'
- name: Create OpenIDConnect Credentials
run: flowey e 18 flowey_lib_hvlite::_jobs::cfg_gh_azure_login 3
shell: bash
- name: Read Azure Login Credentials
run: flowey e 18 flowey_lib_common::gh_task_azure_login 0
shell: bash
- run: |
flowey v 18 'flowey_lib_common::gh_task_azure_login:0:flowey_lib_common/src/gh_task_azure_login.rs:53:48' --is-secret --write-to-gh-env floweyvar3 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar3'
- run: |
flowey v 18 'flowey_lib_common::gh_task_azure_login:2:flowey_lib_common/src/gh_task_azure_login.rs:55:60' --is-secret --write-to-gh-env floweyvar4 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar4'
- run: |
flowey v 18 'flowey_lib_common::gh_task_azure_login:1:flowey_lib_common/src/gh_task_azure_login.rs:54:48' --is-secret --write-to-gh-env floweyvar5 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar5'
- id: flowey_lib_common__gh_task_azure_login__1
uses: Azure/login@v2
with:
client-id: ${{ env.floweyvar3 }}
subscription-id: ${{ env.floweyvar4 }}
tenant-id: ${{ env.floweyvar5 }}
name: Azure Login
- name: installing azure-cli
run: flowey e 18 flowey_lib_common::install_azure_cli 0
shell: bash
- name: Downloading secrets from key vault HvLite-PATs
run: flowey e 18 flowey_lib_common::gh_download_azure_key_vault_secret 0
shell: bash
- name: setup gh cli
run: flowey e 18 flowey_lib_common::use_gh_cli 0
shell: bash
- name: download artifacts from github releases
run: flowey e 18 flowey_lib_common::download_gh_release 1
shell: bash
- name: unpack mu_msvm package (x64)
run: flowey e 18 flowey_lib_hvlite::download_uefi_mu_msvm 0
shell: bash
- name: check if hvlite needs to be cloned
run: flowey e 18 flowey_lib_common::git_checkout 0
shell: bash
- run: |
flowey v 18 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:469:46' --write-to-gh-env FLOWEY_CONDITION
shell: bash
name: ๐ŸŒผโ“ Write to 'FLOWEY_CONDITION'
- run: |
flowey v 18 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:468:80' --write-to-gh-env floweyvar2 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar2'
if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
- id: flowey_lib_common__git_checkout__1
uses: actions/checkout@v4
with:
fetch-depth: '1'
path: repo0
persist-credentials: ${{ env.floweyvar2 }}
name: checkout repo hvlite
if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
- run: ${{ github.workspace }}
shell: flowey v 18 'flowey_lib_common::git_checkout:4:flowey_lib_common/src/git_checkout.rs:523:31' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'github.workspace'
- name: report cloned repo directories
run: flowey e 18 flowey_lib_common::git_checkout 3
shell: bash
- name: resolve OpenVMM repo requests
run: flowey e 18 flowey_lib_hvlite::git_checkout_openvmm_repo 0
shell: bash
- name: report openvmm magicpath dir
run: flowey e 18 flowey_lib_hvlite::cfg_openvmm_magicpath 0
shell: bash
- name: move MSVM.fd into its magic folder
run: flowey e 18 flowey_lib_hvlite::init_openvmm_magicpath_uefi_mu_msvm 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 18 flowey_lib_hvlite::run_cargo_nextest_run 0
shell: bash
- name: creating new test content dir
run: flowey e 18 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 0
shell: bash
- name: resolve openvmm artifact
run: flowey e 18 flowey_lib_hvlite::artifact_openvmm::resolve 0
shell: bash
- name: resolve pipette artifact
run: flowey e 18 flowey_lib_hvlite::artifact_pipette::resolve 1
shell: bash
- name: resolve pipette artifact
run: flowey e 18 flowey_lib_hvlite::artifact_pipette::resolve 0
shell: bash
- name: resolve guest_test_uefi artifact
run: flowey e 18 flowey_lib_hvlite::artifact_guest_test_uefi::resolve 0
shell: bash
- name: create azcopy cache dir
run: flowey e 18 flowey_lib_common::download_azcopy 0
shell: bash
- name: Pre-processing cache vars
run: flowey e 18 flowey_lib_common::cache 0
shell: bash
- run: |
flowey v 18 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar6 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar6'
- run: |
flowey v 18 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar7 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar7'
- id: flowey_lib_common__cache__1
uses: actions/cache@v4
with:
key: ${{ env.floweyvar6 }}
path: ${{ env.floweyvar7 }}
name: 'Restore cache: azcopy'
- run: ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
shell: flowey v 18 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:509:46' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'steps.flowey_lib_common__cache__1.outputs.cache-hit'
- name: map Github cache-hit to flowey
run: flowey e 18 flowey_lib_common::cache 2
shell: bash
- name: installing azcopy
run: flowey e 18 flowey_lib_common::download_azcopy 1
shell: bash
- name: calculating required VMM tests disk images
run: flowey e 18 flowey_lib_hvlite::download_openvmm_vmm_tests_vhds 0
shell: bash
- name: downloading VMM test disk images
run: flowey e 18 flowey_lib_hvlite::download_openvmm_vmm_tests_vhds 1
shell: bash
- name: report downloaded VMM test disk images
run: flowey e 18 flowey_lib_hvlite::download_openvmm_vmm_tests_vhds 2
shell: bash
- name: unpack openvmm-deps archive
run: flowey e 18 flowey_lib_hvlite::download_openvmm_deps 0
shell: bash
- name: setting up vmm_tests env
run: flowey e 18 flowey_lib_hvlite::init_vmm_tests_env 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 18 flowey_lib_hvlite::run_cargo_nextest_run 1
shell: bash
- name: resolve vmm tests archive artifact
run: flowey e 18 flowey_lib_hvlite::artifact_nextest_vmm_tests_archive::resolve 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 18 flowey_lib_hvlite::test_nextest_vmm_tests_archive 1
shell: bash
- name: run 'vmm_tests' nextest tests
run: flowey e 18 flowey_lib_common::run_cargo_nextest_run 0
shell: bash
- name: checking for crash dumps
run: flowey e 18 flowey_lib_common::run_cargo_nextest_run 1
shell: bash
- name: write results
run: flowey e 18 flowey_lib_common::run_cargo_nextest_run 2
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 18 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 1
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 18 flowey_lib_common::junit_publish_test_results 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 18 flowey_lib_common::junit_publish_test_results 1
shell: bash
- run: |
flowey v 18 'flowey_lib_common::junit_publish_test_results:0:flowey_lib_common/src/junit_publish_test_results.rs:103:46' --write-to-gh-env FLOWEY_CONDITION
shell: bash
name: ๐ŸŒผโ“ Write to 'FLOWEY_CONDITION'
- run: |
flowey v 18 'flowey_lib_common::junit_publish_test_results:2:flowey_lib_common/src/junit_publish_test_results.rs:104:42' --write-to-gh-env floweyvar1 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar1'
if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
- id: flowey_lib_common__junit_publish_test_results__2
uses: actions/upload-artifact@v4
with:
name: x64-linux-vmm-tests
path: ${{ env.floweyvar1 }}
name: 'publish JUnit test results: x64-linux-vmm-tests'
if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
- name: report test results to overall pipeline status
run: flowey e 18 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 2
shell: bash
- name: 'validate cache entry: gh-release-download'
run: flowey e 18 flowey_lib_common::cache 15
shell: bash
- name: 'validate cache entry: azcopy'
run: flowey e 18 flowey_lib_common::cache 3
shell: bash
- name: 'validate cache entry: cargo-nextest'
run: flowey e 18 flowey_lib_common::cache 7
shell: bash
- name: 'validate cache entry: gh-cli'
run: flowey e 18 flowey_lib_common::cache 11
shell: bash
job19:
name: test flowey local backend
runs-on:
- self-hosted
- 1ES.Pool=HvLite-GitHub-Linux-Pool-WestUS3
permissions:
contents: read
id-token: write
steps:
- run: echo "injected!"
name: ๐ŸŒผ๐Ÿฅพ Bootstrap flowey
shell: bash
- uses: Azure/login@v2
with:
client-id: ${{ secrets.OPENVMM_CLIENT_ID }}
tenant-id: ${{ secrets.OPENVMM_TENANT_ID }}
subscription-id: ${{ secrets.OPENVMM_SUBSCRIPTION_ID }}
- name: Pull Azure Key Vault secrets
run: |
VPackAccessToken=$(az keyvault secret show --name "VPackAccessToken" --vault-name "HvLite-PATs" --query value --output tsv)
echo "::add-mask::$VPackAccessToken"
echo "VPackAccessToken=$VPackAccessToken" >> $GITHUB_ENV
MsAzurePull=$(az keyvault secret show --name "MsAzurePull" --vault-name "HvLite-PATs" --query value --output tsv)
echo "::add-mask::$MsAzurePull"
echo "MsAzurePull=$MsAzurePull" >> $GITHUB_ENV
shell: bash
- run: |
set -x
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
rustup show
if: runner.os == 'Linux'
name: rustup (Linux)
shell: bash
- run: |
set -x
curl -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
./rustup-init.exe -y
echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
if: runner.os == 'Windows' && runner.arch == 'X64'
name: rustup (Windows X64)
shell: bash
- run: |
set -x
curl -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
./rustup-init.exe -y
echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
if: runner.os == 'Windows' && runner.arch == 'ARM64'
name: rustup (Windows ARM64)
shell: bash
- uses: actions/checkout@v4
with:
path: flowey_bootstrap
- name: Update Index
run: |
rustc -vV
cargo update --dry-run
working-directory: flowey_bootstrap
shell: bash
- name: Build flowey
run: CARGO_INCREMENTAL=0 RUSTC_BOOTSTRAP=1 RUSTFLAGS="-Z threads=8" cargo build -p flowey_hvlite --target x86_64-unknown-linux-gnu --profile flowey-ci
working-directory: flowey_bootstrap
shell: bash
- name: Stage flowey artifact
run: |
mkdir ./flowey_bootstrap_temp
mv ./.github/workflows/openvmm-pr.yaml ./flowey_bootstrap_temp/pipeline.yaml
mv ./.github/workflows/openvmm-pr.json ./flowey_bootstrap_temp/pipeline.json
mv target/x86_64-unknown-linux-gnu/flowey-ci/flowey_hvlite ./flowey_bootstrap_temp/flowey
working-directory: flowey_bootstrap
shell: bash
- name: Copy flowey artifact
run: |
OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
mkdir -p $OutDirNormal
cp -r ./flowey_bootstrap_temp/* $OutDirNormal
working-directory: flowey_bootstrap
shell: bash
- name: Cleanup staged flowey artifact
run: rm -rf ./flowey_bootstrap_temp
working-directory: flowey_bootstrap
shell: bash
- run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $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/bootstrapped-flowey/flowey
echo '"debug"' | flowey v 19 'FLOWEY_LOG' --update-from-stdin
echo "${{ runner.temp }}/work" | flowey v 19 '_internal_WORKING_DIR' --update-from-stdin --is-raw-string
cat <<'EOF' | flowey v 19 'param0' --update-from-stdin
${{ inputs.param0 != '' && inputs.param0 || 'false' }}
EOF
shell: bash
- name: ๐ŸŒผ๐Ÿ”Ž Self-check YAML
run: |-
ESCAPED_AGENT_TEMPDIR=$(
cat <<'EOF' | sed 's/\\/\\\\/g'
${{ runner.temp }}
EOF
)
flowey pipeline github --check $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out .github/workflows/openvmm-pr.yaml ci checkin-gates --config=pr
shell: bash
- name: check if hvlite needs to be cloned
run: flowey e 19 flowey_lib_common::git_checkout 0
shell: bash
- run: |
flowey v 19 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:469:46' --write-to-gh-env FLOWEY_CONDITION
shell: bash
name: ๐ŸŒผโ“ Write to 'FLOWEY_CONDITION'
- run: |
flowey v 19 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:468:80' --write-to-gh-env floweyvar1 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar1'
if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
- id: flowey_lib_common__git_checkout__1
uses: actions/checkout@v4
with:
fetch-depth: '1'
path: repo0
persist-credentials: ${{ env.floweyvar1 }}
name: checkout repo hvlite
if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
- run: ${{ github.workspace }}
shell: flowey v 19 'flowey_lib_common::git_checkout:4:flowey_lib_common/src/git_checkout.rs:523:31' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'github.workspace'
- name: report cloned repo directories
run: flowey e 19 flowey_lib_common::git_checkout 3
shell: bash
- name: resolve OpenVMM repo requests
run: flowey e 19 flowey_lib_hvlite::git_checkout_openvmm_repo 0
shell: bash
- name: install Rust
run: flowey e 19 flowey_lib_common::install_rust 0
shell: bash
- run: ${{ secrets.OPENVMM_CLIENT_ID }}
shell: flowey v 19 'flowey_lib_hvlite::_jobs::cfg_gh_azure_login:0:flowey_lib_hvlite/src/_jobs/cfg_gh_azure_login.rs:36:29' --is-secret --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'secrets.OPENVMM_CLIENT_ID'
- run: ${{ secrets.OPENVMM_TENANT_ID }}
shell: flowey v 19 'flowey_lib_hvlite::_jobs::cfg_gh_azure_login:1:flowey_lib_hvlite/src/_jobs/cfg_gh_azure_login.rs:37:29' --is-secret --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'secrets.OPENVMM_TENANT_ID'
- run: ${{ secrets.OPENVMM_SUBSCRIPTION_ID }}
shell: flowey v 19 'flowey_lib_hvlite::_jobs::cfg_gh_azure_login:2:flowey_lib_hvlite/src/_jobs/cfg_gh_azure_login.rs:38:35' --is-secret --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'secrets.OPENVMM_SUBSCRIPTION_ID'
- name: Create OpenIDConnect Credentials
run: flowey e 19 flowey_lib_hvlite::_jobs::cfg_gh_azure_login 3
shell: bash
- name: Read Azure Login Credentials
run: flowey e 19 flowey_lib_common::gh_task_azure_login 0
shell: bash
- run: |
flowey v 19 'flowey_lib_common::gh_task_azure_login:0:flowey_lib_common/src/gh_task_azure_login.rs:53:48' --is-secret --write-to-gh-env floweyvar2 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar2'
- run: |
flowey v 19 'flowey_lib_common::gh_task_azure_login:2:flowey_lib_common/src/gh_task_azure_login.rs:55:60' --is-secret --write-to-gh-env floweyvar3 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar3'
- run: |
flowey v 19 'flowey_lib_common::gh_task_azure_login:1:flowey_lib_common/src/gh_task_azure_login.rs:54:48' --is-secret --write-to-gh-env floweyvar4 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar4'
- id: flowey_lib_common__gh_task_azure_login__1
uses: Azure/login@v2
with:
client-id: ${{ env.floweyvar2 }}
subscription-id: ${{ env.floweyvar3 }}
tenant-id: ${{ env.floweyvar4 }}
name: Azure Login
- name: installing azure-cli
run: flowey e 19 flowey_lib_common::install_azure_cli 0
shell: bash
- name: Downloading secrets from key vault HvLite-PATs
run: flowey e 19 flowey_lib_common::gh_download_azure_key_vault_secret 0
shell: bash
- name: test cargo xflowey build-igvm x64 --install-missing-deps
run: flowey e 19 flowey_lib_hvlite::_jobs::test_local_flowey_build_igvm 0
shell: bash
job2:
name: build and check docs [x64-linux]
runs-on:
- self-hosted
- 1ES.Pool=HvLite-GitHub-Linux-Pool-WestUS3
permissions:
contents: read
id-token: write
steps:
- run: echo "injected!"
name: ๐ŸŒผ๐Ÿฅพ Bootstrap flowey
shell: bash
- uses: Azure/login@v2
with:
client-id: ${{ secrets.OPENVMM_CLIENT_ID }}
tenant-id: ${{ secrets.OPENVMM_TENANT_ID }}
subscription-id: ${{ secrets.OPENVMM_SUBSCRIPTION_ID }}
- name: Pull Azure Key Vault secrets
run: |
VPackAccessToken=$(az keyvault secret show --name "VPackAccessToken" --vault-name "HvLite-PATs" --query value --output tsv)
echo "::add-mask::$VPackAccessToken"
echo "VPackAccessToken=$VPackAccessToken" >> $GITHUB_ENV
MsAzurePull=$(az keyvault secret show --name "MsAzurePull" --vault-name "HvLite-PATs" --query value --output tsv)
echo "::add-mask::$MsAzurePull"
echo "MsAzurePull=$MsAzurePull" >> $GITHUB_ENV
shell: bash
- run: |
set -x
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
rustup show
if: runner.os == 'Linux'
name: rustup (Linux)
shell: bash
- run: |
set -x
curl -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
./rustup-init.exe -y
echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
if: runner.os == 'Windows' && runner.arch == 'X64'
name: rustup (Windows X64)
shell: bash
- run: |
set -x
curl -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
./rustup-init.exe -y
echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
if: runner.os == 'Windows' && runner.arch == 'ARM64'
name: rustup (Windows ARM64)
shell: bash
- uses: actions/checkout@v4
with:
path: flowey_bootstrap
- name: Update Index
run: |
rustc -vV
cargo update --dry-run
working-directory: flowey_bootstrap
shell: bash
- name: Build flowey
run: CARGO_INCREMENTAL=0 RUSTC_BOOTSTRAP=1 RUSTFLAGS="-Z threads=8" cargo build -p flowey_hvlite --target x86_64-unknown-linux-gnu --profile flowey-ci
working-directory: flowey_bootstrap
shell: bash
- name: Stage flowey artifact
run: |
mkdir ./flowey_bootstrap_temp
mv ./.github/workflows/openvmm-pr.yaml ./flowey_bootstrap_temp/pipeline.yaml
mv ./.github/workflows/openvmm-pr.json ./flowey_bootstrap_temp/pipeline.json
mv target/x86_64-unknown-linux-gnu/flowey-ci/flowey_hvlite ./flowey_bootstrap_temp/flowey
working-directory: flowey_bootstrap
shell: bash
- name: Copy flowey artifact
run: |
OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
mkdir -p $OutDirNormal
cp -r ./flowey_bootstrap_temp/* $OutDirNormal
working-directory: flowey_bootstrap
shell: bash
- name: Cleanup staged flowey artifact
run: rm -rf ./flowey_bootstrap_temp
working-directory: flowey_bootstrap
shell: bash
- run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $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/bootstrapped-flowey/flowey
echo '"debug"' | flowey v 2 'FLOWEY_LOG' --update-from-stdin
echo "${{ runner.temp }}/work" | flowey v 2 '_internal_WORKING_DIR' --update-from-stdin --is-raw-string
cat <<'EOF' | flowey v 2 'param0' --update-from-stdin
${{ inputs.param0 != '' && inputs.param0 || 'false' }}
EOF
mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-rustdoc"
echo "$AgentTempDirNormal/publish_artifacts/x64-linux-rustdoc" | flowey v 2 'artifact_publish_from_x64-linux-rustdoc' --update-from-stdin --is-raw-string
shell: bash
- name: ๐ŸŒผ๐Ÿ”Ž Self-check YAML
run: |-
ESCAPED_AGENT_TEMPDIR=$(
cat <<'EOF' | sed 's/\\/\\\\/g'
${{ runner.temp }}
EOF
)
flowey pipeline github --check $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out .github/workflows/openvmm-pr.yaml ci checkin-gates --config=pr
shell: bash
- name: check if hvlite needs to be cloned
run: flowey e 2 flowey_lib_common::git_checkout 0
shell: bash
- run: |
flowey v 2 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:469:46' --write-to-gh-env FLOWEY_CONDITION
shell: bash
name: ๐ŸŒผโ“ Write to 'FLOWEY_CONDITION'
- run: |
flowey v 2 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:468:80' --write-to-gh-env floweyvar8 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar8'
if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
- id: flowey_lib_common__git_checkout__1
uses: actions/checkout@v4
with:
fetch-depth: '1'
path: repo0
persist-credentials: ${{ env.floweyvar8 }}
name: checkout repo hvlite
if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
- run: ${{ github.workspace }}
shell: flowey v 2 'flowey_lib_common::git_checkout:4:flowey_lib_common/src/git_checkout.rs:523:31' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'github.workspace'
- name: report cloned repo directories
run: flowey e 2 flowey_lib_common::git_checkout 3
shell: bash
- name: resolve OpenVMM repo requests
run: flowey e 2 flowey_lib_hvlite::git_checkout_openvmm_repo 0
shell: bash
- name: set '-Dwarnings' in .cargo/config.toml
run: flowey e 2 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
shell: bash
- name: create gh-release-download cache dir
run: flowey e 2 flowey_lib_common::download_gh_release 0
shell: bash
- name: Pre-processing cache vars
run: flowey e 2 flowey_lib_common::cache 4
shell: bash
- run: |
flowey v 2 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar6 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar6'
- run: |
flowey v 2 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar7 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar7'
- id: flowey_lib_common__cache__5
uses: actions/cache@v4
with:
key: ${{ env.floweyvar6 }}
path: ${{ env.floweyvar7 }}
name: 'Restore cache: gh-release-download'
- run: ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
shell: flowey v 2 'flowey_lib_common::cache:12:flowey_lib_common/src/cache.rs:509:46' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'steps.flowey_lib_common__cache__5.outputs.cache-hit'
- name: map Github cache-hit to flowey
run: flowey e 2 flowey_lib_common::cache 6
shell: bash
- name: create gh cache dir
run: flowey e 2 flowey_lib_common::download_gh_cli 0
shell: bash
- name: Pre-processing cache vars
run: flowey e 2 flowey_lib_common::cache 0
shell: bash
- run: |
flowey v 2 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar4 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar4'
- run: |
flowey v 2 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar5 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar5'
- id: flowey_lib_common__cache__1
uses: actions/cache@v4
with:
key: ${{ env.floweyvar4 }}
path: ${{ env.floweyvar5 }}
name: 'Restore cache: gh-cli'
- run: ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
shell: flowey v 2 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:509:46' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'steps.flowey_lib_common__cache__1.outputs.cache-hit'
- name: map Github cache-hit to flowey
run: flowey e 2 flowey_lib_common::cache 2
shell: bash
- name: installing gh
run: flowey e 2 flowey_lib_common::download_gh_cli 1
shell: bash
- run: ${{ secrets.OPENVMM_CLIENT_ID }}
shell: flowey v 2 'flowey_lib_hvlite::_jobs::cfg_gh_azure_login:0:flowey_lib_hvlite/src/_jobs/cfg_gh_azure_login.rs:36:29' --is-secret --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'secrets.OPENVMM_CLIENT_ID'
- run: ${{ secrets.OPENVMM_TENANT_ID }}
shell: flowey v 2 'flowey_lib_hvlite::_jobs::cfg_gh_azure_login:1:flowey_lib_hvlite/src/_jobs/cfg_gh_azure_login.rs:37:29' --is-secret --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'secrets.OPENVMM_TENANT_ID'
- run: ${{ secrets.OPENVMM_SUBSCRIPTION_ID }}
shell: flowey v 2 'flowey_lib_hvlite::_jobs::cfg_gh_azure_login:2:flowey_lib_hvlite/src/_jobs/cfg_gh_azure_login.rs:38:35' --is-secret --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'secrets.OPENVMM_SUBSCRIPTION_ID'
- name: Create OpenIDConnect Credentials
run: flowey e 2 flowey_lib_hvlite::_jobs::cfg_gh_azure_login 3
shell: bash
- name: Read Azure Login Credentials
run: flowey e 2 flowey_lib_common::gh_task_azure_login 0
shell: bash
- run: |
flowey v 2 'flowey_lib_common::gh_task_azure_login:0:flowey_lib_common/src/gh_task_azure_login.rs:53:48' --is-secret --write-to-gh-env floweyvar1 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar1'
- run: |
flowey v 2 'flowey_lib_common::gh_task_azure_login:2:flowey_lib_common/src/gh_task_azure_login.rs:55:60' --is-secret --write-to-gh-env floweyvar2 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar2'
- run: |
flowey v 2 'flowey_lib_common::gh_task_azure_login:1:flowey_lib_common/src/gh_task_azure_login.rs:54:48' --is-secret --write-to-gh-env floweyvar3 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar3'
- id: flowey_lib_common__gh_task_azure_login__1
uses: Azure/login@v2
with:
client-id: ${{ env.floweyvar1 }}
subscription-id: ${{ env.floweyvar2 }}
tenant-id: ${{ env.floweyvar3 }}
name: Azure Login
- name: installing azure-cli
run: flowey e 2 flowey_lib_common::install_azure_cli 0
shell: bash
- name: Downloading secrets from key vault HvLite-PATs
run: flowey e 2 flowey_lib_common::gh_download_azure_key_vault_secret 0
shell: bash
- name: setup gh cli
run: flowey e 2 flowey_lib_common::use_gh_cli 0
shell: bash
- name: download artifacts from github releases
run: flowey e 2 flowey_lib_common::download_gh_release 1
shell: bash
- name: checking if apt packages need to be installed
run: flowey e 2 flowey_lib_common::install_apt_pkg 0
shell: bash
- name: installing `apt` packages
run: flowey e 2 flowey_lib_common::install_apt_pkg 1
shell: bash
- name: unpack protoc
run: flowey e 2 flowey_lib_common::download_protoc 0
shell: bash
- name: report openvmm magicpath dir
run: flowey e 2 flowey_lib_hvlite::cfg_openvmm_magicpath 0
shell: bash
- name: symlink protoc
run: flowey e 2 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
shell: bash
- name: install Rust
run: flowey e 2 flowey_lib_common::install_rust 0
shell: bash
- name: unpack Microsoft.WSL.LxUtil.x64.zip
run: flowey e 2 flowey_lib_hvlite::download_lxutil 0
shell: bash
- name: move lxutil.dll into its magic folder
run: flowey e 2 flowey_lib_hvlite::init_openvmm_magicpath_lxutil 0
shell: bash
- name: detect active toolchain
run: flowey e 2 flowey_lib_common::install_rust 1
shell: bash
- name: report common cargo flags
run: flowey e 2 flowey_lib_common::cfg_cargo_common_flags 0
shell: bash
- name: construct cargo doc command
run: flowey e 2 flowey_lib_common::run_cargo_doc 0
shell: bash
- name: document repo for target x86_64-unknown-linux-gnu
run: flowey e 2 flowey_lib_hvlite::build_rustdoc 0
shell: bash
- name: zip rustdoc dir
run: flowey e 2 flowey_lib_hvlite::artifact_rustdoc::publish 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 2 flowey_lib_hvlite::artifact_rustdoc::publish 1
shell: bash
- name: copying rustdoc to artifact dir
run: flowey e 2 flowey_lib_common::copy_to_artifact_dir 0
shell: bash
- name: 'validate cache entry: gh-cli'
run: flowey e 2 flowey_lib_common::cache 3
shell: bash
- name: 'validate cache entry: gh-release-download'
run: flowey e 2 flowey_lib_common::cache 7
shell: bash
- name: ๐ŸŒผ๐Ÿ“ฆ Publish x64-linux-rustdoc
uses: actions/upload-artifact@v4
with:
name: x64-linux-rustdoc
path: ${{ runner.temp }}/publish_artifacts/x64-linux-rustdoc/
job20:
name: openvmm checkin gates
runs-on: windows-latest
permissions:
contents: read
id-token: write
needs:
- job19
- job18
- job17
- job16
- job15
- job14
- job13
- job12
- job11
- job10
- job9
- job8
- job7
- job6
- job5
- job4
- job3
- job2
- job1
- job0
steps:
- name: ๐ŸŒผ๐Ÿฅพ Download bootstrapped flowey
uses: actions/download-artifact@v4
with:
name: _internal-flowey-bootstrap-x86_64-windows-uid-9
path: ${{ runner.temp }}/bootstrapped-flowey
- run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $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/bootstrapped-flowey/flowey.exe
echo '"debug"' | flowey.exe v 20 'FLOWEY_LOG' --update-from-stdin
echo "${{ runner.temp }}/work" | flowey.exe v 20 '_internal_WORKING_DIR' --update-from-stdin --is-raw-string
cat <<'EOF' | flowey.exe v 20 'param0' --update-from-stdin
${{ inputs.param0 != '' && inputs.param0 || 'false' }}
EOF
shell: bash
job3:
name: xtask fmt (windows)
runs-on: windows-latest
permissions:
contents: read
id-token: write
needs:
- job4
steps:
- run: echo "injected!"
name: ๐ŸŒผ๐Ÿฅพ Bootstrap flowey
shell: bash
- uses: Azure/login@v2
with:
client-id: ${{ secrets.OPENVMM_CLIENT_ID }}
tenant-id: ${{ secrets.OPENVMM_TENANT_ID }}
subscription-id: ${{ secrets.OPENVMM_SUBSCRIPTION_ID }}
- name: Pull Azure Key Vault secrets
run: |
VPackAccessToken=$(az keyvault secret show --name "VPackAccessToken" --vault-name "HvLite-PATs" --query value --output tsv)
echo "::add-mask::$VPackAccessToken"
echo "VPackAccessToken=$VPackAccessToken" >> $GITHUB_ENV
MsAzurePull=$(az keyvault secret show --name "MsAzurePull" --vault-name "HvLite-PATs" --query value --output tsv)
echo "::add-mask::$MsAzurePull"
echo "MsAzurePull=$MsAzurePull" >> $GITHUB_ENV
shell: bash
- run: |
set -x
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
rustup show
if: runner.os == 'Linux'
name: rustup (Linux)
shell: bash
- run: |
set -x
curl -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
./rustup-init.exe -y
echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
if: runner.os == 'Windows' && runner.arch == 'X64'
name: rustup (Windows X64)
shell: bash
- run: |
set -x
curl -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
./rustup-init.exe -y
echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
if: runner.os == 'Windows' && runner.arch == 'ARM64'
name: rustup (Windows ARM64)
shell: bash
- uses: actions/checkout@v4
with:
path: flowey_bootstrap
- name: Update Index
run: |
rustc -vV
cargo update --dry-run
working-directory: flowey_bootstrap
shell: bash
- name: Build flowey
run: CARGO_INCREMENTAL=0 RUSTC_BOOTSTRAP=1 RUSTFLAGS="-Z threads=8" cargo build -p flowey_hvlite --target x86_64-pc-windows-msvc --profile flowey-ci
working-directory: flowey_bootstrap
shell: bash
- name: Stage flowey artifact
run: |
mkdir ./flowey_bootstrap_temp
mv ./.github/workflows/openvmm-pr.yaml ./flowey_bootstrap_temp/pipeline.yaml
mv ./.github/workflows/openvmm-pr.json ./flowey_bootstrap_temp/pipeline.json
mv target/x86_64-pc-windows-msvc/flowey-ci/flowey_hvlite.exe ./flowey_bootstrap_temp/flowey.exe
working-directory: flowey_bootstrap
shell: bash
- name: Copy flowey artifact
run: |
OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
mkdir -p $OutDirNormal
cp -r ./flowey_bootstrap_temp/* $OutDirNormal
working-directory: flowey_bootstrap
shell: bash
- name: Cleanup staged flowey artifact
run: rm -rf ./flowey_bootstrap_temp
working-directory: flowey_bootstrap
shell: bash
- run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $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/bootstrapped-flowey/flowey.exe
echo '"debug"' | flowey.exe v 3 'FLOWEY_LOG' --update-from-stdin
echo "${{ runner.temp }}/work" | flowey.exe v 3 '_internal_WORKING_DIR' --update-from-stdin --is-raw-string
cat <<'EOF' | flowey.exe v 3 'param0' --update-from-stdin
${{ inputs.param0 != '' && inputs.param0 || 'false' }}
EOF
shell: bash
- name: ๐ŸŒผ๐Ÿ”Ž Self-check YAML
run: |-
ESCAPED_AGENT_TEMPDIR=$(
cat <<'EOF' | sed 's/\\/\\\\/g'
${{ runner.temp }}
EOF
)
flowey.exe pipeline github --check $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out .github/workflows/openvmm-pr.yaml ci checkin-gates --config=pr
shell: bash
- name: check if hvlite needs to be cloned
run: flowey.exe e 3 flowey_lib_common::git_checkout 0
shell: bash
- run: |
flowey.exe v 3 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:469:46' --write-to-gh-env FLOWEY_CONDITION
shell: bash
name: ๐ŸŒผโ“ Write to 'FLOWEY_CONDITION'
- run: |
flowey.exe v 3 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:468:80' --write-to-gh-env floweyvar1 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar1'
if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
- id: flowey_lib_common__git_checkout__1
uses: actions/checkout@v4
with:
fetch-depth: '1'
path: repo0
persist-credentials: ${{ env.floweyvar1 }}
name: checkout repo hvlite
if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
- run: ${{ github.workspace }}
shell: flowey.exe v 3 'flowey_lib_common::git_checkout:4:flowey_lib_common/src/git_checkout.rs:523:31' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'github.workspace'
- name: report cloned repo directories
run: flowey.exe e 3 flowey_lib_common::git_checkout 3
shell: bash
- name: resolve OpenVMM repo requests
run: flowey.exe e 3 flowey_lib_hvlite::git_checkout_openvmm_repo 0
shell: bash
- name: install Rust
run: flowey.exe e 3 flowey_lib_common::install_rust 0
shell: bash
- name: detect active toolchain
run: flowey.exe e 3 flowey_lib_common::install_rust 1
shell: bash
- name: report common cargo flags
run: flowey.exe e 3 flowey_lib_common::cfg_cargo_common_flags 0
shell: bash
- name: set '-Dwarnings' in .cargo/config.toml
run: flowey.exe e 3 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
shell: bash
- name: create gh-release-download cache dir
run: flowey.exe e 3 flowey_lib_common::download_gh_release 0
shell: bash
- name: Pre-processing cache vars
run: flowey.exe e 3 flowey_lib_common::cache 4
shell: bash
- run: |
flowey.exe v 3 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar7 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar7'
- run: |
flowey.exe v 3 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar8 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar8'
- id: flowey_lib_common__cache__5
uses: actions/cache@v4
with:
key: ${{ env.floweyvar7 }}
path: ${{ env.floweyvar8 }}
name: 'Restore cache: gh-release-download'
- run: ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
shell: flowey.exe v 3 'flowey_lib_common::cache:12:flowey_lib_common/src/cache.rs:509:46' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'steps.flowey_lib_common__cache__5.outputs.cache-hit'
- name: map Github cache-hit to flowey
run: flowey.exe e 3 flowey_lib_common::cache 6
shell: bash
- name: create gh cache dir
run: flowey.exe e 3 flowey_lib_common::download_gh_cli 0
shell: bash
- name: Pre-processing cache vars
run: flowey.exe e 3 flowey_lib_common::cache 0
shell: bash
- run: |
flowey.exe v 3 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar5 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar5'
- run: |
flowey.exe v 3 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar6 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar6'
- id: flowey_lib_common__cache__1
uses: actions/cache@v4
with:
key: ${{ env.floweyvar5 }}
path: ${{ env.floweyvar6 }}
name: 'Restore cache: gh-cli'
- run: ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
shell: flowey.exe v 3 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:509:46' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'steps.flowey_lib_common__cache__1.outputs.cache-hit'
- name: map Github cache-hit to flowey
run: flowey.exe e 3 flowey_lib_common::cache 2
shell: bash
- name: installing gh
run: flowey.exe e 3 flowey_lib_common::download_gh_cli 1
shell: bash
- run: ${{ secrets.OPENVMM_CLIENT_ID }}
shell: flowey.exe v 3 'flowey_lib_hvlite::_jobs::cfg_gh_azure_login:0:flowey_lib_hvlite/src/_jobs/cfg_gh_azure_login.rs:36:29' --is-secret --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'secrets.OPENVMM_CLIENT_ID'
- run: ${{ secrets.OPENVMM_TENANT_ID }}
shell: flowey.exe v 3 'flowey_lib_hvlite::_jobs::cfg_gh_azure_login:1:flowey_lib_hvlite/src/_jobs/cfg_gh_azure_login.rs:37:29' --is-secret --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'secrets.OPENVMM_TENANT_ID'
- run: ${{ secrets.OPENVMM_SUBSCRIPTION_ID }}
shell: flowey.exe v 3 'flowey_lib_hvlite::_jobs::cfg_gh_azure_login:2:flowey_lib_hvlite/src/_jobs/cfg_gh_azure_login.rs:38:35' --is-secret --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'secrets.OPENVMM_SUBSCRIPTION_ID'
- name: Create OpenIDConnect Credentials
run: flowey.exe e 3 flowey_lib_hvlite::_jobs::cfg_gh_azure_login 3
shell: bash
- name: Read Azure Login Credentials
run: flowey.exe e 3 flowey_lib_common::gh_task_azure_login 0
shell: bash
- run: |
flowey.exe v 3 'flowey_lib_common::gh_task_azure_login:0:flowey_lib_common/src/gh_task_azure_login.rs:53:48' --is-secret --write-to-gh-env floweyvar2 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar2'
- run: |
flowey.exe v 3 'flowey_lib_common::gh_task_azure_login:2:flowey_lib_common/src/gh_task_azure_login.rs:55:60' --is-secret --write-to-gh-env floweyvar3 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar3'
- run: |
flowey.exe v 3 'flowey_lib_common::gh_task_azure_login:1:flowey_lib_common/src/gh_task_azure_login.rs:54:48' --is-secret --write-to-gh-env floweyvar4 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar4'
- id: flowey_lib_common__gh_task_azure_login__1
uses: Azure/login@v2
with:
client-id: ${{ env.floweyvar2 }}
subscription-id: ${{ env.floweyvar3 }}
tenant-id: ${{ env.floweyvar4 }}
name: Azure Login
- name: installing azure-cli
run: flowey.exe e 3 flowey_lib_common::install_azure_cli 0
shell: bash
- name: Downloading secrets from key vault HvLite-PATs
run: flowey.exe e 3 flowey_lib_common::gh_download_azure_key_vault_secret 0
shell: bash
- name: setup gh cli
run: flowey.exe e 3 flowey_lib_common::use_gh_cli 0
shell: bash
- name: download artifacts from github releases
run: flowey.exe e 3 flowey_lib_common::download_gh_release 1
shell: bash
- name: unpack protoc
run: flowey.exe e 3 flowey_lib_common::download_protoc 0
shell: bash
- name: report openvmm magicpath dir
run: flowey.exe e 3 flowey_lib_hvlite::cfg_openvmm_magicpath 0
shell: bash
- name: symlink protoc
run: flowey.exe e 3 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
shell: bash
- name: cargo build xtask
run: flowey.exe e 3 flowey_lib_common::run_cargo_build 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey.exe e 3 flowey_lib_hvlite::run_cargo_build 0
shell: bash
- name: report built xtask
run: flowey.exe e 3 flowey_lib_hvlite::build_xtask 0
shell: bash
- name: run xtask fmt
run: flowey.exe e 3 flowey_lib_hvlite::_jobs::check_xtask_fmt 0
shell: bash
- name: 'validate cache entry: gh-cli'
run: flowey.exe e 3 flowey_lib_common::cache 3
shell: bash
- name: 'validate cache entry: gh-release-download'
run: flowey.exe e 3 flowey_lib_common::cache 7
shell: bash
job4:
name: xtask fmt (linux)
runs-on:
- self-hosted
- 1ES.Pool=HvLite-GitHub-Linux-Pool-WestUS3
permissions:
contents: read
id-token: write
steps:
- run: echo "injected!"
name: ๐ŸŒผ๐Ÿฅพ Bootstrap flowey
shell: bash
- uses: Azure/login@v2
with:
client-id: ${{ secrets.OPENVMM_CLIENT_ID }}
tenant-id: ${{ secrets.OPENVMM_TENANT_ID }}
subscription-id: ${{ secrets.OPENVMM_SUBSCRIPTION_ID }}
- name: Pull Azure Key Vault secrets
run: |
VPackAccessToken=$(az keyvault secret show --name "VPackAccessToken" --vault-name "HvLite-PATs" --query value --output tsv)
echo "::add-mask::$VPackAccessToken"
echo "VPackAccessToken=$VPackAccessToken" >> $GITHUB_ENV
MsAzurePull=$(az keyvault secret show --name "MsAzurePull" --vault-name "HvLite-PATs" --query value --output tsv)
echo "::add-mask::$MsAzurePull"
echo "MsAzurePull=$MsAzurePull" >> $GITHUB_ENV
shell: bash
- run: |
set -x
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
rustup show
if: runner.os == 'Linux'
name: rustup (Linux)
shell: bash
- run: |
set -x
curl -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
./rustup-init.exe -y
echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
if: runner.os == 'Windows' && runner.arch == 'X64'
name: rustup (Windows X64)
shell: bash
- run: |
set -x
curl -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
./rustup-init.exe -y
echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
if: runner.os == 'Windows' && runner.arch == 'ARM64'
name: rustup (Windows ARM64)
shell: bash
- uses: actions/checkout@v4
with:
path: flowey_bootstrap
- name: Update Index
run: |
rustc -vV
cargo update --dry-run
working-directory: flowey_bootstrap
shell: bash
- name: Build flowey
run: CARGO_INCREMENTAL=0 RUSTC_BOOTSTRAP=1 RUSTFLAGS="-Z threads=8" cargo build -p flowey_hvlite --target x86_64-unknown-linux-gnu --profile flowey-ci
working-directory: flowey_bootstrap
shell: bash
- name: Stage flowey artifact
run: |
mkdir ./flowey_bootstrap_temp
mv ./.github/workflows/openvmm-pr.yaml ./flowey_bootstrap_temp/pipeline.yaml
mv ./.github/workflows/openvmm-pr.json ./flowey_bootstrap_temp/pipeline.json
mv target/x86_64-unknown-linux-gnu/flowey-ci/flowey_hvlite ./flowey_bootstrap_temp/flowey
working-directory: flowey_bootstrap
shell: bash
- name: Copy flowey artifact
run: |
OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
mkdir -p $OutDirNormal
cp -r ./flowey_bootstrap_temp/* $OutDirNormal
working-directory: flowey_bootstrap
shell: bash
- name: Cleanup staged flowey artifact
run: rm -rf ./flowey_bootstrap_temp
working-directory: flowey_bootstrap
shell: bash
- run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $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/bootstrapped-flowey/flowey
echo '"debug"' | flowey v 4 'FLOWEY_LOG' --update-from-stdin
echo "${{ runner.temp }}/work" | flowey v 4 '_internal_WORKING_DIR' --update-from-stdin --is-raw-string
cat <<'EOF' | flowey v 4 'param0' --update-from-stdin
${{ inputs.param0 != '' && inputs.param0 || 'false' }}
EOF
shell: bash
- name: ๐ŸŒผ๐Ÿ”Ž Self-check YAML
run: |-
ESCAPED_AGENT_TEMPDIR=$(
cat <<'EOF' | sed 's/\\/\\\\/g'
${{ runner.temp }}
EOF
)
flowey pipeline github --check $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out .github/workflows/openvmm-pr.yaml ci checkin-gates --config=pr
shell: bash
- name: check if hvlite needs to be cloned
run: flowey e 4 flowey_lib_common::git_checkout 0
shell: bash
- run: |
flowey v 4 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:469:46' --write-to-gh-env FLOWEY_CONDITION
shell: bash
name: ๐ŸŒผโ“ Write to 'FLOWEY_CONDITION'
- run: |
flowey v 4 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:468:80' --write-to-gh-env floweyvar1 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar1'
if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
- id: flowey_lib_common__git_checkout__1
uses: actions/checkout@v4
with:
fetch-depth: '1'
path: repo0
persist-credentials: ${{ env.floweyvar1 }}
name: checkout repo hvlite
if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
- run: ${{ github.workspace }}
shell: flowey v 4 'flowey_lib_common::git_checkout:4:flowey_lib_common/src/git_checkout.rs:523:31' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'github.workspace'
- name: report cloned repo directories
run: flowey e 4 flowey_lib_common::git_checkout 3
shell: bash
- name: resolve OpenVMM repo requests
run: flowey e 4 flowey_lib_hvlite::git_checkout_openvmm_repo 0
shell: bash
- name: install Rust
run: flowey e 4 flowey_lib_common::install_rust 0
shell: bash
- name: detect active toolchain
run: flowey e 4 flowey_lib_common::install_rust 1
shell: bash
- name: report common cargo flags
run: flowey e 4 flowey_lib_common::cfg_cargo_common_flags 0
shell: bash
- name: set '-Dwarnings' in .cargo/config.toml
run: flowey e 4 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
shell: bash
- name: create gh-release-download cache dir
run: flowey e 4 flowey_lib_common::download_gh_release 0
shell: bash
- name: Pre-processing cache vars
run: flowey e 4 flowey_lib_common::cache 4
shell: bash
- run: |
flowey v 4 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar7 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar7'
- run: |
flowey v 4 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar8 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar8'
- id: flowey_lib_common__cache__5
uses: actions/cache@v4
with:
key: ${{ env.floweyvar7 }}
path: ${{ env.floweyvar8 }}
name: 'Restore cache: gh-release-download'
- run: ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
shell: flowey v 4 'flowey_lib_common::cache:12:flowey_lib_common/src/cache.rs:509:46' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'steps.flowey_lib_common__cache__5.outputs.cache-hit'
- name: map Github cache-hit to flowey
run: flowey e 4 flowey_lib_common::cache 6
shell: bash
- name: create gh cache dir
run: flowey e 4 flowey_lib_common::download_gh_cli 0
shell: bash
- name: Pre-processing cache vars
run: flowey e 4 flowey_lib_common::cache 0
shell: bash
- run: |
flowey v 4 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar5 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar5'
- run: |
flowey v 4 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar6 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar6'
- id: flowey_lib_common__cache__1
uses: actions/cache@v4
with:
key: ${{ env.floweyvar5 }}
path: ${{ env.floweyvar6 }}
name: 'Restore cache: gh-cli'
- run: ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
shell: flowey v 4 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:509:46' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'steps.flowey_lib_common__cache__1.outputs.cache-hit'
- name: map Github cache-hit to flowey
run: flowey e 4 flowey_lib_common::cache 2
shell: bash
- name: installing gh
run: flowey e 4 flowey_lib_common::download_gh_cli 1
shell: bash
- run: ${{ secrets.OPENVMM_CLIENT_ID }}
shell: flowey v 4 'flowey_lib_hvlite::_jobs::cfg_gh_azure_login:0:flowey_lib_hvlite/src/_jobs/cfg_gh_azure_login.rs:36:29' --is-secret --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'secrets.OPENVMM_CLIENT_ID'
- run: ${{ secrets.OPENVMM_TENANT_ID }}
shell: flowey v 4 'flowey_lib_hvlite::_jobs::cfg_gh_azure_login:1:flowey_lib_hvlite/src/_jobs/cfg_gh_azure_login.rs:37:29' --is-secret --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'secrets.OPENVMM_TENANT_ID'
- run: ${{ secrets.OPENVMM_SUBSCRIPTION_ID }}
shell: flowey v 4 'flowey_lib_hvlite::_jobs::cfg_gh_azure_login:2:flowey_lib_hvlite/src/_jobs/cfg_gh_azure_login.rs:38:35' --is-secret --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'secrets.OPENVMM_SUBSCRIPTION_ID'
- name: Create OpenIDConnect Credentials
run: flowey e 4 flowey_lib_hvlite::_jobs::cfg_gh_azure_login 3
shell: bash
- name: Read Azure Login Credentials
run: flowey e 4 flowey_lib_common::gh_task_azure_login 0
shell: bash
- run: |
flowey v 4 'flowey_lib_common::gh_task_azure_login:0:flowey_lib_common/src/gh_task_azure_login.rs:53:48' --is-secret --write-to-gh-env floweyvar2 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar2'
- run: |
flowey v 4 'flowey_lib_common::gh_task_azure_login:2:flowey_lib_common/src/gh_task_azure_login.rs:55:60' --is-secret --write-to-gh-env floweyvar3 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar3'
- run: |
flowey v 4 'flowey_lib_common::gh_task_azure_login:1:flowey_lib_common/src/gh_task_azure_login.rs:54:48' --is-secret --write-to-gh-env floweyvar4 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar4'
- id: flowey_lib_common__gh_task_azure_login__1
uses: Azure/login@v2
with:
client-id: ${{ env.floweyvar2 }}
subscription-id: ${{ env.floweyvar3 }}
tenant-id: ${{ env.floweyvar4 }}
name: Azure Login
- name: installing azure-cli
run: flowey e 4 flowey_lib_common::install_azure_cli 0
shell: bash
- name: Downloading secrets from key vault HvLite-PATs
run: flowey e 4 flowey_lib_common::gh_download_azure_key_vault_secret 0
shell: bash
- name: setup gh cli
run: flowey e 4 flowey_lib_common::use_gh_cli 0
shell: bash
- name: download artifacts from github releases
run: flowey e 4 flowey_lib_common::download_gh_release 1
shell: bash
- name: checking if apt packages need to be installed
run: flowey e 4 flowey_lib_common::install_apt_pkg 0
shell: bash
- name: installing `apt` packages
run: flowey e 4 flowey_lib_common::install_apt_pkg 1
shell: bash
- name: unpack protoc
run: flowey e 4 flowey_lib_common::download_protoc 0
shell: bash
- name: report openvmm magicpath dir
run: flowey e 4 flowey_lib_hvlite::cfg_openvmm_magicpath 0
shell: bash
- name: symlink protoc
run: flowey e 4 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
shell: bash
- name: cargo build xtask
run: flowey e 4 flowey_lib_common::run_cargo_build 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 4 flowey_lib_hvlite::run_cargo_build 0
shell: bash
- name: split debug symbols
run: flowey e 4 flowey_lib_hvlite::run_split_debug_info 0
shell: bash
- name: reporting split debug info
run: flowey e 4 flowey_lib_hvlite::run_cargo_build 1
shell: bash
- name: report built xtask
run: flowey e 4 flowey_lib_hvlite::build_xtask 0
shell: bash
- name: run xtask fmt
run: flowey e 4 flowey_lib_hvlite::_jobs::check_xtask_fmt 0
shell: bash
- name: 'validate cache entry: gh-cli'
run: flowey e 4 flowey_lib_common::cache 3
shell: bash
- name: 'validate cache entry: gh-release-download'
run: flowey e 4 flowey_lib_common::cache 7
shell: bash
job5:
name: build artifacts (not for VMM tests) [aarch64-windows]
runs-on:
- self-hosted
- 1ES.Pool=HvLite-GitHub-Win-Pool-WestUS3
permissions:
contents: read
id-token: write
steps:
- run: echo "injected!"
name: ๐ŸŒผ๐Ÿฅพ Bootstrap flowey
shell: bash
- uses: Azure/login@v2
with:
client-id: ${{ secrets.OPENVMM_CLIENT_ID }}
tenant-id: ${{ secrets.OPENVMM_TENANT_ID }}
subscription-id: ${{ secrets.OPENVMM_SUBSCRIPTION_ID }}
- name: Pull Azure Key Vault secrets
run: |
VPackAccessToken=$(az keyvault secret show --name "VPackAccessToken" --vault-name "HvLite-PATs" --query value --output tsv)
echo "::add-mask::$VPackAccessToken"
echo "VPackAccessToken=$VPackAccessToken" >> $GITHUB_ENV
MsAzurePull=$(az keyvault secret show --name "MsAzurePull" --vault-name "HvLite-PATs" --query value --output tsv)
echo "::add-mask::$MsAzurePull"
echo "MsAzurePull=$MsAzurePull" >> $GITHUB_ENV
shell: bash
- run: |
set -x
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
rustup show
if: runner.os == 'Linux'
name: rustup (Linux)
shell: bash
- run: |
set -x
curl -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
./rustup-init.exe -y
echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
if: runner.os == 'Windows' && runner.arch == 'X64'
name: rustup (Windows X64)
shell: bash
- run: |
set -x
curl -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
./rustup-init.exe -y
echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
if: runner.os == 'Windows' && runner.arch == 'ARM64'
name: rustup (Windows ARM64)
shell: bash
- uses: actions/checkout@v4
with:
path: flowey_bootstrap
- name: Update Index
run: |
rustc -vV
cargo update --dry-run
working-directory: flowey_bootstrap
shell: bash
- name: Build flowey
run: CARGO_INCREMENTAL=0 RUSTC_BOOTSTRAP=1 RUSTFLAGS="-Z threads=8" cargo build -p flowey_hvlite --target x86_64-pc-windows-msvc --profile flowey-ci
working-directory: flowey_bootstrap
shell: bash
- name: Stage flowey artifact
run: |
mkdir ./flowey_bootstrap_temp
mv ./.github/workflows/openvmm-pr.yaml ./flowey_bootstrap_temp/pipeline.yaml
mv ./.github/workflows/openvmm-pr.json ./flowey_bootstrap_temp/pipeline.json
mv target/x86_64-pc-windows-msvc/flowey-ci/flowey_hvlite.exe ./flowey_bootstrap_temp/flowey.exe
working-directory: flowey_bootstrap
shell: bash
- name: Copy flowey artifact
run: |
OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
mkdir -p $OutDirNormal
cp -r ./flowey_bootstrap_temp/* $OutDirNormal
working-directory: flowey_bootstrap
shell: bash
- name: Cleanup staged flowey artifact
run: rm -rf ./flowey_bootstrap_temp
working-directory: flowey_bootstrap
shell: bash
- run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $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/bootstrapped-flowey/flowey.exe
echo '"debug"' | flowey.exe v 5 'FLOWEY_LOG' --update-from-stdin
echo "${{ runner.temp }}/work" | flowey.exe v 5 '_internal_WORKING_DIR' --update-from-stdin --is-raw-string
cat <<'EOF' | flowey.exe v 5 'param0' --update-from-stdin
${{ inputs.param0 != '' && inputs.param0 || 'false' }}
EOF
mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-igvmfilegen"
echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-igvmfilegen" | flowey.exe v 5 'artifact_publish_from_aarch64-windows-igvmfilegen' --update-from-stdin --is-raw-string
mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-ohcldiag-dev"
echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-ohcldiag-dev" | flowey.exe v 5 'artifact_publish_from_aarch64-windows-ohcldiag-dev' --update-from-stdin --is-raw-string
mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-vmgs_lib"
echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-vmgs_lib" | flowey.exe v 5 'artifact_publish_from_aarch64-windows-vmgs_lib' --update-from-stdin --is-raw-string
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' --update-from-stdin --is-raw-string
shell: bash
- name: ๐ŸŒผ๐Ÿ”Ž Self-check YAML
run: |-
ESCAPED_AGENT_TEMPDIR=$(
cat <<'EOF' | sed 's/\\/\\\\/g'
${{ runner.temp }}
EOF
)
flowey.exe pipeline github --check $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out .github/workflows/openvmm-pr.yaml ci checkin-gates --config=pr
shell: bash
- name: install Rust
run: flowey.exe e 5 flowey_lib_common::install_rust 0
shell: bash
- name: detect active toolchain
run: flowey.exe e 5 flowey_lib_common::install_rust 1
shell: bash
- name: report common cargo flags
run: flowey.exe e 5 flowey_lib_common::cfg_cargo_common_flags 0
shell: bash
- name: check if hvlite needs to be cloned
run: flowey.exe e 5 flowey_lib_common::git_checkout 0
shell: bash
- run: |
flowey.exe v 5 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:469:46' --write-to-gh-env FLOWEY_CONDITION
shell: bash
name: ๐ŸŒผโ“ Write to 'FLOWEY_CONDITION'
- run: |
flowey.exe v 5 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:468:80' --write-to-gh-env floweyvar8 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar8'
if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
- id: flowey_lib_common__git_checkout__1
uses: actions/checkout@v4
with:
fetch-depth: '1'
path: repo0
persist-credentials: ${{ env.floweyvar8 }}
name: checkout repo hvlite
if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
- run: ${{ github.workspace }}
shell: flowey.exe v 5 'flowey_lib_common::git_checkout:4:flowey_lib_common/src/git_checkout.rs:523:31' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'github.workspace'
- name: report cloned repo directories
run: flowey.exe e 5 flowey_lib_common::git_checkout 3
shell: bash
- name: resolve OpenVMM repo requests
run: 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
shell: bash
- run: |
flowey.exe v 5 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar6 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar6'
- run: |
flowey.exe v 5 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar7 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar7'
- id: flowey_lib_common__cache__5
uses: actions/cache@v4
with:
key: ${{ env.floweyvar6 }}
path: ${{ env.floweyvar7 }}
name: 'Restore cache: gh-release-download'
- run: ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
shell: flowey.exe v 5 'flowey_lib_common::cache:12:flowey_lib_common/src/cache.rs:509:46' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'steps.flowey_lib_common__cache__5.outputs.cache-hit'
- name: map Github cache-hit to flowey
run: flowey.exe e 5 flowey_lib_common::cache 6
shell: bash
- name: create gh cache dir
run: flowey.exe e 5 flowey_lib_common::download_gh_cli 0
shell: bash
- name: Pre-processing cache vars
run: flowey.exe e 5 flowey_lib_common::cache 0
shell: bash
- run: |
flowey.exe v 5 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar4 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar4'
- run: |
flowey.exe v 5 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar5 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar5'
- id: flowey_lib_common__cache__1
uses: actions/cache@v4
with:
key: ${{ env.floweyvar4 }}
path: ${{ env.floweyvar5 }}
name: 'Restore cache: gh-cli'
- run: ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
shell: flowey.exe v 5 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:509:46' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'steps.flowey_lib_common__cache__1.outputs.cache-hit'
- name: map Github cache-hit to flowey
run: flowey.exe e 5 flowey_lib_common::cache 2
shell: bash
- name: installing gh
run: flowey.exe e 5 flowey_lib_common::download_gh_cli 1
shell: bash
- run: ${{ secrets.OPENVMM_CLIENT_ID }}
shell: flowey.exe v 5 'flowey_lib_hvlite::_jobs::cfg_gh_azure_login:0:flowey_lib_hvlite/src/_jobs/cfg_gh_azure_login.rs:36:29' --is-secret --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'secrets.OPENVMM_CLIENT_ID'
- run: ${{ secrets.OPENVMM_TENANT_ID }}
shell: flowey.exe v 5 'flowey_lib_hvlite::_jobs::cfg_gh_azure_login:1:flowey_lib_hvlite/src/_jobs/cfg_gh_azure_login.rs:37:29' --is-secret --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'secrets.OPENVMM_TENANT_ID'
- run: ${{ secrets.OPENVMM_SUBSCRIPTION_ID }}
shell: flowey.exe v 5 'flowey_lib_hvlite::_jobs::cfg_gh_azure_login:2:flowey_lib_hvlite/src/_jobs/cfg_gh_azure_login.rs:38:35' --is-secret --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'secrets.OPENVMM_SUBSCRIPTION_ID'
- name: Create OpenIDConnect Credentials
run: flowey.exe e 5 flowey_lib_hvlite::_jobs::cfg_gh_azure_login 3
shell: bash
- name: Read Azure Login Credentials
run: flowey.exe e 5 flowey_lib_common::gh_task_azure_login 0
shell: bash
- run: |
flowey.exe v 5 'flowey_lib_common::gh_task_azure_login:0:flowey_lib_common/src/gh_task_azure_login.rs:53:48' --is-secret --write-to-gh-env floweyvar1 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar1'
- run: |
flowey.exe v 5 'flowey_lib_common::gh_task_azure_login:2:flowey_lib_common/src/gh_task_azure_login.rs:55:60' --is-secret --write-to-gh-env floweyvar2 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar2'
- run: |
flowey.exe v 5 'flowey_lib_common::gh_task_azure_login:1:flowey_lib_common/src/gh_task_azure_login.rs:54:48' --is-secret --write-to-gh-env floweyvar3 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar3'
- id: flowey_lib_common__gh_task_azure_login__1
uses: Azure/login@v2
with:
client-id: ${{ env.floweyvar1 }}
subscription-id: ${{ env.floweyvar2 }}
tenant-id: ${{ env.floweyvar3 }}
name: Azure Login
- name: installing azure-cli
run: flowey.exe e 5 flowey_lib_common::install_azure_cli 0
shell: bash
- name: Downloading secrets from key vault HvLite-PATs
run: flowey.exe e 5 flowey_lib_common::gh_download_azure_key_vault_secret 0
shell: bash
- name: setup gh cli
run: flowey.exe e 5 flowey_lib_common::use_gh_cli 0
shell: bash
- name: download artifacts from github releases
run: flowey.exe e 5 flowey_lib_common::download_gh_release 1
shell: bash
- name: unpack protoc
run: flowey.exe e 5 flowey_lib_common::download_protoc 0
shell: bash
- name: report openvmm magicpath dir
run: 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
shell: bash
- name: cargo build vmgstool
run: flowey.exe e 5 flowey_lib_common::run_cargo_build 3
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey.exe e 5 flowey_lib_hvlite::run_cargo_build 3
shell: bash
- name: report built vmgstool
run: flowey.exe e 5 flowey_lib_hvlite::build_vmgstool 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey.exe e 5 flowey_lib_hvlite::artifact_vmgstool::publish 0
shell: bash
- name: copying vmgstool to artifact dir
run: flowey.exe e 5 flowey_lib_common::copy_to_artifact_dir 3
shell: bash
- name: cargo build vmgs_lib
run: flowey.exe e 5 flowey_lib_common::run_cargo_build 2
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey.exe e 5 flowey_lib_hvlite::run_cargo_build 2
shell: bash
- name: check built vmgs_lib
run: flowey.exe e 5 flowey_lib_hvlite::build_and_test_vmgs_lib 0
shell: bash
- name: report built vmgs_lib
run: flowey.exe e 5 flowey_lib_hvlite::build_and_test_vmgs_lib 1
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey.exe e 5 flowey_lib_hvlite::artifact_vmgs_lib::publish 0
shell: bash
- name: copying vmgs_lib to artifact dir
run: flowey.exe e 5 flowey_lib_common::copy_to_artifact_dir 2
shell: bash
- name: cargo build igvmfilegen
run: flowey.exe e 5 flowey_lib_common::run_cargo_build 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey.exe e 5 flowey_lib_hvlite::run_cargo_build 0
shell: bash
- name: report built igvmfilegen
run: flowey.exe e 5 flowey_lib_hvlite::build_igvmfilegen 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey.exe e 5 flowey_lib_hvlite::artifact_igvmfilegen::publish 0
shell: bash
- name: copying igvmfilegen to artifact dir
run: flowey.exe e 5 flowey_lib_common::copy_to_artifact_dir 0
shell: bash
- name: cargo build ohcldiag-dev
run: flowey.exe e 5 flowey_lib_common::run_cargo_build 1
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey.exe e 5 flowey_lib_hvlite::run_cargo_build 1
shell: bash
- name: report built ohcldiag_dev
run: flowey.exe e 5 flowey_lib_hvlite::build_ohcldiag_dev 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey.exe e 5 flowey_lib_hvlite::artifact_ohcldiag_dev::publish 0
shell: bash
- name: copying ohcldiag-dev to artifact dir
run: flowey.exe e 5 flowey_lib_common::copy_to_artifact_dir 1
shell: bash
- name: 'validate cache entry: gh-cli'
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-igvmfilegen
uses: actions/upload-artifact@v4
with:
name: aarch64-windows-igvmfilegen
path: ${{ runner.temp }}/publish_artifacts/aarch64-windows-igvmfilegen/
- name: ๐ŸŒผ๐Ÿ“ฆ Publish aarch64-windows-ohcldiag-dev
uses: actions/upload-artifact@v4
with:
name: aarch64-windows-ohcldiag-dev
path: ${{ runner.temp }}/publish_artifacts/aarch64-windows-ohcldiag-dev/
- name: ๐ŸŒผ๐Ÿ“ฆ Publish aarch64-windows-vmgs_lib
uses: actions/upload-artifact@v4
with:
name: aarch64-windows-vmgs_lib
path: ${{ runner.temp }}/publish_artifacts/aarch64-windows-vmgs_lib/
- name: ๐ŸŒผ๐Ÿ“ฆ Publish aarch64-windows-vmgstool
uses: actions/upload-artifact@v4
with:
name: aarch64-windows-vmgstool
path: ${{ runner.temp }}/publish_artifacts/aarch64-windows-vmgstool/
job6:
name: build artifacts (for VMM tests) [aarch64-windows]
runs-on: windows-latest
permissions:
contents: read
id-token: write
steps:
- run: echo "injected!"
name: ๐ŸŒผ๐Ÿฅพ Bootstrap flowey
shell: bash
- uses: Azure/login@v2
with:
client-id: ${{ secrets.OPENVMM_CLIENT_ID }}
tenant-id: ${{ secrets.OPENVMM_TENANT_ID }}
subscription-id: ${{ secrets.OPENVMM_SUBSCRIPTION_ID }}
- name: Pull Azure Key Vault secrets
run: |
VPackAccessToken=$(az keyvault secret show --name "VPackAccessToken" --vault-name "HvLite-PATs" --query value --output tsv)
echo "::add-mask::$VPackAccessToken"
echo "VPackAccessToken=$VPackAccessToken" >> $GITHUB_ENV
MsAzurePull=$(az keyvault secret show --name "MsAzurePull" --vault-name "HvLite-PATs" --query value --output tsv)
echo "::add-mask::$MsAzurePull"
echo "MsAzurePull=$MsAzurePull" >> $GITHUB_ENV
shell: bash
- run: |
set -x
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
rustup show
if: runner.os == 'Linux'
name: rustup (Linux)
shell: bash
- run: |
set -x
curl -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
./rustup-init.exe -y
echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
if: runner.os == 'Windows' && runner.arch == 'X64'
name: rustup (Windows X64)
shell: bash
- run: |
set -x
curl -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
./rustup-init.exe -y
echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
if: runner.os == 'Windows' && runner.arch == 'ARM64'
name: rustup (Windows ARM64)
shell: bash
- uses: actions/checkout@v4
with:
path: flowey_bootstrap
- name: Update Index
run: |
rustc -vV
cargo update --dry-run
working-directory: flowey_bootstrap
shell: bash
- name: Build flowey
run: CARGO_INCREMENTAL=0 RUSTC_BOOTSTRAP=1 RUSTFLAGS="-Z threads=8" cargo build -p flowey_hvlite --target x86_64-pc-windows-msvc --profile flowey-ci
working-directory: flowey_bootstrap
shell: bash
- name: Stage flowey artifact
run: |
mkdir ./flowey_bootstrap_temp
mv ./.github/workflows/openvmm-pr.yaml ./flowey_bootstrap_temp/pipeline.yaml
mv ./.github/workflows/openvmm-pr.json ./flowey_bootstrap_temp/pipeline.json
mv target/x86_64-pc-windows-msvc/flowey-ci/flowey_hvlite.exe ./flowey_bootstrap_temp/flowey.exe
working-directory: flowey_bootstrap
shell: bash
- name: Copy flowey artifact
run: |
OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
mkdir -p $OutDirNormal
cp -r ./flowey_bootstrap_temp/* $OutDirNormal
working-directory: flowey_bootstrap
shell: bash
- name: Cleanup staged flowey artifact
run: rm -rf ./flowey_bootstrap_temp
working-directory: flowey_bootstrap
shell: bash
- run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $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/bootstrapped-flowey/flowey.exe
echo '"debug"' | flowey.exe v 6 'FLOWEY_LOG' --update-from-stdin
echo "${{ runner.temp }}/work" | flowey.exe v 6 '_internal_WORKING_DIR' --update-from-stdin --is-raw-string
cat <<'EOF' | flowey.exe v 6 'param0' --update-from-stdin
${{ inputs.param0 != '' && inputs.param0 || 'false' }}
EOF
mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-openvmm"
echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-openvmm" | flowey.exe v 6 'artifact_publish_from_aarch64-windows-openvmm' --update-from-stdin --is-raw-string
mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-pipette"
echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-pipette" | flowey.exe v 6 'artifact_publish_from_aarch64-windows-pipette' --update-from-stdin --is-raw-string
mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-vmm-tests-archive"
echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-vmm-tests-archive" | flowey.exe v 6 'artifact_publish_from_aarch64-windows-vmm-tests-archive' --update-from-stdin --is-raw-string
shell: bash
- name: ๐ŸŒผ๐Ÿ”Ž Self-check YAML
run: |-
ESCAPED_AGENT_TEMPDIR=$(
cat <<'EOF' | sed 's/\\/\\\\/g'
${{ runner.temp }}
EOF
)
flowey.exe pipeline github --check $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out .github/workflows/openvmm-pr.yaml ci checkin-gates --config=pr
shell: bash
- name: install Rust
run: flowey.exe e 6 flowey_lib_common::install_rust 0
shell: bash
- name: detect active toolchain
run: flowey.exe e 6 flowey_lib_common::install_rust 1
shell: bash
- name: report common cargo flags
run: flowey.exe e 6 flowey_lib_common::cfg_cargo_common_flags 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 8
shell: bash
- run: |
flowey.exe v 6 'flowey_lib_common::cache:18:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar9 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar9'
- run: |
flowey.exe v 6 'flowey_lib_common::cache:17:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar10 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar10'
- id: flowey_lib_common__cache__9
uses: actions/cache@v4
with:
key: ${{ env.floweyvar9 }}
path: ${{ env.floweyvar10 }}
name: 'Restore cache: gh-release-download'
- run: ${{ steps.flowey_lib_common__cache__9.outputs.cache-hit }}
shell: flowey.exe v 6 'flowey_lib_common::cache:20:flowey_lib_common/src/cache.rs:509:46' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'steps.flowey_lib_common__cache__9.outputs.cache-hit'
- name: map Github cache-hit to flowey
run: flowey.exe e 6 flowey_lib_common::cache 10
shell: bash
- name: create gh cache dir
run: flowey.exe e 6 flowey_lib_common::download_gh_cli 0
shell: bash
- name: Pre-processing cache vars
run: flowey.exe e 6 flowey_lib_common::cache 4
shell: bash
- run: |
flowey.exe v 6 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar7 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar7'
- run: |
flowey.exe v 6 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar8 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar8'
- id: flowey_lib_common__cache__5
uses: actions/cache@v4
with:
key: ${{ env.floweyvar7 }}
path: ${{ env.floweyvar8 }}
name: 'Restore cache: gh-cli'
- run: ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
shell: flowey.exe v 6 'flowey_lib_common::cache:12:flowey_lib_common/src/cache.rs:509:46' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'steps.flowey_lib_common__cache__5.outputs.cache-hit'
- name: map Github cache-hit to flowey
run: flowey.exe e 6 flowey_lib_common::cache 6
shell: bash
- name: installing gh
run: flowey.exe e 6 flowey_lib_common::download_gh_cli 1
shell: bash
- run: ${{ secrets.OPENVMM_CLIENT_ID }}
shell: flowey.exe v 6 'flowey_lib_hvlite::_jobs::cfg_gh_azure_login:0:flowey_lib_hvlite/src/_jobs/cfg_gh_azure_login.rs:36:29' --is-secret --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'secrets.OPENVMM_CLIENT_ID'
- run: ${{ secrets.OPENVMM_TENANT_ID }}
shell: flowey.exe v 6 'flowey_lib_hvlite::_jobs::cfg_gh_azure_login:1:flowey_lib_hvlite/src/_jobs/cfg_gh_azure_login.rs:37:29' --is-secret --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'secrets.OPENVMM_TENANT_ID'
- run: ${{ secrets.OPENVMM_SUBSCRIPTION_ID }}
shell: flowey.exe v 6 'flowey_lib_hvlite::_jobs::cfg_gh_azure_login:2:flowey_lib_hvlite/src/_jobs/cfg_gh_azure_login.rs:38:35' --is-secret --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'secrets.OPENVMM_SUBSCRIPTION_ID'
- name: Create OpenIDConnect Credentials
run: flowey.exe e 6 flowey_lib_hvlite::_jobs::cfg_gh_azure_login 3
shell: bash
- name: Read Azure Login Credentials
run: flowey.exe e 6 flowey_lib_common::gh_task_azure_login 0
shell: bash
- run: |
flowey.exe v 6 'flowey_lib_common::gh_task_azure_login:0:flowey_lib_common/src/gh_task_azure_login.rs:53:48' --is-secret --write-to-gh-env floweyvar1 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar1'
- run: |
flowey.exe v 6 'flowey_lib_common::gh_task_azure_login:2:flowey_lib_common/src/gh_task_azure_login.rs:55:60' --is-secret --write-to-gh-env floweyvar2 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar2'
- run: |
flowey.exe v 6 'flowey_lib_common::gh_task_azure_login:1:flowey_lib_common/src/gh_task_azure_login.rs:54:48' --is-secret --write-to-gh-env floweyvar3 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar3'
- id: flowey_lib_common__gh_task_azure_login__1
uses: Azure/login@v2
with:
client-id: ${{ env.floweyvar1 }}
subscription-id: ${{ env.floweyvar2 }}
tenant-id: ${{ env.floweyvar3 }}
name: Azure Login
- name: installing azure-cli
run: flowey.exe e 6 flowey_lib_common::install_azure_cli 0
shell: bash
- name: Downloading secrets from key vault HvLite-PATs
run: flowey.exe e 6 flowey_lib_common::gh_download_azure_key_vault_secret 0
shell: bash
- name: setup gh cli
run: flowey.exe e 6 flowey_lib_common::use_gh_cli 0
shell: bash
- name: download artifacts from github releases
run: flowey.exe e 6 flowey_lib_common::download_gh_release 1
shell: bash
- name: unpack Microsoft.WSL.LxUtil.AARCH64.zip
run: flowey.exe e 6 flowey_lib_hvlite::download_lxutil 0
shell: bash
- name: check if hvlite needs to be cloned
run: flowey.exe e 6 flowey_lib_common::git_checkout 0
shell: bash
- run: |
flowey.exe v 6 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:469:46' --write-to-gh-env FLOWEY_CONDITION
shell: bash
name: ๐ŸŒผโ“ Write to 'FLOWEY_CONDITION'
- run: |
flowey.exe v 6 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:468:80' --write-to-gh-env floweyvar4 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar4'
if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
- id: flowey_lib_common__git_checkout__1
uses: actions/checkout@v4
with:
fetch-depth: '1'
path: repo0
persist-credentials: ${{ env.floweyvar4 }}
name: checkout repo hvlite
if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
- run: ${{ github.workspace }}
shell: flowey.exe v 6 'flowey_lib_common::git_checkout:4:flowey_lib_common/src/git_checkout.rs:523:31' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'github.workspace'
- name: report cloned repo directories
run: flowey.exe e 6 flowey_lib_common::git_checkout 3
shell: bash
- name: resolve OpenVMM repo requests
run: flowey.exe e 6 flowey_lib_hvlite::git_checkout_openvmm_repo 0
shell: bash
- name: report openvmm magicpath dir
run: flowey.exe e 6 flowey_lib_hvlite::cfg_openvmm_magicpath 0
shell: bash
- name: move lxutil.dll into its magic folder
run: flowey.exe e 6 flowey_lib_hvlite::init_openvmm_magicpath_lxutil 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: unpack protoc
run: flowey.exe e 6 flowey_lib_common::download_protoc 0
shell: bash
- name: symlink protoc
run: flowey.exe e 6 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
shell: bash
- name: cargo build openvmm
run: flowey.exe e 6 flowey_lib_common::run_cargo_build 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey.exe e 6 flowey_lib_hvlite::run_cargo_build 0
shell: bash
- name: report built openvmm
run: flowey.exe e 6 flowey_lib_hvlite::build_openvmm 0
shell: bash
- name: copying openvmm to publish dir
run: flowey.exe e 6 flowey_lib_hvlite::artifact_openvmm::publish 0
shell: bash
- name: cargo build pipette
run: flowey.exe e 6 flowey_lib_common::run_cargo_build 1
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey.exe e 6 flowey_lib_hvlite::run_cargo_build 1
shell: bash
- name: report built pipette
run: flowey.exe e 6 flowey_lib_hvlite::build_pipette 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey.exe e 6 flowey_lib_hvlite::artifact_pipette::publish 0
shell: bash
- name: copying pipette to artifact dir
run: flowey.exe e 6 flowey_lib_common::copy_to_artifact_dir 0
shell: bash
- name: create cargo-nextest cache dir
run: flowey.exe e 6 flowey_lib_common::download_cargo_nextest 0
shell: bash
- name: Pre-processing cache vars
run: flowey.exe e 6 flowey_lib_common::cache 0
shell: bash
- run: |
flowey.exe v 6 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar5 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar5'
- run: |
flowey.exe v 6 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar6 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar6'
- id: flowey_lib_common__cache__1
uses: actions/cache@v4
with:
key: ${{ env.floweyvar5 }}
path: ${{ env.floweyvar6 }}
name: 'Restore cache: cargo-nextest'
- run: ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
shell: flowey.exe v 6 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:509:46' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'steps.flowey_lib_common__cache__1.outputs.cache-hit'
- name: map Github cache-hit to flowey
run: flowey.exe e 6 flowey_lib_common::cache 2
shell: bash
- name: report cargo install persistent dir
run: flowey.exe e 6 flowey_lib_common::cfg_persistent_dir_cargo_install 0
shell: bash
- name: report $CARGO_HOME
run: flowey.exe e 6 flowey_lib_common::install_rust 2
shell: bash
- name: installing cargo-nextest
run: flowey.exe e 6 flowey_lib_common::download_cargo_nextest 1
shell: bash
- name: build + archive 'vmm_tests' nextests
run: flowey.exe e 6 flowey_lib_common::run_cargo_nextest_archive 0
shell: bash
- name: report built vmm_tests
run: flowey.exe e 6 flowey_lib_hvlite::build_nextest_vmm_tests 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey.exe e 6 flowey_lib_hvlite::artifact_nextest_vmm_tests_archive::publish 0
shell: bash
- name: copying vmm_tests to artifact dir
run: flowey.exe e 6 flowey_lib_common::copy_to_artifact_dir 1
shell: bash
- name: 'validate cache entry: cargo-nextest'
run: flowey.exe e 6 flowey_lib_common::cache 3
shell: bash
- name: 'validate cache entry: gh-cli'
run: flowey.exe e 6 flowey_lib_common::cache 7
shell: bash
- name: 'validate cache entry: gh-release-download'
run: flowey.exe e 6 flowey_lib_common::cache 11
shell: bash
- name: ๐ŸŒผ๐Ÿ“ฆ Publish aarch64-windows-openvmm
uses: actions/upload-artifact@v4
with:
name: aarch64-windows-openvmm
path: ${{ runner.temp }}/publish_artifacts/aarch64-windows-openvmm/
- name: ๐ŸŒผ๐Ÿ“ฆ Publish aarch64-windows-pipette
uses: actions/upload-artifact@v4
with:
name: aarch64-windows-pipette
path: ${{ runner.temp }}/publish_artifacts/aarch64-windows-pipette/
- name: ๐ŸŒผ๐Ÿ“ฆ Publish aarch64-windows-vmm-tests-archive
uses: actions/upload-artifact@v4
with:
name: aarch64-windows-vmm-tests-archive
path: ${{ runner.temp }}/publish_artifacts/aarch64-windows-vmm-tests-archive/
job7:
name: build artifacts (not for VMM tests) [x64-windows]
runs-on:
- self-hosted
- 1ES.Pool=HvLite-GitHub-Win-Pool-WestUS3
permissions:
contents: read
id-token: write
steps:
- run: echo "injected!"
name: ๐ŸŒผ๐Ÿฅพ Bootstrap flowey
shell: bash
- uses: Azure/login@v2
with:
client-id: ${{ secrets.OPENVMM_CLIENT_ID }}
tenant-id: ${{ secrets.OPENVMM_TENANT_ID }}
subscription-id: ${{ secrets.OPENVMM_SUBSCRIPTION_ID }}
- name: Pull Azure Key Vault secrets
run: |
VPackAccessToken=$(az keyvault secret show --name "VPackAccessToken" --vault-name "HvLite-PATs" --query value --output tsv)
echo "::add-mask::$VPackAccessToken"
echo "VPackAccessToken=$VPackAccessToken" >> $GITHUB_ENV
MsAzurePull=$(az keyvault secret show --name "MsAzurePull" --vault-name "HvLite-PATs" --query value --output tsv)
echo "::add-mask::$MsAzurePull"
echo "MsAzurePull=$MsAzurePull" >> $GITHUB_ENV
shell: bash
- run: |
set -x
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
rustup show
if: runner.os == 'Linux'
name: rustup (Linux)
shell: bash
- run: |
set -x
curl -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
./rustup-init.exe -y
echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
if: runner.os == 'Windows' && runner.arch == 'X64'
name: rustup (Windows X64)
shell: bash
- run: |
set -x
curl -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
./rustup-init.exe -y
echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
if: runner.os == 'Windows' && runner.arch == 'ARM64'
name: rustup (Windows ARM64)
shell: bash
- uses: actions/checkout@v4
with:
path: flowey_bootstrap
- name: Update Index
run: |
rustc -vV
cargo update --dry-run
working-directory: flowey_bootstrap
shell: bash
- name: Build flowey
run: CARGO_INCREMENTAL=0 RUSTC_BOOTSTRAP=1 RUSTFLAGS="-Z threads=8" cargo build -p flowey_hvlite --target x86_64-pc-windows-msvc --profile flowey-ci
working-directory: flowey_bootstrap
shell: bash
- name: Stage flowey artifact
run: |
mkdir ./flowey_bootstrap_temp
mv ./.github/workflows/openvmm-pr.yaml ./flowey_bootstrap_temp/pipeline.yaml
mv ./.github/workflows/openvmm-pr.json ./flowey_bootstrap_temp/pipeline.json
mv target/x86_64-pc-windows-msvc/flowey-ci/flowey_hvlite.exe ./flowey_bootstrap_temp/flowey.exe
working-directory: flowey_bootstrap
shell: bash
- name: Copy flowey artifact
run: |
OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
mkdir -p $OutDirNormal
cp -r ./flowey_bootstrap_temp/* $OutDirNormal
working-directory: flowey_bootstrap
shell: bash
- name: Cleanup staged flowey artifact
run: rm -rf ./flowey_bootstrap_temp
working-directory: flowey_bootstrap
shell: bash
- run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $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/bootstrapped-flowey/flowey.exe
echo '"debug"' | flowey.exe v 7 'FLOWEY_LOG' --update-from-stdin
echo "${{ runner.temp }}/work" | flowey.exe v 7 '_internal_WORKING_DIR' --update-from-stdin --is-raw-string
cat <<'EOF' | flowey.exe v 7 'param0' --update-from-stdin
${{ inputs.param0 != '' && inputs.param0 || 'false' }}
EOF
mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-igvmfilegen"
echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-igvmfilegen" | flowey.exe v 7 'artifact_publish_from_x64-windows-igvmfilegen' --update-from-stdin --is-raw-string
mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-ohcldiag-dev"
echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-ohcldiag-dev" | flowey.exe v 7 'artifact_publish_from_x64-windows-ohcldiag-dev' --update-from-stdin --is-raw-string
mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-vmgs_lib"
echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-vmgs_lib" | flowey.exe v 7 'artifact_publish_from_x64-windows-vmgs_lib' --update-from-stdin --is-raw-string
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' --update-from-stdin --is-raw-string
shell: bash
- name: ๐ŸŒผ๐Ÿ”Ž Self-check YAML
run: |-
ESCAPED_AGENT_TEMPDIR=$(
cat <<'EOF' | sed 's/\\/\\\\/g'
${{ runner.temp }}
EOF
)
flowey.exe pipeline github --check $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out .github/workflows/openvmm-pr.yaml ci checkin-gates --config=pr
shell: bash
- name: install Rust
run: flowey.exe e 7 flowey_lib_common::install_rust 0
shell: bash
- name: detect active toolchain
run: flowey.exe e 7 flowey_lib_common::install_rust 1
shell: bash
- name: report common cargo flags
run: flowey.exe e 7 flowey_lib_common::cfg_cargo_common_flags 0
shell: bash
- name: check if hvlite needs to be cloned
run: flowey.exe e 7 flowey_lib_common::git_checkout 0
shell: bash
- run: |
flowey.exe v 7 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:469:46' --write-to-gh-env FLOWEY_CONDITION
shell: bash
name: ๐ŸŒผโ“ Write to 'FLOWEY_CONDITION'
- run: |
flowey.exe v 7 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:468:80' --write-to-gh-env floweyvar8 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar8'
if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
- id: flowey_lib_common__git_checkout__1
uses: actions/checkout@v4
with:
fetch-depth: '1'
path: repo0
persist-credentials: ${{ env.floweyvar8 }}
name: checkout repo hvlite
if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
- run: ${{ github.workspace }}
shell: flowey.exe v 7 'flowey_lib_common::git_checkout:4:flowey_lib_common/src/git_checkout.rs:523:31' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'github.workspace'
- name: report cloned repo directories
run: flowey.exe e 7 flowey_lib_common::git_checkout 3
shell: bash
- name: resolve OpenVMM repo requests
run: 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
shell: bash
- run: |
flowey.exe v 7 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar6 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar6'
- run: |
flowey.exe v 7 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar7 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar7'
- id: flowey_lib_common__cache__5
uses: actions/cache@v4
with:
key: ${{ env.floweyvar6 }}
path: ${{ env.floweyvar7 }}
name: 'Restore cache: gh-release-download'
- run: ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
shell: flowey.exe v 7 'flowey_lib_common::cache:12:flowey_lib_common/src/cache.rs:509:46' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'steps.flowey_lib_common__cache__5.outputs.cache-hit'
- name: map Github cache-hit to flowey
run: flowey.exe e 7 flowey_lib_common::cache 6
shell: bash
- name: create gh cache dir
run: flowey.exe e 7 flowey_lib_common::download_gh_cli 0
shell: bash
- name: Pre-processing cache vars
run: flowey.exe e 7 flowey_lib_common::cache 0
shell: bash
- run: |
flowey.exe v 7 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar4 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar4'
- run: |
flowey.exe v 7 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar5 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar5'
- id: flowey_lib_common__cache__1
uses: actions/cache@v4
with:
key: ${{ env.floweyvar4 }}
path: ${{ env.floweyvar5 }}
name: 'Restore cache: gh-cli'
- run: ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
shell: flowey.exe v 7 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:509:46' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'steps.flowey_lib_common__cache__1.outputs.cache-hit'
- name: map Github cache-hit to flowey
run: flowey.exe e 7 flowey_lib_common::cache 2
shell: bash
- name: installing gh
run: flowey.exe e 7 flowey_lib_common::download_gh_cli 1
shell: bash
- run: ${{ secrets.OPENVMM_CLIENT_ID }}
shell: flowey.exe v 7 'flowey_lib_hvlite::_jobs::cfg_gh_azure_login:0:flowey_lib_hvlite/src/_jobs/cfg_gh_azure_login.rs:36:29' --is-secret --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'secrets.OPENVMM_CLIENT_ID'
- run: ${{ secrets.OPENVMM_TENANT_ID }}
shell: flowey.exe v 7 'flowey_lib_hvlite::_jobs::cfg_gh_azure_login:1:flowey_lib_hvlite/src/_jobs/cfg_gh_azure_login.rs:37:29' --is-secret --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'secrets.OPENVMM_TENANT_ID'
- run: ${{ secrets.OPENVMM_SUBSCRIPTION_ID }}
shell: flowey.exe v 7 'flowey_lib_hvlite::_jobs::cfg_gh_azure_login:2:flowey_lib_hvlite/src/_jobs/cfg_gh_azure_login.rs:38:35' --is-secret --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'secrets.OPENVMM_SUBSCRIPTION_ID'
- name: Create OpenIDConnect Credentials
run: flowey.exe e 7 flowey_lib_hvlite::_jobs::cfg_gh_azure_login 3
shell: bash
- name: Read Azure Login Credentials
run: flowey.exe e 7 flowey_lib_common::gh_task_azure_login 0
shell: bash
- run: |
flowey.exe v 7 'flowey_lib_common::gh_task_azure_login:0:flowey_lib_common/src/gh_task_azure_login.rs:53:48' --is-secret --write-to-gh-env floweyvar1 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar1'
- run: |
flowey.exe v 7 'flowey_lib_common::gh_task_azure_login:2:flowey_lib_common/src/gh_task_azure_login.rs:55:60' --is-secret --write-to-gh-env floweyvar2 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar2'
- run: |
flowey.exe v 7 'flowey_lib_common::gh_task_azure_login:1:flowey_lib_common/src/gh_task_azure_login.rs:54:48' --is-secret --write-to-gh-env floweyvar3 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar3'
- id: flowey_lib_common__gh_task_azure_login__1
uses: Azure/login@v2
with:
client-id: ${{ env.floweyvar1 }}
subscription-id: ${{ env.floweyvar2 }}
tenant-id: ${{ env.floweyvar3 }}
name: Azure Login
- name: installing azure-cli
run: flowey.exe e 7 flowey_lib_common::install_azure_cli 0
shell: bash
- name: Downloading secrets from key vault HvLite-PATs
run: flowey.exe e 7 flowey_lib_common::gh_download_azure_key_vault_secret 0
shell: bash
- name: setup gh cli
run: flowey.exe e 7 flowey_lib_common::use_gh_cli 0
shell: bash
- name: download artifacts from github releases
run: flowey.exe e 7 flowey_lib_common::download_gh_release 1
shell: bash
- name: unpack protoc
run: flowey.exe e 7 flowey_lib_common::download_protoc 0
shell: bash
- name: report openvmm magicpath dir
run: 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
shell: bash
- name: cargo build vmgstool
run: flowey.exe e 7 flowey_lib_common::run_cargo_build 3
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey.exe e 7 flowey_lib_hvlite::run_cargo_build 3
shell: bash
- name: report built vmgstool
run: flowey.exe e 7 flowey_lib_hvlite::build_vmgstool 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey.exe e 7 flowey_lib_hvlite::artifact_vmgstool::publish 0
shell: bash
- name: copying vmgstool to artifact dir
run: flowey.exe e 7 flowey_lib_common::copy_to_artifact_dir 3
shell: bash
- name: cargo build vmgs_lib
run: flowey.exe e 7 flowey_lib_common::run_cargo_build 2
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey.exe e 7 flowey_lib_hvlite::run_cargo_build 2
shell: bash
- name: check built vmgs_lib
run: flowey.exe e 7 flowey_lib_hvlite::build_and_test_vmgs_lib 0
shell: bash
- name: test vmgs_lib
run: flowey.exe e 7 flowey_lib_hvlite::build_and_test_vmgs_lib 1
shell: bash
- name: report built vmgs_lib
run: flowey.exe e 7 flowey_lib_hvlite::build_and_test_vmgs_lib 2
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey.exe e 7 flowey_lib_hvlite::artifact_vmgs_lib::publish 0
shell: bash
- name: copying vmgs_lib to artifact dir
run: flowey.exe e 7 flowey_lib_common::copy_to_artifact_dir 2
shell: bash
- name: cargo build igvmfilegen
run: flowey.exe e 7 flowey_lib_common::run_cargo_build 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey.exe e 7 flowey_lib_hvlite::run_cargo_build 0
shell: bash
- name: report built igvmfilegen
run: flowey.exe e 7 flowey_lib_hvlite::build_igvmfilegen 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey.exe e 7 flowey_lib_hvlite::artifact_igvmfilegen::publish 0
shell: bash
- name: copying igvmfilegen to artifact dir
run: flowey.exe e 7 flowey_lib_common::copy_to_artifact_dir 0
shell: bash
- name: cargo build ohcldiag-dev
run: flowey.exe e 7 flowey_lib_common::run_cargo_build 1
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey.exe e 7 flowey_lib_hvlite::run_cargo_build 1
shell: bash
- name: report built ohcldiag_dev
run: flowey.exe e 7 flowey_lib_hvlite::build_ohcldiag_dev 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey.exe e 7 flowey_lib_hvlite::artifact_ohcldiag_dev::publish 0
shell: bash
- name: copying ohcldiag-dev to artifact dir
run: flowey.exe e 7 flowey_lib_common::copy_to_artifact_dir 1
shell: bash
- name: 'validate cache entry: gh-cli'
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-igvmfilegen
uses: actions/upload-artifact@v4
with:
name: x64-windows-igvmfilegen
path: ${{ runner.temp }}/publish_artifacts/x64-windows-igvmfilegen/
- name: ๐ŸŒผ๐Ÿ“ฆ Publish x64-windows-ohcldiag-dev
uses: actions/upload-artifact@v4
with:
name: x64-windows-ohcldiag-dev
path: ${{ runner.temp }}/publish_artifacts/x64-windows-ohcldiag-dev/
- name: ๐ŸŒผ๐Ÿ“ฆ Publish x64-windows-vmgs_lib
uses: actions/upload-artifact@v4
with:
name: x64-windows-vmgs_lib
path: ${{ runner.temp }}/publish_artifacts/x64-windows-vmgs_lib/
- name: ๐ŸŒผ๐Ÿ“ฆ Publish x64-windows-vmgstool
uses: actions/upload-artifact@v4
with:
name: x64-windows-vmgstool
path: ${{ runner.temp }}/publish_artifacts/x64-windows-vmgstool/
job8:
name: build artifacts (for VMM tests) [x64-windows]
runs-on: windows-latest
permissions:
contents: read
id-token: write
steps:
- run: echo "injected!"
name: ๐ŸŒผ๐Ÿฅพ Bootstrap flowey
shell: bash
- uses: Azure/login@v2
with:
client-id: ${{ secrets.OPENVMM_CLIENT_ID }}
tenant-id: ${{ secrets.OPENVMM_TENANT_ID }}
subscription-id: ${{ secrets.OPENVMM_SUBSCRIPTION_ID }}
- name: Pull Azure Key Vault secrets
run: |
VPackAccessToken=$(az keyvault secret show --name "VPackAccessToken" --vault-name "HvLite-PATs" --query value --output tsv)
echo "::add-mask::$VPackAccessToken"
echo "VPackAccessToken=$VPackAccessToken" >> $GITHUB_ENV
MsAzurePull=$(az keyvault secret show --name "MsAzurePull" --vault-name "HvLite-PATs" --query value --output tsv)
echo "::add-mask::$MsAzurePull"
echo "MsAzurePull=$MsAzurePull" >> $GITHUB_ENV
shell: bash
- run: |
set -x
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
rustup show
if: runner.os == 'Linux'
name: rustup (Linux)
shell: bash
- run: |
set -x
curl -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
./rustup-init.exe -y
echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
if: runner.os == 'Windows' && runner.arch == 'X64'
name: rustup (Windows X64)
shell: bash
- run: |
set -x
curl -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
./rustup-init.exe -y
echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
if: runner.os == 'Windows' && runner.arch == 'ARM64'
name: rustup (Windows ARM64)
shell: bash
- uses: actions/checkout@v4
with:
path: flowey_bootstrap
- name: Update Index
run: |
rustc -vV
cargo update --dry-run
working-directory: flowey_bootstrap
shell: bash
- name: Build flowey
run: CARGO_INCREMENTAL=0 RUSTC_BOOTSTRAP=1 RUSTFLAGS="-Z threads=8" cargo build -p flowey_hvlite --target x86_64-pc-windows-msvc --profile flowey-ci
working-directory: flowey_bootstrap
shell: bash
- name: Stage flowey artifact
run: |
mkdir ./flowey_bootstrap_temp
mv ./.github/workflows/openvmm-pr.yaml ./flowey_bootstrap_temp/pipeline.yaml
mv ./.github/workflows/openvmm-pr.json ./flowey_bootstrap_temp/pipeline.json
mv target/x86_64-pc-windows-msvc/flowey-ci/flowey_hvlite.exe ./flowey_bootstrap_temp/flowey.exe
working-directory: flowey_bootstrap
shell: bash
- name: Copy flowey artifact
run: |
OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
mkdir -p $OutDirNormal
cp -r ./flowey_bootstrap_temp/* $OutDirNormal
working-directory: flowey_bootstrap
shell: bash
- name: Cleanup staged flowey artifact
run: rm -rf ./flowey_bootstrap_temp
working-directory: flowey_bootstrap
shell: bash
- run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $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/bootstrapped-flowey/flowey.exe
echo '"debug"' | flowey.exe v 8 'FLOWEY_LOG' --update-from-stdin
echo "${{ runner.temp }}/work" | flowey.exe v 8 '_internal_WORKING_DIR' --update-from-stdin --is-raw-string
cat <<'EOF' | flowey.exe v 8 'param0' --update-from-stdin
${{ inputs.param0 != '' && inputs.param0 || 'false' }}
EOF
mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-openvmm"
echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-openvmm" | flowey.exe v 8 'artifact_publish_from_x64-windows-openvmm' --update-from-stdin --is-raw-string
mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-pipette"
echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-pipette" | flowey.exe v 8 'artifact_publish_from_x64-windows-pipette' --update-from-stdin --is-raw-string
mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-vmm-tests-archive"
echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-vmm-tests-archive" | flowey.exe v 8 'artifact_publish_from_x64-windows-vmm-tests-archive' --update-from-stdin --is-raw-string
shell: bash
- name: ๐ŸŒผ๐Ÿ”Ž Self-check YAML
run: |-
ESCAPED_AGENT_TEMPDIR=$(
cat <<'EOF' | sed 's/\\/\\\\/g'
${{ runner.temp }}
EOF
)
flowey.exe pipeline github --check $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out .github/workflows/openvmm-pr.yaml ci checkin-gates --config=pr
shell: bash
- name: install Rust
run: flowey.exe e 8 flowey_lib_common::install_rust 0
shell: bash
- name: detect active toolchain
run: flowey.exe e 8 flowey_lib_common::install_rust 1
shell: bash
- name: report common cargo flags
run: flowey.exe e 8 flowey_lib_common::cfg_cargo_common_flags 0
shell: bash
- name: create gh-release-download cache dir
run: flowey.exe e 8 flowey_lib_common::download_gh_release 0
shell: bash
- name: Pre-processing cache vars
run: flowey.exe e 8 flowey_lib_common::cache 8
shell: bash
- run: |
flowey.exe v 8 'flowey_lib_common::cache:18:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar9 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar9'
- run: |
flowey.exe v 8 'flowey_lib_common::cache:17:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar10 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar10'
- id: flowey_lib_common__cache__9
uses: actions/cache@v4
with:
key: ${{ env.floweyvar9 }}
path: ${{ env.floweyvar10 }}
name: 'Restore cache: gh-release-download'
- run: ${{ steps.flowey_lib_common__cache__9.outputs.cache-hit }}
shell: flowey.exe v 8 'flowey_lib_common::cache:20:flowey_lib_common/src/cache.rs:509:46' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'steps.flowey_lib_common__cache__9.outputs.cache-hit'
- name: map Github cache-hit to flowey
run: flowey.exe e 8 flowey_lib_common::cache 10
shell: bash
- name: create gh cache dir
run: flowey.exe e 8 flowey_lib_common::download_gh_cli 0
shell: bash
- name: Pre-processing cache vars
run: flowey.exe e 8 flowey_lib_common::cache 4
shell: bash
- run: |
flowey.exe v 8 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar7 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar7'
- run: |
flowey.exe v 8 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar8 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar8'
- id: flowey_lib_common__cache__5
uses: actions/cache@v4
with:
key: ${{ env.floweyvar7 }}
path: ${{ env.floweyvar8 }}
name: 'Restore cache: gh-cli'
- run: ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
shell: flowey.exe v 8 'flowey_lib_common::cache:12:flowey_lib_common/src/cache.rs:509:46' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'steps.flowey_lib_common__cache__5.outputs.cache-hit'
- name: map Github cache-hit to flowey
run: flowey.exe e 8 flowey_lib_common::cache 6
shell: bash
- name: installing gh
run: flowey.exe e 8 flowey_lib_common::download_gh_cli 1
shell: bash
- run: ${{ secrets.OPENVMM_CLIENT_ID }}
shell: flowey.exe v 8 'flowey_lib_hvlite::_jobs::cfg_gh_azure_login:0:flowey_lib_hvlite/src/_jobs/cfg_gh_azure_login.rs:36:29' --is-secret --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'secrets.OPENVMM_CLIENT_ID'
- run: ${{ secrets.OPENVMM_TENANT_ID }}
shell: flowey.exe v 8 'flowey_lib_hvlite::_jobs::cfg_gh_azure_login:1:flowey_lib_hvlite/src/_jobs/cfg_gh_azure_login.rs:37:29' --is-secret --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'secrets.OPENVMM_TENANT_ID'
- run: ${{ secrets.OPENVMM_SUBSCRIPTION_ID }}
shell: flowey.exe v 8 'flowey_lib_hvlite::_jobs::cfg_gh_azure_login:2:flowey_lib_hvlite/src/_jobs/cfg_gh_azure_login.rs:38:35' --is-secret --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'secrets.OPENVMM_SUBSCRIPTION_ID'
- name: Create OpenIDConnect Credentials
run: flowey.exe e 8 flowey_lib_hvlite::_jobs::cfg_gh_azure_login 3
shell: bash
- name: Read Azure Login Credentials
run: flowey.exe e 8 flowey_lib_common::gh_task_azure_login 0
shell: bash
- run: |
flowey.exe v 8 'flowey_lib_common::gh_task_azure_login:0:flowey_lib_common/src/gh_task_azure_login.rs:53:48' --is-secret --write-to-gh-env floweyvar1 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar1'
- run: |
flowey.exe v 8 'flowey_lib_common::gh_task_azure_login:2:flowey_lib_common/src/gh_task_azure_login.rs:55:60' --is-secret --write-to-gh-env floweyvar2 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar2'
- run: |
flowey.exe v 8 'flowey_lib_common::gh_task_azure_login:1:flowey_lib_common/src/gh_task_azure_login.rs:54:48' --is-secret --write-to-gh-env floweyvar3 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar3'
- id: flowey_lib_common__gh_task_azure_login__1
uses: Azure/login@v2
with:
client-id: ${{ env.floweyvar1 }}
subscription-id: ${{ env.floweyvar2 }}
tenant-id: ${{ env.floweyvar3 }}
name: Azure Login
- name: installing azure-cli
run: flowey.exe e 8 flowey_lib_common::install_azure_cli 0
shell: bash
- name: Downloading secrets from key vault HvLite-PATs
run: flowey.exe e 8 flowey_lib_common::gh_download_azure_key_vault_secret 0
shell: bash
- name: setup gh cli
run: flowey.exe e 8 flowey_lib_common::use_gh_cli 0
shell: bash
- name: download artifacts from github releases
run: flowey.exe e 8 flowey_lib_common::download_gh_release 1
shell: bash
- name: unpack Microsoft.WSL.LxUtil.x64.zip
run: flowey.exe e 8 flowey_lib_hvlite::download_lxutil 0
shell: bash
- name: check if hvlite needs to be cloned
run: flowey.exe e 8 flowey_lib_common::git_checkout 0
shell: bash
- run: |
flowey.exe v 8 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:469:46' --write-to-gh-env FLOWEY_CONDITION
shell: bash
name: ๐ŸŒผโ“ Write to 'FLOWEY_CONDITION'
- run: |
flowey.exe v 8 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:468:80' --write-to-gh-env floweyvar4 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar4'
if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
- id: flowey_lib_common__git_checkout__1
uses: actions/checkout@v4
with:
fetch-depth: '1'
path: repo0
persist-credentials: ${{ env.floweyvar4 }}
name: checkout repo hvlite
if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
- run: ${{ github.workspace }}
shell: flowey.exe v 8 'flowey_lib_common::git_checkout:4:flowey_lib_common/src/git_checkout.rs:523:31' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'github.workspace'
- name: report cloned repo directories
run: flowey.exe e 8 flowey_lib_common::git_checkout 3
shell: bash
- name: resolve OpenVMM repo requests
run: flowey.exe e 8 flowey_lib_hvlite::git_checkout_openvmm_repo 0
shell: bash
- name: report openvmm magicpath dir
run: flowey.exe e 8 flowey_lib_hvlite::cfg_openvmm_magicpath 0
shell: bash
- name: move lxutil.dll into its magic folder
run: flowey.exe e 8 flowey_lib_hvlite::init_openvmm_magicpath_lxutil 0
shell: bash
- name: set '-Dwarnings' in .cargo/config.toml
run: flowey.exe e 8 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
shell: bash
- name: unpack protoc
run: flowey.exe e 8 flowey_lib_common::download_protoc 0
shell: bash
- name: symlink protoc
run: flowey.exe e 8 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
shell: bash
- name: cargo build openvmm
run: flowey.exe e 8 flowey_lib_common::run_cargo_build 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey.exe e 8 flowey_lib_hvlite::run_cargo_build 0
shell: bash
- name: report built openvmm
run: flowey.exe e 8 flowey_lib_hvlite::build_openvmm 0
shell: bash
- name: copying openvmm to publish dir
run: flowey.exe e 8 flowey_lib_hvlite::artifact_openvmm::publish 0
shell: bash
- name: cargo build pipette
run: flowey.exe e 8 flowey_lib_common::run_cargo_build 1
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey.exe e 8 flowey_lib_hvlite::run_cargo_build 1
shell: bash
- name: report built pipette
run: flowey.exe e 8 flowey_lib_hvlite::build_pipette 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey.exe e 8 flowey_lib_hvlite::artifact_pipette::publish 0
shell: bash
- name: copying pipette to artifact dir
run: flowey.exe e 8 flowey_lib_common::copy_to_artifact_dir 0
shell: bash
- name: create cargo-nextest cache dir
run: flowey.exe e 8 flowey_lib_common::download_cargo_nextest 0
shell: bash
- name: Pre-processing cache vars
run: flowey.exe e 8 flowey_lib_common::cache 0
shell: bash
- run: |
flowey.exe v 8 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar5 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar5'
- run: |
flowey.exe v 8 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar6 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar6'
- id: flowey_lib_common__cache__1
uses: actions/cache@v4
with:
key: ${{ env.floweyvar5 }}
path: ${{ env.floweyvar6 }}
name: 'Restore cache: cargo-nextest'
- run: ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
shell: flowey.exe v 8 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:509:46' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'steps.flowey_lib_common__cache__1.outputs.cache-hit'
- name: map Github cache-hit to flowey
run: flowey.exe e 8 flowey_lib_common::cache 2
shell: bash
- name: report cargo install persistent dir
run: flowey.exe e 8 flowey_lib_common::cfg_persistent_dir_cargo_install 0
shell: bash
- name: report $CARGO_HOME
run: flowey.exe e 8 flowey_lib_common::install_rust 2
shell: bash
- name: installing cargo-nextest
run: flowey.exe e 8 flowey_lib_common::download_cargo_nextest 1
shell: bash
- name: build + archive 'vmm_tests' nextests
run: flowey.exe e 8 flowey_lib_common::run_cargo_nextest_archive 0
shell: bash
- name: report built vmm_tests
run: flowey.exe e 8 flowey_lib_hvlite::build_nextest_vmm_tests 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey.exe e 8 flowey_lib_hvlite::artifact_nextest_vmm_tests_archive::publish 0
shell: bash
- name: copying vmm_tests to artifact dir
run: flowey.exe e 8 flowey_lib_common::copy_to_artifact_dir 1
shell: bash
- name: 'validate cache entry: cargo-nextest'
run: flowey.exe e 8 flowey_lib_common::cache 3
shell: bash
- name: 'validate cache entry: gh-cli'
run: flowey.exe e 8 flowey_lib_common::cache 7
shell: bash
- name: 'validate cache entry: gh-release-download'
run: flowey.exe e 8 flowey_lib_common::cache 11
shell: bash
- name: ๐ŸŒผ๐Ÿ“ฆ Publish x64-windows-openvmm
uses: actions/upload-artifact@v4
with:
name: x64-windows-openvmm
path: ${{ runner.temp }}/publish_artifacts/x64-windows-openvmm/
- name: ๐ŸŒผ๐Ÿ“ฆ Publish x64-windows-pipette
uses: actions/upload-artifact@v4
with:
name: x64-windows-pipette
path: ${{ runner.temp }}/publish_artifacts/x64-windows-pipette/
- name: ๐ŸŒผ๐Ÿ“ฆ Publish x64-windows-vmm-tests-archive
uses: actions/upload-artifact@v4
with:
name: x64-windows-vmm-tests-archive
path: ${{ runner.temp }}/publish_artifacts/x64-windows-vmm-tests-archive/
- name: ๐ŸŒผ๐Ÿงผ Redact bootstrap var db
run: rm $AgentTempDirNormal/bootstrapped-flowey/job8.json
shell: bash
- name: ๐ŸŒผ๐Ÿฅพ Publish bootstrapped flowey
uses: actions/upload-artifact@v4
with:
name: _internal-flowey-bootstrap-x86_64-windows-uid-9
path: ${{ runner.temp }}/bootstrapped-flowey
job9:
name: build artifacts [aarch64-linux]
runs-on:
- self-hosted
- 1ES.Pool=HvLite-GitHub-Linux-Pool-WestUS3
permissions:
contents: read
id-token: write
steps:
- run: echo "injected!"
name: ๐ŸŒผ๐Ÿฅพ Bootstrap flowey
shell: bash
- uses: Azure/login@v2
with:
client-id: ${{ secrets.OPENVMM_CLIENT_ID }}
tenant-id: ${{ secrets.OPENVMM_TENANT_ID }}
subscription-id: ${{ secrets.OPENVMM_SUBSCRIPTION_ID }}
- name: Pull Azure Key Vault secrets
run: |
VPackAccessToken=$(az keyvault secret show --name "VPackAccessToken" --vault-name "HvLite-PATs" --query value --output tsv)
echo "::add-mask::$VPackAccessToken"
echo "VPackAccessToken=$VPackAccessToken" >> $GITHUB_ENV
MsAzurePull=$(az keyvault secret show --name "MsAzurePull" --vault-name "HvLite-PATs" --query value --output tsv)
echo "::add-mask::$MsAzurePull"
echo "MsAzurePull=$MsAzurePull" >> $GITHUB_ENV
shell: bash
- run: |
set -x
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
rustup show
if: runner.os == 'Linux'
name: rustup (Linux)
shell: bash
- run: |
set -x
curl -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
./rustup-init.exe -y
echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
if: runner.os == 'Windows' && runner.arch == 'X64'
name: rustup (Windows X64)
shell: bash
- run: |
set -x
curl -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init
./rustup-init.exe -y
echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH
if: runner.os == 'Windows' && runner.arch == 'ARM64'
name: rustup (Windows ARM64)
shell: bash
- uses: actions/checkout@v4
with:
path: flowey_bootstrap
- name: Update Index
run: |
rustc -vV
cargo update --dry-run
working-directory: flowey_bootstrap
shell: bash
- name: Build flowey
run: CARGO_INCREMENTAL=0 RUSTC_BOOTSTRAP=1 RUSTFLAGS="-Z threads=8" cargo build -p flowey_hvlite --target x86_64-unknown-linux-gnu --profile flowey-ci
working-directory: flowey_bootstrap
shell: bash
- name: Stage flowey artifact
run: |
mkdir ./flowey_bootstrap_temp
mv ./.github/workflows/openvmm-pr.yaml ./flowey_bootstrap_temp/pipeline.yaml
mv ./.github/workflows/openvmm-pr.json ./flowey_bootstrap_temp/pipeline.json
mv target/x86_64-unknown-linux-gnu/flowey-ci/flowey_hvlite ./flowey_bootstrap_temp/flowey
working-directory: flowey_bootstrap
shell: bash
- name: Copy flowey artifact
run: |
OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
mkdir -p $OutDirNormal
cp -r ./flowey_bootstrap_temp/* $OutDirNormal
working-directory: flowey_bootstrap
shell: bash
- name: Cleanup staged flowey artifact
run: rm -rf ./flowey_bootstrap_temp
working-directory: flowey_bootstrap
shell: bash
- run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $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/bootstrapped-flowey/flowey
echo '"debug"' | flowey v 9 'FLOWEY_LOG' --update-from-stdin
echo "${{ runner.temp }}/work" | flowey v 9 '_internal_WORKING_DIR' --update-from-stdin --is-raw-string
cat <<'EOF' | flowey v 9 'param0' --update-from-stdin
${{ inputs.param0 != '' && inputs.param0 || 'false' }}
EOF
mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-guest_test_uefi"
echo "$AgentTempDirNormal/publish_artifacts/aarch64-guest_test_uefi" | flowey v 9 'artifact_publish_from_aarch64-guest_test_uefi' --update-from-stdin --is-raw-string
mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-igvmfilegen"
echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-igvmfilegen" | flowey v 9 'artifact_publish_from_aarch64-linux-igvmfilegen' --update-from-stdin --is-raw-string
mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-ohcldiag-dev"
echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-ohcldiag-dev" | flowey v 9 'artifact_publish_from_aarch64-linux-ohcldiag-dev' --update-from-stdin --is-raw-string
mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-openvmm"
echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-openvmm" | flowey v 9 'artifact_publish_from_aarch64-linux-openvmm' --update-from-stdin --is-raw-string
mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-vmgs_lib"
echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-vmgs_lib" | flowey v 9 'artifact_publish_from_aarch64-linux-vmgs_lib' --update-from-stdin --is-raw-string
mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-linux-vmgstool"
echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-vmgstool" | flowey v 9 'artifact_publish_from_aarch64-linux-vmgstool' --update-from-stdin --is-raw-string
shell: bash
- name: ๐ŸŒผ๐Ÿ”Ž Self-check YAML
run: |-
ESCAPED_AGENT_TEMPDIR=$(
cat <<'EOF' | sed 's/\\/\\\\/g'
${{ runner.temp }}
EOF
)
flowey pipeline github --check $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out .github/workflows/openvmm-pr.yaml ci checkin-gates --config=pr
shell: bash
- name: install Rust
run: flowey e 9 flowey_lib_common::install_rust 0
shell: bash
- name: detect active toolchain
run: flowey e 9 flowey_lib_common::install_rust 1
shell: bash
- name: report common cargo flags
run: flowey e 9 flowey_lib_common::cfg_cargo_common_flags 0
shell: bash
- name: checking if apt packages need to be installed
run: flowey e 9 flowey_lib_common::install_apt_pkg 0
shell: bash
- name: installing `apt` packages
run: flowey e 9 flowey_lib_common::install_apt_pkg 1
shell: bash
- name: create gh-release-download cache dir
run: flowey e 9 flowey_lib_common::download_gh_release 0
shell: bash
- name: Pre-processing cache vars
run: flowey e 9 flowey_lib_common::cache 4
shell: bash
- run: |
flowey v 9 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar6 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar6'
- run: |
flowey v 9 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar7 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar7'
- id: flowey_lib_common__cache__5
uses: actions/cache@v4
with:
key: ${{ env.floweyvar6 }}
path: ${{ env.floweyvar7 }}
name: 'Restore cache: gh-release-download'
- run: ${{ steps.flowey_lib_common__cache__5.outputs.cache-hit }}
shell: flowey v 9 'flowey_lib_common::cache:12:flowey_lib_common/src/cache.rs:509:46' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'steps.flowey_lib_common__cache__5.outputs.cache-hit'
- name: map Github cache-hit to flowey
run: flowey e 9 flowey_lib_common::cache 6
shell: bash
- name: create gh cache dir
run: flowey e 9 flowey_lib_common::download_gh_cli 0
shell: bash
- name: Pre-processing cache vars
run: flowey e 9 flowey_lib_common::cache 0
shell: bash
- run: |
flowey v 9 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:457:72' --write-to-gh-env floweyvar4 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar4'
- run: |
flowey v 9 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar5 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar5'
- id: flowey_lib_common__cache__1
uses: actions/cache@v4
with:
key: ${{ env.floweyvar4 }}
path: ${{ env.floweyvar5 }}
name: 'Restore cache: gh-cli'
- run: ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }}
shell: flowey v 9 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:509:46' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'steps.flowey_lib_common__cache__1.outputs.cache-hit'
- name: map Github cache-hit to flowey
run: flowey e 9 flowey_lib_common::cache 2
shell: bash
- name: installing gh
run: flowey e 9 flowey_lib_common::download_gh_cli 1
shell: bash
- run: ${{ secrets.OPENVMM_CLIENT_ID }}
shell: flowey v 9 'flowey_lib_hvlite::_jobs::cfg_gh_azure_login:0:flowey_lib_hvlite/src/_jobs/cfg_gh_azure_login.rs:36:29' --is-secret --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'secrets.OPENVMM_CLIENT_ID'
- run: ${{ secrets.OPENVMM_TENANT_ID }}
shell: flowey v 9 'flowey_lib_hvlite::_jobs::cfg_gh_azure_login:1:flowey_lib_hvlite/src/_jobs/cfg_gh_azure_login.rs:37:29' --is-secret --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'secrets.OPENVMM_TENANT_ID'
- run: ${{ secrets.OPENVMM_SUBSCRIPTION_ID }}
shell: flowey v 9 'flowey_lib_hvlite::_jobs::cfg_gh_azure_login:2:flowey_lib_hvlite/src/_jobs/cfg_gh_azure_login.rs:38:35' --is-secret --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'secrets.OPENVMM_SUBSCRIPTION_ID'
- name: Create OpenIDConnect Credentials
run: flowey e 9 flowey_lib_hvlite::_jobs::cfg_gh_azure_login 3
shell: bash
- name: Read Azure Login Credentials
run: flowey e 9 flowey_lib_common::gh_task_azure_login 0
shell: bash
- run: |
flowey v 9 'flowey_lib_common::gh_task_azure_login:0:flowey_lib_common/src/gh_task_azure_login.rs:53:48' --is-secret --write-to-gh-env floweyvar1 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar1'
- run: |
flowey v 9 'flowey_lib_common::gh_task_azure_login:2:flowey_lib_common/src/gh_task_azure_login.rs:55:60' --is-secret --write-to-gh-env floweyvar2 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar2'
- run: |
flowey v 9 'flowey_lib_common::gh_task_azure_login:1:flowey_lib_common/src/gh_task_azure_login.rs:54:48' --is-secret --write-to-gh-env floweyvar3 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar3'
- id: flowey_lib_common__gh_task_azure_login__1
uses: Azure/login@v2
with:
client-id: ${{ env.floweyvar1 }}
subscription-id: ${{ env.floweyvar2 }}
tenant-id: ${{ env.floweyvar3 }}
name: Azure Login
- name: installing azure-cli
run: flowey e 9 flowey_lib_common::install_azure_cli 0
shell: bash
- name: Downloading secrets from key vault HvLite-PATs
run: flowey e 9 flowey_lib_common::gh_download_azure_key_vault_secret 0
shell: bash
- name: setup gh cli
run: flowey e 9 flowey_lib_common::use_gh_cli 0
shell: bash
- name: download artifacts from github releases
run: flowey e 9 flowey_lib_common::download_gh_release 1
shell: bash
- name: unpack Microsoft.WSL.LxUtil.AARCH64.zip
run: flowey e 9 flowey_lib_hvlite::download_lxutil 0
shell: bash
- name: check if hvlite needs to be cloned
run: flowey e 9 flowey_lib_common::git_checkout 0
shell: bash
- run: |
flowey v 9 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:469:46' --write-to-gh-env FLOWEY_CONDITION
shell: bash
name: ๐ŸŒผโ“ Write to 'FLOWEY_CONDITION'
- run: |
flowey v 9 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:468:80' --write-to-gh-env floweyvar8 --is-raw-string
shell: bash
name: ๐ŸŒผ Write to 'floweyvar8'
if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
- id: flowey_lib_common__git_checkout__1
uses: actions/checkout@v4
with:
fetch-depth: '1'
path: repo0
persist-credentials: ${{ env.floweyvar8 }}
name: checkout repo hvlite
if: ${{ fromJSON(env.FLOWEY_CONDITION) }}
- run: ${{ github.workspace }}
shell: flowey v 9 'flowey_lib_common::git_checkout:4:flowey_lib_common/src/git_checkout.rs:523:31' --update-from-file {0} --is-raw-string
name: ๐ŸŒผ Read from 'github.workspace'
- name: report cloned repo directories
run: flowey e 9 flowey_lib_common::git_checkout 3
shell: bash
- name: resolve OpenVMM repo requests
run: flowey e 9 flowey_lib_hvlite::git_checkout_openvmm_repo 0
shell: bash
- name: report openvmm magicpath dir
run: flowey e 9 flowey_lib_hvlite::cfg_openvmm_magicpath 0
shell: bash
- name: move lxutil.dll into its magic folder
run: flowey e 9 flowey_lib_hvlite::init_openvmm_magicpath_lxutil 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: unpack protoc
run: flowey e 9 flowey_lib_common::download_protoc 0
shell: bash
- name: symlink protoc
run: flowey e 9 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
shell: bash
- name: cargo build openvmm
run: flowey e 9 flowey_lib_common::run_cargo_build 3
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 9 flowey_lib_hvlite::run_cargo_build 5
shell: bash
- name: split debug symbols
run: flowey e 9 flowey_lib_hvlite::run_split_debug_info 1
shell: bash
- name: reporting split debug info
run: flowey e 9 flowey_lib_hvlite::run_cargo_build 6
shell: bash
- name: report built openvmm
run: flowey e 9 flowey_lib_hvlite::build_openvmm 0
shell: bash
- name: copying openvmm to publish dir
run: flowey e 9 flowey_lib_hvlite::artifact_openvmm::publish 0
shell: bash
- name: cargo build vmgstool
run: flowey e 9 flowey_lib_common::run_cargo_build 5
shell: bash
- name: ๐ŸŒผ write_into Var
run: 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 2
shell: bash
- name: reporting split debug info
run: flowey e 9 flowey_lib_hvlite::run_cargo_build 9
shell: bash
- name: report built vmgstool
run: flowey e 9 flowey_lib_hvlite::build_vmgstool 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 9 flowey_lib_hvlite::artifact_vmgstool::publish 0
shell: bash
- name: copying vmgstool to artifact dir
run: flowey e 9 flowey_lib_common::copy_to_artifact_dir 4
shell: bash
- name: cargo build vmgs_lib
run: flowey e 9 flowey_lib_common::run_cargo_build 4
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 9 flowey_lib_hvlite::run_cargo_build 7
shell: bash
- name: check built vmgs_lib
run: flowey e 9 flowey_lib_hvlite::build_and_test_vmgs_lib 0
shell: bash
- name: report built vmgs_lib
run: flowey e 9 flowey_lib_hvlite::build_and_test_vmgs_lib 1
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 9 flowey_lib_hvlite::artifact_vmgs_lib::publish 0
shell: bash
- name: copying vmgs_lib to artifact dir
run: flowey e 9 flowey_lib_common::copy_to_artifact_dir 3
shell: bash
- name: cargo build igvmfilegen
run: flowey e 9 flowey_lib_common::run_cargo_build 1
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 9 flowey_lib_hvlite::run_cargo_build 1
shell: bash
- name: split debug symbols
run: flowey e 9 flowey_lib_hvlite::run_split_debug_info 3
shell: bash
- name: reporting split debug info
run: flowey e 9 flowey_lib_hvlite::run_cargo_build 2
shell: bash
- name: report built igvmfilegen
run: flowey e 9 flowey_lib_hvlite::build_igvmfilegen 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 9 flowey_lib_hvlite::artifact_igvmfilegen::publish 0
shell: bash
- name: copying igvmfilegen to artifact dir
run: flowey e 9 flowey_lib_common::copy_to_artifact_dir 1
shell: bash
- name: cargo build ohcldiag-dev
run: flowey e 9 flowey_lib_common::run_cargo_build 2
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 9 flowey_lib_hvlite::run_cargo_build 3
shell: bash
- name: split debug symbols
run: flowey e 9 flowey_lib_hvlite::run_split_debug_info 0
shell: bash
- name: reporting split debug info
run: flowey e 9 flowey_lib_hvlite::run_cargo_build 4
shell: bash
- name: report built ohcldiag_dev
run: flowey e 9 flowey_lib_hvlite::build_ohcldiag_dev 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 9 flowey_lib_hvlite::artifact_ohcldiag_dev::publish 0
shell: bash
- name: copying ohcldiag-dev to artifact dir
run: flowey e 9 flowey_lib_common::copy_to_artifact_dir 2
shell: bash
- name: cargo build guest_test_uefi
run: flowey e 9 flowey_lib_common::run_cargo_build 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 9 flowey_lib_hvlite::run_cargo_build 0
shell: bash
- name: build guest_test_uefi.img
run: flowey e 9 flowey_lib_hvlite::build_guest_test_uefi 0
shell: bash
- name: ๐ŸŒผ write_into Var
run: flowey e 9 flowey_lib_hvlite::artifact_guest_test_uefi::publish 0
shell: bash
- name: copying guest_test_uefi to artifact dir
run: flowey e 9 flowey_lib_common::copy_to_artifact_dir 0
shell: bash
- name: 'validate cache entry: gh-cli'
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 aarch64-guest_test_uefi
uses: actions/upload-artifact@v4
with:
name: aarch64-guest_test_uefi
path: ${{ runner.temp }}/publish_artifacts/aarch64-guest_test_uefi/
- name: ๐ŸŒผ๐Ÿ“ฆ Publish aarch64-linux-igvmfilegen
uses: actions/upload-artifact@v4
with:
name: aarch64-linux-igvmfilegen
path: ${{ runner.temp }}/publish_artifacts/aarch64-linux-igvmfilegen/
- name: ๐ŸŒผ๐Ÿ“ฆ Publish aarch64-linux-ohcldiag-dev
uses: actions/upload-artifact@v4
with:
name: aarch64-linux-ohcldiag-dev
path: ${{ runner.temp }}/publish_artifacts/aarch64-linux-ohcldiag-dev/
- name: ๐ŸŒผ๐Ÿ“ฆ Publish aarch64-linux-openvmm
uses: actions/upload-artifact@v4
with:
name: aarch64-linux-openvmm
path: ${{ runner.temp }}/publish_artifacts/aarch64-linux-openvmm/
- name: ๐ŸŒผ๐Ÿ“ฆ Publish aarch64-linux-vmgs_lib
uses: actions/upload-artifact@v4
with:
name: aarch64-linux-vmgs_lib
path: ${{ runner.temp }}/publish_artifacts/aarch64-linux-vmgs_lib/
- name: ๐ŸŒผ๐Ÿ“ฆ Publish aarch64-linux-vmgstool
uses: actions/upload-artifact@v4
with:
name: aarch64-linux-vmgstool
path: ${{ runner.temp }}/publish_artifacts/aarch64-linux-vmgstool/