disk_backend: add new layered disk (#404) #281
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 | |
- release/* | |
jobs: | |
job0: | |
name: build mdbook guide | |
runs-on: ubuntu-latest | |
permissions: | |
contents: read | |
id-token: write | |
if: github.event.pull_request.draft == false | |
steps: | |
- run: echo "injected!" | |
name: ๐ผ๐ฅพ Bootstrap flowey | |
shell: bash | |
- run: | | |
set -x | |
i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done; | |
sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y | |
curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.82.0 -y | |
. "$HOME/.cargo/env" | |
echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" | |
rustup show | |
if: runner.os == 'Linux' | |
name: rustup (Linux) | |
shell: bash | |
- run: | | |
set -x | |
curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init | |
./rustup-init.exe -y --default-toolchain=1.82.0 | |
echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH | |
if: runner.os == 'Windows' && runner.arch == 'X64' | |
name: rustup (Windows X64) | |
shell: bash | |
- run: | | |
set -x | |
curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init | |
./rustup-init.exe -y --default-toolchain=1.82.0 | |
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: 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 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: ๐ผ๐ Self-check YAML | |
run: |- | |
ESCAPED_AGENT_TEMPDIR=$( | |
cat <<'EOF' | sed 's/\\/\\\\/g' | |
${{ runner.temp }} | |
EOF | |
) | |
flowey pipeline github --runtime $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci | |
shell: bash | |
- name: ๐ผ๐ซ Initialize job | |
run: | | |
AgentTempDirNormal="${{ runner.temp }}" | |
AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') | |
echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV | |
chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey | |
echo '"debug"' | flowey v 0 'FLOWEY_LOG' --update-from-stdin | |
echo "${{ runner.temp }}/work" | flowey v 0 '_internal_WORKING_DIR' --update-from-stdin --is-raw-string | |
cat <<'EOF' | flowey v 0 'param0' --update-from-stdin | |
${{ inputs.param0 != '' && inputs.param0 || 'false' }} | |
EOF | |
mkdir -p "$AgentTempDirNormal/publish_artifacts/guide" | |
echo "$AgentTempDirNormal/publish_artifacts/guide" | flowey v 0 'artifact_publish_from_guide' --update-from-stdin --is-raw-string | |
shell: bash | |
- name: create gh-release-download cache dir | |
run: flowey e 0 flowey_lib_common::download_gh_release 0 | |
shell: bash | |
- name: Pre-processing cache vars | |
run: flowey e 0 flowey_lib_common::cache 0 | |
shell: bash | |
- run: | | |
flowey v 0 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:458:72' --write-to-gh-env floweyvar2 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar2' | |
- run: | | |
flowey v 0 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:457: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-release-download' | |
- run: ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }} | |
shell: flowey v 0 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:510: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 0 flowey_lib_common::cache 2 | |
shell: bash | |
- name: download artifacts from github releases | |
run: flowey e 0 flowey_lib_common::download_gh_release 1 | |
shell: bash | |
- name: checking if packages need to be installed | |
run: flowey e 0 flowey_lib_common::install_dist_pkg 0 | |
shell: bash | |
- name: installing packages | |
run: flowey e 0 flowey_lib_common::install_dist_pkg 1 | |
shell: bash | |
- name: unpack mdbook | |
run: flowey e 0 flowey_lib_common::download_mdbook 0 | |
shell: bash | |
- name: unpack mdbook-admonish | |
run: flowey e 0 flowey_lib_common::download_mdbook_admonish 0 | |
shell: bash | |
- name: unpack mdbook-mermaid | |
run: flowey e 0 flowey_lib_common::download_mdbook_mermaid 0 | |
shell: bash | |
- name: check if hvlite needs to be cloned | |
run: flowey e 0 flowey_lib_common::git_checkout 0 | |
shell: bash | |
- run: | | |
flowey v 0 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:470:46' --write-to-gh-env FLOWEY_CONDITION | |
shell: bash | |
name: ๐ผโ Write to 'FLOWEY_CONDITION' | |
- run: | | |
flowey v 0 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:469: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 0 'flowey_lib_common::git_checkout:4:flowey_lib_common/src/git_checkout.rs:524:31' --update-from-file {0} --is-raw-string | |
name: ๐ผ Read from 'github.workspace' | |
- name: report cloned repo directories | |
run: flowey e 0 flowey_lib_common::git_checkout 3 | |
shell: bash | |
- name: resolve OpenVMM repo requests | |
run: flowey e 0 flowey_lib_hvlite::git_checkout_openvmm_repo 0 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 0 flowey_lib_hvlite::build_guide 0 | |
shell: bash | |
- name: install Rust | |
run: flowey e 0 flowey_lib_common::install_rust 0 | |
shell: bash | |
- name: build HvLite guide (mdbook) | |
run: flowey e 0 flowey_lib_hvlite::build_guide 1 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 0 flowey_lib_hvlite::artifact_guide::publish 0 | |
shell: bash | |
- name: copying guide to artifact dir | |
run: flowey e 0 flowey_lib_common::copy_to_artifact_dir 0 | |
shell: bash | |
- name: 'validate cache entry: gh-release-download' | |
run: flowey 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 | |
if: github.event.pull_request.draft == false | |
steps: | |
- run: echo "injected!" | |
name: ๐ผ๐ฅพ Bootstrap flowey | |
shell: bash | |
- run: | | |
set -x | |
i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done; | |
sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y | |
curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.82.0 -y | |
. "$HOME/.cargo/env" | |
echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" | |
rustup show | |
if: runner.os == 'Linux' | |
name: rustup (Linux) | |
shell: bash | |
- run: | | |
set -x | |
curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init | |
./rustup-init.exe -y --default-toolchain=1.82.0 | |
echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH | |
if: runner.os == 'Windows' && runner.arch == 'X64' | |
name: rustup (Windows X64) | |
shell: bash | |
- run: | | |
set -x | |
curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init | |
./rustup-init.exe -y --default-toolchain=1.82.0 | |
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: 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 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: ๐ผ๐ Self-check YAML | |
run: |- | |
ESCAPED_AGENT_TEMPDIR=$( | |
cat <<'EOF' | sed 's/\\/\\\\/g' | |
${{ runner.temp }} | |
EOF | |
) | |
flowey.exe pipeline github --runtime $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci | |
shell: bash | |
- name: ๐ผ๐ซ Initialize job | |
run: | | |
AgentTempDirNormal="${{ runner.temp }}" | |
AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') | |
echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV | |
chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe | |
echo '"debug"' | flowey.exe v 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: 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:470: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:469:80' --write-to-gh-env floweyvar3 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar3' | |
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.floweyvar3 }} | |
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:524: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 0 | |
shell: bash | |
- run: | | |
flowey.exe v 1 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:458: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:457: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-release-download' | |
- 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:510: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: 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: archive 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-release-download' | |
run: flowey.exe e 1 flowey_lib_common::cache 3 | |
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 [aarch64-linux] | |
runs-on: | |
- self-hosted | |
- 1ES.Pool=OpenVMM-GitHub-Linux-Pool-WestUS3 | |
- 1ES.ImageOverride=MMSUbuntu22.04-256GB | |
permissions: | |
contents: read | |
id-token: write | |
if: github.event.pull_request.draft == false | |
steps: | |
- run: echo "injected!" | |
name: ๐ผ๐ฅพ Bootstrap flowey | |
shell: bash | |
- run: | | |
set -x | |
i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done; | |
sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y | |
curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.82.0 -y | |
. "$HOME/.cargo/env" | |
echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" | |
rustup show | |
if: runner.os == 'Linux' | |
name: rustup (Linux) | |
shell: bash | |
- run: | | |
set -x | |
curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init | |
./rustup-init.exe -y --default-toolchain=1.82.0 | |
echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH | |
if: runner.os == 'Windows' && runner.arch == 'X64' | |
name: rustup (Windows X64) | |
shell: bash | |
- run: | | |
set -x | |
curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init | |
./rustup-init.exe -y --default-toolchain=1.82.0 | |
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: 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 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: ๐ผ๐ Self-check YAML | |
run: |- | |
ESCAPED_AGENT_TEMPDIR=$( | |
cat <<'EOF' | sed 's/\\/\\\\/g' | |
${{ runner.temp }} | |
EOF | |
) | |
flowey pipeline github --runtime $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci | |
shell: bash | |
- name: ๐ผ๐ซ Initialize job | |
run: | | |
AgentTempDirNormal="${{ runner.temp }}" | |
AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') | |
echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV | |
chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey | |
echo '"debug"' | flowey v 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/aarch64-guest_test_uefi" | |
echo "$AgentTempDirNormal/publish_artifacts/aarch64-guest_test_uefi" | flowey v 10 '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 10 '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 10 '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 10 '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 10 '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 10 'artifact_publish_from_aarch64-linux-vmgstool' --update-from-stdin --is-raw-string | |
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 packages need to be installed | |
run: flowey e 10 flowey_lib_common::install_dist_pkg 0 | |
shell: bash | |
- name: installing packages | |
run: flowey e 10 flowey_lib_common::install_dist_pkg 1 | |
shell: bash | |
- name: create gh-release-download cache dir | |
run: flowey e 10 flowey_lib_common::download_gh_release 0 | |
shell: bash | |
- name: Pre-processing cache vars | |
run: flowey e 10 flowey_lib_common::cache 0 | |
shell: bash | |
- run: | | |
flowey v 10 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:458: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:457: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-release-download' | |
- 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:510: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: download artifacts from github releases | |
run: flowey e 10 flowey_lib_common::download_gh_release 1 | |
shell: bash | |
- name: unpack Microsoft.WSL.LxUtil.AARCH64.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:470: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:469:80' --write-to-gh-env floweyvar3 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar3' | |
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.floweyvar3 }} | |
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:524: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: inject cross env | |
run: flowey e 10 flowey_lib_hvlite::init_cross_build 1 | |
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: inject cross env | |
run: flowey e 10 flowey_lib_hvlite::init_cross_build 3 | |
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: inject cross env | |
run: flowey e 10 flowey_lib_hvlite::init_cross_build 2 | |
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: report built vmgs_lib | |
run: flowey e 10 flowey_lib_hvlite::build_and_test_vmgs_lib 1 | |
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: inject cross env | |
run: flowey e 10 flowey_lib_hvlite::init_cross_build 4 | |
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: inject cross env | |
run: flowey e 10 flowey_lib_hvlite::init_cross_build 0 | |
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: inject cross env | |
run: flowey e 10 flowey_lib_hvlite::init_cross_build 5 | |
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: 'validate cache entry: gh-release-download' | |
run: flowey e 10 flowey_lib_common::cache 3 | |
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/ | |
job11: | |
name: build artifacts [x64-linux] | |
runs-on: | |
- self-hosted | |
- 1ES.Pool=OpenVMM-GitHub-Linux-Pool-WestUS3 | |
- 1ES.ImageOverride=MMSUbuntu22.04-256GB | |
permissions: | |
contents: read | |
id-token: write | |
if: github.event.pull_request.draft == false | |
steps: | |
- run: echo "injected!" | |
name: ๐ผ๐ฅพ Bootstrap flowey | |
shell: bash | |
- run: | | |
set -x | |
i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done; | |
sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y | |
curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.82.0 -y | |
. "$HOME/.cargo/env" | |
echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" | |
rustup show | |
if: runner.os == 'Linux' | |
name: rustup (Linux) | |
shell: bash | |
- run: | | |
set -x | |
curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init | |
./rustup-init.exe -y --default-toolchain=1.82.0 | |
echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH | |
if: runner.os == 'Windows' && runner.arch == 'X64' | |
name: rustup (Windows X64) | |
shell: bash | |
- run: | | |
set -x | |
curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init | |
./rustup-init.exe -y --default-toolchain=1.82.0 | |
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: 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 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: ๐ผ๐ Self-check YAML | |
run: |- | |
ESCAPED_AGENT_TEMPDIR=$( | |
cat <<'EOF' | sed 's/\\/\\\\/g' | |
${{ runner.temp }} | |
EOF | |
) | |
flowey pipeline github --runtime $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci | |
shell: bash | |
- name: ๐ผ๐ซ Initialize job | |
run: | | |
AgentTempDirNormal="${{ runner.temp }}" | |
AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') | |
echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV | |
chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey | |
echo '"debug"' | flowey v 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/x64-guest_test_uefi" | |
echo "$AgentTempDirNormal/publish_artifacts/x64-guest_test_uefi" | flowey v 11 '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 11 '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 11 '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 11 '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 11 '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 11 '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 11 'artifact_publish_from_x64-linux-vmm-tests-archive' --update-from-stdin --is-raw-string | |
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: checking if packages need to be installed | |
run: flowey e 11 flowey_lib_common::install_dist_pkg 0 | |
shell: bash | |
- name: installing packages | |
run: flowey e 11 flowey_lib_common::install_dist_pkg 1 | |
shell: bash | |
- name: create gh-release-download cache dir | |
run: flowey e 11 flowey_lib_common::download_gh_release 0 | |
shell: bash | |
- name: Pre-processing cache vars | |
run: flowey e 11 flowey_lib_common::cache 4 | |
shell: bash | |
- run: | | |
flowey v 11 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:458: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:457: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:510: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: download artifacts from github releases | |
run: flowey e 11 flowey_lib_common::download_gh_release 1 | |
shell: bash | |
- name: unpack Microsoft.WSL.LxUtil.x64.zip | |
run: flowey e 11 flowey_lib_hvlite::download_lxutil 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:470: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:469: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:524: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: report openvmm magicpath dir | |
run: flowey e 11 flowey_lib_hvlite::cfg_openvmm_magicpath 0 | |
shell: bash | |
- name: move lxutil.dll into its magic folder | |
run: flowey e 11 flowey_lib_hvlite::init_openvmm_magicpath_lxutil 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: symlink protoc | |
run: flowey e 11 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0 | |
shell: bash | |
- name: inject cross env | |
run: flowey e 11 flowey_lib_hvlite::init_cross_build 2 | |
shell: bash | |
- name: cargo build openvmm | |
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 5 | |
shell: bash | |
- name: split debug symbols | |
run: flowey e 11 flowey_lib_hvlite::run_split_debug_info 1 | |
shell: bash | |
- name: reporting split debug info | |
run: flowey e 11 flowey_lib_hvlite::run_cargo_build 6 | |
shell: bash | |
- name: report built openvmm | |
run: flowey e 11 flowey_lib_hvlite::build_openvmm 0 | |
shell: bash | |
- name: copying openvmm to publish dir | |
run: flowey e 11 flowey_lib_hvlite::artifact_openvmm::publish 0 | |
shell: bash | |
- name: inject cross env | |
run: flowey e 11 flowey_lib_hvlite::init_cross_build 4 | |
shell: bash | |
- name: cargo build vmgstool | |
run: flowey e 11 flowey_lib_common::run_cargo_build 5 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 11 flowey_lib_hvlite::run_cargo_build 8 | |
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 9 | |
shell: bash | |
- name: report built vmgstool | |
run: flowey e 11 flowey_lib_hvlite::build_vmgstool 0 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 11 flowey_lib_hvlite::artifact_vmgstool::publish 0 | |
shell: bash | |
- name: copying vmgstool to artifact dir | |
run: flowey e 11 flowey_lib_common::copy_to_artifact_dir 4 | |
shell: bash | |
- name: inject cross env | |
run: flowey e 11 flowey_lib_hvlite::init_cross_build 3 | |
shell: bash | |
- name: cargo build vmgs_lib | |
run: flowey e 11 flowey_lib_common::run_cargo_build 4 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 11 flowey_lib_hvlite::run_cargo_build 7 | |
shell: bash | |
- name: check built vmgs_lib | |
run: flowey e 11 flowey_lib_hvlite::build_and_test_vmgs_lib 0 | |
shell: bash | |
- name: test vmgs_lib | |
run: flowey e 11 flowey_lib_hvlite::build_and_test_vmgs_lib 1 | |
shell: bash | |
- name: report built vmgs_lib | |
run: flowey e 11 flowey_lib_hvlite::build_and_test_vmgs_lib 2 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 11 flowey_lib_hvlite::artifact_vmgs_lib::publish 0 | |
shell: bash | |
- name: copying vmgs_lib to artifact dir | |
run: flowey e 11 flowey_lib_common::copy_to_artifact_dir 3 | |
shell: bash | |
- name: inject cross env | |
run: flowey e 11 flowey_lib_hvlite::init_cross_build 5 | |
shell: bash | |
- name: cargo build igvmfilegen | |
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 1 | |
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 2 | |
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::artifact_igvmfilegen::publish 0 | |
shell: bash | |
- name: copying igvmfilegen to artifact dir | |
run: flowey e 11 flowey_lib_common::copy_to_artifact_dir 1 | |
shell: bash | |
- name: inject cross env | |
run: flowey e 11 flowey_lib_hvlite::init_cross_build 1 | |
shell: bash | |
- name: cargo build ohcldiag-dev | |
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 3 | |
shell: bash | |
- name: split debug symbols | |
run: flowey e 11 flowey_lib_hvlite::run_split_debug_info 0 | |
shell: bash | |
- name: reporting split debug info | |
run: flowey e 11 flowey_lib_hvlite::run_cargo_build 4 | |
shell: bash | |
- name: report built ohcldiag_dev | |
run: flowey e 11 flowey_lib_hvlite::build_ohcldiag_dev 0 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 11 flowey_lib_hvlite::artifact_ohcldiag_dev::publish 0 | |
shell: bash | |
- name: copying ohcldiag-dev to artifact dir | |
run: flowey e 11 flowey_lib_common::copy_to_artifact_dir 2 | |
shell: bash | |
- name: inject cross env | |
run: flowey e 11 flowey_lib_hvlite::init_cross_build 6 | |
shell: bash | |
- name: cargo build guest_test_uefi | |
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: build guest_test_uefi.img | |
run: flowey e 11 flowey_lib_hvlite::build_guest_test_uefi 0 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 11 flowey_lib_hvlite::artifact_guest_test_uefi::publish 0 | |
shell: bash | |
- name: copying guest_test_uefi to artifact dir | |
run: flowey e 11 flowey_lib_common::copy_to_artifact_dir 0 | |
shell: bash | |
- name: create cargo-nextest cache dir | |
run: flowey e 11 flowey_lib_common::download_cargo_nextest 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:458: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:457: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 11 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:510: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: report cargo install persistent dir | |
run: flowey e 11 flowey_lib_common::cfg_persistent_dir_cargo_install 0 | |
shell: bash | |
- name: report $CARGO_HOME | |
run: flowey e 11 flowey_lib_common::install_rust 2 | |
shell: bash | |
- name: installing cargo-nextest | |
run: flowey e 11 flowey_lib_common::download_cargo_nextest 1 | |
shell: bash | |
- name: inject cross env | |
run: flowey e 11 flowey_lib_hvlite::init_cross_build 0 | |
shell: bash | |
- name: build + archive 'vmm_tests' nextests | |
run: flowey e 11 flowey_lib_common::run_cargo_nextest_archive 0 | |
shell: bash | |
- name: report built vmm_tests | |
run: flowey e 11 flowey_lib_hvlite::build_nextest_vmm_tests 0 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 11 flowey_lib_hvlite::artifact_nextest_vmm_tests_archive::publish 0 | |
shell: bash | |
- name: copying vmm_tests to artifact dir | |
run: flowey e 11 flowey_lib_common::copy_to_artifact_dir 5 | |
shell: bash | |
- name: 'validate cache entry: cargo-nextest' | |
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 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/ | |
job12: | |
name: build openhcl [aarch64-linux] | |
runs-on: | |
- self-hosted | |
- 1ES.Pool=OpenVMM-GitHub-Linux-Pool-WestUS3 | |
- 1ES.ImageOverride=MMSUbuntu22.04-256GB | |
permissions: | |
contents: read | |
id-token: write | |
if: github.event.pull_request.draft == false | |
steps: | |
- run: echo "injected!" | |
name: ๐ผ๐ฅพ Bootstrap flowey | |
shell: bash | |
- run: | | |
set -x | |
i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done; | |
sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y | |
curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.82.0 -y | |
. "$HOME/.cargo/env" | |
echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" | |
rustup show | |
if: runner.os == 'Linux' | |
name: rustup (Linux) | |
shell: bash | |
- run: | | |
set -x | |
curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init | |
./rustup-init.exe -y --default-toolchain=1.82.0 | |
echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH | |
if: runner.os == 'Windows' && runner.arch == 'X64' | |
name: rustup (Windows X64) | |
shell: bash | |
- run: | | |
set -x | |
curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init | |
./rustup-init.exe -y --default-toolchain=1.82.0 | |
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: 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 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: ๐ผ๐ Self-check YAML | |
run: |- | |
ESCAPED_AGENT_TEMPDIR=$( | |
cat <<'EOF' | sed 's/\\/\\\\/g' | |
${{ runner.temp }} | |
EOF | |
) | |
flowey pipeline github --runtime $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci | |
shell: bash | |
- name: ๐ผ๐ซ Initialize job | |
run: | | |
AgentTempDirNormal="${{ runner.temp }}" | |
AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') | |
echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV | |
chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey | |
echo '"debug"' | flowey v 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/aarch64-linux-musl-pipette" | |
echo "$AgentTempDirNormal/publish_artifacts/aarch64-linux-musl-pipette" | flowey v 12 '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 12 '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 12 'artifact_publish_from_aarch64-openhcl-igvm-extras' --update-from-stdin --is-raw-string | |
shell: bash | |
- name: checking if packages need to be installed | |
run: flowey e 12 flowey_lib_common::install_dist_pkg 0 | |
shell: bash | |
- name: installing packages | |
run: flowey e 12 flowey_lib_common::install_dist_pkg 1 | |
shell: bash | |
- name: create gh-release-download cache dir | |
run: flowey e 12 flowey_lib_common::download_gh_release 0 | |
shell: bash | |
- name: Pre-processing cache vars | |
run: flowey e 12 flowey_lib_common::cache 0 | |
shell: bash | |
- run: | | |
flowey v 12 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:458: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:457: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-release-download' | |
- 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:510: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: download artifacts from github releases | |
run: flowey e 12 flowey_lib_common::download_gh_release 1 | |
shell: bash | |
- name: unpack mu_msvm package (aarch64) | |
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:470: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:469:80' --write-to-gh-env floweyvar3 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar3' | |
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.floweyvar3 }} | |
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:524: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: inject cross env | |
run: flowey e 12 flowey_lib_hvlite::init_cross_build 0 | |
shell: bash | |
- name: ๐ผ Zip Vars | |
run: flowey e 12 flowey_lib_hvlite::run_cargo_build 2 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 12 flowey_lib_hvlite::run_cargo_build 3 | |
shell: bash | |
- name: unpack openvmm-deps archive | |
run: flowey e 12 flowey_lib_hvlite::download_openvmm_deps 0 | |
shell: bash | |
- name: extract Aarch64 sysroot.tar.gz | |
run: flowey e 12 flowey_lib_hvlite::init_openvmm_magicpath_openhcl_sysroot 0 | |
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 4 | |
shell: bash | |
- name: split debug symbols | |
run: flowey e 12 flowey_lib_hvlite::run_split_debug_info 2 | |
shell: bash | |
- name: reporting split debug info | |
run: flowey e 12 flowey_lib_hvlite::run_cargo_build 5 | |
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.Dev.6.6.51.9-arm64.tar.gz | |
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: inject cross env | |
run: flowey e 12 flowey_lib_hvlite::init_cross_build 1 | |
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 6 | |
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 12 | |
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 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 17 | |
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 18 | |
shell: bash | |
- name: enumerate igvm resources | |
run: flowey e 12 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 19 | |
shell: bash | |
- name: inject cross env | |
run: flowey e 12 flowey_lib_hvlite::init_cross_build 3 | |
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 4 | |
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 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 1 | |
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 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 1 | |
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 6 | |
shell: bash | |
- name: unpack Microsoft.OHCL.Kernel.6.6.51.7-main-arm64.tar.gz | |
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 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 0 | |
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: 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 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 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 4 | |
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: inject cross env | |
run: flowey e 12 flowey_lib_hvlite::init_cross_build 2 | |
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 7 | |
shell: bash | |
- name: split debug symbols | |
run: flowey e 12 flowey_lib_hvlite::run_split_debug_info 3 | |
shell: bash | |
- name: reporting split debug info | |
run: flowey e 12 flowey_lib_hvlite::run_cargo_build 8 | |
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-release-download' | |
run: flowey e 12 flowey_lib_common::cache 3 | |
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/ | |
job13: | |
name: build openhcl [x64-linux] | |
runs-on: | |
- self-hosted | |
- 1ES.Pool=OpenVMM-GitHub-Linux-Pool-WestUS3 | |
- 1ES.ImageOverride=MMSUbuntu22.04-256GB | |
permissions: | |
contents: read | |
id-token: write | |
if: github.event.pull_request.draft == false | |
steps: | |
- run: echo "injected!" | |
name: ๐ผ๐ฅพ Bootstrap flowey | |
shell: bash | |
- run: | | |
set -x | |
i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done; | |
sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y | |
curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.82.0 -y | |
. "$HOME/.cargo/env" | |
echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" | |
rustup show | |
if: runner.os == 'Linux' | |
name: rustup (Linux) | |
shell: bash | |
- run: | | |
set -x | |
curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init | |
./rustup-init.exe -y --default-toolchain=1.82.0 | |
echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH | |
if: runner.os == 'Windows' && runner.arch == 'X64' | |
name: rustup (Windows X64) | |
shell: bash | |
- run: | | |
set -x | |
curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init | |
./rustup-init.exe -y --default-toolchain=1.82.0 | |
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: 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 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: ๐ผ๐ Self-check YAML | |
run: |- | |
ESCAPED_AGENT_TEMPDIR=$( | |
cat <<'EOF' | sed 's/\\/\\\\/g' | |
${{ runner.temp }} | |
EOF | |
) | |
flowey pipeline github --runtime $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci | |
shell: bash | |
- name: ๐ผ๐ซ Initialize job | |
run: | | |
AgentTempDirNormal="${{ runner.temp }}" | |
AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') | |
echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV | |
chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey | |
echo '"debug"' | flowey v 13 'FLOWEY_LOG' --update-from-stdin | |
echo "${{ runner.temp }}/work" | flowey v 13 '_internal_WORKING_DIR' --update-from-stdin --is-raw-string | |
cat <<'EOF' | flowey v 13 '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 13 '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 13 '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 13 'artifact_publish_from_x64-openhcl-igvm-extras' --update-from-stdin --is-raw-string | |
shell: bash | |
- name: checking if packages need to be installed | |
run: flowey e 13 flowey_lib_common::install_dist_pkg 0 | |
shell: bash | |
- name: installing packages | |
run: flowey e 13 flowey_lib_common::install_dist_pkg 1 | |
shell: bash | |
- name: create gh-release-download cache dir | |
run: flowey e 13 flowey_lib_common::download_gh_release 0 | |
shell: bash | |
- name: Pre-processing cache vars | |
run: flowey e 13 flowey_lib_common::cache 0 | |
shell: bash | |
- run: | | |
flowey v 13 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:458:72' --write-to-gh-env floweyvar1 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar1' | |
- run: | | |
flowey v 13 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:457: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-release-download' | |
- run: ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }} | |
shell: flowey v 13 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:510: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 13 flowey_lib_common::cache 2 | |
shell: bash | |
- name: download artifacts from github releases | |
run: flowey e 13 flowey_lib_common::download_gh_release 1 | |
shell: bash | |
- name: unpack mu_msvm package (x64) | |
run: flowey e 13 flowey_lib_hvlite::download_uefi_mu_msvm 0 | |
shell: bash | |
- name: install Rust | |
run: flowey e 13 flowey_lib_common::install_rust 0 | |
shell: bash | |
- name: detect active toolchain | |
run: flowey e 13 flowey_lib_common::install_rust 1 | |
shell: bash | |
- name: report common cargo flags | |
run: flowey e 13 flowey_lib_common::cfg_cargo_common_flags 0 | |
shell: bash | |
- name: check if hvlite needs to be cloned | |
run: flowey e 13 flowey_lib_common::git_checkout 0 | |
shell: bash | |
- run: | | |
flowey v 13 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:470:46' --write-to-gh-env FLOWEY_CONDITION | |
shell: bash | |
name: ๐ผโ Write to 'FLOWEY_CONDITION' | |
- run: | | |
flowey v 13 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:469:80' --write-to-gh-env floweyvar3 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar3' | |
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.floweyvar3 }} | |
name: checkout repo hvlite | |
if: ${{ fromJSON(env.FLOWEY_CONDITION) }} | |
- run: ${{ github.workspace }} | |
shell: flowey v 13 'flowey_lib_common::git_checkout:4:flowey_lib_common/src/git_checkout.rs:524:31' --update-from-file {0} --is-raw-string | |
name: ๐ผ Read from 'github.workspace' | |
- name: report cloned repo directories | |
run: flowey e 13 flowey_lib_common::git_checkout 3 | |
shell: bash | |
- name: resolve OpenVMM repo requests | |
run: flowey e 13 flowey_lib_hvlite::git_checkout_openvmm_repo 0 | |
shell: bash | |
- name: set '-Dwarnings' in .cargo/config.toml | |
run: flowey e 13 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0 | |
shell: bash | |
- name: unpack protoc | |
run: flowey e 13 flowey_lib_common::download_protoc 0 | |
shell: bash | |
- name: report openvmm magicpath dir | |
run: flowey e 13 flowey_lib_hvlite::cfg_openvmm_magicpath 0 | |
shell: bash | |
- name: symlink protoc | |
run: flowey e 13 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0 | |
shell: bash | |
- name: inject cross env | |
run: flowey e 13 flowey_lib_hvlite::init_cross_build 3 | |
shell: bash | |
- name: ๐ผ Zip Vars | |
run: flowey e 13 flowey_lib_hvlite::run_cargo_build 2 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 13 flowey_lib_hvlite::run_cargo_build 3 | |
shell: bash | |
- name: cargo build openhcl_boot | |
run: flowey e 13 flowey_lib_common::run_cargo_build 1 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 13 flowey_lib_hvlite::run_cargo_build 4 | |
shell: bash | |
- name: split debug symbols | |
run: flowey e 13 flowey_lib_hvlite::run_split_debug_info 5 | |
shell: bash | |
- name: reporting split debug info | |
run: flowey e 13 flowey_lib_hvlite::run_cargo_build 5 | |
shell: bash | |
- name: report built openhcl_boot | |
run: flowey e 13 flowey_lib_hvlite::build_openhcl_boot 0 | |
shell: bash | |
- name: unpack Microsoft.OHCL.Kernel.Dev.6.6.51.9-x64.tar.gz | |
run: flowey e 13 flowey_lib_hvlite::download_openhcl_kernel_package 2 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 13 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 27 | |
shell: bash | |
- name: unpack openvmm-deps archive | |
run: flowey e 13 flowey_lib_hvlite::download_openvmm_deps 0 | |
shell: bash | |
- name: extract X64 sysroot.tar.gz | |
run: flowey e 13 flowey_lib_hvlite::init_openvmm_magicpath_openhcl_sysroot 0 | |
shell: bash | |
- name: inject cross env | |
run: flowey e 13 flowey_lib_hvlite::init_cross_build 1 | |
shell: bash | |
- name: cargo build openvmm_hcl | |
run: flowey e 13 flowey_lib_common::run_cargo_build 2 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 13 flowey_lib_hvlite::run_cargo_build 6 | |
shell: bash | |
- name: report built openvmm_hcl | |
run: flowey e 13 flowey_lib_hvlite::build_openvmm_hcl 0 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 13 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 23 | |
shell: bash | |
- name: split debug symbols | |
run: flowey e 13 flowey_lib_hvlite::run_split_debug_info 2 | |
shell: bash | |
- name: ๐ผ Zip Vars | |
run: flowey e 13 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 24 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 13 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 25 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 13 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 28 | |
shell: bash | |
- name: building openhcl initrd | |
run: flowey e 13 flowey_lib_hvlite::build_openhcl_initrd 4 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 13 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 29 | |
shell: bash | |
- name: enumerate igvm resources | |
run: flowey e 13 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 30 | |
shell: bash | |
- name: inject cross env | |
run: flowey e 13 flowey_lib_hvlite::init_cross_build 0 | |
shell: bash | |
- name: cargo build igvmfilegen | |
run: flowey e 13 flowey_lib_common::run_cargo_build 0 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 13 flowey_lib_hvlite::run_cargo_build 0 | |
shell: bash | |
- name: split debug symbols | |
run: flowey e 13 flowey_lib_hvlite::run_split_debug_info 7 | |
shell: bash | |
- name: reporting split debug info | |
run: flowey e 13 flowey_lib_hvlite::run_cargo_build 1 | |
shell: bash | |
- name: report built igvmfilegen | |
run: flowey e 13 flowey_lib_hvlite::build_igvmfilegen 0 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 13 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 31 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 13 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 32 | |
shell: bash | |
- name: building igvm file | |
run: flowey e 13 flowey_lib_hvlite::run_igvmfilegen 4 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 13 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 4 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 13 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 38 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 13 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 34 | |
shell: bash | |
- name: split debug symbols | |
run: flowey e 13 flowey_lib_hvlite::run_split_debug_info 3 | |
shell: bash | |
- name: ๐ผ Zip Vars | |
run: flowey e 13 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 35 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 13 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 36 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 13 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 39 | |
shell: bash | |
- name: unpack Microsoft.OHCL.Kernel.6.6.51.7-main-x64.tar.gz | |
run: flowey e 13 flowey_lib_hvlite::download_openhcl_kernel_package 0 | |
shell: bash | |
- name: building openhcl initrd | |
run: flowey e 13 flowey_lib_hvlite::build_openhcl_initrd 0 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 13 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 40 | |
shell: bash | |
- name: enumerate igvm resources | |
run: flowey e 13 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 41 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 13 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 42 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 13 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 43 | |
shell: bash | |
- name: building igvm file | |
run: flowey e 13 flowey_lib_hvlite::run_igvmfilegen 0 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 13 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 8 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 13 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 49 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 13 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 45 | |
shell: bash | |
- name: split debug symbols | |
run: flowey e 13 flowey_lib_hvlite::run_split_debug_info 0 | |
shell: bash | |
- name: ๐ผ Zip Vars | |
run: flowey e 13 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 46 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 13 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 47 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 13 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 50 | |
shell: bash | |
- name: building openhcl initrd | |
run: flowey e 13 flowey_lib_hvlite::build_openhcl_initrd 1 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 13 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 51 | |
shell: bash | |
- name: enumerate igvm resources | |
run: flowey e 13 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 52 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 13 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 53 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 13 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 54 | |
shell: bash | |
- name: building igvm file | |
run: flowey e 13 flowey_lib_hvlite::run_igvmfilegen 1 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 13 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 12 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 13 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 5 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 13 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 1 | |
shell: bash | |
- name: split debug symbols | |
run: flowey e 13 flowey_lib_hvlite::run_split_debug_info 4 | |
shell: bash | |
- name: ๐ผ Zip Vars | |
run: flowey e 13 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 2 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 13 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 3 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 13 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 6 | |
shell: bash | |
- name: building openhcl initrd | |
run: flowey e 13 flowey_lib_hvlite::build_openhcl_initrd 2 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 13 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 7 | |
shell: bash | |
- name: enumerate igvm resources | |
run: flowey e 13 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 8 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 13 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 9 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 13 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 10 | |
shell: bash | |
- name: building igvm file | |
run: flowey e 13 flowey_lib_hvlite::run_igvmfilegen 2 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 13 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 0 | |
shell: bash | |
- name: unpack Microsoft.OHCL.Kernel.6.6.51.7-main-cvm-x64.tar.gz | |
run: flowey e 13 flowey_lib_hvlite::download_openhcl_kernel_package 1 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 13 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 16 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 13 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 12 | |
shell: bash | |
- name: split debug symbols | |
run: flowey e 13 flowey_lib_hvlite::run_split_debug_info 1 | |
shell: bash | |
- name: ๐ผ Zip Vars | |
run: flowey e 13 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 13 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 13 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 14 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 13 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 17 | |
shell: bash | |
- name: building openhcl initrd | |
run: flowey e 13 flowey_lib_hvlite::build_openhcl_initrd 3 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 13 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 18 | |
shell: bash | |
- name: enumerate igvm resources | |
run: flowey e 13 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 19 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 13 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 20 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 13 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 21 | |
shell: bash | |
- name: building igvm file | |
run: flowey e 13 flowey_lib_hvlite::run_igvmfilegen 3 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 13 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 16 | |
shell: bash | |
- name: describe OpenHCL igvm artifact | |
run: flowey e 13 flowey_lib_hvlite::artifact_openhcl_igvm_from_recipe::publish 0 | |
shell: bash | |
- name: copying OpenHCL igvm files to artifact dir | |
run: flowey e 13 flowey_lib_common::copy_to_artifact_dir 1 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 13 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 26 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 13 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 22 | |
shell: bash | |
- name: ๐ผ Zip Vars | |
run: flowey e 13 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 5 | |
shell: bash | |
- name: ๐ผ Zip Vars | |
run: flowey e 13 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 6 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 13 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 7 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 13 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 37 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 13 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 33 | |
shell: bash | |
- name: ๐ผ Zip Vars | |
run: flowey e 13 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 9 | |
shell: bash | |
- name: ๐ผ Zip Vars | |
run: flowey e 13 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 10 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 13 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 11 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 13 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 48 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 13 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 44 | |
shell: bash | |
- name: ๐ผ Zip Vars | |
run: flowey e 13 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 13 | |
shell: bash | |
- name: ๐ผ Zip Vars | |
run: flowey e 13 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 14 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 13 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 15 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 13 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 15 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 13 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 11 | |
shell: bash | |
- name: ๐ผ Zip Vars | |
run: flowey e 13 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 17 | |
shell: bash | |
- name: ๐ผ Zip Vars | |
run: flowey e 13 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 18 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 13 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 19 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 13 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 4 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 13 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 0 | |
shell: bash | |
- name: ๐ผ Zip Vars | |
run: flowey e 13 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 1 | |
shell: bash | |
- name: ๐ผ Zip Vars | |
run: flowey e 13 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 2 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 13 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 3 | |
shell: bash | |
- name: describe OpenHCL igvm extras artifact | |
run: flowey e 13 flowey_lib_hvlite::artifact_openhcl_igvm_from_recipe_extras::publish 0 | |
shell: bash | |
- name: copying OpenHCL igvm extras to artifact dir | |
run: flowey e 13 flowey_lib_common::copy_to_artifact_dir 0 | |
shell: bash | |
- name: inject cross env | |
run: flowey e 13 flowey_lib_hvlite::init_cross_build 2 | |
shell: bash | |
- name: cargo build pipette | |
run: flowey e 13 flowey_lib_common::run_cargo_build 3 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 13 flowey_lib_hvlite::run_cargo_build 7 | |
shell: bash | |
- name: split debug symbols | |
run: flowey e 13 flowey_lib_hvlite::run_split_debug_info 6 | |
shell: bash | |
- name: reporting split debug info | |
run: flowey e 13 flowey_lib_hvlite::run_cargo_build 8 | |
shell: bash | |
- name: report built pipette | |
run: flowey e 13 flowey_lib_hvlite::build_pipette 0 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 13 flowey_lib_hvlite::artifact_pipette::publish 0 | |
shell: bash | |
- name: copying pipette to artifact dir | |
run: flowey e 13 flowey_lib_common::copy_to_artifact_dir 2 | |
shell: bash | |
- name: 'validate cache entry: gh-release-download' | |
run: flowey e 13 flowey_lib_common::cache 3 | |
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/job13.json | |
shell: bash | |
- name: ๐ผ๐ฅพ Publish bootstrapped flowey | |
uses: actions/upload-artifact@v4 | |
with: | |
name: _internal-flowey-bootstrap-x86_64-linux-uid-6 | |
path: ${{ runner.temp }}/bootstrapped-flowey | |
job14: | |
name: clippy [windows], unit tests [x64-windows] | |
runs-on: | |
- self-hosted | |
- 1ES.Pool=OpenVMM-GitHub-Win-Pool-WestUS3 | |
permissions: | |
contents: read | |
id-token: write | |
if: github.event.pull_request.draft == false | |
steps: | |
- run: echo "injected!" | |
name: ๐ผ๐ฅพ Bootstrap flowey | |
shell: bash | |
- run: | | |
set -x | |
i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done; | |
sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y | |
curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.82.0 -y | |
. "$HOME/.cargo/env" | |
echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" | |
rustup show | |
if: runner.os == 'Linux' | |
name: rustup (Linux) | |
shell: bash | |
- run: | | |
set -x | |
curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init | |
./rustup-init.exe -y --default-toolchain=1.82.0 | |
echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH | |
if: runner.os == 'Windows' && runner.arch == 'X64' | |
name: rustup (Windows X64) | |
shell: bash | |
- run: | | |
set -x | |
curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init | |
./rustup-init.exe -y --default-toolchain=1.82.0 | |
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: 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 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: ๐ผ๐ Self-check YAML | |
run: |- | |
ESCAPED_AGENT_TEMPDIR=$( | |
cat <<'EOF' | sed 's/\\/\\\\/g' | |
${{ runner.temp }} | |
EOF | |
) | |
flowey.exe pipeline github --runtime $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci | |
shell: bash | |
- name: ๐ผ๐ซ Initialize job | |
run: | | |
AgentTempDirNormal="${{ runner.temp }}" | |
AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') | |
echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV | |
chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe | |
echo '"debug"' | flowey.exe v 14 'FLOWEY_LOG' --update-from-stdin | |
echo "${{ runner.temp }}/work" | flowey.exe v 14 '_internal_WORKING_DIR' --update-from-stdin --is-raw-string | |
cat <<'EOF' | flowey.exe v 14 'param0' --update-from-stdin | |
${{ inputs.param0 != '' && inputs.param0 || 'false' }} | |
EOF | |
shell: bash | |
- name: install Rust | |
run: flowey.exe e 14 flowey_lib_common::install_rust 0 | |
shell: bash | |
- name: detect active toolchain | |
run: flowey.exe e 14 flowey_lib_common::install_rust 1 | |
shell: bash | |
- name: report common cargo flags | |
run: flowey.exe e 14 flowey_lib_common::cfg_cargo_common_flags 0 | |
shell: bash | |
- name: check if hvlite needs to be cloned | |
run: flowey.exe e 14 flowey_lib_common::git_checkout 0 | |
shell: bash | |
- run: | | |
flowey.exe v 14 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:470:46' --write-to-gh-env FLOWEY_CONDITION | |
shell: bash | |
name: ๐ผโ Write to 'FLOWEY_CONDITION' | |
- run: | | |
flowey.exe v 14 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:469:80' --write-to-gh-env floweyvar6 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar6' | |
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.floweyvar6 }} | |
name: checkout repo hvlite | |
if: ${{ fromJSON(env.FLOWEY_CONDITION) }} | |
- run: ${{ github.workspace }} | |
shell: flowey.exe v 14 'flowey_lib_common::git_checkout:4:flowey_lib_common/src/git_checkout.rs:524:31' --update-from-file {0} --is-raw-string | |
name: ๐ผ Read from 'github.workspace' | |
- name: report cloned repo directories | |
run: flowey.exe e 14 flowey_lib_common::git_checkout 3 | |
shell: bash | |
- name: resolve OpenVMM repo requests | |
run: flowey.exe e 14 flowey_lib_hvlite::git_checkout_openvmm_repo 0 | |
shell: bash | |
- name: set '-Dwarnings' in .cargo/config.toml | |
run: flowey.exe e 14 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0 | |
shell: bash | |
- name: create gh-release-download cache dir | |
run: flowey.exe e 14 flowey_lib_common::download_gh_release 0 | |
shell: bash | |
- name: Pre-processing cache vars | |
run: flowey.exe e 14 flowey_lib_common::cache 4 | |
shell: bash | |
- run: | | |
flowey.exe v 14 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:458:72' --write-to-gh-env floweyvar4 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar4' | |
- run: | | |
flowey.exe v 14 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:457: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 14 'flowey_lib_common::cache:12:flowey_lib_common/src/cache.rs:510: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 14 flowey_lib_common::cache 6 | |
shell: bash | |
- name: download artifacts from github releases | |
run: flowey.exe e 14 flowey_lib_common::download_gh_release 1 | |
shell: bash | |
- name: unpack protoc | |
run: flowey.exe e 14 flowey_lib_common::download_protoc 0 | |
shell: bash | |
- name: report openvmm magicpath dir | |
run: flowey.exe e 14 flowey_lib_hvlite::cfg_openvmm_magicpath 0 | |
shell: bash | |
- name: symlink protoc | |
run: flowey.exe e 14 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0 | |
shell: bash | |
- name: inject cross env | |
run: flowey.exe e 14 flowey_lib_hvlite::init_cross_build 1 | |
shell: bash | |
- name: inject cross env | |
run: flowey.exe e 14 flowey_lib_hvlite::init_cross_build 3 | |
shell: bash | |
- name: cargo build xtask | |
run: flowey.exe e 14 flowey_lib_common::run_cargo_build 0 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 14 flowey_lib_hvlite::run_cargo_build 0 | |
shell: bash | |
- name: report built xtask | |
run: flowey.exe e 14 flowey_lib_hvlite::build_xtask 0 | |
shell: bash | |
- name: determine clippy exclusions | |
run: flowey.exe e 14 flowey_lib_hvlite::_jobs::check_clippy 1 | |
shell: bash | |
- name: unpack Microsoft.WSL.LxUtil.x64.zip | |
run: flowey.exe e 14 flowey_lib_hvlite::download_lxutil 0 | |
shell: bash | |
- name: unpack Microsoft.WSL.LxUtil.AARCH64.zip | |
run: flowey.exe e 14 flowey_lib_hvlite::download_lxutil 1 | |
shell: bash | |
- name: move lxutil.dll into its magic folder | |
run: flowey.exe e 14 flowey_lib_hvlite::init_openvmm_magicpath_lxutil 0 | |
shell: bash | |
- name: cargo clippy | |
run: flowey.exe e 14 flowey_lib_common::run_cargo_clippy 0 | |
shell: bash | |
- name: inject cross env | |
run: flowey.exe e 14 flowey_lib_hvlite::init_cross_build 0 | |
shell: bash | |
- name: inject cross env | |
run: flowey.exe e 14 flowey_lib_hvlite::init_cross_build 4 | |
shell: bash | |
- name: cargo build xtask | |
run: flowey.exe e 14 flowey_lib_common::run_cargo_build 1 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 14 flowey_lib_hvlite::run_cargo_build 1 | |
shell: bash | |
- name: report built xtask | |
run: flowey.exe e 14 flowey_lib_hvlite::build_xtask 1 | |
shell: bash | |
- name: determine clippy exclusions | |
run: flowey.exe e 14 flowey_lib_hvlite::_jobs::check_clippy 0 | |
shell: bash | |
- name: cargo clippy | |
run: flowey.exe e 14 flowey_lib_common::run_cargo_clippy 1 | |
shell: bash | |
- name: create cargo-nextest cache dir | |
run: flowey.exe e 14 flowey_lib_common::download_cargo_nextest 0 | |
shell: bash | |
- name: Pre-processing cache vars | |
run: flowey.exe e 14 flowey_lib_common::cache 0 | |
shell: bash | |
- run: | | |
flowey.exe v 14 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:458:72' --write-to-gh-env floweyvar2 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar2' | |
- run: | | |
flowey.exe v 14 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:457: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 14 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:510: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 14 flowey_lib_common::cache 2 | |
shell: bash | |
- name: report cargo install persistent dir | |
run: flowey.exe e 14 flowey_lib_common::cfg_persistent_dir_cargo_install 0 | |
shell: bash | |
- name: report $CARGO_HOME | |
run: flowey.exe e 14 flowey_lib_common::install_rust 2 | |
shell: bash | |
- name: installing cargo-nextest | |
run: flowey.exe e 14 flowey_lib_common::download_cargo_nextest 1 | |
shell: bash | |
- name: inject cross env | |
run: flowey.exe e 14 flowey_lib_hvlite::init_cross_build 5 | |
shell: bash | |
- name: cargo build xtask | |
run: flowey.exe e 14 flowey_lib_common::run_cargo_build 2 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 14 flowey_lib_hvlite::run_cargo_build 2 | |
shell: bash | |
- name: report built xtask | |
run: flowey.exe e 14 flowey_lib_hvlite::build_xtask 2 | |
shell: bash | |
- name: determine unit test exclusions | |
run: flowey.exe e 14 flowey_lib_hvlite::build_nextest_unit_tests 0 | |
shell: bash | |
- name: inject cross env | |
run: flowey.exe e 14 flowey_lib_hvlite::init_cross_build 2 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 14 flowey_lib_hvlite::run_cargo_nextest_run 0 | |
shell: bash | |
- name: run 'unit-tests' nextest tests | |
run: flowey.exe e 14 flowey_lib_common::run_cargo_nextest_run 0 | |
shell: bash | |
- name: write results | |
run: flowey.exe e 14 flowey_lib_common::run_cargo_nextest_run 1 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 14 flowey_lib_hvlite::_jobs::build_and_run_nextest_unit_tests 0 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 14 flowey_lib_common::publish_test_results 0 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 14 flowey_lib_common::publish_test_results 1 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 14 flowey_lib_common::publish_test_results 2 | |
shell: bash | |
- run: | | |
flowey.exe v 14 'flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43' --write-to-gh-env FLOWEY_CONDITION | |
shell: bash | |
name: ๐ผโ Write to 'FLOWEY_CONDITION' | |
- run: | | |
flowey.exe v 14 'flowey_lib_common::publish_test_results:4:flowey_lib_common/src/publish_test_results.rs:95:47' --write-to-gh-env floweyvar1 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar1' | |
if: ${{ fromJSON(env.FLOWEY_CONDITION) }} | |
- id: flowey_lib_common__publish_test_results__3 | |
uses: actions/upload-artifact@v4 | |
with: | |
name: x64-windows-unit-tests-junit-xml | |
path: ${{ env.floweyvar1 }} | |
name: 'publish test results: x64-windows-unit-tests (JUnit XML)' | |
if: ${{ fromJSON(env.FLOWEY_CONDITION) }} | |
- name: report test results to overall pipeline status | |
run: flowey.exe e 14 flowey_lib_hvlite::_jobs::build_and_run_nextest_unit_tests 1 | |
shell: bash | |
- name: run doctests for x86_64-pc-windows-msvc | |
run: flowey.exe e 14 flowey_lib_hvlite::_jobs::build_and_run_doc_tests 0 | |
shell: bash | |
- name: 'validate cache entry: cargo-nextest' | |
run: flowey.exe e 14 flowey_lib_common::cache 3 | |
shell: bash | |
- name: 'validate cache entry: gh-release-download' | |
run: flowey.exe e 14 flowey_lib_common::cache 7 | |
shell: bash | |
job15: | |
name: clippy [linux, macos], unit tests [x64-linux] | |
runs-on: | |
- self-hosted | |
- 1ES.Pool=OpenVMM-GitHub-Linux-Pool-WestUS3 | |
- 1ES.ImageOverride=MMSUbuntu22.04-256GB | |
permissions: | |
contents: read | |
id-token: write | |
if: github.event.pull_request.draft == false | |
steps: | |
- run: echo "injected!" | |
name: ๐ผ๐ฅพ Bootstrap flowey | |
shell: bash | |
- run: | | |
set -x | |
i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done; | |
sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y | |
curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.82.0 -y | |
. "$HOME/.cargo/env" | |
echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" | |
rustup show | |
if: runner.os == 'Linux' | |
name: rustup (Linux) | |
shell: bash | |
- run: | | |
set -x | |
curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init | |
./rustup-init.exe -y --default-toolchain=1.82.0 | |
echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH | |
if: runner.os == 'Windows' && runner.arch == 'X64' | |
name: rustup (Windows X64) | |
shell: bash | |
- run: | | |
set -x | |
curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init | |
./rustup-init.exe -y --default-toolchain=1.82.0 | |
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: 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 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: ๐ผ๐ Self-check YAML | |
run: |- | |
ESCAPED_AGENT_TEMPDIR=$( | |
cat <<'EOF' | sed 's/\\/\\\\/g' | |
${{ runner.temp }} | |
EOF | |
) | |
flowey pipeline github --runtime $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci | |
shell: bash | |
- name: ๐ผ๐ซ Initialize job | |
run: | | |
AgentTempDirNormal="${{ runner.temp }}" | |
AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') | |
echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV | |
chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey | |
echo '"debug"' | flowey v 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: 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: checking if packages need to be installed | |
run: flowey e 15 flowey_lib_common::install_dist_pkg 0 | |
shell: bash | |
- name: installing packages | |
run: flowey e 15 flowey_lib_common::install_dist_pkg 1 | |
shell: bash | |
- name: create gh-release-download cache dir | |
run: flowey e 15 flowey_lib_common::download_gh_release 0 | |
shell: bash | |
- name: Pre-processing cache vars | |
run: flowey e 15 flowey_lib_common::cache 4 | |
shell: bash | |
- run: | | |
flowey v 15 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:458: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:457: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 15 'flowey_lib_common::cache:12:flowey_lib_common/src/cache.rs:510: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: download artifacts from github releases | |
run: flowey e 15 flowey_lib_common::download_gh_release 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: 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:470: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:469:80' --write-to-gh-env floweyvar6 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar6' | |
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.floweyvar6 }} | |
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:524: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: 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: inject cross env | |
run: flowey e 15 flowey_lib_hvlite::init_cross_build 1 | |
shell: bash | |
- name: inject cross env | |
run: flowey e 15 flowey_lib_hvlite::init_cross_build 6 | |
shell: bash | |
- name: cargo build xtask | |
run: flowey e 15 flowey_lib_common::run_cargo_build 3 | |
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 0 | |
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 2 | |
shell: bash | |
- name: cargo clippy | |
run: flowey e 15 flowey_lib_common::run_cargo_clippy 1 | |
shell: bash | |
- name: inject cross env | |
run: flowey e 15 flowey_lib_hvlite::init_cross_build 0 | |
shell: bash | |
- name: inject cross env | |
run: flowey e 15 flowey_lib_hvlite::init_cross_build 5 | |
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 0 | |
shell: bash | |
- name: split debug symbols | |
run: flowey e 15 flowey_lib_hvlite::run_split_debug_info 3 | |
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: inject cross env | |
run: flowey e 15 flowey_lib_hvlite::init_cross_build 3 | |
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 1 | |
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 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 2 | |
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:458: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:457: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:510: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: inject cross env | |
run: flowey e 15 flowey_lib_hvlite::init_cross_build 4 | |
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 6 | |
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 7 | |
shell: bash | |
- name: report built xtask | |
run: flowey e 15 flowey_lib_hvlite::build_xtask 3 | |
shell: bash | |
- name: determine unit test exclusions | |
run: flowey e 15 flowey_lib_hvlite::build_nextest_unit_tests 0 | |
shell: bash | |
- name: inject cross env | |
run: flowey e 15 flowey_lib_hvlite::init_cross_build 2 | |
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: write results | |
run: flowey e 15 flowey_lib_common::run_cargo_nextest_run 1 | |
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::publish_test_results 0 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 15 flowey_lib_common::publish_test_results 1 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 15 flowey_lib_common::publish_test_results 2 | |
shell: bash | |
- run: | | |
flowey v 15 'flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43' --write-to-gh-env FLOWEY_CONDITION | |
shell: bash | |
name: ๐ผโ Write to 'FLOWEY_CONDITION' | |
- run: | | |
flowey v 15 'flowey_lib_common::publish_test_results:4:flowey_lib_common/src/publish_test_results.rs:95:47' --write-to-gh-env floweyvar1 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar1' | |
if: ${{ fromJSON(env.FLOWEY_CONDITION) }} | |
- id: flowey_lib_common__publish_test_results__3 | |
uses: actions/upload-artifact@v4 | |
with: | |
name: x64-linux-unit-tests-junit-xml | |
path: ${{ env.floweyvar1 }} | |
name: 'publish test results: x64-linux-unit-tests (JUnit XML)' | |
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: run doctests for x86_64-unknown-linux-gnu | |
run: flowey e 15 flowey_lib_hvlite::_jobs::build_and_run_doc_tests 0 | |
shell: bash | |
- name: 'validate cache entry: cargo-nextest' | |
run: flowey e 15 flowey_lib_common::cache 3 | |
shell: bash | |
- name: 'validate cache entry: gh-release-download' | |
run: flowey e 15 flowey_lib_common::cache 7 | |
shell: bash | |
job16: | |
name: clippy [linux-musl, misc nostd], unit tests [x64-linux-musl] | |
runs-on: | |
- self-hosted | |
- 1ES.Pool=OpenVMM-GitHub-Linux-Pool-WestUS3 | |
- 1ES.ImageOverride=MMSUbuntu22.04-256GB | |
permissions: | |
contents: read | |
id-token: write | |
if: github.event.pull_request.draft == false | |
steps: | |
- run: echo "injected!" | |
name: ๐ผ๐ฅพ Bootstrap flowey | |
shell: bash | |
- run: | | |
set -x | |
i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done; | |
sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y | |
curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.82.0 -y | |
. "$HOME/.cargo/env" | |
echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" | |
rustup show | |
if: runner.os == 'Linux' | |
name: rustup (Linux) | |
shell: bash | |
- run: | | |
set -x | |
curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init | |
./rustup-init.exe -y --default-toolchain=1.82.0 | |
echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH | |
if: runner.os == 'Windows' && runner.arch == 'X64' | |
name: rustup (Windows X64) | |
shell: bash | |
- run: | | |
set -x | |
curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init | |
./rustup-init.exe -y --default-toolchain=1.82.0 | |
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: 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 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: ๐ผ๐ Self-check YAML | |
run: |- | |
ESCAPED_AGENT_TEMPDIR=$( | |
cat <<'EOF' | sed 's/\\/\\\\/g' | |
${{ runner.temp }} | |
EOF | |
) | |
flowey pipeline github --runtime $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci | |
shell: bash | |
- name: ๐ผ๐ซ Initialize job | |
run: | | |
AgentTempDirNormal="${{ runner.temp }}" | |
AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') | |
echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV | |
chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey | |
echo '"debug"' | flowey v 16 'FLOWEY_LOG' --update-from-stdin | |
echo "${{ runner.temp }}/work" | flowey v 16 '_internal_WORKING_DIR' --update-from-stdin --is-raw-string | |
cat <<'EOF' | flowey v 16 'param0' --update-from-stdin | |
${{ inputs.param0 != '' && inputs.param0 || 'false' }} | |
EOF | |
shell: bash | |
- name: install Rust | |
run: flowey e 16 flowey_lib_common::install_rust 0 | |
shell: bash | |
- name: detect active toolchain | |
run: flowey e 16 flowey_lib_common::install_rust 1 | |
shell: bash | |
- name: report common cargo flags | |
run: flowey e 16 flowey_lib_common::cfg_cargo_common_flags 0 | |
shell: bash | |
- name: check if hvlite needs to be cloned | |
run: flowey e 16 flowey_lib_common::git_checkout 0 | |
shell: bash | |
- run: | | |
flowey v 16 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:470:46' --write-to-gh-env FLOWEY_CONDITION | |
shell: bash | |
name: ๐ผโ Write to 'FLOWEY_CONDITION' | |
- run: | | |
flowey v 16 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:469:80' --write-to-gh-env floweyvar6 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar6' | |
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.floweyvar6 }} | |
name: checkout repo hvlite | |
if: ${{ fromJSON(env.FLOWEY_CONDITION) }} | |
- run: ${{ github.workspace }} | |
shell: flowey v 16 'flowey_lib_common::git_checkout:4:flowey_lib_common/src/git_checkout.rs:524:31' --update-from-file {0} --is-raw-string | |
name: ๐ผ Read from 'github.workspace' | |
- name: report cloned repo directories | |
run: flowey e 16 flowey_lib_common::git_checkout 3 | |
shell: bash | |
- name: resolve OpenVMM repo requests | |
run: flowey e 16 flowey_lib_hvlite::git_checkout_openvmm_repo 0 | |
shell: bash | |
- name: report openvmm magicpath dir | |
run: flowey e 16 flowey_lib_hvlite::cfg_openvmm_magicpath 0 | |
shell: bash | |
- name: checking if packages need to be installed | |
run: flowey e 16 flowey_lib_common::install_dist_pkg 0 | |
shell: bash | |
- name: installing packages | |
run: flowey e 16 flowey_lib_common::install_dist_pkg 1 | |
shell: bash | |
- name: create gh-release-download cache dir | |
run: flowey e 16 flowey_lib_common::download_gh_release 0 | |
shell: bash | |
- name: Pre-processing cache vars | |
run: flowey e 16 flowey_lib_common::cache 4 | |
shell: bash | |
- run: | | |
flowey v 16 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:458:72' --write-to-gh-env floweyvar4 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar4' | |
- run: | | |
flowey v 16 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:457: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 16 'flowey_lib_common::cache:12:flowey_lib_common/src/cache.rs:510: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 16 flowey_lib_common::cache 6 | |
shell: bash | |
- name: download artifacts from github releases | |
run: flowey e 16 flowey_lib_common::download_gh_release 1 | |
shell: bash | |
- name: unpack openvmm-deps archive | |
run: flowey e 16 flowey_lib_hvlite::download_openvmm_deps 0 | |
shell: bash | |
- name: extract X64 sysroot.tar.gz | |
run: flowey e 16 flowey_lib_hvlite::init_openvmm_magicpath_openhcl_sysroot 1 | |
shell: bash | |
- name: unpack Microsoft.WSL.LxUtil.x64.zip | |
run: flowey e 16 flowey_lib_hvlite::download_lxutil 0 | |
shell: bash | |
- name: unpack Microsoft.WSL.LxUtil.AARCH64.zip | |
run: flowey e 16 flowey_lib_hvlite::download_lxutil 1 | |
shell: bash | |
- name: move lxutil.dll into its magic folder | |
run: flowey e 16 flowey_lib_hvlite::init_openvmm_magicpath_lxutil 0 | |
shell: bash | |
- name: set '-Dwarnings' in .cargo/config.toml | |
run: flowey e 16 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0 | |
shell: bash | |
- name: unpack protoc | |
run: flowey e 16 flowey_lib_common::download_protoc 0 | |
shell: bash | |
- name: symlink protoc | |
run: flowey e 16 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0 | |
shell: bash | |
- name: inject cross env | |
run: flowey e 16 flowey_lib_hvlite::init_cross_build 4 | |
shell: bash | |
- name: inject cross env | |
run: flowey e 16 flowey_lib_hvlite::init_cross_build 2 | |
shell: bash | |
- name: cargo build xtask | |
run: flowey e 16 flowey_lib_common::run_cargo_build 1 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 16 flowey_lib_hvlite::run_cargo_build 0 | |
shell: bash | |
- name: split debug symbols | |
run: flowey e 16 flowey_lib_hvlite::run_split_debug_info 2 | |
shell: bash | |
- name: reporting split debug info | |
run: flowey e 16 flowey_lib_hvlite::run_cargo_build 1 | |
shell: bash | |
- name: report built xtask | |
run: flowey e 16 flowey_lib_hvlite::build_xtask 0 | |
shell: bash | |
- name: determine clippy exclusions | |
run: flowey e 16 flowey_lib_hvlite::_jobs::check_clippy 1 | |
shell: bash | |
- name: cargo clippy | |
run: flowey e 16 flowey_lib_common::run_cargo_clippy 0 | |
shell: bash | |
- name: cargo clippy | |
run: flowey e 16 flowey_lib_common::run_cargo_clippy 2 | |
shell: bash | |
- name: cargo clippy | |
run: flowey e 16 flowey_lib_common::run_cargo_clippy 1 | |
shell: bash | |
- name: extract Aarch64 sysroot.tar.gz | |
run: flowey e 16 flowey_lib_hvlite::init_openvmm_magicpath_openhcl_sysroot 0 | |
shell: bash | |
- name: inject cross env | |
run: flowey e 16 flowey_lib_hvlite::init_cross_build 0 | |
shell: bash | |
- name: cargo clippy | |
run: flowey e 16 flowey_lib_common::run_cargo_clippy 4 | |
shell: bash | |
- name: inject cross env | |
run: flowey e 16 flowey_lib_hvlite::init_cross_build 3 | |
shell: bash | |
- name: cargo build xtask | |
run: flowey e 16 flowey_lib_common::run_cargo_build 2 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 16 flowey_lib_hvlite::run_cargo_build 2 | |
shell: bash | |
- name: split debug symbols | |
run: flowey e 16 flowey_lib_hvlite::run_split_debug_info 0 | |
shell: bash | |
- name: reporting split debug info | |
run: flowey e 16 flowey_lib_hvlite::run_cargo_build 3 | |
shell: bash | |
- name: report built xtask | |
run: flowey e 16 flowey_lib_hvlite::build_xtask 1 | |
shell: bash | |
- name: determine clippy exclusions | |
run: flowey e 16 flowey_lib_hvlite::_jobs::check_clippy 0 | |
shell: bash | |
- name: cargo clippy | |
run: flowey e 16 flowey_lib_common::run_cargo_clippy 3 | |
shell: bash | |
- name: cargo clippy | |
run: flowey e 16 flowey_lib_common::run_cargo_clippy 5 | |
shell: bash | |
- name: create cargo-nextest cache dir | |
run: flowey e 16 flowey_lib_common::download_cargo_nextest 0 | |
shell: bash | |
- name: Pre-processing cache vars | |
run: flowey e 16 flowey_lib_common::cache 0 | |
shell: bash | |
- run: | | |
flowey v 16 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:458:72' --write-to-gh-env floweyvar2 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar2' | |
- run: | | |
flowey v 16 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:457: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 16 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:510: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 16 flowey_lib_common::cache 2 | |
shell: bash | |
- name: report cargo install persistent dir | |
run: flowey e 16 flowey_lib_common::cfg_persistent_dir_cargo_install 0 | |
shell: bash | |
- name: report $CARGO_HOME | |
run: flowey e 16 flowey_lib_common::install_rust 2 | |
shell: bash | |
- name: installing cargo-nextest | |
run: flowey e 16 flowey_lib_common::download_cargo_nextest 1 | |
shell: bash | |
- name: inject cross env | |
run: flowey e 16 flowey_lib_hvlite::init_cross_build 1 | |
shell: bash | |
- name: cargo build xtask | |
run: flowey e 16 flowey_lib_common::run_cargo_build 0 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 16 flowey_lib_hvlite::run_cargo_build 4 | |
shell: bash | |
- name: split debug symbols | |
run: flowey e 16 flowey_lib_hvlite::run_split_debug_info 1 | |
shell: bash | |
- name: reporting split debug info | |
run: flowey e 16 flowey_lib_hvlite::run_cargo_build 5 | |
shell: bash | |
- name: report built xtask | |
run: flowey e 16 flowey_lib_hvlite::build_xtask 2 | |
shell: bash | |
- name: determine unit test exclusions | |
run: flowey e 16 flowey_lib_hvlite::build_nextest_unit_tests 0 | |
shell: bash | |
- name: inject cross env | |
run: flowey e 16 flowey_lib_hvlite::init_cross_build 5 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 16 flowey_lib_hvlite::run_cargo_nextest_run 0 | |
shell: bash | |
- name: run 'unit-tests' nextest tests | |
run: flowey e 16 flowey_lib_common::run_cargo_nextest_run 0 | |
shell: bash | |
- name: write results | |
run: flowey e 16 flowey_lib_common::run_cargo_nextest_run 1 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 16 flowey_lib_hvlite::_jobs::build_and_run_nextest_unit_tests 0 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 16 flowey_lib_common::publish_test_results 0 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 16 flowey_lib_common::publish_test_results 1 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 16 flowey_lib_common::publish_test_results 2 | |
shell: bash | |
- run: | | |
flowey v 16 'flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43' --write-to-gh-env FLOWEY_CONDITION | |
shell: bash | |
name: ๐ผโ Write to 'FLOWEY_CONDITION' | |
- run: | | |
flowey v 16 'flowey_lib_common::publish_test_results:4:flowey_lib_common/src/publish_test_results.rs:95:47' --write-to-gh-env floweyvar1 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar1' | |
if: ${{ fromJSON(env.FLOWEY_CONDITION) }} | |
- id: flowey_lib_common__publish_test_results__3 | |
uses: actions/upload-artifact@v4 | |
with: | |
name: x64-linux-musl-unit-tests-junit-xml | |
path: ${{ env.floweyvar1 }} | |
name: 'publish test results: x64-linux-musl-unit-tests (JUnit XML)' | |
if: ${{ fromJSON(env.FLOWEY_CONDITION) }} | |
- name: report test results to overall pipeline status | |
run: flowey e 16 flowey_lib_hvlite::_jobs::build_and_run_nextest_unit_tests 1 | |
shell: bash | |
- name: run doctests for x86_64-unknown-linux-musl | |
run: flowey e 16 flowey_lib_hvlite::_jobs::build_and_run_doc_tests 0 | |
shell: bash | |
- name: 'validate cache entry: cargo-nextest' | |
run: flowey e 16 flowey_lib_common::cache 3 | |
shell: bash | |
- name: 'validate cache entry: gh-release-download' | |
run: flowey e 16 flowey_lib_common::cache 7 | |
shell: bash | |
job17: | |
name: unit tests [aarch64-windows] | |
runs-on: | |
- self-hosted | |
- Windows | |
- ARM64 | |
- Baremetal | |
permissions: | |
contents: read | |
id-token: write | |
if: github.event.pull_request.draft == false | |
steps: | |
- run: echo "injected!" | |
name: ๐ผ๐ฅพ Bootstrap flowey | |
shell: bash | |
- run: | | |
set -x | |
i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done; | |
sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y | |
curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.82.0 -y | |
. "$HOME/.cargo/env" | |
echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" | |
rustup show | |
if: runner.os == 'Linux' | |
name: rustup (Linux) | |
shell: bash | |
- run: | | |
set -x | |
curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init | |
./rustup-init.exe -y --default-toolchain=1.82.0 | |
echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH | |
if: runner.os == 'Windows' && runner.arch == 'X64' | |
name: rustup (Windows X64) | |
shell: bash | |
- run: | | |
set -x | |
curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init | |
./rustup-init.exe -y --default-toolchain=1.82.0 | |
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: Build flowey | |
run: CARGO_INCREMENTAL=0 RUSTC_BOOTSTRAP=1 RUSTFLAGS="-Z threads=8" cargo build -p flowey_hvlite --target aarch64-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 target/aarch64-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: ๐ผ๐ Self-check YAML | |
run: |- | |
ESCAPED_AGENT_TEMPDIR=$( | |
cat <<'EOF' | sed 's/\\/\\\\/g' | |
${{ runner.temp }} | |
EOF | |
) | |
flowey.exe pipeline github --runtime $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci | |
shell: bash | |
- name: ๐ผ๐ซ Initialize job | |
run: | | |
AgentTempDirNormal="${{ runner.temp }}" | |
AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') | |
echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV | |
chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe | |
echo '"debug"' | flowey.exe v 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 | |
shell: bash | |
- name: report common cargo flags | |
run: flowey.exe e 17 flowey_lib_common::cfg_cargo_common_flags 0 | |
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 0 | |
shell: bash | |
- run: | | |
flowey.exe v 17 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:458:72' --write-to-gh-env floweyvar2 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar2' | |
- run: | | |
flowey.exe v 17 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:457: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 17 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:510: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: report cargo install persistent dir | |
run: flowey.exe e 17 flowey_lib_common::cfg_persistent_dir_cargo_install 0 | |
shell: bash | |
- name: install Rust | |
run: flowey.exe e 17 flowey_lib_common::install_rust 0 | |
shell: bash | |
- name: detect active toolchain | |
run: flowey.exe e 17 flowey_lib_common::install_rust 1 | |
shell: bash | |
- name: report $CARGO_HOME | |
run: flowey.exe e 17 flowey_lib_common::install_rust 2 | |
shell: bash | |
- name: installing cargo-nextest | |
run: flowey.exe e 17 flowey_lib_common::download_cargo_nextest 1 | |
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:470: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:469:80' --write-to-gh-env floweyvar6 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar6' | |
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.floweyvar6 }} | |
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:524: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: set '-Dwarnings' in .cargo/config.toml | |
run: flowey.exe e 17 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0 | |
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 4 | |
shell: bash | |
- run: | | |
flowey.exe v 17 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:458:72' --write-to-gh-env floweyvar4 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar4' | |
- run: | | |
flowey.exe v 17 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:457: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 17 'flowey_lib_common::cache:12:flowey_lib_common/src/cache.rs:510: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: download artifacts from github releases | |
run: flowey.exe e 17 flowey_lib_common::download_gh_release 1 | |
shell: bash | |
- name: unpack protoc | |
run: flowey.exe e 17 flowey_lib_common::download_protoc 0 | |
shell: bash | |
- name: report openvmm magicpath dir | |
run: flowey.exe e 17 flowey_lib_hvlite::cfg_openvmm_magicpath 0 | |
shell: bash | |
- name: symlink protoc | |
run: flowey.exe e 17 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0 | |
shell: bash | |
- name: inject cross env | |
run: flowey.exe e 17 flowey_lib_hvlite::init_cross_build 1 | |
shell: bash | |
- name: cargo build xtask | |
run: flowey.exe e 17 flowey_lib_common::run_cargo_build 0 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 17 flowey_lib_hvlite::run_cargo_build 0 | |
shell: bash | |
- name: report built xtask | |
run: flowey.exe e 17 flowey_lib_hvlite::build_xtask 0 | |
shell: bash | |
- name: determine unit test exclusions | |
run: flowey.exe e 17 flowey_lib_hvlite::build_nextest_unit_tests 0 | |
shell: bash | |
- name: unpack Microsoft.WSL.LxUtil.AARCH64.zip | |
run: flowey.exe e 17 flowey_lib_hvlite::download_lxutil 0 | |
shell: bash | |
- name: move lxutil.dll into its magic folder | |
run: flowey.exe e 17 flowey_lib_hvlite::init_openvmm_magicpath_lxutil 0 | |
shell: bash | |
- name: inject cross env | |
run: flowey.exe e 17 flowey_lib_hvlite::init_cross_build 0 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 17 flowey_lib_hvlite::run_cargo_nextest_run 0 | |
shell: bash | |
- name: run 'unit-tests' nextest tests | |
run: flowey.exe e 17 flowey_lib_common::run_cargo_nextest_run 0 | |
shell: bash | |
- name: write results | |
run: flowey.exe e 17 flowey_lib_common::run_cargo_nextest_run 1 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 17 flowey_lib_hvlite::_jobs::build_and_run_nextest_unit_tests 0 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 17 flowey_lib_common::publish_test_results 0 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 17 flowey_lib_common::publish_test_results 1 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 17 flowey_lib_common::publish_test_results 2 | |
shell: bash | |
- run: | | |
flowey.exe v 17 'flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43' --write-to-gh-env FLOWEY_CONDITION | |
shell: bash | |
name: ๐ผโ Write to 'FLOWEY_CONDITION' | |
- run: | | |
flowey.exe v 17 'flowey_lib_common::publish_test_results:4:flowey_lib_common/src/publish_test_results.rs:95:47' --write-to-gh-env floweyvar1 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar1' | |
if: ${{ fromJSON(env.FLOWEY_CONDITION) }} | |
- id: flowey_lib_common__publish_test_results__3 | |
uses: actions/upload-artifact@v4 | |
with: | |
name: aarch64-windows-unit-tests-junit-xml | |
path: ${{ env.floweyvar1 }} | |
name: 'publish test results: aarch64-windows-unit-tests (JUnit XML)' | |
if: ${{ fromJSON(env.FLOWEY_CONDITION) }} | |
- name: report test results to overall pipeline status | |
run: flowey.exe e 17 flowey_lib_hvlite::_jobs::build_and_run_nextest_unit_tests 1 | |
shell: bash | |
- name: run doctests for aarch64-pc-windows-msvc | |
run: flowey.exe e 17 flowey_lib_hvlite::_jobs::build_and_run_doc_tests 0 | |
shell: bash | |
- name: 'validate cache entry: cargo-nextest' | |
run: flowey.exe e 17 flowey_lib_common::cache 3 | |
shell: bash | |
- name: 'validate cache entry: gh-release-download' | |
run: flowey.exe e 17 flowey_lib_common::cache 7 | |
shell: bash | |
job18: | |
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: | |
- job13 | |
- job13 | |
- job11 | |
- job9 | |
- job9 | |
- job9 | |
if: github.event.pull_request.draft == false | |
steps: | |
- name: ๐ผ๐ฅพ Download bootstrapped flowey | |
uses: actions/download-artifact@v4 | |
with: | |
name: _internal-flowey-bootstrap-x86_64-windows-uid-10 | |
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 18 'FLOWEY_LOG' --update-from-stdin | |
echo "${{ runner.temp }}/work" | flowey.exe v 18 '_internal_WORKING_DIR' --update-from-stdin --is-raw-string | |
cat <<'EOF' | flowey.exe v 18 'param0' --update-from-stdin | |
${{ inputs.param0 != '' && inputs.param0 || 'false' }} | |
EOF | |
echo "${{ runner.temp }}\\used_artifacts\\x64-guest_test_uefi" | flowey.exe v 18 '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 18 'artifact_use_from_x64-linux-musl-pipette' --update-from-stdin --is-raw-string | |
echo "${{ runner.temp }}\\used_artifacts\\x64-openhcl-igvm" | flowey.exe v 18 'artifact_use_from_x64-openhcl-igvm' --update-from-stdin --is-raw-string | |
echo "${{ runner.temp }}\\used_artifacts\\x64-windows-openvmm" | flowey.exe v 18 'artifact_use_from_x64-windows-openvmm' --update-from-stdin --is-raw-string | |
echo "${{ runner.temp }}\\used_artifacts\\x64-windows-pipette" | flowey.exe v 18 '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 18 '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 18 flowey_lib_common::download_cargo_nextest 0 | |
shell: bash | |
- name: Pre-processing cache vars | |
run: flowey.exe e 18 flowey_lib_common::cache 4 | |
shell: bash | |
- run: | | |
flowey.exe v 18 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:458:72' --write-to-gh-env floweyvar8 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar8' | |
- run: | | |
flowey.exe v 18 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:457: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 18 'flowey_lib_common::cache:12:flowey_lib_common/src/cache.rs:510: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 18 flowey_lib_common::cache 6 | |
shell: bash | |
- name: installing cargo-nextest | |
run: flowey.exe e 18 flowey_lib_common::download_cargo_nextest 1 | |
shell: bash | |
- name: create gh-release-download cache dir | |
run: flowey.exe e 18 flowey_lib_common::download_gh_release 0 | |
shell: bash | |
- name: Pre-processing cache vars | |
run: flowey.exe e 18 flowey_lib_common::cache 8 | |
shell: bash | |
- run: | | |
flowey.exe v 18 'flowey_lib_common::cache:18:flowey_lib_common/src/cache.rs:458:72' --write-to-gh-env floweyvar10 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar10' | |
- run: | | |
flowey.exe v 18 'flowey_lib_common::cache:17:flowey_lib_common/src/cache.rs:457: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-release-download' | |
- run: ${{ steps.flowey_lib_common__cache__9.outputs.cache-hit }} | |
shell: flowey.exe v 18 'flowey_lib_common::cache:20:flowey_lib_common/src/cache.rs:510: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 18 flowey_lib_common::cache 10 | |
shell: bash | |
- name: download artifacts from github releases | |
run: flowey.exe e 18 flowey_lib_common::download_gh_release 1 | |
shell: bash | |
- name: unpack mu_msvm package (x64) | |
run: flowey.exe e 18 flowey_lib_hvlite::download_uefi_mu_msvm 0 | |
shell: bash | |
- name: check if hvlite needs to be cloned | |
run: flowey.exe e 18 flowey_lib_common::git_checkout 0 | |
shell: bash | |
- run: | | |
flowey.exe v 18 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:470:46' --write-to-gh-env FLOWEY_CONDITION | |
shell: bash | |
name: ๐ผโ Write to 'FLOWEY_CONDITION' | |
- run: | | |
flowey.exe v 18 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:469: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 18 'flowey_lib_common::git_checkout:4:flowey_lib_common/src/git_checkout.rs:524:31' --update-from-file {0} --is-raw-string | |
name: ๐ผ Read from 'github.workspace' | |
- name: report cloned repo directories | |
run: flowey.exe e 18 flowey_lib_common::git_checkout 3 | |
shell: bash | |
- name: resolve OpenVMM repo requests | |
run: flowey.exe e 18 flowey_lib_hvlite::git_checkout_openvmm_repo 0 | |
shell: bash | |
- name: report openvmm magicpath dir | |
run: flowey.exe e 18 flowey_lib_hvlite::cfg_openvmm_magicpath 0 | |
shell: bash | |
- name: move MSVM.fd into its magic folder | |
run: flowey.exe e 18 flowey_lib_hvlite::init_openvmm_magicpath_uefi_mu_msvm 0 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 18 flowey_lib_hvlite::run_cargo_nextest_run 0 | |
shell: bash | |
- name: creating new test content dir | |
run: flowey.exe e 18 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 0 | |
shell: bash | |
- name: resolve openvmm artifact | |
run: flowey.exe e 18 flowey_lib_hvlite::artifact_openvmm::resolve 0 | |
shell: bash | |
- name: resolve pipette artifact | |
run: flowey.exe e 18 flowey_lib_hvlite::artifact_pipette::resolve 1 | |
shell: bash | |
- name: resolve pipette artifact | |
run: flowey.exe e 18 flowey_lib_hvlite::artifact_pipette::resolve 0 | |
shell: bash | |
- name: resolve guest_test_uefi artifact | |
run: flowey.exe e 18 flowey_lib_hvlite::artifact_guest_test_uefi::resolve 0 | |
shell: bash | |
- name: resolve OpenHCL igvm artifact | |
run: flowey.exe e 18 flowey_lib_hvlite::artifact_openhcl_igvm_from_recipe::resolve 0 | |
shell: bash | |
- name: create azcopy cache dir | |
run: flowey.exe e 18 flowey_lib_common::download_azcopy 0 | |
shell: bash | |
- name: Pre-processing cache vars | |
run: flowey.exe e 18 flowey_lib_common::cache 0 | |
shell: bash | |
- run: | | |
flowey.exe v 18 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:458:72' --write-to-gh-env floweyvar6 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar6' | |
- run: | | |
flowey.exe v 18 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:457: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 18 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:510: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 18 flowey_lib_common::cache 2 | |
shell: bash | |
- name: installing azcopy | |
run: flowey.exe e 18 flowey_lib_common::download_azcopy 1 | |
shell: bash | |
- name: calculating required VMM tests disk images | |
run: flowey.exe e 18 flowey_lib_hvlite::download_openvmm_vmm_tests_vhds 0 | |
shell: bash | |
- name: downloading VMM test disk images | |
run: flowey.exe e 18 flowey_lib_hvlite::download_openvmm_vmm_tests_vhds 1 | |
shell: bash | |
- name: report downloaded VMM test disk images | |
run: flowey.exe e 18 flowey_lib_hvlite::download_openvmm_vmm_tests_vhds 2 | |
shell: bash | |
- name: unpack openvmm-deps archive | |
run: flowey.exe e 18 flowey_lib_hvlite::download_openvmm_deps 0 | |
shell: bash | |
- name: setting up vmm_tests env | |
run: flowey.exe e 18 flowey_lib_hvlite::init_vmm_tests_env 0 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 18 flowey_lib_hvlite::run_cargo_nextest_run 1 | |
shell: bash | |
- name: resolve vmm tests archive artifact | |
run: flowey.exe e 18 flowey_lib_hvlite::artifact_nextest_vmm_tests_archive::resolve 0 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 18 flowey_lib_hvlite::test_nextest_vmm_tests_archive 0 | |
shell: bash | |
- name: run 'vmm_tests' nextest tests | |
run: flowey.exe e 18 flowey_lib_common::run_cargo_nextest_run 0 | |
shell: bash | |
- name: write results | |
run: flowey.exe e 18 flowey_lib_common::run_cargo_nextest_run 1 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 18 flowey_lib_common::publish_test_results 4 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 18 flowey_lib_common::publish_test_results 5 | |
shell: bash | |
- run: | | |
flowey.exe v 18 'flowey_lib_common::publish_test_results:7:flowey_lib_common/src/publish_test_results.rs:141:57' --write-to-gh-env FLOWEY_CONDITION | |
shell: bash | |
name: ๐ผโ Write to 'FLOWEY_CONDITION' | |
- run: | | |
flowey.exe v 18 'flowey_lib_common::publish_test_results:9:flowey_lib_common/src/publish_test_results.rs:149:62' --write-to-gh-env floweyvar2 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar2' | |
if: ${{ fromJSON(env.FLOWEY_CONDITION) }} | |
- id: flowey_lib_common__publish_test_results__6 | |
uses: actions/upload-artifact@v4 | |
with: | |
name: x64-windows-intel-vmm-tests-crash-dumps | |
path: ${{ env.floweyvar2 }} | |
name: 'publish test results: crash-dumps (x64-windows-intel-vmm-tests)' | |
if: ${{ fromJSON(env.FLOWEY_CONDITION) }} | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 18 flowey_lib_common::publish_test_results 7 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 18 flowey_lib_common::publish_test_results 8 | |
shell: bash | |
- run: | | |
flowey.exe v 18 'flowey_lib_common::publish_test_results:12:flowey_lib_common/src/publish_test_results.rs:141:57' --write-to-gh-env FLOWEY_CONDITION | |
shell: bash | |
name: ๐ผโ Write to 'FLOWEY_CONDITION' | |
- run: | | |
flowey.exe v 18 'flowey_lib_common::publish_test_results:14:flowey_lib_common/src/publish_test_results.rs:149:62' --write-to-gh-env floweyvar3 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar3' | |
if: ${{ fromJSON(env.FLOWEY_CONDITION) }} | |
- id: flowey_lib_common__publish_test_results__9 | |
uses: actions/upload-artifact@v4 | |
with: | |
name: x64-windows-intel-vmm-tests-logs | |
path: ${{ env.floweyvar3 }} | |
name: 'publish test results: logs (x64-windows-intel-vmm-tests)' | |
if: ${{ fromJSON(env.FLOWEY_CONDITION) }} | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 18 flowey_lib_common::publish_test_results 10 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 18 flowey_lib_common::publish_test_results 11 | |
shell: bash | |
- run: | | |
flowey.exe v 18 'flowey_lib_common::publish_test_results:17:flowey_lib_common/src/publish_test_results.rs:141:57' --write-to-gh-env FLOWEY_CONDITION | |
shell: bash | |
name: ๐ผโ Write to 'FLOWEY_CONDITION' | |
- run: | | |
flowey.exe v 18 'flowey_lib_common::publish_test_results:19:flowey_lib_common/src/publish_test_results.rs:149:62' --write-to-gh-env floweyvar4 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar4' | |
if: ${{ fromJSON(env.FLOWEY_CONDITION) }} | |
- id: flowey_lib_common__publish_test_results__12 | |
uses: actions/upload-artifact@v4 | |
with: | |
name: x64-windows-intel-vmm-tests-openhcl-dumps | |
path: ${{ env.floweyvar4 }} | |
name: 'publish test results: openhcl-dumps (x64-windows-intel-vmm-tests)' | |
if: ${{ fromJSON(env.FLOWEY_CONDITION) }} | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 18 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 1 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 18 flowey_lib_common::publish_test_results 0 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 18 flowey_lib_common::publish_test_results 1 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 18 flowey_lib_common::publish_test_results 2 | |
shell: bash | |
- run: | | |
flowey.exe v 18 'flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43' --write-to-gh-env FLOWEY_CONDITION | |
shell: bash | |
name: ๐ผโ Write to 'FLOWEY_CONDITION' | |
- run: | | |
flowey.exe v 18 'flowey_lib_common::publish_test_results:4:flowey_lib_common/src/publish_test_results.rs:95:47' --write-to-gh-env floweyvar1 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar1' | |
if: ${{ fromJSON(env.FLOWEY_CONDITION) }} | |
- id: flowey_lib_common__publish_test_results__3 | |
uses: actions/upload-artifact@v4 | |
with: | |
name: x64-windows-intel-vmm-tests-junit-xml | |
path: ${{ env.floweyvar1 }} | |
name: 'publish test results: x64-windows-intel-vmm-tests (JUnit XML)' | |
if: ${{ fromJSON(env.FLOWEY_CONDITION) }} | |
- name: report test results to overall pipeline status | |
run: flowey.exe e 18 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 18 flowey_lib_common::cache 11 | |
shell: bash | |
- name: 'validate cache entry: azcopy' | |
run: flowey.exe e 18 flowey_lib_common::cache 3 | |
shell: bash | |
- name: 'validate cache entry: cargo-nextest' | |
run: flowey.exe e 18 flowey_lib_common::cache 7 | |
shell: bash | |
job19: | |
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: | |
- job13 | |
- job13 | |
- job11 | |
- job9 | |
- job9 | |
- job9 | |
if: github.event.pull_request.draft == false | |
steps: | |
- name: ๐ผ๐ฅพ Download bootstrapped flowey | |
uses: actions/download-artifact@v4 | |
with: | |
name: _internal-flowey-bootstrap-x86_64-windows-uid-10 | |
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 19 'FLOWEY_LOG' --update-from-stdin | |
echo "${{ runner.temp }}/work" | flowey.exe v 19 '_internal_WORKING_DIR' --update-from-stdin --is-raw-string | |
cat <<'EOF' | flowey.exe v 19 'param0' --update-from-stdin | |
${{ inputs.param0 != '' && inputs.param0 || 'false' }} | |
EOF | |
echo "${{ runner.temp }}\\used_artifacts\\x64-guest_test_uefi" | flowey.exe v 19 '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 19 'artifact_use_from_x64-linux-musl-pipette' --update-from-stdin --is-raw-string | |
echo "${{ runner.temp }}\\used_artifacts\\x64-openhcl-igvm" | flowey.exe v 19 'artifact_use_from_x64-openhcl-igvm' --update-from-stdin --is-raw-string | |
echo "${{ runner.temp }}\\used_artifacts\\x64-windows-openvmm" | flowey.exe v 19 'artifact_use_from_x64-windows-openvmm' --update-from-stdin --is-raw-string | |
echo "${{ runner.temp }}\\used_artifacts\\x64-windows-pipette" | flowey.exe v 19 '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 19 '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 19 flowey_lib_common::download_cargo_nextest 0 | |
shell: bash | |
- name: Pre-processing cache vars | |
run: flowey.exe e 19 flowey_lib_common::cache 4 | |
shell: bash | |
- run: | | |
flowey.exe v 19 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:458:72' --write-to-gh-env floweyvar8 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar8' | |
- run: | | |
flowey.exe v 19 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:457: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 19 'flowey_lib_common::cache:12:flowey_lib_common/src/cache.rs:510: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 19 flowey_lib_common::cache 6 | |
shell: bash | |
- name: installing cargo-nextest | |
run: flowey.exe e 19 flowey_lib_common::download_cargo_nextest 1 | |
shell: bash | |
- name: create gh-release-download cache dir | |
run: flowey.exe e 19 flowey_lib_common::download_gh_release 0 | |
shell: bash | |
- name: Pre-processing cache vars | |
run: flowey.exe e 19 flowey_lib_common::cache 8 | |
shell: bash | |
- run: | | |
flowey.exe v 19 'flowey_lib_common::cache:18:flowey_lib_common/src/cache.rs:458:72' --write-to-gh-env floweyvar10 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar10' | |
- run: | | |
flowey.exe v 19 'flowey_lib_common::cache:17:flowey_lib_common/src/cache.rs:457: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-release-download' | |
- run: ${{ steps.flowey_lib_common__cache__9.outputs.cache-hit }} | |
shell: flowey.exe v 19 'flowey_lib_common::cache:20:flowey_lib_common/src/cache.rs:510: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 19 flowey_lib_common::cache 10 | |
shell: bash | |
- name: download artifacts from github releases | |
run: flowey.exe e 19 flowey_lib_common::download_gh_release 1 | |
shell: bash | |
- name: unpack mu_msvm package (x64) | |
run: flowey.exe e 19 flowey_lib_hvlite::download_uefi_mu_msvm 0 | |
shell: bash | |
- name: check if hvlite needs to be cloned | |
run: flowey.exe e 19 flowey_lib_common::git_checkout 0 | |
shell: bash | |
- run: | | |
flowey.exe v 19 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:470:46' --write-to-gh-env FLOWEY_CONDITION | |
shell: bash | |
name: ๐ผโ Write to 'FLOWEY_CONDITION' | |
- run: | | |
flowey.exe v 19 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:469: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 19 'flowey_lib_common::git_checkout:4:flowey_lib_common/src/git_checkout.rs:524:31' --update-from-file {0} --is-raw-string | |
name: ๐ผ Read from 'github.workspace' | |
- name: report cloned repo directories | |
run: flowey.exe e 19 flowey_lib_common::git_checkout 3 | |
shell: bash | |
- name: resolve OpenVMM repo requests | |
run: flowey.exe e 19 flowey_lib_hvlite::git_checkout_openvmm_repo 0 | |
shell: bash | |
- name: report openvmm magicpath dir | |
run: flowey.exe e 19 flowey_lib_hvlite::cfg_openvmm_magicpath 0 | |
shell: bash | |
- name: move MSVM.fd into its magic folder | |
run: flowey.exe e 19 flowey_lib_hvlite::init_openvmm_magicpath_uefi_mu_msvm 0 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 19 flowey_lib_hvlite::run_cargo_nextest_run 0 | |
shell: bash | |
- name: creating new test content dir | |
run: flowey.exe e 19 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 0 | |
shell: bash | |
- name: resolve openvmm artifact | |
run: flowey.exe e 19 flowey_lib_hvlite::artifact_openvmm::resolve 0 | |
shell: bash | |
- name: resolve pipette artifact | |
run: flowey.exe e 19 flowey_lib_hvlite::artifact_pipette::resolve 1 | |
shell: bash | |
- name: resolve pipette artifact | |
run: flowey.exe e 19 flowey_lib_hvlite::artifact_pipette::resolve 0 | |
shell: bash | |
- name: resolve guest_test_uefi artifact | |
run: flowey.exe e 19 flowey_lib_hvlite::artifact_guest_test_uefi::resolve 0 | |
shell: bash | |
- name: resolve OpenHCL igvm artifact | |
run: flowey.exe e 19 flowey_lib_hvlite::artifact_openhcl_igvm_from_recipe::resolve 0 | |
shell: bash | |
- name: create azcopy cache dir | |
run: flowey.exe e 19 flowey_lib_common::download_azcopy 0 | |
shell: bash | |
- name: Pre-processing cache vars | |
run: flowey.exe e 19 flowey_lib_common::cache 0 | |
shell: bash | |
- run: | | |
flowey.exe v 19 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:458:72' --write-to-gh-env floweyvar6 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar6' | |
- run: | | |
flowey.exe v 19 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:457: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 19 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:510: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 19 flowey_lib_common::cache 2 | |
shell: bash | |
- name: installing azcopy | |
run: flowey.exe e 19 flowey_lib_common::download_azcopy 1 | |
shell: bash | |
- name: calculating required VMM tests disk images | |
run: flowey.exe e 19 flowey_lib_hvlite::download_openvmm_vmm_tests_vhds 0 | |
shell: bash | |
- name: downloading VMM test disk images | |
run: flowey.exe e 19 flowey_lib_hvlite::download_openvmm_vmm_tests_vhds 1 | |
shell: bash | |
- name: report downloaded VMM test disk images | |
run: flowey.exe e 19 flowey_lib_hvlite::download_openvmm_vmm_tests_vhds 2 | |
shell: bash | |
- name: unpack openvmm-deps archive | |
run: flowey.exe e 19 flowey_lib_hvlite::download_openvmm_deps 0 | |
shell: bash | |
- name: setting up vmm_tests env | |
run: flowey.exe e 19 flowey_lib_hvlite::init_vmm_tests_env 0 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 19 flowey_lib_hvlite::run_cargo_nextest_run 1 | |
shell: bash | |
- name: resolve vmm tests archive artifact | |
run: flowey.exe e 19 flowey_lib_hvlite::artifact_nextest_vmm_tests_archive::resolve 0 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 19 flowey_lib_hvlite::test_nextest_vmm_tests_archive 0 | |
shell: bash | |
- name: run 'vmm_tests' nextest tests | |
run: flowey.exe e 19 flowey_lib_common::run_cargo_nextest_run 0 | |
shell: bash | |
- name: write results | |
run: flowey.exe e 19 flowey_lib_common::run_cargo_nextest_run 1 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 19 flowey_lib_common::publish_test_results 4 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 19 flowey_lib_common::publish_test_results 5 | |
shell: bash | |
- run: | | |
flowey.exe v 19 'flowey_lib_common::publish_test_results:7:flowey_lib_common/src/publish_test_results.rs:141:57' --write-to-gh-env FLOWEY_CONDITION | |
shell: bash | |
name: ๐ผโ Write to 'FLOWEY_CONDITION' | |
- run: | | |
flowey.exe v 19 'flowey_lib_common::publish_test_results:9:flowey_lib_common/src/publish_test_results.rs:149:62' --write-to-gh-env floweyvar2 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar2' | |
if: ${{ fromJSON(env.FLOWEY_CONDITION) }} | |
- id: flowey_lib_common__publish_test_results__6 | |
uses: actions/upload-artifact@v4 | |
with: | |
name: x64-windows-amd-vmm-tests-crash-dumps | |
path: ${{ env.floweyvar2 }} | |
name: 'publish test results: crash-dumps (x64-windows-amd-vmm-tests)' | |
if: ${{ fromJSON(env.FLOWEY_CONDITION) }} | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 19 flowey_lib_common::publish_test_results 7 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 19 flowey_lib_common::publish_test_results 8 | |
shell: bash | |
- run: | | |
flowey.exe v 19 'flowey_lib_common::publish_test_results:12:flowey_lib_common/src/publish_test_results.rs:141:57' --write-to-gh-env FLOWEY_CONDITION | |
shell: bash | |
name: ๐ผโ Write to 'FLOWEY_CONDITION' | |
- run: | | |
flowey.exe v 19 'flowey_lib_common::publish_test_results:14:flowey_lib_common/src/publish_test_results.rs:149:62' --write-to-gh-env floweyvar3 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar3' | |
if: ${{ fromJSON(env.FLOWEY_CONDITION) }} | |
- id: flowey_lib_common__publish_test_results__9 | |
uses: actions/upload-artifact@v4 | |
with: | |
name: x64-windows-amd-vmm-tests-logs | |
path: ${{ env.floweyvar3 }} | |
name: 'publish test results: logs (x64-windows-amd-vmm-tests)' | |
if: ${{ fromJSON(env.FLOWEY_CONDITION) }} | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 19 flowey_lib_common::publish_test_results 10 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 19 flowey_lib_common::publish_test_results 11 | |
shell: bash | |
- run: | | |
flowey.exe v 19 'flowey_lib_common::publish_test_results:17:flowey_lib_common/src/publish_test_results.rs:141:57' --write-to-gh-env FLOWEY_CONDITION | |
shell: bash | |
name: ๐ผโ Write to 'FLOWEY_CONDITION' | |
- run: | | |
flowey.exe v 19 'flowey_lib_common::publish_test_results:19:flowey_lib_common/src/publish_test_results.rs:149:62' --write-to-gh-env floweyvar4 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar4' | |
if: ${{ fromJSON(env.FLOWEY_CONDITION) }} | |
- id: flowey_lib_common__publish_test_results__12 | |
uses: actions/upload-artifact@v4 | |
with: | |
name: x64-windows-amd-vmm-tests-openhcl-dumps | |
path: ${{ env.floweyvar4 }} | |
name: 'publish test results: openhcl-dumps (x64-windows-amd-vmm-tests)' | |
if: ${{ fromJSON(env.FLOWEY_CONDITION) }} | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 19 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 1 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 19 flowey_lib_common::publish_test_results 0 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 19 flowey_lib_common::publish_test_results 1 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 19 flowey_lib_common::publish_test_results 2 | |
shell: bash | |
- run: | | |
flowey.exe v 19 'flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43' --write-to-gh-env FLOWEY_CONDITION | |
shell: bash | |
name: ๐ผโ Write to 'FLOWEY_CONDITION' | |
- run: | | |
flowey.exe v 19 'flowey_lib_common::publish_test_results:4:flowey_lib_common/src/publish_test_results.rs:95:47' --write-to-gh-env floweyvar1 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar1' | |
if: ${{ fromJSON(env.FLOWEY_CONDITION) }} | |
- id: flowey_lib_common__publish_test_results__3 | |
uses: actions/upload-artifact@v4 | |
with: | |
name: x64-windows-amd-vmm-tests-junit-xml | |
path: ${{ env.floweyvar1 }} | |
name: 'publish test results: x64-windows-amd-vmm-tests (JUnit XML)' | |
if: ${{ fromJSON(env.FLOWEY_CONDITION) }} | |
- name: report test results to overall pipeline status | |
run: flowey.exe e 19 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 19 flowey_lib_common::cache 11 | |
shell: bash | |
- name: 'validate cache entry: azcopy' | |
run: flowey.exe e 19 flowey_lib_common::cache 3 | |
shell: bash | |
- name: 'validate cache entry: cargo-nextest' | |
run: flowey.exe e 19 flowey_lib_common::cache 7 | |
shell: bash | |
job2: | |
name: build and check docs [x64-linux] | |
runs-on: | |
- self-hosted | |
- 1ES.Pool=OpenVMM-GitHub-Linux-Pool-WestUS3 | |
- 1ES.ImageOverride=MMSUbuntu22.04-256GB | |
permissions: | |
contents: read | |
id-token: write | |
if: github.event.pull_request.draft == false | |
steps: | |
- run: echo "injected!" | |
name: ๐ผ๐ฅพ Bootstrap flowey | |
shell: bash | |
- run: | | |
set -x | |
i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done; | |
sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y | |
curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.82.0 -y | |
. "$HOME/.cargo/env" | |
echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" | |
rustup show | |
if: runner.os == 'Linux' | |
name: rustup (Linux) | |
shell: bash | |
- run: | | |
set -x | |
curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init | |
./rustup-init.exe -y --default-toolchain=1.82.0 | |
echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH | |
if: runner.os == 'Windows' && runner.arch == 'X64' | |
name: rustup (Windows X64) | |
shell: bash | |
- run: | | |
set -x | |
curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init | |
./rustup-init.exe -y --default-toolchain=1.82.0 | |
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: 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 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: ๐ผ๐ Self-check YAML | |
run: |- | |
ESCAPED_AGENT_TEMPDIR=$( | |
cat <<'EOF' | sed 's/\\/\\\\/g' | |
${{ runner.temp }} | |
EOF | |
) | |
flowey pipeline github --runtime $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci | |
shell: bash | |
- name: ๐ผ๐ซ Initialize job | |
run: | | |
AgentTempDirNormal="${{ runner.temp }}" | |
AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') | |
echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV | |
chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey | |
echo '"debug"' | flowey v 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: 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:470: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:469:80' --write-to-gh-env floweyvar3 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar3' | |
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.floweyvar3 }} | |
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:524: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 0 | |
shell: bash | |
- run: | | |
flowey v 2 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:458: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:457: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-release-download' | |
- 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:510: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: download artifacts from github releases | |
run: flowey e 2 flowey_lib_common::download_gh_release 1 | |
shell: bash | |
- name: checking if packages need to be installed | |
run: flowey e 2 flowey_lib_common::install_dist_pkg 0 | |
shell: bash | |
- name: installing packages | |
run: flowey e 2 flowey_lib_common::install_dist_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: archive 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-release-download' | |
run: flowey e 2 flowey_lib_common::cache 3 | |
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/ | |
- name: ๐ผ๐งผ Redact bootstrap var db | |
run: rm $AgentTempDirNormal/bootstrapped-flowey/job2.json | |
shell: bash | |
- name: ๐ผ๐ฅพ Publish bootstrapped flowey | |
uses: actions/upload-artifact@v4 | |
with: | |
name: _internal-flowey-bootstrap-x86_64-linux-uid-16 | |
path: ${{ runner.temp }}/bootstrapped-flowey | |
job20: | |
name: run vmm-tests [x64-linux] | |
runs-on: | |
- self-hosted | |
- 1ES.Pool=OpenVMM-GitHub-Linux-Pool-WestUS3 | |
- 1ES.ImageOverride=MMSUbuntu22.04-256GB | |
permissions: | |
contents: read | |
id-token: write | |
needs: | |
- job13 | |
- job11 | |
- job11 | |
- job9 | |
- job11 | |
if: github.event.pull_request.draft == false | |
steps: | |
- name: ๐ผ๐ฅพ Download bootstrapped flowey | |
uses: actions/download-artifact@v4 | |
with: | |
name: _internal-flowey-bootstrap-x86_64-linux-uid-6 | |
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 20 'FLOWEY_LOG' --update-from-stdin | |
echo "${{ runner.temp }}/work" | flowey v 20 '_internal_WORKING_DIR' --update-from-stdin --is-raw-string | |
cat <<'EOF' | flowey v 20 'param0' --update-from-stdin | |
${{ inputs.param0 != '' && inputs.param0 || 'false' }} | |
EOF | |
echo "$AgentTempDirNormal/used_artifacts/x64-guest_test_uefi" | flowey v 20 'artifact_use_from_x64-guest_test_uefi' --update-from-stdin --is-raw-string | |
echo "$AgentTempDirNormal/used_artifacts/x64-linux-musl-pipette" | flowey v 20 'artifact_use_from_x64-linux-musl-pipette' --update-from-stdin --is-raw-string | |
echo "$AgentTempDirNormal/used_artifacts/x64-linux-openvmm" | flowey v 20 'artifact_use_from_x64-linux-openvmm' --update-from-stdin --is-raw-string | |
echo "$AgentTempDirNormal/used_artifacts/x64-linux-vmm-tests-archive" | flowey v 20 'artifact_use_from_x64-linux-vmm-tests-archive' --update-from-stdin --is-raw-string | |
echo "$AgentTempDirNormal/used_artifacts/x64-windows-pipette" | flowey v 20 'artifact_use_from_x64-windows-pipette' --update-from-stdin --is-raw-string | |
shell: bash | |
- name: ensure /dev/kvm is accessible | |
run: flowey e 20 flowey_lib_hvlite::test_nextest_vmm_tests_archive 0 | |
shell: bash | |
- name: create cargo-nextest cache dir | |
run: flowey e 20 flowey_lib_common::download_cargo_nextest 0 | |
shell: bash | |
- name: Pre-processing cache vars | |
run: flowey e 20 flowey_lib_common::cache 4 | |
shell: bash | |
- run: | | |
flowey v 20 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:458:72' --write-to-gh-env floweyvar8 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar8' | |
- run: | | |
flowey v 20 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:457: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 20 'flowey_lib_common::cache:12:flowey_lib_common/src/cache.rs:510: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 20 flowey_lib_common::cache 6 | |
shell: bash | |
- name: installing cargo-nextest | |
run: flowey e 20 flowey_lib_common::download_cargo_nextest 1 | |
shell: bash | |
- name: checking if packages need to be installed | |
run: flowey e 20 flowey_lib_common::install_dist_pkg 0 | |
shell: bash | |
- name: installing packages | |
run: flowey e 20 flowey_lib_common::install_dist_pkg 1 | |
shell: bash | |
- name: create gh-release-download cache dir | |
run: flowey e 20 flowey_lib_common::download_gh_release 0 | |
shell: bash | |
- name: Pre-processing cache vars | |
run: flowey e 20 flowey_lib_common::cache 8 | |
shell: bash | |
- run: | | |
flowey v 20 'flowey_lib_common::cache:18:flowey_lib_common/src/cache.rs:458:72' --write-to-gh-env floweyvar10 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar10' | |
- run: | | |
flowey v 20 'flowey_lib_common::cache:17:flowey_lib_common/src/cache.rs:457: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-release-download' | |
- run: ${{ steps.flowey_lib_common__cache__9.outputs.cache-hit }} | |
shell: flowey v 20 'flowey_lib_common::cache:20:flowey_lib_common/src/cache.rs:510: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 20 flowey_lib_common::cache 10 | |
shell: bash | |
- name: download artifacts from github releases | |
run: flowey e 20 flowey_lib_common::download_gh_release 1 | |
shell: bash | |
- name: unpack mu_msvm package (x64) | |
run: flowey e 20 flowey_lib_hvlite::download_uefi_mu_msvm 0 | |
shell: bash | |
- name: check if hvlite needs to be cloned | |
run: flowey e 20 flowey_lib_common::git_checkout 0 | |
shell: bash | |
- run: | | |
flowey v 20 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:470:46' --write-to-gh-env FLOWEY_CONDITION | |
shell: bash | |
name: ๐ผโ Write to 'FLOWEY_CONDITION' | |
- run: | | |
flowey v 20 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:469: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 20 'flowey_lib_common::git_checkout:4:flowey_lib_common/src/git_checkout.rs:524:31' --update-from-file {0} --is-raw-string | |
name: ๐ผ Read from 'github.workspace' | |
- name: report cloned repo directories | |
run: flowey e 20 flowey_lib_common::git_checkout 3 | |
shell: bash | |
- name: resolve OpenVMM repo requests | |
run: flowey e 20 flowey_lib_hvlite::git_checkout_openvmm_repo 0 | |
shell: bash | |
- name: report openvmm magicpath dir | |
run: flowey e 20 flowey_lib_hvlite::cfg_openvmm_magicpath 0 | |
shell: bash | |
- name: move MSVM.fd into its magic folder | |
run: flowey e 20 flowey_lib_hvlite::init_openvmm_magicpath_uefi_mu_msvm 0 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 20 flowey_lib_hvlite::run_cargo_nextest_run 0 | |
shell: bash | |
- name: creating new test content dir | |
run: flowey e 20 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 0 | |
shell: bash | |
- name: resolve openvmm artifact | |
run: flowey e 20 flowey_lib_hvlite::artifact_openvmm::resolve 0 | |
shell: bash | |
- name: resolve pipette artifact | |
run: flowey e 20 flowey_lib_hvlite::artifact_pipette::resolve 1 | |
shell: bash | |
- name: resolve pipette artifact | |
run: flowey e 20 flowey_lib_hvlite::artifact_pipette::resolve 0 | |
shell: bash | |
- name: resolve guest_test_uefi artifact | |
run: flowey e 20 flowey_lib_hvlite::artifact_guest_test_uefi::resolve 0 | |
shell: bash | |
- name: create azcopy cache dir | |
run: flowey e 20 flowey_lib_common::download_azcopy 0 | |
shell: bash | |
- name: Pre-processing cache vars | |
run: flowey e 20 flowey_lib_common::cache 0 | |
shell: bash | |
- run: | | |
flowey v 20 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:458:72' --write-to-gh-env floweyvar6 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar6' | |
- run: | | |
flowey v 20 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:457: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 20 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:510: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 20 flowey_lib_common::cache 2 | |
shell: bash | |
- name: installing azcopy | |
run: flowey e 20 flowey_lib_common::download_azcopy 1 | |
shell: bash | |
- name: calculating required VMM tests disk images | |
run: flowey e 20 flowey_lib_hvlite::download_openvmm_vmm_tests_vhds 0 | |
shell: bash | |
- name: downloading VMM test disk images | |
run: flowey e 20 flowey_lib_hvlite::download_openvmm_vmm_tests_vhds 1 | |
shell: bash | |
- name: report downloaded VMM test disk images | |
run: flowey e 20 flowey_lib_hvlite::download_openvmm_vmm_tests_vhds 2 | |
shell: bash | |
- name: unpack openvmm-deps archive | |
run: flowey e 20 flowey_lib_hvlite::download_openvmm_deps 0 | |
shell: bash | |
- name: setting up vmm_tests env | |
run: flowey e 20 flowey_lib_hvlite::init_vmm_tests_env 0 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 20 flowey_lib_hvlite::run_cargo_nextest_run 1 | |
shell: bash | |
- name: resolve vmm tests archive artifact | |
run: flowey e 20 flowey_lib_hvlite::artifact_nextest_vmm_tests_archive::resolve 0 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 20 flowey_lib_hvlite::test_nextest_vmm_tests_archive 1 | |
shell: bash | |
- name: run 'vmm_tests' nextest tests | |
run: flowey e 20 flowey_lib_common::run_cargo_nextest_run 0 | |
shell: bash | |
- name: write results | |
run: flowey e 20 flowey_lib_common::run_cargo_nextest_run 1 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 20 flowey_lib_common::publish_test_results 4 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 20 flowey_lib_common::publish_test_results 5 | |
shell: bash | |
- run: | | |
flowey v 20 'flowey_lib_common::publish_test_results:7:flowey_lib_common/src/publish_test_results.rs:141:57' --write-to-gh-env FLOWEY_CONDITION | |
shell: bash | |
name: ๐ผโ Write to 'FLOWEY_CONDITION' | |
- run: | | |
flowey v 20 'flowey_lib_common::publish_test_results:9:flowey_lib_common/src/publish_test_results.rs:149:62' --write-to-gh-env floweyvar2 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar2' | |
if: ${{ fromJSON(env.FLOWEY_CONDITION) }} | |
- id: flowey_lib_common__publish_test_results__6 | |
uses: actions/upload-artifact@v4 | |
with: | |
name: x64-linux-vmm-tests-crash-dumps | |
path: ${{ env.floweyvar2 }} | |
name: 'publish test results: crash-dumps (x64-linux-vmm-tests)' | |
if: ${{ fromJSON(env.FLOWEY_CONDITION) }} | |
- name: ๐ผ write_into Var | |
run: flowey e 20 flowey_lib_common::publish_test_results 7 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 20 flowey_lib_common::publish_test_results 8 | |
shell: bash | |
- run: | | |
flowey v 20 'flowey_lib_common::publish_test_results:12:flowey_lib_common/src/publish_test_results.rs:141:57' --write-to-gh-env FLOWEY_CONDITION | |
shell: bash | |
name: ๐ผโ Write to 'FLOWEY_CONDITION' | |
- run: | | |
flowey v 20 'flowey_lib_common::publish_test_results:14:flowey_lib_common/src/publish_test_results.rs:149:62' --write-to-gh-env floweyvar3 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar3' | |
if: ${{ fromJSON(env.FLOWEY_CONDITION) }} | |
- id: flowey_lib_common__publish_test_results__9 | |
uses: actions/upload-artifact@v4 | |
with: | |
name: x64-linux-vmm-tests-logs | |
path: ${{ env.floweyvar3 }} | |
name: 'publish test results: logs (x64-linux-vmm-tests)' | |
if: ${{ fromJSON(env.FLOWEY_CONDITION) }} | |
- name: ๐ผ write_into Var | |
run: flowey e 20 flowey_lib_common::publish_test_results 10 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 20 flowey_lib_common::publish_test_results 11 | |
shell: bash | |
- run: | | |
flowey v 20 'flowey_lib_common::publish_test_results:17:flowey_lib_common/src/publish_test_results.rs:141:57' --write-to-gh-env FLOWEY_CONDITION | |
shell: bash | |
name: ๐ผโ Write to 'FLOWEY_CONDITION' | |
- run: | | |
flowey v 20 'flowey_lib_common::publish_test_results:19:flowey_lib_common/src/publish_test_results.rs:149:62' --write-to-gh-env floweyvar4 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar4' | |
if: ${{ fromJSON(env.FLOWEY_CONDITION) }} | |
- id: flowey_lib_common__publish_test_results__12 | |
uses: actions/upload-artifact@v4 | |
with: | |
name: x64-linux-vmm-tests-openhcl-dumps | |
path: ${{ env.floweyvar4 }} | |
name: 'publish test results: openhcl-dumps (x64-linux-vmm-tests)' | |
if: ${{ fromJSON(env.FLOWEY_CONDITION) }} | |
- name: ๐ผ write_into Var | |
run: flowey e 20 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 1 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 20 flowey_lib_common::publish_test_results 0 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 20 flowey_lib_common::publish_test_results 1 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 20 flowey_lib_common::publish_test_results 2 | |
shell: bash | |
- run: | | |
flowey v 20 'flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43' --write-to-gh-env FLOWEY_CONDITION | |
shell: bash | |
name: ๐ผโ Write to 'FLOWEY_CONDITION' | |
- run: | | |
flowey v 20 'flowey_lib_common::publish_test_results:4:flowey_lib_common/src/publish_test_results.rs:95:47' --write-to-gh-env floweyvar1 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar1' | |
if: ${{ fromJSON(env.FLOWEY_CONDITION) }} | |
- id: flowey_lib_common__publish_test_results__3 | |
uses: actions/upload-artifact@v4 | |
with: | |
name: x64-linux-vmm-tests-junit-xml | |
path: ${{ env.floweyvar1 }} | |
name: 'publish test results: x64-linux-vmm-tests (JUnit XML)' | |
if: ${{ fromJSON(env.FLOWEY_CONDITION) }} | |
- name: report test results to overall pipeline status | |
run: flowey e 20 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 2 | |
shell: bash | |
- name: 'validate cache entry: gh-release-download' | |
run: flowey e 20 flowey_lib_common::cache 11 | |
shell: bash | |
- name: 'validate cache entry: azcopy' | |
run: flowey e 20 flowey_lib_common::cache 3 | |
shell: bash | |
- name: 'validate cache entry: cargo-nextest' | |
run: flowey e 20 flowey_lib_common::cache 7 | |
shell: bash | |
job21: | |
name: run vmm-tests [aarch64-windows] | |
runs-on: | |
- self-hosted | |
- Windows | |
- ARM64 | |
- Baremetal | |
permissions: | |
contents: read | |
id-token: write | |
needs: | |
- job12 | |
- job12 | |
- job10 | |
- job7 | |
- job7 | |
- job7 | |
if: github.event.pull_request.draft == false | |
steps: | |
- name: ๐ผ๐ฅพ Download bootstrapped flowey | |
uses: actions/download-artifact@v4 | |
with: | |
name: _internal-flowey-bootstrap-x86_64-windows-uid-12 | |
path: ${{ runner.temp }}/bootstrapped-flowey | |
- name: ๐ผ๐ฆ Download aarch64-guest_test_uefi | |
uses: actions/download-artifact@v4 | |
with: | |
name: aarch64-guest_test_uefi | |
path: ${{ runner.temp }}/used_artifacts/aarch64-guest_test_uefi/ | |
- name: ๐ผ๐ฆ Download aarch64-linux-musl-pipette | |
uses: actions/download-artifact@v4 | |
with: | |
name: aarch64-linux-musl-pipette | |
path: ${{ runner.temp }}/used_artifacts/aarch64-linux-musl-pipette/ | |
- name: ๐ผ๐ฆ Download aarch64-openhcl-igvm | |
uses: actions/download-artifact@v4 | |
with: | |
name: aarch64-openhcl-igvm | |
path: ${{ runner.temp }}/used_artifacts/aarch64-openhcl-igvm/ | |
- name: ๐ผ๐ฆ Download aarch64-windows-openvmm | |
uses: actions/download-artifact@v4 | |
with: | |
name: aarch64-windows-openvmm | |
path: ${{ runner.temp }}/used_artifacts/aarch64-windows-openvmm/ | |
- name: ๐ผ๐ฆ Download aarch64-windows-pipette | |
uses: actions/download-artifact@v4 | |
with: | |
name: aarch64-windows-pipette | |
path: ${{ runner.temp }}/used_artifacts/aarch64-windows-pipette/ | |
- name: ๐ผ๐ฆ Download aarch64-windows-vmm-tests-archive | |
uses: actions/download-artifact@v4 | |
with: | |
name: aarch64-windows-vmm-tests-archive | |
path: ${{ runner.temp }}/used_artifacts/aarch64-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 21 'FLOWEY_LOG' --update-from-stdin | |
echo "${{ runner.temp }}/work" | flowey.exe v 21 '_internal_WORKING_DIR' --update-from-stdin --is-raw-string | |
cat <<'EOF' | flowey.exe v 21 'param0' --update-from-stdin | |
${{ inputs.param0 != '' && inputs.param0 || 'false' }} | |
EOF | |
echo "${{ runner.temp }}\\used_artifacts\\aarch64-guest_test_uefi" | flowey.exe v 21 'artifact_use_from_aarch64-guest_test_uefi' --update-from-stdin --is-raw-string | |
echo "${{ runner.temp }}\\used_artifacts\\aarch64-linux-musl-pipette" | flowey.exe v 21 'artifact_use_from_aarch64-linux-musl-pipette' --update-from-stdin --is-raw-string | |
echo "${{ runner.temp }}\\used_artifacts\\aarch64-openhcl-igvm" | flowey.exe v 21 'artifact_use_from_aarch64-openhcl-igvm' --update-from-stdin --is-raw-string | |
echo "${{ runner.temp }}\\used_artifacts\\aarch64-windows-openvmm" | flowey.exe v 21 'artifact_use_from_aarch64-windows-openvmm' --update-from-stdin --is-raw-string | |
echo "${{ runner.temp }}\\used_artifacts\\aarch64-windows-pipette" | flowey.exe v 21 'artifact_use_from_aarch64-windows-pipette' --update-from-stdin --is-raw-string | |
echo "${{ runner.temp }}\\used_artifacts\\aarch64-windows-vmm-tests-archive" | flowey.exe v 21 'artifact_use_from_aarch64-windows-vmm-tests-archive' --update-from-stdin --is-raw-string | |
shell: bash | |
- name: create cargo-nextest cache dir | |
run: flowey.exe e 21 flowey_lib_common::download_cargo_nextest 0 | |
shell: bash | |
- name: Pre-processing cache vars | |
run: flowey.exe e 21 flowey_lib_common::cache 4 | |
shell: bash | |
- run: | | |
flowey.exe v 21 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:458:72' --write-to-gh-env floweyvar8 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar8' | |
- run: | | |
flowey.exe v 21 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:457: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 21 'flowey_lib_common::cache:12:flowey_lib_common/src/cache.rs:510: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 21 flowey_lib_common::cache 6 | |
shell: bash | |
- name: installing cargo-nextest | |
run: flowey.exe e 21 flowey_lib_common::download_cargo_nextest 1 | |
shell: bash | |
- name: create gh-release-download cache dir | |
run: flowey.exe e 21 flowey_lib_common::download_gh_release 0 | |
shell: bash | |
- name: Pre-processing cache vars | |
run: flowey.exe e 21 flowey_lib_common::cache 8 | |
shell: bash | |
- run: | | |
flowey.exe v 21 'flowey_lib_common::cache:18:flowey_lib_common/src/cache.rs:458:72' --write-to-gh-env floweyvar10 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar10' | |
- run: | | |
flowey.exe v 21 'flowey_lib_common::cache:17:flowey_lib_common/src/cache.rs:457: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-release-download' | |
- run: ${{ steps.flowey_lib_common__cache__9.outputs.cache-hit }} | |
shell: flowey.exe v 21 'flowey_lib_common::cache:20:flowey_lib_common/src/cache.rs:510: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 21 flowey_lib_common::cache 10 | |
shell: bash | |
- name: download artifacts from github releases | |
run: flowey.exe e 21 flowey_lib_common::download_gh_release 1 | |
shell: bash | |
- name: unpack mu_msvm package (aarch64) | |
run: flowey.exe e 21 flowey_lib_hvlite::download_uefi_mu_msvm 0 | |
shell: bash | |
- name: check if hvlite needs to be cloned | |
run: flowey.exe e 21 flowey_lib_common::git_checkout 0 | |
shell: bash | |
- run: | | |
flowey.exe v 21 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:470:46' --write-to-gh-env FLOWEY_CONDITION | |
shell: bash | |
name: ๐ผโ Write to 'FLOWEY_CONDITION' | |
- run: | | |
flowey.exe v 21 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:469: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 21 'flowey_lib_common::git_checkout:4:flowey_lib_common/src/git_checkout.rs:524:31' --update-from-file {0} --is-raw-string | |
name: ๐ผ Read from 'github.workspace' | |
- name: report cloned repo directories | |
run: flowey.exe e 21 flowey_lib_common::git_checkout 3 | |
shell: bash | |
- name: resolve OpenVMM repo requests | |
run: flowey.exe e 21 flowey_lib_hvlite::git_checkout_openvmm_repo 0 | |
shell: bash | |
- name: report openvmm magicpath dir | |
run: flowey.exe e 21 flowey_lib_hvlite::cfg_openvmm_magicpath 0 | |
shell: bash | |
- name: move MSVM.fd into its magic folder | |
run: flowey.exe e 21 flowey_lib_hvlite::init_openvmm_magicpath_uefi_mu_msvm 0 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 21 flowey_lib_hvlite::run_cargo_nextest_run 0 | |
shell: bash | |
- name: creating new test content dir | |
run: flowey.exe e 21 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 0 | |
shell: bash | |
- name: resolve openvmm artifact | |
run: flowey.exe e 21 flowey_lib_hvlite::artifact_openvmm::resolve 0 | |
shell: bash | |
- name: resolve pipette artifact | |
run: flowey.exe e 21 flowey_lib_hvlite::artifact_pipette::resolve 1 | |
shell: bash | |
- name: resolve pipette artifact | |
run: flowey.exe e 21 flowey_lib_hvlite::artifact_pipette::resolve 0 | |
shell: bash | |
- name: resolve guest_test_uefi artifact | |
run: flowey.exe e 21 flowey_lib_hvlite::artifact_guest_test_uefi::resolve 0 | |
shell: bash | |
- name: resolve OpenHCL igvm artifact | |
run: flowey.exe e 21 flowey_lib_hvlite::artifact_openhcl_igvm_from_recipe::resolve 0 | |
shell: bash | |
- name: create azcopy cache dir | |
run: flowey.exe e 21 flowey_lib_common::download_azcopy 0 | |
shell: bash | |
- name: Pre-processing cache vars | |
run: flowey.exe e 21 flowey_lib_common::cache 0 | |
shell: bash | |
- run: | | |
flowey.exe v 21 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:458:72' --write-to-gh-env floweyvar6 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar6' | |
- run: | | |
flowey.exe v 21 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:457: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 21 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:510: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 21 flowey_lib_common::cache 2 | |
shell: bash | |
- name: installing azcopy | |
run: flowey.exe e 21 flowey_lib_common::download_azcopy 1 | |
shell: bash | |
- name: calculating required VMM tests disk images | |
run: flowey.exe e 21 flowey_lib_hvlite::download_openvmm_vmm_tests_vhds 0 | |
shell: bash | |
- name: downloading VMM test disk images | |
run: flowey.exe e 21 flowey_lib_hvlite::download_openvmm_vmm_tests_vhds 1 | |
shell: bash | |
- name: report downloaded VMM test disk images | |
run: flowey.exe e 21 flowey_lib_hvlite::download_openvmm_vmm_tests_vhds 2 | |
shell: bash | |
- name: unpack openvmm-deps archive | |
run: flowey.exe e 21 flowey_lib_hvlite::download_openvmm_deps 0 | |
shell: bash | |
- name: setting up vmm_tests env | |
run: flowey.exe e 21 flowey_lib_hvlite::init_vmm_tests_env 0 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 21 flowey_lib_hvlite::run_cargo_nextest_run 1 | |
shell: bash | |
- name: resolve vmm tests archive artifact | |
run: flowey.exe e 21 flowey_lib_hvlite::artifact_nextest_vmm_tests_archive::resolve 0 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 21 flowey_lib_hvlite::test_nextest_vmm_tests_archive 0 | |
shell: bash | |
- name: run 'vmm_tests' nextest tests | |
run: flowey.exe e 21 flowey_lib_common::run_cargo_nextest_run 0 | |
shell: bash | |
- name: write results | |
run: flowey.exe e 21 flowey_lib_common::run_cargo_nextest_run 1 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 21 flowey_lib_common::publish_test_results 4 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 21 flowey_lib_common::publish_test_results 5 | |
shell: bash | |
- run: | | |
flowey.exe v 21 'flowey_lib_common::publish_test_results:7:flowey_lib_common/src/publish_test_results.rs:141:57' --write-to-gh-env FLOWEY_CONDITION | |
shell: bash | |
name: ๐ผโ Write to 'FLOWEY_CONDITION' | |
- run: | | |
flowey.exe v 21 'flowey_lib_common::publish_test_results:9:flowey_lib_common/src/publish_test_results.rs:149:62' --write-to-gh-env floweyvar2 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar2' | |
if: ${{ fromJSON(env.FLOWEY_CONDITION) }} | |
- id: flowey_lib_common__publish_test_results__6 | |
uses: actions/upload-artifact@v4 | |
with: | |
name: aarch64-windows-vmm-tests-crash-dumps | |
path: ${{ env.floweyvar2 }} | |
name: 'publish test results: crash-dumps (aarch64-windows-vmm-tests)' | |
if: ${{ fromJSON(env.FLOWEY_CONDITION) }} | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 21 flowey_lib_common::publish_test_results 7 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 21 flowey_lib_common::publish_test_results 8 | |
shell: bash | |
- run: | | |
flowey.exe v 21 'flowey_lib_common::publish_test_results:12:flowey_lib_common/src/publish_test_results.rs:141:57' --write-to-gh-env FLOWEY_CONDITION | |
shell: bash | |
name: ๐ผโ Write to 'FLOWEY_CONDITION' | |
- run: | | |
flowey.exe v 21 'flowey_lib_common::publish_test_results:14:flowey_lib_common/src/publish_test_results.rs:149:62' --write-to-gh-env floweyvar3 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar3' | |
if: ${{ fromJSON(env.FLOWEY_CONDITION) }} | |
- id: flowey_lib_common__publish_test_results__9 | |
uses: actions/upload-artifact@v4 | |
with: | |
name: aarch64-windows-vmm-tests-logs | |
path: ${{ env.floweyvar3 }} | |
name: 'publish test results: logs (aarch64-windows-vmm-tests)' | |
if: ${{ fromJSON(env.FLOWEY_CONDITION) }} | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 21 flowey_lib_common::publish_test_results 10 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 21 flowey_lib_common::publish_test_results 11 | |
shell: bash | |
- run: | | |
flowey.exe v 21 'flowey_lib_common::publish_test_results:17:flowey_lib_common/src/publish_test_results.rs:141:57' --write-to-gh-env FLOWEY_CONDITION | |
shell: bash | |
name: ๐ผโ Write to 'FLOWEY_CONDITION' | |
- run: | | |
flowey.exe v 21 'flowey_lib_common::publish_test_results:19:flowey_lib_common/src/publish_test_results.rs:149:62' --write-to-gh-env floweyvar4 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar4' | |
if: ${{ fromJSON(env.FLOWEY_CONDITION) }} | |
- id: flowey_lib_common__publish_test_results__12 | |
uses: actions/upload-artifact@v4 | |
with: | |
name: aarch64-windows-vmm-tests-openhcl-dumps | |
path: ${{ env.floweyvar4 }} | |
name: 'publish test results: openhcl-dumps (aarch64-windows-vmm-tests)' | |
if: ${{ fromJSON(env.FLOWEY_CONDITION) }} | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 21 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 1 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 21 flowey_lib_common::publish_test_results 0 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 21 flowey_lib_common::publish_test_results 1 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 21 flowey_lib_common::publish_test_results 2 | |
shell: bash | |
- run: | | |
flowey.exe v 21 'flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43' --write-to-gh-env FLOWEY_CONDITION | |
shell: bash | |
name: ๐ผโ Write to 'FLOWEY_CONDITION' | |
- run: | | |
flowey.exe v 21 'flowey_lib_common::publish_test_results:4:flowey_lib_common/src/publish_test_results.rs:95:47' --write-to-gh-env floweyvar1 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar1' | |
if: ${{ fromJSON(env.FLOWEY_CONDITION) }} | |
- id: flowey_lib_common__publish_test_results__3 | |
uses: actions/upload-artifact@v4 | |
with: | |
name: aarch64-windows-vmm-tests-junit-xml | |
path: ${{ env.floweyvar1 }} | |
name: 'publish test results: aarch64-windows-vmm-tests (JUnit XML)' | |
if: ${{ fromJSON(env.FLOWEY_CONDITION) }} | |
- name: report test results to overall pipeline status | |
run: flowey.exe e 21 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 21 flowey_lib_common::cache 11 | |
shell: bash | |
- name: 'validate cache entry: azcopy' | |
run: flowey.exe e 21 flowey_lib_common::cache 3 | |
shell: bash | |
- name: 'validate cache entry: cargo-nextest' | |
run: flowey.exe e 21 flowey_lib_common::cache 7 | |
shell: bash | |
job22: | |
name: test flowey local backend | |
runs-on: | |
- self-hosted | |
- 1ES.Pool=OpenVMM-GitHub-Linux-Pool-WestUS3 | |
- 1ES.ImageOverride=MMSUbuntu22.04-256GB | |
permissions: | |
contents: read | |
id-token: write | |
if: github.event.pull_request.draft == false | |
steps: | |
- run: echo "injected!" | |
name: ๐ผ๐ฅพ Bootstrap flowey | |
shell: bash | |
- run: | | |
set -x | |
i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done; | |
sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y | |
curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.82.0 -y | |
. "$HOME/.cargo/env" | |
echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" | |
rustup show | |
if: runner.os == 'Linux' | |
name: rustup (Linux) | |
shell: bash | |
- run: | | |
set -x | |
curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init | |
./rustup-init.exe -y --default-toolchain=1.82.0 | |
echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH | |
if: runner.os == 'Windows' && runner.arch == 'X64' | |
name: rustup (Windows X64) | |
shell: bash | |
- run: | | |
set -x | |
curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init | |
./rustup-init.exe -y --default-toolchain=1.82.0 | |
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: 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 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: ๐ผ๐ Self-check YAML | |
run: |- | |
ESCAPED_AGENT_TEMPDIR=$( | |
cat <<'EOF' | sed 's/\\/\\\\/g' | |
${{ runner.temp }} | |
EOF | |
) | |
flowey pipeline github --runtime $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci | |
shell: bash | |
- name: ๐ผ๐ซ Initialize job | |
run: | | |
AgentTempDirNormal="${{ runner.temp }}" | |
AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') | |
echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV | |
chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey | |
echo '"debug"' | flowey v 22 'FLOWEY_LOG' --update-from-stdin | |
echo "${{ runner.temp }}/work" | flowey v 22 '_internal_WORKING_DIR' --update-from-stdin --is-raw-string | |
cat <<'EOF' | flowey v 22 'param0' --update-from-stdin | |
${{ inputs.param0 != '' && inputs.param0 || 'false' }} | |
EOF | |
shell: bash | |
- name: check if hvlite needs to be cloned | |
run: flowey e 22 flowey_lib_common::git_checkout 0 | |
shell: bash | |
- run: | | |
flowey v 22 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:470:46' --write-to-gh-env FLOWEY_CONDITION | |
shell: bash | |
name: ๐ผโ Write to 'FLOWEY_CONDITION' | |
- run: | | |
flowey v 22 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:469: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 22 'flowey_lib_common::git_checkout:4:flowey_lib_common/src/git_checkout.rs:524:31' --update-from-file {0} --is-raw-string | |
name: ๐ผ Read from 'github.workspace' | |
- name: report cloned repo directories | |
run: flowey e 22 flowey_lib_common::git_checkout 3 | |
shell: bash | |
- name: resolve OpenVMM repo requests | |
run: flowey e 22 flowey_lib_hvlite::git_checkout_openvmm_repo 0 | |
shell: bash | |
- name: install Rust | |
run: flowey e 22 flowey_lib_common::install_rust 0 | |
shell: bash | |
- run: ${{ github.token }} | |
shell: flowey v 22 'flowey_lib_hvlite::_jobs::test_local_flowey_build_igvm:2:flowey_lib_hvlite/src/_jobs/test_local_flowey_build_igvm.rs:32: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 22 flowey_lib_hvlite::_jobs::test_local_flowey_build_igvm 1 | |
shell: bash | |
job3: | |
name: publish openvmm.dev | |
runs-on: ubuntu-latest | |
permissions: | |
contents: read | |
id-token: write | |
pages: write | |
needs: | |
- job1 | |
- job2 | |
- job0 | |
if: github.event.pull_request.draft == false | |
steps: | |
- name: ๐ผ๐ฅพ Download bootstrapped flowey | |
uses: actions/download-artifact@v4 | |
with: | |
name: _internal-flowey-bootstrap-x86_64-linux-uid-16 | |
path: ${{ runner.temp }}/bootstrapped-flowey | |
- name: ๐ผ๐ฆ Download guide | |
uses: actions/download-artifact@v4 | |
with: | |
name: guide | |
path: ${{ runner.temp }}/used_artifacts/guide/ | |
- name: ๐ผ๐ฆ Download x64-linux-rustdoc | |
uses: actions/download-artifact@v4 | |
with: | |
name: x64-linux-rustdoc | |
path: ${{ runner.temp }}/used_artifacts/x64-linux-rustdoc/ | |
- name: ๐ผ๐ฆ Download x64-windows-rustdoc | |
uses: actions/download-artifact@v4 | |
with: | |
name: x64-windows-rustdoc | |
path: ${{ runner.temp }}/used_artifacts/x64-windows-rustdoc/ | |
- 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 3 'FLOWEY_LOG' --update-from-stdin | |
echo "${{ runner.temp }}/work" | flowey v 3 '_internal_WORKING_DIR' --update-from-stdin --is-raw-string | |
cat <<'EOF' | flowey v 3 'param0' --update-from-stdin | |
${{ inputs.param0 != '' && inputs.param0 || 'false' }} | |
EOF | |
echo "$AgentTempDirNormal/used_artifacts/guide" | flowey v 3 'artifact_use_from_guide' --update-from-stdin --is-raw-string | |
echo "$AgentTempDirNormal/used_artifacts/x64-linux-rustdoc" | flowey v 3 'artifact_use_from_x64-linux-rustdoc' --update-from-stdin --is-raw-string | |
echo "$AgentTempDirNormal/used_artifacts/x64-windows-rustdoc" | flowey v 3 'artifact_use_from_x64-windows-rustdoc' --update-from-stdin --is-raw-string | |
shell: bash | |
- name: resolve guide artifact | |
run: flowey e 3 flowey_lib_hvlite::artifact_guide::resolve 0 | |
shell: bash | |
- name: resolve rustdocs artifact | |
run: flowey e 3 flowey_lib_hvlite::artifact_rustdoc::resolve 1 | |
shell: bash | |
- name: resolve rustdocs artifact | |
run: flowey e 3 flowey_lib_hvlite::artifact_rustdoc::resolve 0 | |
shell: bash | |
- name: generate consolidated gh pages html | |
run: flowey e 3 flowey_lib_hvlite::_jobs::consolidate_and_publish_gh_pages 0 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 3 flowey_lib_hvlite::_jobs::consolidate_and_publish_gh_pages 1 | |
shell: bash | |
- run: | | |
flowey v 3 'flowey_lib_hvlite::_jobs::consolidate_and_publish_gh_pages:4:flowey_lib_hvlite/src/_jobs/consolidate_and_publish_gh_pages.rs:107:39' --write-to-gh-env floweyvar1 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar1' | |
- id: flowey_lib_hvlite___jobs__consolidate_and_publish_gh_pages__2 | |
uses: actions/upload-pages-artifact@v3 | |
with: | |
path: ${{ env.floweyvar1 }} | |
name: Upload pages artifact | |
- id: flowey_lib_hvlite___jobs__consolidate_and_publish_gh_pages__3 | |
uses: actions/deploy-pages@v4 | |
name: Deploy to GitHub Pages | |
job4: | |
name: xtask fmt (windows) | |
runs-on: windows-latest | |
permissions: | |
contents: read | |
id-token: write | |
needs: | |
- job5 | |
if: github.event.pull_request.draft == false | |
steps: | |
- run: echo "injected!" | |
name: ๐ผ๐ฅพ Bootstrap flowey | |
shell: bash | |
- run: | | |
set -x | |
i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done; | |
sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y | |
curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.82.0 -y | |
. "$HOME/.cargo/env" | |
echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" | |
rustup show | |
if: runner.os == 'Linux' | |
name: rustup (Linux) | |
shell: bash | |
- run: | | |
set -x | |
curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init | |
./rustup-init.exe -y --default-toolchain=1.82.0 | |
echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH | |
if: runner.os == 'Windows' && runner.arch == 'X64' | |
name: rustup (Windows X64) | |
shell: bash | |
- run: | | |
set -x | |
curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init | |
./rustup-init.exe -y --default-toolchain=1.82.0 | |
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: 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 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: ๐ผ๐ Self-check YAML | |
run: |- | |
ESCAPED_AGENT_TEMPDIR=$( | |
cat <<'EOF' | sed 's/\\/\\\\/g' | |
${{ runner.temp }} | |
EOF | |
) | |
flowey.exe pipeline github --runtime $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci | |
shell: bash | |
- name: ๐ผ๐ซ Initialize job | |
run: | | |
AgentTempDirNormal="${{ runner.temp }}" | |
AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') | |
echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV | |
chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe | |
echo '"debug"' | flowey.exe v 4 'FLOWEY_LOG' --update-from-stdin | |
echo "${{ runner.temp }}/work" | flowey.exe v 4 '_internal_WORKING_DIR' --update-from-stdin --is-raw-string | |
cat <<'EOF' | flowey.exe v 4 'param0' --update-from-stdin | |
${{ inputs.param0 != '' && inputs.param0 || 'false' }} | |
EOF | |
shell: bash | |
- name: check if hvlite needs to be cloned | |
run: flowey.exe e 4 flowey_lib_common::git_checkout 0 | |
shell: bash | |
- run: | | |
flowey.exe v 4 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:470:46' --write-to-gh-env FLOWEY_CONDITION | |
shell: bash | |
name: ๐ผโ Write to 'FLOWEY_CONDITION' | |
- run: | | |
flowey.exe v 4 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:469: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 4 'flowey_lib_common::git_checkout:4:flowey_lib_common/src/git_checkout.rs:524:31' --update-from-file {0} --is-raw-string | |
name: ๐ผ Read from 'github.workspace' | |
- name: report cloned repo directories | |
run: flowey.exe e 4 flowey_lib_common::git_checkout 3 | |
shell: bash | |
- name: resolve OpenVMM repo requests | |
run: flowey.exe e 4 flowey_lib_hvlite::git_checkout_openvmm_repo 0 | |
shell: bash | |
- name: install Rust | |
run: flowey.exe e 4 flowey_lib_common::install_rust 0 | |
shell: bash | |
- name: detect active toolchain | |
run: flowey.exe e 4 flowey_lib_common::install_rust 1 | |
shell: bash | |
- name: report common cargo flags | |
run: flowey.exe e 4 flowey_lib_common::cfg_cargo_common_flags 0 | |
shell: bash | |
- name: set '-Dwarnings' in .cargo/config.toml | |
run: flowey.exe e 4 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0 | |
shell: bash | |
- name: create gh-release-download cache dir | |
run: flowey.exe e 4 flowey_lib_common::download_gh_release 0 | |
shell: bash | |
- name: Pre-processing cache vars | |
run: flowey.exe e 4 flowey_lib_common::cache 0 | |
shell: bash | |
- run: | | |
flowey.exe v 4 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:458:72' --write-to-gh-env floweyvar2 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar2' | |
- run: | | |
flowey.exe v 4 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:457: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-release-download' | |
- run: ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }} | |
shell: flowey.exe v 4 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:510: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 4 flowey_lib_common::cache 2 | |
shell: bash | |
- name: download artifacts from github releases | |
run: flowey.exe e 4 flowey_lib_common::download_gh_release 1 | |
shell: bash | |
- name: unpack protoc | |
run: flowey.exe e 4 flowey_lib_common::download_protoc 0 | |
shell: bash | |
- name: report openvmm magicpath dir | |
run: flowey.exe e 4 flowey_lib_hvlite::cfg_openvmm_magicpath 0 | |
shell: bash | |
- name: symlink protoc | |
run: flowey.exe e 4 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0 | |
shell: bash | |
- name: inject cross env | |
run: flowey.exe e 4 flowey_lib_hvlite::init_cross_build 0 | |
shell: bash | |
- name: cargo build xtask | |
run: flowey.exe e 4 flowey_lib_common::run_cargo_build 0 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 4 flowey_lib_hvlite::run_cargo_build 0 | |
shell: bash | |
- name: report built xtask | |
run: flowey.exe e 4 flowey_lib_hvlite::build_xtask 0 | |
shell: bash | |
- name: run xtask fmt | |
run: flowey.exe e 4 flowey_lib_hvlite::_jobs::check_xtask_fmt 0 | |
shell: bash | |
- name: 'validate cache entry: gh-release-download' | |
run: flowey.exe e 4 flowey_lib_common::cache 3 | |
shell: bash | |
job5: | |
name: xtask fmt (linux) | |
runs-on: | |
- self-hosted | |
- 1ES.Pool=OpenVMM-GitHub-Linux-Pool-WestUS3 | |
- 1ES.ImageOverride=MMSUbuntu22.04-256GB | |
permissions: | |
contents: read | |
id-token: write | |
if: github.event.pull_request.draft == false | |
steps: | |
- run: echo "injected!" | |
name: ๐ผ๐ฅพ Bootstrap flowey | |
shell: bash | |
- run: | | |
set -x | |
i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done; | |
sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y | |
curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.82.0 -y | |
. "$HOME/.cargo/env" | |
echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" | |
rustup show | |
if: runner.os == 'Linux' | |
name: rustup (Linux) | |
shell: bash | |
- run: | | |
set -x | |
curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init | |
./rustup-init.exe -y --default-toolchain=1.82.0 | |
echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH | |
if: runner.os == 'Windows' && runner.arch == 'X64' | |
name: rustup (Windows X64) | |
shell: bash | |
- run: | | |
set -x | |
curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init | |
./rustup-init.exe -y --default-toolchain=1.82.0 | |
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: 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 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: ๐ผ๐ Self-check YAML | |
run: |- | |
ESCAPED_AGENT_TEMPDIR=$( | |
cat <<'EOF' | sed 's/\\/\\\\/g' | |
${{ runner.temp }} | |
EOF | |
) | |
flowey pipeline github --runtime $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci | |
shell: bash | |
- name: ๐ผ๐ซ Initialize job | |
run: | | |
AgentTempDirNormal="${{ runner.temp }}" | |
AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') | |
echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV | |
chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey | |
echo '"debug"' | flowey v 5 'FLOWEY_LOG' --update-from-stdin | |
echo "${{ runner.temp }}/work" | flowey v 5 '_internal_WORKING_DIR' --update-from-stdin --is-raw-string | |
cat <<'EOF' | flowey v 5 'param0' --update-from-stdin | |
${{ inputs.param0 != '' && inputs.param0 || 'false' }} | |
EOF | |
shell: bash | |
- name: check if hvlite needs to be cloned | |
run: flowey e 5 flowey_lib_common::git_checkout 0 | |
shell: bash | |
- run: | | |
flowey v 5 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:470:46' --write-to-gh-env FLOWEY_CONDITION | |
shell: bash | |
name: ๐ผโ Write to 'FLOWEY_CONDITION' | |
- run: | | |
flowey v 5 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:469: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 5 'flowey_lib_common::git_checkout:4:flowey_lib_common/src/git_checkout.rs:524:31' --update-from-file {0} --is-raw-string | |
name: ๐ผ Read from 'github.workspace' | |
- name: report cloned repo directories | |
run: flowey e 5 flowey_lib_common::git_checkout 3 | |
shell: bash | |
- name: resolve OpenVMM repo requests | |
run: flowey e 5 flowey_lib_hvlite::git_checkout_openvmm_repo 0 | |
shell: bash | |
- name: install Rust | |
run: flowey e 5 flowey_lib_common::install_rust 0 | |
shell: bash | |
- name: detect active toolchain | |
run: flowey e 5 flowey_lib_common::install_rust 1 | |
shell: bash | |
- name: report common cargo flags | |
run: flowey e 5 flowey_lib_common::cfg_cargo_common_flags 0 | |
shell: bash | |
- name: set '-Dwarnings' in .cargo/config.toml | |
run: flowey e 5 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0 | |
shell: bash | |
- name: create gh-release-download cache dir | |
run: flowey e 5 flowey_lib_common::download_gh_release 0 | |
shell: bash | |
- name: Pre-processing cache vars | |
run: flowey e 5 flowey_lib_common::cache 0 | |
shell: bash | |
- run: | | |
flowey v 5 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:458:72' --write-to-gh-env floweyvar2 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar2' | |
- run: | | |
flowey v 5 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:457: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-release-download' | |
- run: ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }} | |
shell: flowey v 5 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:510: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 5 flowey_lib_common::cache 2 | |
shell: bash | |
- name: download artifacts from github releases | |
run: flowey e 5 flowey_lib_common::download_gh_release 1 | |
shell: bash | |
- name: checking if packages need to be installed | |
run: flowey e 5 flowey_lib_common::install_dist_pkg 0 | |
shell: bash | |
- name: installing packages | |
run: flowey e 5 flowey_lib_common::install_dist_pkg 1 | |
shell: bash | |
- name: unpack protoc | |
run: flowey e 5 flowey_lib_common::download_protoc 0 | |
shell: bash | |
- name: report openvmm magicpath dir | |
run: flowey e 5 flowey_lib_hvlite::cfg_openvmm_magicpath 0 | |
shell: bash | |
- name: symlink protoc | |
run: flowey e 5 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0 | |
shell: bash | |
- name: inject cross env | |
run: flowey e 5 flowey_lib_hvlite::init_cross_build 0 | |
shell: bash | |
- name: cargo build xtask | |
run: flowey e 5 flowey_lib_common::run_cargo_build 0 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey e 5 flowey_lib_hvlite::run_cargo_build 0 | |
shell: bash | |
- name: split debug symbols | |
run: flowey e 5 flowey_lib_hvlite::run_split_debug_info 0 | |
shell: bash | |
- name: reporting split debug info | |
run: flowey e 5 flowey_lib_hvlite::run_cargo_build 1 | |
shell: bash | |
- name: report built xtask | |
run: flowey e 5 flowey_lib_hvlite::build_xtask 0 | |
shell: bash | |
- name: run xtask fmt | |
run: flowey e 5 flowey_lib_hvlite::_jobs::check_xtask_fmt 0 | |
shell: bash | |
- name: 'validate cache entry: gh-release-download' | |
run: flowey e 5 flowey_lib_common::cache 3 | |
shell: bash | |
job6: | |
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 | |
if: github.event.pull_request.draft == false | |
steps: | |
- run: echo "injected!" | |
name: ๐ผ๐ฅพ Bootstrap flowey | |
shell: bash | |
- run: | | |
set -x | |
i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done; | |
sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y | |
curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.82.0 -y | |
. "$HOME/.cargo/env" | |
echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" | |
rustup show | |
if: runner.os == 'Linux' | |
name: rustup (Linux) | |
shell: bash | |
- run: | | |
set -x | |
curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init | |
./rustup-init.exe -y --default-toolchain=1.82.0 | |
echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH | |
if: runner.os == 'Windows' && runner.arch == 'X64' | |
name: rustup (Windows X64) | |
shell: bash | |
- run: | | |
set -x | |
curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init | |
./rustup-init.exe -y --default-toolchain=1.82.0 | |
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: 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 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: ๐ผ๐ Self-check YAML | |
run: |- | |
ESCAPED_AGENT_TEMPDIR=$( | |
cat <<'EOF' | sed 's/\\/\\\\/g' | |
${{ runner.temp }} | |
EOF | |
) | |
flowey.exe pipeline github --runtime $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci | |
shell: bash | |
- name: ๐ผ๐ซ Initialize job | |
run: | | |
AgentTempDirNormal="${{ runner.temp }}" | |
AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') | |
echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV | |
chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe | |
echo '"debug"' | flowey.exe v 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-hypestv" | |
echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-hypestv" | flowey.exe v 6 'artifact_publish_from_aarch64-windows-hypestv' --update-from-stdin --is-raw-string | |
mkdir -p "$AgentTempDirNormal/publish_artifacts/aarch64-windows-igvmfilegen" | |
echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-igvmfilegen" | flowey.exe v 6 '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 6 '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 6 '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 6 'artifact_publish_from_aarch64-windows-vmgstool' --update-from-stdin --is-raw-string | |
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: 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:470: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:469:80' --write-to-gh-env floweyvar3 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar3' | |
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.floweyvar3 }} | |
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:524: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: set '-Dwarnings' in .cargo/config.toml | |
run: flowey.exe e 6 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0 | |
shell: bash | |
- name: create gh-release-download cache dir | |
run: flowey.exe e 6 flowey_lib_common::download_gh_release 0 | |
shell: bash | |
- name: Pre-processing cache vars | |
run: flowey.exe e 6 flowey_lib_common::cache 0 | |
shell: bash | |
- run: | | |
flowey.exe v 6 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:458:72' --write-to-gh-env floweyvar1 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar1' | |
- run: | | |
flowey.exe v 6 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:457: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-release-download' | |
- 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:510: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: download artifacts from github releases | |
run: flowey.exe e 6 flowey_lib_common::download_gh_release 1 | |
shell: bash | |
- name: unpack protoc | |
run: flowey.exe e 6 flowey_lib_common::download_protoc 0 | |
shell: bash | |
- name: report openvmm magicpath dir | |
run: flowey.exe e 6 flowey_lib_hvlite::cfg_openvmm_magicpath 0 | |
shell: bash | |
- name: symlink protoc | |
run: flowey.exe e 6 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0 | |
shell: bash | |
- name: inject cross env | |
run: flowey.exe e 6 flowey_lib_hvlite::init_cross_build 3 | |
shell: bash | |
- name: cargo build igvmfilegen | |
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 igvmfilegen | |
run: flowey.exe e 6 flowey_lib_hvlite::build_igvmfilegen 0 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 6 flowey_lib_hvlite::artifact_igvmfilegen::publish 0 | |
shell: bash | |
- name: copying igvmfilegen to artifact dir | |
run: flowey.exe e 6 flowey_lib_common::copy_to_artifact_dir 1 | |
shell: bash | |
- name: inject cross env | |
run: flowey.exe e 6 flowey_lib_hvlite::init_cross_build 4 | |
shell: bash | |
- name: cargo build ohcldiag-dev | |
run: flowey.exe e 6 flowey_lib_common::run_cargo_build 2 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 6 flowey_lib_hvlite::run_cargo_build 2 | |
shell: bash | |
- name: report built ohcldiag_dev | |
run: flowey.exe e 6 flowey_lib_hvlite::build_ohcldiag_dev 0 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 6 flowey_lib_hvlite::artifact_ohcldiag_dev::publish 0 | |
shell: bash | |
- name: copying ohcldiag-dev to artifact dir | |
run: flowey.exe e 6 flowey_lib_common::copy_to_artifact_dir 2 | |
shell: bash | |
- name: inject cross env | |
run: flowey.exe e 6 flowey_lib_hvlite::init_cross_build 1 | |
shell: bash | |
- name: cargo build vmgstool | |
run: flowey.exe e 6 flowey_lib_common::run_cargo_build 4 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 6 flowey_lib_hvlite::run_cargo_build 4 | |
shell: bash | |
- name: report built vmgstool | |
run: flowey.exe e 6 flowey_lib_hvlite::build_vmgstool 0 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 6 flowey_lib_hvlite::artifact_vmgstool::publish 0 | |
shell: bash | |
- name: copying vmgstool to artifact dir | |
run: flowey.exe e 6 flowey_lib_common::copy_to_artifact_dir 4 | |
shell: bash | |
- name: inject cross env | |
run: flowey.exe e 6 flowey_lib_hvlite::init_cross_build 2 | |
shell: bash | |
- name: cargo build hypestv | |
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 hypestv | |
run: flowey.exe e 6 flowey_lib_hvlite::build_hypestv 0 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 6 flowey_lib_hvlite::artifact_hypestv::publish 0 | |
shell: bash | |
- name: copying hypestv to artifact dir | |
run: flowey.exe e 6 flowey_lib_common::copy_to_artifact_dir 0 | |
shell: bash | |
- name: inject cross env | |
run: flowey.exe e 6 flowey_lib_hvlite::init_cross_build 0 | |
shell: bash | |
- name: cargo build vmgs_lib | |
run: flowey.exe e 6 flowey_lib_common::run_cargo_build 3 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 6 flowey_lib_hvlite::run_cargo_build 3 | |
shell: bash | |
- name: check built vmgs_lib | |
run: flowey.exe e 6 flowey_lib_hvlite::build_and_test_vmgs_lib 0 | |
shell: bash | |
- name: report built vmgs_lib | |
run: flowey.exe e 6 flowey_lib_hvlite::build_and_test_vmgs_lib 1 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 6 flowey_lib_hvlite::artifact_vmgs_lib::publish 0 | |
shell: bash | |
- name: copying vmgs_lib to artifact dir | |
run: flowey.exe e 6 flowey_lib_common::copy_to_artifact_dir 3 | |
shell: bash | |
- name: 'validate cache entry: gh-release-download' | |
run: flowey.exe e 6 flowey_lib_common::cache 3 | |
shell: bash | |
- name: ๐ผ๐ฆ Publish aarch64-windows-hypestv | |
uses: actions/upload-artifact@v4 | |
with: | |
name: aarch64-windows-hypestv | |
path: ${{ runner.temp }}/publish_artifacts/aarch64-windows-hypestv/ | |
- 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/ | |
job7: | |
name: build artifacts (for VMM tests) [aarch64-windows] | |
runs-on: windows-latest | |
permissions: | |
contents: read | |
id-token: write | |
if: github.event.pull_request.draft == false | |
steps: | |
- run: echo "injected!" | |
name: ๐ผ๐ฅพ Bootstrap flowey | |
shell: bash | |
- run: | | |
set -x | |
i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done; | |
sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y | |
curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.82.0 -y | |
. "$HOME/.cargo/env" | |
echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" | |
rustup show | |
if: runner.os == 'Linux' | |
name: rustup (Linux) | |
shell: bash | |
- run: | | |
set -x | |
curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init | |
./rustup-init.exe -y --default-toolchain=1.82.0 | |
echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH | |
if: runner.os == 'Windows' && runner.arch == 'X64' | |
name: rustup (Windows X64) | |
shell: bash | |
- run: | | |
set -x | |
curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init | |
./rustup-init.exe -y --default-toolchain=1.82.0 | |
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: 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 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: ๐ผ๐ Self-check YAML | |
run: |- | |
ESCAPED_AGENT_TEMPDIR=$( | |
cat <<'EOF' | sed 's/\\/\\\\/g' | |
${{ runner.temp }} | |
EOF | |
) | |
flowey.exe pipeline github --runtime $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci | |
shell: bash | |
- name: ๐ผ๐ซ Initialize job | |
run: | | |
AgentTempDirNormal="${{ runner.temp }}" | |
AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') | |
echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV | |
chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe | |
echo '"debug"' | flowey.exe v 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/aarch64-windows-openvmm" | |
echo "${{ runner.temp }}\\publish_artifacts\\aarch64-windows-openvmm" | flowey.exe v 7 '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 7 '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 7 'artifact_publish_from_aarch64-windows-vmm-tests-archive' --update-from-stdin --is-raw-string | |
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: 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:458:72' --write-to-gh-env floweyvar4 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar4' | |
- run: | | |
flowey.exe v 7 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:457: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 7 'flowey_lib_common::cache:12:flowey_lib_common/src/cache.rs:510: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: download artifacts from github releases | |
run: flowey.exe e 7 flowey_lib_common::download_gh_release 1 | |
shell: bash | |
- name: unpack Microsoft.WSL.LxUtil.AARCH64.zip | |
run: flowey.exe e 7 flowey_lib_hvlite::download_lxutil 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:470: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:469: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 7 'flowey_lib_common::git_checkout:4:flowey_lib_common/src/git_checkout.rs:524: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: report openvmm magicpath dir | |
run: flowey.exe e 7 flowey_lib_hvlite::cfg_openvmm_magicpath 0 | |
shell: bash | |
- name: move lxutil.dll into its magic folder | |
run: flowey.exe e 7 flowey_lib_hvlite::init_openvmm_magicpath_lxutil 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: unpack protoc | |
run: flowey.exe e 7 flowey_lib_common::download_protoc 0 | |
shell: bash | |
- name: symlink protoc | |
run: flowey.exe e 7 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0 | |
shell: bash | |
- name: inject cross env | |
run: flowey.exe e 7 flowey_lib_hvlite::init_cross_build 1 | |
shell: bash | |
- name: cargo build openvmm | |
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 openvmm | |
run: flowey.exe e 7 flowey_lib_hvlite::build_openvmm 0 | |
shell: bash | |
- name: copying openvmm to publish dir | |
run: flowey.exe e 7 flowey_lib_hvlite::artifact_openvmm::publish 0 | |
shell: bash | |
- name: inject cross env | |
run: flowey.exe e 7 flowey_lib_hvlite::init_cross_build 2 | |
shell: bash | |
- name: cargo build pipette | |
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 pipette | |
run: flowey.exe e 7 flowey_lib_hvlite::build_pipette 0 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 7 flowey_lib_hvlite::artifact_pipette::publish 0 | |
shell: bash | |
- name: copying pipette to artifact dir | |
run: flowey.exe e 7 flowey_lib_common::copy_to_artifact_dir 0 | |
shell: bash | |
- name: create cargo-nextest cache dir | |
run: flowey.exe e 7 flowey_lib_common::download_cargo_nextest 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:458:72' --write-to-gh-env floweyvar2 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar2' | |
- run: | | |
flowey.exe v 7 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:457: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 7 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:510: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: report cargo install persistent dir | |
run: flowey.exe e 7 flowey_lib_common::cfg_persistent_dir_cargo_install 0 | |
shell: bash | |
- name: report $CARGO_HOME | |
run: flowey.exe e 7 flowey_lib_common::install_rust 2 | |
shell: bash | |
- name: installing cargo-nextest | |
run: flowey.exe e 7 flowey_lib_common::download_cargo_nextest 1 | |
shell: bash | |
- name: inject cross env | |
run: flowey.exe e 7 flowey_lib_hvlite::init_cross_build 0 | |
shell: bash | |
- name: build + archive 'vmm_tests' nextests | |
run: flowey.exe e 7 flowey_lib_common::run_cargo_nextest_archive 0 | |
shell: bash | |
- name: report built vmm_tests | |
run: flowey.exe e 7 flowey_lib_hvlite::build_nextest_vmm_tests 0 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 7 flowey_lib_hvlite::artifact_nextest_vmm_tests_archive::publish 0 | |
shell: bash | |
- name: copying vmm_tests to artifact dir | |
run: flowey.exe e 7 flowey_lib_common::copy_to_artifact_dir 1 | |
shell: bash | |
- name: 'validate cache entry: cargo-nextest' | |
run: flowey.exe e 7 flowey_lib_common::cache 3 | |
shell: bash | |
- name: 'validate cache entry: gh-release-download' | |
run: flowey.exe e 7 flowey_lib_common::cache 7 | |
shell: bash | |
- name: ๐ผ๐ฆ Publish 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/ | |
- name: ๐ผ๐งผ Redact bootstrap var db | |
run: rm $AgentTempDirNormal/bootstrapped-flowey/job7.json | |
shell: bash | |
- name: ๐ผ๐ฅพ Publish bootstrapped flowey | |
uses: actions/upload-artifact@v4 | |
with: | |
name: _internal-flowey-bootstrap-x86_64-windows-uid-12 | |
path: ${{ runner.temp }}/bootstrapped-flowey | |
job8: | |
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 | |
if: github.event.pull_request.draft == false | |
steps: | |
- run: echo "injected!" | |
name: ๐ผ๐ฅพ Bootstrap flowey | |
shell: bash | |
- run: | | |
set -x | |
i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done; | |
sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y | |
curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.82.0 -y | |
. "$HOME/.cargo/env" | |
echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" | |
rustup show | |
if: runner.os == 'Linux' | |
name: rustup (Linux) | |
shell: bash | |
- run: | | |
set -x | |
curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init | |
./rustup-init.exe -y --default-toolchain=1.82.0 | |
echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH | |
if: runner.os == 'Windows' && runner.arch == 'X64' | |
name: rustup (Windows X64) | |
shell: bash | |
- run: | | |
set -x | |
curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init | |
./rustup-init.exe -y --default-toolchain=1.82.0 | |
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: 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 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: ๐ผ๐ Self-check YAML | |
run: |- | |
ESCAPED_AGENT_TEMPDIR=$( | |
cat <<'EOF' | sed 's/\\/\\\\/g' | |
${{ runner.temp }} | |
EOF | |
) | |
flowey.exe pipeline github --runtime $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci | |
shell: bash | |
- name: ๐ผ๐ซ Initialize job | |
run: | | |
AgentTempDirNormal="${{ runner.temp }}" | |
AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') | |
echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV | |
chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe | |
echo '"debug"' | flowey.exe v 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-hypestv" | |
echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-hypestv" | flowey.exe v 8 'artifact_publish_from_x64-windows-hypestv' --update-from-stdin --is-raw-string | |
mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-igvmfilegen" | |
echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-igvmfilegen" | flowey.exe v 8 '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 8 '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 8 '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 8 'artifact_publish_from_x64-windows-vmgstool' --update-from-stdin --is-raw-string | |
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: 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:470: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:469:80' --write-to-gh-env floweyvar3 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar3' | |
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.floweyvar3 }} | |
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:524: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: set '-Dwarnings' in .cargo/config.toml | |
run: flowey.exe e 8 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 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 0 | |
shell: bash | |
- run: | | |
flowey.exe v 8 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:458:72' --write-to-gh-env floweyvar1 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar1' | |
- run: | | |
flowey.exe v 8 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:457: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-release-download' | |
- 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:510: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: download artifacts from github releases | |
run: flowey.exe e 8 flowey_lib_common::download_gh_release 1 | |
shell: bash | |
- name: unpack protoc | |
run: flowey.exe e 8 flowey_lib_common::download_protoc 0 | |
shell: bash | |
- name: report openvmm magicpath dir | |
run: flowey.exe e 8 flowey_lib_hvlite::cfg_openvmm_magicpath 0 | |
shell: bash | |
- name: symlink protoc | |
run: flowey.exe e 8 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0 | |
shell: bash | |
- name: inject cross env | |
run: flowey.exe e 8 flowey_lib_hvlite::init_cross_build 1 | |
shell: bash | |
- name: cargo build vmgstool | |
run: flowey.exe e 8 flowey_lib_common::run_cargo_build 4 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 8 flowey_lib_hvlite::run_cargo_build 4 | |
shell: bash | |
- name: report built vmgstool | |
run: flowey.exe e 8 flowey_lib_hvlite::build_vmgstool 0 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 8 flowey_lib_hvlite::artifact_vmgstool::publish 0 | |
shell: bash | |
- name: copying vmgstool to artifact dir | |
run: flowey.exe e 8 flowey_lib_common::copy_to_artifact_dir 4 | |
shell: bash | |
- name: inject cross env | |
run: flowey.exe e 8 flowey_lib_hvlite::init_cross_build 2 | |
shell: bash | |
- name: cargo build hypestv | |
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 hypestv | |
run: flowey.exe e 8 flowey_lib_hvlite::build_hypestv 0 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 8 flowey_lib_hvlite::artifact_hypestv::publish 0 | |
shell: bash | |
- name: copying hypestv to artifact dir | |
run: flowey.exe e 8 flowey_lib_common::copy_to_artifact_dir 0 | |
shell: bash | |
- name: inject cross env | |
run: flowey.exe e 8 flowey_lib_hvlite::init_cross_build 0 | |
shell: bash | |
- name: cargo build vmgs_lib | |
run: flowey.exe e 8 flowey_lib_common::run_cargo_build 3 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 8 flowey_lib_hvlite::run_cargo_build 3 | |
shell: bash | |
- name: check built vmgs_lib | |
run: flowey.exe e 8 flowey_lib_hvlite::build_and_test_vmgs_lib 0 | |
shell: bash | |
- name: test vmgs_lib | |
run: flowey.exe e 8 flowey_lib_hvlite::build_and_test_vmgs_lib 1 | |
shell: bash | |
- name: report built vmgs_lib | |
run: flowey.exe e 8 flowey_lib_hvlite::build_and_test_vmgs_lib 2 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 8 flowey_lib_hvlite::artifact_vmgs_lib::publish 0 | |
shell: bash | |
- name: copying vmgs_lib to artifact dir | |
run: flowey.exe e 8 flowey_lib_common::copy_to_artifact_dir 3 | |
shell: bash | |
- name: inject cross env | |
run: flowey.exe e 8 flowey_lib_hvlite::init_cross_build 3 | |
shell: bash | |
- name: cargo build igvmfilegen | |
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 igvmfilegen | |
run: flowey.exe e 8 flowey_lib_hvlite::build_igvmfilegen 0 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 8 flowey_lib_hvlite::artifact_igvmfilegen::publish 0 | |
shell: bash | |
- name: copying igvmfilegen to artifact dir | |
run: flowey.exe e 8 flowey_lib_common::copy_to_artifact_dir 1 | |
shell: bash | |
- name: inject cross env | |
run: flowey.exe e 8 flowey_lib_hvlite::init_cross_build 4 | |
shell: bash | |
- name: cargo build ohcldiag-dev | |
run: flowey.exe e 8 flowey_lib_common::run_cargo_build 2 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 8 flowey_lib_hvlite::run_cargo_build 2 | |
shell: bash | |
- name: report built ohcldiag_dev | |
run: flowey.exe e 8 flowey_lib_hvlite::build_ohcldiag_dev 0 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 8 flowey_lib_hvlite::artifact_ohcldiag_dev::publish 0 | |
shell: bash | |
- name: copying ohcldiag-dev to artifact dir | |
run: flowey.exe e 8 flowey_lib_common::copy_to_artifact_dir 2 | |
shell: bash | |
- name: 'validate cache entry: gh-release-download' | |
run: flowey.exe e 8 flowey_lib_common::cache 3 | |
shell: bash | |
- name: ๐ผ๐ฆ Publish x64-windows-hypestv | |
uses: actions/upload-artifact@v4 | |
with: | |
name: x64-windows-hypestv | |
path: ${{ runner.temp }}/publish_artifacts/x64-windows-hypestv/ | |
- 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/ | |
job9: | |
name: build artifacts (for VMM tests) [x64-windows] | |
runs-on: windows-latest | |
permissions: | |
contents: read | |
id-token: write | |
if: github.event.pull_request.draft == false | |
steps: | |
- run: echo "injected!" | |
name: ๐ผ๐ฅพ Bootstrap flowey | |
shell: bash | |
- run: | | |
set -x | |
i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done; | |
sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y | |
curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.82.0 -y | |
. "$HOME/.cargo/env" | |
echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" | |
rustup show | |
if: runner.os == 'Linux' | |
name: rustup (Linux) | |
shell: bash | |
- run: | | |
set -x | |
curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init | |
./rustup-init.exe -y --default-toolchain=1.82.0 | |
echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH | |
if: runner.os == 'Windows' && runner.arch == 'X64' | |
name: rustup (Windows X64) | |
shell: bash | |
- run: | | |
set -x | |
curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init | |
./rustup-init.exe -y --default-toolchain=1.82.0 | |
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: 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 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: ๐ผ๐ Self-check YAML | |
run: |- | |
ESCAPED_AGENT_TEMPDIR=$( | |
cat <<'EOF' | sed 's/\\/\\\\/g' | |
${{ runner.temp }} | |
EOF | |
) | |
flowey.exe pipeline github --runtime $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out .github/workflows/openvmm-ci.yaml ci checkin-gates --config=ci | |
shell: bash | |
- name: ๐ผ๐ซ Initialize job | |
run: | | |
AgentTempDirNormal="${{ runner.temp }}" | |
AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') | |
echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV | |
chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe | |
echo '"debug"' | flowey.exe v 9 'FLOWEY_LOG' --update-from-stdin | |
echo "${{ runner.temp }}/work" | flowey.exe v 9 '_internal_WORKING_DIR' --update-from-stdin --is-raw-string | |
cat <<'EOF' | flowey.exe v 9 '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 9 '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 9 '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 9 'artifact_publish_from_x64-windows-vmm-tests-archive' --update-from-stdin --is-raw-string | |
shell: bash | |
- name: install Rust | |
run: flowey.exe e 9 flowey_lib_common::install_rust 0 | |
shell: bash | |
- name: detect active toolchain | |
run: flowey.exe e 9 flowey_lib_common::install_rust 1 | |
shell: bash | |
- name: report common cargo flags | |
run: flowey.exe e 9 flowey_lib_common::cfg_cargo_common_flags 0 | |
shell: bash | |
- name: create gh-release-download cache dir | |
run: flowey.exe e 9 flowey_lib_common::download_gh_release 0 | |
shell: bash | |
- name: Pre-processing cache vars | |
run: flowey.exe e 9 flowey_lib_common::cache 4 | |
shell: bash | |
- run: | | |
flowey.exe v 9 'flowey_lib_common::cache:10:flowey_lib_common/src/cache.rs:458:72' --write-to-gh-env floweyvar4 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar4' | |
- run: | | |
flowey.exe v 9 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:457: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 9 'flowey_lib_common::cache:12:flowey_lib_common/src/cache.rs:510: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 9 flowey_lib_common::cache 6 | |
shell: bash | |
- name: download artifacts from github releases | |
run: flowey.exe e 9 flowey_lib_common::download_gh_release 1 | |
shell: bash | |
- name: unpack Microsoft.WSL.LxUtil.x64.zip | |
run: flowey.exe e 9 flowey_lib_hvlite::download_lxutil 0 | |
shell: bash | |
- name: check if hvlite needs to be cloned | |
run: flowey.exe e 9 flowey_lib_common::git_checkout 0 | |
shell: bash | |
- run: | | |
flowey.exe v 9 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:470:46' --write-to-gh-env FLOWEY_CONDITION | |
shell: bash | |
name: ๐ผโ Write to 'FLOWEY_CONDITION' | |
- run: | | |
flowey.exe v 9 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:469: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 9 'flowey_lib_common::git_checkout:4:flowey_lib_common/src/git_checkout.rs:524:31' --update-from-file {0} --is-raw-string | |
name: ๐ผ Read from 'github.workspace' | |
- name: report cloned repo directories | |
run: flowey.exe e 9 flowey_lib_common::git_checkout 3 | |
shell: bash | |
- name: resolve OpenVMM repo requests | |
run: flowey.exe e 9 flowey_lib_hvlite::git_checkout_openvmm_repo 0 | |
shell: bash | |
- name: report openvmm magicpath dir | |
run: flowey.exe e 9 flowey_lib_hvlite::cfg_openvmm_magicpath 0 | |
shell: bash | |
- name: move lxutil.dll into its magic folder | |
run: flowey.exe e 9 flowey_lib_hvlite::init_openvmm_magicpath_lxutil 0 | |
shell: bash | |
- name: set '-Dwarnings' in .cargo/config.toml | |
run: flowey.exe e 9 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0 | |
shell: bash | |
- name: unpack protoc | |
run: flowey.exe e 9 flowey_lib_common::download_protoc 0 | |
shell: bash | |
- name: symlink protoc | |
run: flowey.exe e 9 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0 | |
shell: bash | |
- name: inject cross env | |
run: flowey.exe e 9 flowey_lib_hvlite::init_cross_build 1 | |
shell: bash | |
- name: cargo build openvmm | |
run: flowey.exe e 9 flowey_lib_common::run_cargo_build 0 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 9 flowey_lib_hvlite::run_cargo_build 0 | |
shell: bash | |
- name: report built openvmm | |
run: flowey.exe e 9 flowey_lib_hvlite::build_openvmm 0 | |
shell: bash | |
- name: copying openvmm to publish dir | |
run: flowey.exe e 9 flowey_lib_hvlite::artifact_openvmm::publish 0 | |
shell: bash | |
- name: inject cross env | |
run: flowey.exe e 9 flowey_lib_hvlite::init_cross_build 2 | |
shell: bash | |
- name: cargo build pipette | |
run: flowey.exe e 9 flowey_lib_common::run_cargo_build 1 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 9 flowey_lib_hvlite::run_cargo_build 1 | |
shell: bash | |
- name: report built pipette | |
run: flowey.exe e 9 flowey_lib_hvlite::build_pipette 0 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 9 flowey_lib_hvlite::artifact_pipette::publish 0 | |
shell: bash | |
- name: copying pipette to artifact dir | |
run: flowey.exe e 9 flowey_lib_common::copy_to_artifact_dir 0 | |
shell: bash | |
- name: create cargo-nextest cache dir | |
run: flowey.exe e 9 flowey_lib_common::download_cargo_nextest 0 | |
shell: bash | |
- name: Pre-processing cache vars | |
run: flowey.exe e 9 flowey_lib_common::cache 0 | |
shell: bash | |
- run: | | |
flowey.exe v 9 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:458:72' --write-to-gh-env floweyvar2 --is-raw-string | |
shell: bash | |
name: ๐ผ Write to 'floweyvar2' | |
- run: | | |
flowey.exe v 9 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:457: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 9 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:510: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 9 flowey_lib_common::cache 2 | |
shell: bash | |
- name: report cargo install persistent dir | |
run: flowey.exe e 9 flowey_lib_common::cfg_persistent_dir_cargo_install 0 | |
shell: bash | |
- name: report $CARGO_HOME | |
run: flowey.exe e 9 flowey_lib_common::install_rust 2 | |
shell: bash | |
- name: installing cargo-nextest | |
run: flowey.exe e 9 flowey_lib_common::download_cargo_nextest 1 | |
shell: bash | |
- name: inject cross env | |
run: flowey.exe e 9 flowey_lib_hvlite::init_cross_build 0 | |
shell: bash | |
- name: build + archive 'vmm_tests' nextests | |
run: flowey.exe e 9 flowey_lib_common::run_cargo_nextest_archive 0 | |
shell: bash | |
- name: report built vmm_tests | |
run: flowey.exe e 9 flowey_lib_hvlite::build_nextest_vmm_tests 0 | |
shell: bash | |
- name: ๐ผ write_into Var | |
run: flowey.exe e 9 flowey_lib_hvlite::artifact_nextest_vmm_tests_archive::publish 0 | |
shell: bash | |
- name: copying vmm_tests to artifact dir | |
run: flowey.exe e 9 flowey_lib_common::copy_to_artifact_dir 1 | |
shell: bash | |
- name: 'validate cache entry: cargo-nextest' | |
run: flowey.exe e 9 flowey_lib_common::cache 3 | |
shell: bash | |
- name: 'validate cache entry: gh-release-download' | |
run: flowey.exe e 9 flowey_lib_common::cache 7 | |
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/job9.json | |
shell: bash | |
- name: ๐ผ๐ฅพ Publish bootstrapped flowey | |
uses: actions/upload-artifact@v4 | |
with: | |
name: _internal-flowey-bootstrap-x86_64-windows-uid-10 | |
path: ${{ runner.temp }}/bootstrapped-flowey |