Keep vmbus save state backward compatible (#99) #1
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
############################## | |
# THIS FILE IS AUTOGENERATED # | |
# DO NOT MANUALLY EDIT # | |
############################## | |
name: '[flowey] OpenVMM CI' | |
on: | |
workflow_dispatch: | |
inputs: | |
param0: | |
description: Run with verbose output | |
default: false | |
required: false | |
type: boolean | |
push: | |
branches: | |
- main | |
jobs: | |
job0: | |
name: build mdbook guide [x64-windows] | |
runs-on: | |
- self-hosted | |
- 1ES.Pool=OpenVMM-GitHub-Win-Pool-WestUS3 | |
permissions: | |
contents: read | |
id-token: write | |
pages: write | |
steps: | |
- run: echo "injected!" | |
name: ๐ผ๐ฅพ Bootstrap flowey | |
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-ci.yaml ./flowey_bootstrap_temp/pipeline.yaml | |
mv ./.github/workflows/openvmm-ci.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-ci.yaml ci checkin-gates --config=ci | |
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 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 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 floweyvar5 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar5' | |
- run: | | |
flowey.exe v 0 'flowey_lib_common::cache:9: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__5 | |
uses: actions/cache@v4 | |
with: | |
key: ${{ env.floweyvar5 }} | |
path: ${{ env.floweyvar6 }} | |
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 floweyvar3 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar3' | |
- run: | | |
flowey.exe v 0 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar4 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar4' | |
- id: flowey_lib_common__cache__1 | |
uses: actions/cache@v4 | |
with: | |
key: ${{ env.floweyvar3 }} | |
path: ${{ env.floweyvar4 }} | |
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: ${{ github.token }} | |
shell: flowey.exe v 0 'flowey_lib_hvlite::_jobs::cfg_common:0:flowey_lib_hvlite/src/_jobs/cfg_common.rs:94:36' --is-secret --update-from-file {0} --is-raw-string | |
name: ๐ผ Read from 'github.token' | |
- 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::_jobs::build_and_publish_guide 1 | |
shell: bash | |
- run: | | |
flowey.exe v 0 'flowey_lib_hvlite::_jobs::build_and_publish_guide:5:flowey_lib_hvlite/src/_jobs/build_and_publish_guide.rs:52:46' --write-to-gh-env floweyvar1 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar1' | |
- id: flowey_lib_hvlite___jobs__build_and_publish_guide__2 | |
uses: actions/upload-pages-artifact@v1 | |
with: | |
path: ${{ env.floweyvar1 }} | |
name: Upload pages artifact | |
- id: flowey_lib_hvlite___jobs__build_and_publish_guide__3 | |
uses: actions/deploy-pages@v3 | |
name: Deploy to GitHub Pages | |
- 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=OpenVMM-GitHub-Win-Pool-WestUS3 | |
permissions: | |
contents: read | |
id-token: write | |
steps: | |
- run: echo "injected!" | |
name: ๐ผ๐ฅพ Bootstrap flowey | |
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-ci.yaml ./flowey_bootstrap_temp/pipeline.yaml | |
mv ./.github/workflows/openvmm-ci.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-ci.yaml ci checkin-gates --config=ci | |
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 floweyvar5 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar5' | |
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.floweyvar5 }} | |
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 floweyvar3 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar3' | |
- run: | | |
flowey.exe v 1 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar4 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar4' | |
- id: flowey_lib_common__cache__5 | |
uses: actions/cache@v4 | |
with: | |
key: ${{ env.floweyvar3 }} | |
path: ${{ env.floweyvar4 }} | |
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 floweyvar1 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar1' | |
- run: | | |
flowey.exe v 1 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar2 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar2' | |
- id: flowey_lib_common__cache__1 | |
uses: actions/cache@v4 | |
with: | |
key: ${{ env.floweyvar1 }} | |
path: ${{ env.floweyvar2 }} | |
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: ${{ github.token }} | |
shell: flowey.exe v 1 'flowey_lib_hvlite::_jobs::cfg_common:0:flowey_lib_hvlite/src/_jobs/cfg_common.rs:94:36' --is-secret --update-from-file {0} --is-raw-string | |
name: ๐ผ Read from 'github.token' | |
- 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=OpenVMM-GitHub-Linux-Pool-WestUS3 | |
permissions: | |
contents: read | |
id-token: write | |
steps: | |
- run: echo "injected!" | |
name: ๐ผ๐ฅพ Bootstrap flowey | |
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-ci.yaml ./flowey_bootstrap_temp/pipeline.yaml | |
mv ./.github/workflows/openvmm-ci.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-ci.yaml ci checkin-gates --config=ci | |
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 floweyvar5 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar5' | |
- run: | | |
flowey v 10 'flowey_lib_common::cache:17: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__9 | |
uses: actions/cache@v4 | |
with: | |
key: ${{ env.floweyvar5 }} | |
path: ${{ env.floweyvar6 }} | |
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 floweyvar3 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar3' | |
- run: | | |
flowey v 10 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar4 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar4' | |
- id: flowey_lib_common__cache__5 | |
uses: actions/cache@v4 | |
with: | |
key: ${{ env.floweyvar3 }} | |
path: ${{ env.floweyvar4 }} | |
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: ${{ github.token }} | |
shell: flowey v 10 'flowey_lib_hvlite::_jobs::cfg_common:0:flowey_lib_hvlite/src/_jobs/cfg_common.rs:94:36' --is-secret --update-from-file {0} --is-raw-string | |
name: ๐ผ Read from 'github.token' | |
- 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 floweyvar7 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar7' | |
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.floweyvar7 }} | |
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 floweyvar1 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar1' | |
- run: | | |
flowey v 10 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar2 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar2' | |
- id: flowey_lib_common__cache__1 | |
uses: actions/cache@v4 | |
with: | |
key: ${{ env.floweyvar1 }} | |
path: ${{ env.floweyvar2 }} | |
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=OpenVMM-GitHub-Linux-Pool-WestUS3 | |
permissions: | |
contents: read | |
id-token: write | |
steps: | |
- run: echo "injected!" | |
name: ๐ผ๐ฅพ Bootstrap flowey | |
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-ci.yaml ./flowey_bootstrap_temp/pipeline.yaml | |
mv ./.github/workflows/openvmm-ci.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-ci.yaml ci checkin-gates --config=ci | |
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 floweyvar3 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar3' | |
- run: | | |
flowey v 11 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar4 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar4' | |
- id: flowey_lib_common__cache__5 | |
uses: actions/cache@v4 | |
with: | |
key: ${{ env.floweyvar3 }} | |
path: ${{ env.floweyvar4 }} | |
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 floweyvar1 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar1' | |
- run: | | |
flowey v 11 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar2 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar2' | |
- id: flowey_lib_common__cache__1 | |
uses: actions/cache@v4 | |
with: | |
key: ${{ env.floweyvar1 }} | |
path: ${{ env.floweyvar2 }} | |
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: ${{ github.token }} | |
shell: flowey v 11 'flowey_lib_hvlite::_jobs::cfg_common:0:flowey_lib_hvlite/src/_jobs/cfg_common.rs:94:36' --is-secret --update-from-file {0} --is-raw-string | |
name: ๐ผ Read from 'github.token' | |
- 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 floweyvar5 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar5' | |
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.floweyvar5 }} | |
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=OpenVMM-GitHub-Linux-Pool-WestUS3 | |
permissions: | |
contents: read | |
id-token: write | |
steps: | |
- run: echo "injected!" | |
name: ๐ผ๐ฅพ Bootstrap flowey | |
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-ci.yaml ./flowey_bootstrap_temp/pipeline.yaml | |
mv ./.github/workflows/openvmm-ci.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-ci.yaml ci checkin-gates --config=ci | |
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 floweyvar3 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar3' | |
- run: | | |
flowey v 12 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar4 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar4' | |
- id: flowey_lib_common__cache__5 | |
uses: actions/cache@v4 | |
with: | |
key: ${{ env.floweyvar3 }} | |
path: ${{ env.floweyvar4 }} | |
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 floweyvar1 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar1' | |
- run: | | |
flowey v 12 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar2 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar2' | |
- id: flowey_lib_common__cache__1 | |
uses: actions/cache@v4 | |
with: | |
key: ${{ env.floweyvar1 }} | |
path: ${{ env.floweyvar2 }} | |
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: ${{ github.token }} | |
shell: flowey v 12 'flowey_lib_hvlite::_jobs::cfg_common:0:flowey_lib_hvlite/src/_jobs/cfg_common.rs:94:36' --is-secret --update-from-file {0} --is-raw-string | |
name: ๐ผ Read from 'github.token' | |
- 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 floweyvar5 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar5' | |
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.floweyvar5 }} | |
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=OpenVMM-GitHub-Win-Pool-WestUS3 | |
permissions: | |
contents: read | |
id-token: write | |
steps: | |
- run: echo "injected!" | |
name: ๐ผ๐ฅพ Bootstrap flowey | |
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-ci.yaml ./flowey_bootstrap_temp/pipeline.yaml | |
mv ./.github/workflows/openvmm-ci.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-ci.yaml ci checkin-gates --config=ci | |
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 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 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 floweyvar6 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar6' | |
- run: | | |
flowey.exe v 13 'flowey_lib_common::cache:17: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__9 | |
uses: actions/cache@v4 | |
with: | |
key: ${{ env.floweyvar6 }} | |
path: ${{ env.floweyvar7 }} | |
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 floweyvar4 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar4' | |
- run: | | |
flowey.exe v 13 'flowey_lib_common::cache:9: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__5 | |
uses: actions/cache@v4 | |
with: | |
key: ${{ env.floweyvar4 }} | |
path: ${{ env.floweyvar5 }} | |
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: ${{ github.token }} | |
shell: flowey.exe v 13 'flowey_lib_hvlite::_jobs::cfg_common:0:flowey_lib_hvlite/src/_jobs/cfg_common.rs:94:36' --is-secret --update-from-file {0} --is-raw-string | |
name: ๐ผ Read from 'github.token' | |
- 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 floweyvar2 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar2' | |
- run: | | |
flowey.exe v 13 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar3 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar3' | |
- id: flowey_lib_common__cache__1 | |
uses: actions/cache@v4 | |
with: | |
key: ${{ env.floweyvar2 }} | |
path: ${{ env.floweyvar3 }} | |
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 floweyvar8 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar8' | |
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.floweyvar8 }} | |
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=OpenVMM-GitHub-Linux-Pool-WestUS3 | |
permissions: | |
contents: read | |
id-token: write | |
steps: | |
- run: echo "injected!" | |
name: ๐ผ๐ฅพ Bootstrap flowey | |
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-ci.yaml ./flowey_bootstrap_temp/pipeline.yaml | |
mv ./.github/workflows/openvmm-ci.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-ci.yaml ci checkin-gates --config=ci | |
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 floweyvar6 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar6' | |
- run: | | |
flowey v 14 'flowey_lib_common::cache:17: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__9 | |
uses: actions/cache@v4 | |
with: | |
key: ${{ env.floweyvar6 }} | |
path: ${{ env.floweyvar7 }} | |
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 floweyvar4 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar4' | |
- run: | | |
flowey v 14 'flowey_lib_common::cache:9: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__5 | |
uses: actions/cache@v4 | |
with: | |
key: ${{ env.floweyvar4 }} | |
path: ${{ env.floweyvar5 }} | |
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: ${{ github.token }} | |
shell: flowey v 14 'flowey_lib_hvlite::_jobs::cfg_common:0:flowey_lib_hvlite/src/_jobs/cfg_common.rs:94:36' --is-secret --update-from-file {0} --is-raw-string | |
name: ๐ผ Read from 'github.token' | |
- 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 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 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 floweyvar2 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar2' | |
- run: | | |
flowey v 14 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar3 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar3' | |
- id: flowey_lib_common__cache__1 | |
uses: actions/cache@v4 | |
with: | |
key: ${{ env.floweyvar2 }} | |
path: ${{ env.floweyvar3 }} | |
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 floweyvar8 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar8' | |
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.floweyvar8 }} | |
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=OpenVMM-GitHub-Linux-Pool-WestUS3 | |
permissions: | |
contents: read | |
id-token: write | |
steps: | |
- run: echo "injected!" | |
name: ๐ผ๐ฅพ Bootstrap flowey | |
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-ci.yaml ./flowey_bootstrap_temp/pipeline.yaml | |
mv ./.github/workflows/openvmm-ci.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-ci.yaml ci checkin-gates --config=ci | |
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 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 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 floweyvar6 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar6' | |
- run: | | |
flowey v 15 'flowey_lib_common::cache:17: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__9 | |
uses: actions/cache@v4 | |
with: | |
key: ${{ env.floweyvar6 }} | |
path: ${{ env.floweyvar7 }} | |
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 floweyvar4 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar4' | |
- run: | | |
flowey v 15 'flowey_lib_common::cache:9: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__5 | |
uses: actions/cache@v4 | |
with: | |
key: ${{ env.floweyvar4 }} | |
path: ${{ env.floweyvar5 }} | |
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: ${{ github.token }} | |
shell: flowey v 15 'flowey_lib_hvlite::_jobs::cfg_common:0:flowey_lib_hvlite/src/_jobs/cfg_common.rs:94:36' --is-secret --update-from-file {0} --is-raw-string | |
name: ๐ผ Read from 'github.token' | |
- 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 floweyvar2 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar2' | |
- run: | | |
flowey v 15 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar3 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar3' | |
- id: flowey_lib_common__cache__1 | |
uses: actions/cache@v4 | |
with: | |
key: ${{ env.floweyvar2 }} | |
path: ${{ env.floweyvar3 }} | |
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 floweyvar8 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar8' | |
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.floweyvar8 }} | |
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=OpenVMM-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: ${{ github.token }} | |
shell: flowey.exe v 16 'flowey_lib_hvlite::_jobs::cfg_common:0:flowey_lib_hvlite/src/_jobs/cfg_common.rs:94:36' --is-secret --update-from-file {0} --is-raw-string | |
name: ๐ผ Read from 'github.token' | |
- 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 | |
- 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: 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=OpenVMM-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: ${{ github.token }} | |
shell: flowey.exe v 17 'flowey_lib_hvlite::_jobs::cfg_common:0:flowey_lib_hvlite/src/_jobs/cfg_common.rs:94:36' --is-secret --update-from-file {0} --is-raw-string | |
name: ๐ผ Read from 'github.token' | |
- 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 | |
- 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: 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=OpenVMM-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: ${{ github.token }} | |
shell: flowey v 18 'flowey_lib_hvlite::_jobs::cfg_common:0:flowey_lib_hvlite/src/_jobs/cfg_common.rs:94:36' --is-secret --update-from-file {0} --is-raw-string | |
name: ๐ผ Read from 'github.token' | |
- 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 | |
- 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: 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=OpenVMM-GitHub-Linux-Pool-WestUS3 | |
permissions: | |
contents: read | |
id-token: write | |
steps: | |
- run: echo "injected!" | |
name: ๐ผ๐ฅพ Bootstrap flowey | |
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-ci.yaml ./flowey_bootstrap_temp/pipeline.yaml | |
mv ./.github/workflows/openvmm-ci.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-ci.yaml ci checkin-gates --config=ci | |
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: ${{ github.token }} | |
shell: flowey v 19 'flowey_lib_hvlite::_jobs::test_local_flowey_build_igvm:2:flowey_lib_hvlite/src/_jobs/test_local_flowey_build_igvm.rs:31:28' --is-secret --update-from-file {0} --is-raw-string | |
name: ๐ผ Read from 'github.token' | |
- name: test cargo xflowey build-igvm x64 --install-missing-deps | |
run: flowey e 19 flowey_lib_hvlite::_jobs::test_local_flowey_build_igvm 1 | |
shell: bash | |
job2: | |
name: build and check docs [x64-linux] | |
runs-on: | |
- self-hosted | |
- 1ES.Pool=OpenVMM-GitHub-Linux-Pool-WestUS3 | |
permissions: | |
contents: read | |
id-token: write | |
steps: | |
- run: echo "injected!" | |
name: ๐ผ๐ฅพ Bootstrap flowey | |
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-ci.yaml ./flowey_bootstrap_temp/pipeline.yaml | |
mv ./.github/workflows/openvmm-ci.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-ci.yaml ci checkin-gates --config=ci | |
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 floweyvar5 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar5' | |
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.floweyvar5 }} | |
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 floweyvar3 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar3' | |
- run: | | |
flowey v 2 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar4 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar4' | |
- id: flowey_lib_common__cache__5 | |
uses: actions/cache@v4 | |
with: | |
key: ${{ env.floweyvar3 }} | |
path: ${{ env.floweyvar4 }} | |
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 floweyvar1 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar1' | |
- run: | | |
flowey v 2 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar2 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar2' | |
- id: flowey_lib_common__cache__1 | |
uses: actions/cache@v4 | |
with: | |
key: ${{ env.floweyvar1 }} | |
path: ${{ env.floweyvar2 }} | |
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: ${{ github.token }} | |
shell: flowey v 2 'flowey_lib_hvlite::_jobs::cfg_common:0:flowey_lib_hvlite/src/_jobs/cfg_common.rs:94:36' --is-secret --update-from-file {0} --is-raw-string | |
name: ๐ผ Read from 'github.token' | |
- 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 | |
- 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-ci.yaml ./flowey_bootstrap_temp/pipeline.yaml | |
mv ./.github/workflows/openvmm-ci.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-ci.yaml ci checkin-gates --config=ci | |
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 floweyvar4 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar4' | |
- run: | | |
flowey.exe v 3 'flowey_lib_common::cache:9: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__5 | |
uses: actions/cache@v4 | |
with: | |
key: ${{ env.floweyvar4 }} | |
path: ${{ env.floweyvar5 }} | |
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 floweyvar2 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar2' | |
- run: | | |
flowey.exe v 3 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar3 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar3' | |
- id: flowey_lib_common__cache__1 | |
uses: actions/cache@v4 | |
with: | |
key: ${{ env.floweyvar2 }} | |
path: ${{ env.floweyvar3 }} | |
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: ${{ github.token }} | |
shell: flowey.exe v 3 'flowey_lib_hvlite::_jobs::cfg_common:0:flowey_lib_hvlite/src/_jobs/cfg_common.rs:94:36' --is-secret --update-from-file {0} --is-raw-string | |
name: ๐ผ Read from 'github.token' | |
- 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=OpenVMM-GitHub-Linux-Pool-WestUS3 | |
permissions: | |
contents: read | |
id-token: write | |
steps: | |
- run: echo "injected!" | |
name: ๐ผ๐ฅพ Bootstrap flowey | |
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-ci.yaml ./flowey_bootstrap_temp/pipeline.yaml | |
mv ./.github/workflows/openvmm-ci.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-ci.yaml ci checkin-gates --config=ci | |
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 floweyvar4 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar4' | |
- run: | | |
flowey v 4 'flowey_lib_common::cache:9: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__5 | |
uses: actions/cache@v4 | |
with: | |
key: ${{ env.floweyvar4 }} | |
path: ${{ env.floweyvar5 }} | |
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 floweyvar2 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar2' | |
- run: | | |
flowey v 4 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar3 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar3' | |
- id: flowey_lib_common__cache__1 | |
uses: actions/cache@v4 | |
with: | |
key: ${{ env.floweyvar2 }} | |
path: ${{ env.floweyvar3 }} | |
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: ${{ github.token }} | |
shell: flowey v 4 'flowey_lib_hvlite::_jobs::cfg_common:0:flowey_lib_hvlite/src/_jobs/cfg_common.rs:94:36' --is-secret --update-from-file {0} --is-raw-string | |
name: ๐ผ Read from 'github.token' | |
- 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=OpenVMM-GitHub-Win-Pool-WestUS3 | |
permissions: | |
contents: read | |
id-token: write | |
steps: | |
- run: echo "injected!" | |
name: ๐ผ๐ฅพ Bootstrap flowey | |
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-ci.yaml ./flowey_bootstrap_temp/pipeline.yaml | |
mv ./.github/workflows/openvmm-ci.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-ci.yaml ci checkin-gates --config=ci | |
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 floweyvar5 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar5' | |
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.floweyvar5 }} | |
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 floweyvar3 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar3' | |
- run: | | |
flowey.exe v 5 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar4 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar4' | |
- id: flowey_lib_common__cache__5 | |
uses: actions/cache@v4 | |
with: | |
key: ${{ env.floweyvar3 }} | |
path: ${{ env.floweyvar4 }} | |
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 floweyvar1 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar1' | |
- run: | | |
flowey.exe v 5 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar2 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar2' | |
- id: flowey_lib_common__cache__1 | |
uses: actions/cache@v4 | |
with: | |
key: ${{ env.floweyvar1 }} | |
path: ${{ env.floweyvar2 }} | |
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: ${{ github.token }} | |
shell: flowey.exe v 5 'flowey_lib_hvlite::_jobs::cfg_common:0:flowey_lib_hvlite/src/_jobs/cfg_common.rs:94:36' --is-secret --update-from-file {0} --is-raw-string | |
name: ๐ผ Read from 'github.token' | |
- 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 | |
- 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-ci.yaml ./flowey_bootstrap_temp/pipeline.yaml | |
mv ./.github/workflows/openvmm-ci.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-ci.yaml ci checkin-gates --config=ci | |
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 floweyvar6 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar6' | |
- run: | | |
flowey.exe v 6 'flowey_lib_common::cache:17: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__9 | |
uses: actions/cache@v4 | |
with: | |
key: ${{ env.floweyvar6 }} | |
path: ${{ env.floweyvar7 }} | |
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 floweyvar4 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar4' | |
- run: | | |
flowey.exe v 6 'flowey_lib_common::cache:9: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__5 | |
uses: actions/cache@v4 | |
with: | |
key: ${{ env.floweyvar4 }} | |
path: ${{ env.floweyvar5 }} | |
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: ${{ github.token }} | |
shell: flowey.exe v 6 'flowey_lib_hvlite::_jobs::cfg_common:0:flowey_lib_hvlite/src/_jobs/cfg_common.rs:94:36' --is-secret --update-from-file {0} --is-raw-string | |
name: ๐ผ Read from 'github.token' | |
- 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 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 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 floweyvar2 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar2' | |
- run: | | |
flowey.exe v 6 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar3 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar3' | |
- id: flowey_lib_common__cache__1 | |
uses: actions/cache@v4 | |
with: | |
key: ${{ env.floweyvar2 }} | |
path: ${{ env.floweyvar3 }} | |
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=OpenVMM-GitHub-Win-Pool-WestUS3 | |
permissions: | |
contents: read | |
id-token: write | |
steps: | |
- run: echo "injected!" | |
name: ๐ผ๐ฅพ Bootstrap flowey | |
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-ci.yaml ./flowey_bootstrap_temp/pipeline.yaml | |
mv ./.github/workflows/openvmm-ci.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-ci.yaml ci checkin-gates --config=ci | |
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 floweyvar5 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar5' | |
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.floweyvar5 }} | |
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 floweyvar3 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar3' | |
- run: | | |
flowey.exe v 7 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar4 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar4' | |
- id: flowey_lib_common__cache__5 | |
uses: actions/cache@v4 | |
with: | |
key: ${{ env.floweyvar3 }} | |
path: ${{ env.floweyvar4 }} | |
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 floweyvar1 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar1' | |
- run: | | |
flowey.exe v 7 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar2 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar2' | |
- id: flowey_lib_common__cache__1 | |
uses: actions/cache@v4 | |
with: | |
key: ${{ env.floweyvar1 }} | |
path: ${{ env.floweyvar2 }} | |
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: ${{ github.token }} | |
shell: flowey.exe v 7 'flowey_lib_hvlite::_jobs::cfg_common:0:flowey_lib_hvlite/src/_jobs/cfg_common.rs:94:36' --is-secret --update-from-file {0} --is-raw-string | |
name: ๐ผ Read from 'github.token' | |
- 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 | |
- 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-ci.yaml ./flowey_bootstrap_temp/pipeline.yaml | |
mv ./.github/workflows/openvmm-ci.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-ci.yaml ci checkin-gates --config=ci | |
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 floweyvar6 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar6' | |
- run: | | |
flowey.exe v 8 'flowey_lib_common::cache:17: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__9 | |
uses: actions/cache@v4 | |
with: | |
key: ${{ env.floweyvar6 }} | |
path: ${{ env.floweyvar7 }} | |
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 floweyvar4 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar4' | |
- run: | | |
flowey.exe v 8 'flowey_lib_common::cache:9: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__5 | |
uses: actions/cache@v4 | |
with: | |
key: ${{ env.floweyvar4 }} | |
path: ${{ env.floweyvar5 }} | |
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: ${{ github.token }} | |
shell: flowey.exe v 8 'flowey_lib_hvlite::_jobs::cfg_common:0:flowey_lib_hvlite/src/_jobs/cfg_common.rs:94:36' --is-secret --update-from-file {0} --is-raw-string | |
name: ๐ผ Read from 'github.token' | |
- 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 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 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 floweyvar2 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar2' | |
- run: | | |
flowey.exe v 8 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar3 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar3' | |
- id: flowey_lib_common__cache__1 | |
uses: actions/cache@v4 | |
with: | |
key: ${{ env.floweyvar2 }} | |
path: ${{ env.floweyvar3 }} | |
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=OpenVMM-GitHub-Linux-Pool-WestUS3 | |
permissions: | |
contents: read | |
id-token: write | |
steps: | |
- run: echo "injected!" | |
name: ๐ผ๐ฅพ Bootstrap flowey | |
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-ci.yaml ./flowey_bootstrap_temp/pipeline.yaml | |
mv ./.github/workflows/openvmm-ci.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-ci.yaml ci checkin-gates --config=ci | |
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 floweyvar3 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar3' | |
- run: | | |
flowey v 9 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar4 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar4' | |
- id: flowey_lib_common__cache__5 | |
uses: actions/cache@v4 | |
with: | |
key: ${{ env.floweyvar3 }} | |
path: ${{ env.floweyvar4 }} | |
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 floweyvar1 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar1' | |
- run: | | |
flowey v 9 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:456:72' --write-to-gh-env floweyvar2 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar2' | |
- id: flowey_lib_common__cache__1 | |
uses: actions/cache@v4 | |
with: | |
key: ${{ env.floweyvar1 }} | |
path: ${{ env.floweyvar2 }} | |
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: ${{ github.token }} | |
shell: flowey v 9 'flowey_lib_hvlite::_jobs::cfg_common:0:flowey_lib_hvlite/src/_jobs/cfg_common.rs:94:36' --is-secret --update-from-file {0} --is-raw-string | |
name: ๐ผ Read from 'github.token' | |
- 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 floweyvar5 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar5' | |
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.floweyvar5 }} | |
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/ |