##############################
# THIS FILE IS AUTOGENERATED #
# DO NOT MANUALLY EDIT #
##############################
trigger: none
pr:
autoCancel: true
drafts: false
branches:
include:
- main
- release/*
- embargo/*
parameters:
- name: verbose
displayName: Run with verbose output
type: boolean
default: false
jobs:
- job: job12
displayName: clippy [x64-linux-musl, misc nostd], unit tests [x64-linux-musl]
pool: HvLite-CI-Linux-Pool-CentralUS
dependsOn: []
condition: and(succeeded(), not(canceled()))
variables:
- name: FLOWEY_TEMP_DIR
value: $(Build.StagingDirectory)/.flowey-internal
steps:
- bash: |
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.91.1 -y
. "$HOME/.cargo/env"
echo '##vso[task.prependpath]$(HOME)/.cargo/bin'
condition: eq(variables['Agent.OS'], 'Linux')
displayName: rustup (Linux)
- bash: |
set -x
curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
./rustup-init.exe -y --default-toolchain=1.91.1
echo '##vso[task.prependpath]$(USERPROFILE)\\.cargo\\bin'
condition: eq(variables['Agent.OS'], 'Windows_NT')
displayName: rustup (Windows X64)
- bash: |
set -x
rustup show
displayName: Verify rustup installation
- checkout: self
fetchTags: false
fetchDepth: 1
path: flowey_bootstrap
- bash: CARGO_INCREMENTAL=0 RUSTC_BOOTSTRAP=1 RUSTFLAGS="-Z threads=8" cargo build -p flowey_hvlite --target x86_64-unknown-linux-gnu --profile flowey-ci
workingDirectory: ../flowey_bootstrap
displayName: Build flowey
- bash: |
mkdir ./flowey_bootstrap_temp
mv ./ci-flowey/openvmm-pr.yaml ./flowey_bootstrap_temp/pipeline.yaml
mv ./ci-flowey/openvmm-pr.json ./flowey_bootstrap_temp/pipeline.json
mv target/x86_64-unknown-linux-gnu/flowey-ci/flowey_hvlite ./flowey_bootstrap_temp/flowey
workingDirectory: ../flowey_bootstrap
displayName: Stage flowey artifact
- task: CopyFiles@2
displayName: Copy flowey artifact
inputs:
SourceFolder: ../flowey_bootstrap/flowey_bootstrap_temp
TargetFolder: $(FLOWEY_TEMP_DIR)/bootstrapped-flowey
- bash: rm -rf ./flowey_bootstrap_temp
workingDirectory: ../flowey_bootstrap
displayName: Cleanup staged flowey artifact
- bash: |
set -e
AgentTempDirNormal="$(FLOWEY_TEMP_DIR)"
AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
echo "##vso[task.setvariable variable=AgentTempDirNormal;]$AgentTempDirNormal"
chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey
FLOWEY_BIN="$AgentTempDirNormal/bootstrapped-flowey/flowey"
echo "##vso[task.setvariable variable=FLOWEY_BIN;]$FLOWEY_BIN"
displayName: Set flowey path
- bash: |-
ESCAPED_AGENT_TEMPDIR=$(
cat <<'EOF' | sed 's/\\/\\\\/g'
$(FLOWEY_TEMP_DIR)
EOF
)
$(FLOWEY_BIN) pipeline ado --runtime $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out ci-flowey/openvmm-pr.yaml ci checkin-gates --config=pr
displayName: πΌπ Self-check YAML
- bash: |
set -e
echo '"debug"' | $FLOWEY_BIN v 12 'FLOWEY_LOG' update
echo "$(FLOWEY_TEMP_DIR)/work" | $FLOWEY_BIN v 12 '_internal_WORKING_DIR' --is-raw-string update
cat <<'EOF' | tr '[:upper:]' '[:lower:]' | $FLOWEY_BIN v 12 'verbose' update
${{ parameters.verbose }}
EOF
displayName: πΌπ« Initialize job
- bash: $(FLOWEY_BIN) e 12 flowey_lib_common::install_rust 0
displayName: install Rust
- bash: |-
set -e
$(FLOWEY_BIN) e 12 flowey_lib_common::install_rust 1
$(FLOWEY_BIN) e 12 flowey_lib_common::cfg_cargo_common_flags 0
displayName: detect active toolchain
- bash: |-
set -e
$(FLOWEY_BIN) e 12 flowey_lib_common::git_checkout 0
$FLOWEY_BIN v 12 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:299:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:300:46 write-to-env ado floweyvar6
$FLOWEY_BIN v 12 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:300:46' write-to-env ado FLOWEY_CONDITION
displayName: check if openvmm needs to be cloned
- checkout: self
path: repo0
fetchTags: false
fetchDepth: 1
persistCredentials: $(floweyvar6)
submodules: recursive
displayName: checkout repo openvmm
condition: and(eq(variables['FLOWEY_CONDITION'], true), succeeded(), not(canceled()))
- bash: |-
set -e
$(FLOWEY_BIN) e 12 flowey_lib_common::git_checkout 2
$(FLOWEY_BIN) e 12 flowey_lib_hvlite::git_checkout_openvmm_repo 0
$(FLOWEY_BIN) e 12 flowey_lib_hvlite::cfg_openvmm_magicpath 0
displayName: report cloned repo directories
- bash: $(FLOWEY_BIN) e 12 flowey_lib_common::install_dist_pkg 0
displayName: checking if packages need to be installed
- bash: $(FLOWEY_BIN) e 12 flowey_lib_common::install_dist_pkg 1
displayName: installing packages
- bash: $(FLOWEY_BIN) e 12 flowey_lib_common::download_gh_release 0
displayName: create gh-release-download cache dir
- bash: |-
set -e
$(FLOWEY_BIN) e 12 flowey_lib_common::cache 4
$FLOWEY_BIN v 12 'flowey_lib_common::cache:8:flowey_lib_common/src/cache.rs:236:72' --is-raw-string write-to-env ado floweyvar4
$FLOWEY_BIN v 12 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:237:72' --is-raw-string write-to-env ado floweyvar5
displayName: Pre-processing cache vars
- task: Cache@2
inputs:
key: $(floweyvar5)
path: $(floweyvar4)
cacheHitVar: FLOWEY_CACHE_HITVAR
displayName: 'Restore cache: gh-release-download'
- bash: |-
set -e
$FLOWEY_BIN v 12 'flowey_lib_common::cache:11:flowey_lib_common/src/cache.rs:300:70' --is-raw-string update --env-source FLOWEY_CACHE_HITVAR <<'EOF'
$(FLOWEY_CACHE_HITVAR)
EOF
$(FLOWEY_BIN) e 12 flowey_lib_common::cache 6
displayName: map ADO hitvar to flowey
- bash: $(FLOWEY_BIN) e 12 flowey_lib_common::download_gh_release 1
displayName: download artifacts from github releases
- bash: $(FLOWEY_BIN) e 12 flowey_lib_hvlite::resolve_openvmm_deps 0
displayName: unpack openvmm-deps archive
- bash: $(FLOWEY_BIN) e 12 flowey_lib_hvlite::init_openvmm_magicpath_openhcl_sysroot 0
displayName: extract X64 sysroot.tar.gz
- bash: $(FLOWEY_BIN) e 12 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
displayName: set '-Dwarnings' in .cargo/config.toml
- bash: $(FLOWEY_BIN) e 12 flowey_lib_common::download_protoc 0
displayName: unpack protoc
- bash: |-
set -e
$(FLOWEY_BIN) e 12 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
$(FLOWEY_BIN) e 12 flowey_lib_hvlite::init_cross_build 2
$(FLOWEY_BIN) e 12 flowey_lib_hvlite::init_cross_build 0
displayName: symlink protoc
- bash: |-
set -e
$(FLOWEY_BIN) e 12 flowey_lib_common::run_cargo_build 0
$(FLOWEY_BIN) e 12 flowey_lib_hvlite::run_cargo_build 0
displayName: cargo build xtask
- bash: |-
set -e
$(FLOWEY_BIN) e 12 flowey_lib_hvlite::run_split_debug_info 1
$(FLOWEY_BIN) e 12 flowey_lib_hvlite::run_cargo_build 1
$(FLOWEY_BIN) e 12 flowey_lib_hvlite::build_xtask 0
displayName: split debug symbols
- bash: $(FLOWEY_BIN) e 12 flowey_lib_hvlite::_jobs::check_clippy 0
displayName: determine clippy exclusions
- bash: $(FLOWEY_BIN) e 12 flowey_lib_common::run_cargo_clippy 0
displayName: cargo clippy
- bash: $(FLOWEY_BIN) e 12 flowey_lib_common::run_cargo_clippy 2
displayName: cargo clippy
- bash: $(FLOWEY_BIN) e 12 flowey_lib_common::run_cargo_clippy 1
displayName: cargo clippy
- bash: |-
set -e
$(FLOWEY_BIN) e 12 flowey_lib_common::download_cargo_nextest 0
$(FLOWEY_BIN) e 12 flowey_lib_common::download_cargo_nextest 1
$(FLOWEY_BIN) e 12 flowey_lib_common::download_cargo_nextest 2
$(FLOWEY_BIN) e 12 flowey_lib_common::download_cargo_nextest 3
displayName: create cargo-nextest cache dir
- bash: |-
set -e
$(FLOWEY_BIN) e 12 flowey_lib_common::cache 0
$FLOWEY_BIN v 12 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:236:72' --is-raw-string write-to-env ado floweyvar2
$FLOWEY_BIN v 12 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:237:72' --is-raw-string write-to-env ado floweyvar3
displayName: Pre-processing cache vars
- task: Cache@2
inputs:
key: $(floweyvar3)
path: $(floweyvar2)
cacheHitVar: FLOWEY_CACHE_HITVAR
displayName: 'Restore cache: cargo-nextest'
- bash: |-
set -e
$FLOWEY_BIN v 12 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:300:70' --is-raw-string update --env-source FLOWEY_CACHE_HITVAR <<'EOF'
$(FLOWEY_CACHE_HITVAR)
EOF
$(FLOWEY_BIN) e 12 flowey_lib_common::cache 2
displayName: map ADO hitvar to flowey
- bash: $(FLOWEY_BIN) e 12 flowey_lib_common::download_cargo_nextest 4
displayName: downloading cargo-nextest
- bash: $(FLOWEY_BIN) e 12 flowey_lib_common::install_rust 2
displayName: report $CARGO_HOME
- bash: |-
set -e
$(FLOWEY_BIN) e 12 flowey_lib_common::install_cargo_nextest 0
$(FLOWEY_BIN) e 12 flowey_lib_hvlite::init_cross_build 1
displayName: installing cargo-nextest
- bash: |-
set -e
$(FLOWEY_BIN) e 12 flowey_lib_common::run_cargo_build 1
$(FLOWEY_BIN) e 12 flowey_lib_hvlite::run_cargo_build 2
displayName: cargo build xtask
- bash: |-
set -e
$(FLOWEY_BIN) e 12 flowey_lib_hvlite::run_split_debug_info 0
$(FLOWEY_BIN) e 12 flowey_lib_hvlite::run_cargo_build 3
$(FLOWEY_BIN) e 12 flowey_lib_hvlite::build_xtask 1
displayName: split debug symbols
- bash: |-
set -e
$(FLOWEY_BIN) e 12 flowey_lib_hvlite::build_nextest_unit_tests 0
$(FLOWEY_BIN) e 12 flowey_lib_hvlite::init_cross_build 3
$(FLOWEY_BIN) e 12 flowey_lib_hvlite::run_cargo_nextest_run 0
displayName: determine unit test exclusions
- bash: $(FLOWEY_BIN) e 12 flowey_lib_common::gen_cargo_nextest_run_cmd 0
displayName: generate nextest command
- bash: |-
set -e
$(FLOWEY_BIN) e 12 flowey_lib_common::run_cargo_nextest_run 0
$(FLOWEY_BIN) e 12 flowey_lib_common::run_cargo_nextest_run 1
$(FLOWEY_BIN) e 12 flowey_lib_hvlite::_jobs::build_and_run_nextest_unit_tests 0
$(FLOWEY_BIN) e 12 flowey_lib_common::publish_test_results 1
$(FLOWEY_BIN) e 12 flowey_lib_common::ado_task_publish_test_results 0
$(FLOWEY_BIN) e 12 flowey_lib_common::publish_test_results 0
$FLOWEY_BIN v 12 'flowey_lib_common::ado_task_publish_test_results:0:flowey_lib_common/src/ado_task_publish_test_results.rs:57:45' --is-raw-string --condvar flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env ado floweyvar1
$FLOWEY_BIN v 12 'flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env ado FLOWEY_CONDITION
displayName: run 'unit-tests' nextest tests
- task: PublishTestResults@2
inputs:
testResultsFormat: JUnit
testResultsFiles: $(floweyvar1)
testRunTitle: x64-linux-musl-unit-tests
displayName: 'publish test results: x64-linux-musl-unit-tests (JUnit XML)'
condition: and(eq(variables['FLOWEY_CONDITION'], true), succeeded(), not(canceled()))
- bash: $(FLOWEY_BIN) e 12 flowey_lib_hvlite::_jobs::build_and_run_nextest_unit_tests 1
displayName: report test results to overall pipeline status
- bash: $(FLOWEY_BIN) e 12 flowey_lib_hvlite::_jobs::build_and_run_doc_tests 0
displayName: run doctests for x86_64-unknown-linux-musl
- bash: $(FLOWEY_BIN) e 12 flowey_lib_common::cache 3
displayName: 'validate cache entry: cargo-nextest'
- bash: $(FLOWEY_BIN) e 12 flowey_lib_common::cache 7
displayName: 'validate cache entry: gh-release-download'
- job: job11
displayName: clippy [x64-linux, macos], unit tests [x64-linux]
pool: HvLite-CI-Linux-Pool-CentralUS
dependsOn: []
condition: and(succeeded(), not(canceled()))
variables:
- name: FLOWEY_TEMP_DIR
value: $(Build.StagingDirectory)/.flowey-internal
steps:
- bash: |
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.91.1 -y
. "$HOME/.cargo/env"
echo '##vso[task.prependpath]$(HOME)/.cargo/bin'
condition: eq(variables['Agent.OS'], 'Linux')
displayName: rustup (Linux)
- bash: |
set -x
curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
./rustup-init.exe -y --default-toolchain=1.91.1
echo '##vso[task.prependpath]$(USERPROFILE)\\.cargo\\bin'
condition: eq(variables['Agent.OS'], 'Windows_NT')
displayName: rustup (Windows X64)
- bash: |
set -x
rustup show
displayName: Verify rustup installation
- checkout: self
fetchTags: false
fetchDepth: 1
path: flowey_bootstrap
- bash: CARGO_INCREMENTAL=0 RUSTC_BOOTSTRAP=1 RUSTFLAGS="-Z threads=8" cargo build -p flowey_hvlite --target x86_64-unknown-linux-gnu --profile flowey-ci
workingDirectory: ../flowey_bootstrap
displayName: Build flowey
- bash: |
mkdir ./flowey_bootstrap_temp
mv ./ci-flowey/openvmm-pr.yaml ./flowey_bootstrap_temp/pipeline.yaml
mv ./ci-flowey/openvmm-pr.json ./flowey_bootstrap_temp/pipeline.json
mv target/x86_64-unknown-linux-gnu/flowey-ci/flowey_hvlite ./flowey_bootstrap_temp/flowey
workingDirectory: ../flowey_bootstrap
displayName: Stage flowey artifact
- task: CopyFiles@2
displayName: Copy flowey artifact
inputs:
SourceFolder: ../flowey_bootstrap/flowey_bootstrap_temp
TargetFolder: $(FLOWEY_TEMP_DIR)/bootstrapped-flowey
- bash: rm -rf ./flowey_bootstrap_temp
workingDirectory: ../flowey_bootstrap
displayName: Cleanup staged flowey artifact
- bash: |
set -e
AgentTempDirNormal="$(FLOWEY_TEMP_DIR)"
AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
echo "##vso[task.setvariable variable=AgentTempDirNormal;]$AgentTempDirNormal"
chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey
FLOWEY_BIN="$AgentTempDirNormal/bootstrapped-flowey/flowey"
echo "##vso[task.setvariable variable=FLOWEY_BIN;]$FLOWEY_BIN"
displayName: Set flowey path
- bash: |-
ESCAPED_AGENT_TEMPDIR=$(
cat <<'EOF' | sed 's/\\/\\\\/g'
$(FLOWEY_TEMP_DIR)
EOF
)
$(FLOWEY_BIN) pipeline ado --runtime $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out ci-flowey/openvmm-pr.yaml ci checkin-gates --config=pr
displayName: πΌπ Self-check YAML
- bash: |
set -e
echo '"debug"' | $FLOWEY_BIN v 11 'FLOWEY_LOG' update
echo "$(FLOWEY_TEMP_DIR)/work" | $FLOWEY_BIN v 11 '_internal_WORKING_DIR' --is-raw-string update
cat <<'EOF' | tr '[:upper:]' '[:lower:]' | $FLOWEY_BIN v 11 'verbose' update
${{ parameters.verbose }}
EOF
displayName: πΌπ« Initialize job
- bash: $(FLOWEY_BIN) e 11 flowey_lib_common::install_rust 0
displayName: install Rust
- bash: |-
set -e
$(FLOWEY_BIN) e 11 flowey_lib_common::install_rust 1
$(FLOWEY_BIN) e 11 flowey_lib_common::cfg_cargo_common_flags 0
displayName: detect active toolchain
- bash: |-
set -e
$(FLOWEY_BIN) e 11 flowey_lib_common::git_checkout 0
$FLOWEY_BIN v 11 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:299:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:300:46 write-to-env ado floweyvar6
$FLOWEY_BIN v 11 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:300:46' write-to-env ado FLOWEY_CONDITION
displayName: check if openvmm needs to be cloned
- checkout: self
path: repo0
fetchTags: false
fetchDepth: 1
persistCredentials: $(floweyvar6)
submodules: recursive
displayName: checkout repo openvmm
condition: and(eq(variables['FLOWEY_CONDITION'], true), succeeded(), not(canceled()))
- bash: |-
set -e
$(FLOWEY_BIN) e 11 flowey_lib_common::git_checkout 2
$(FLOWEY_BIN) e 11 flowey_lib_hvlite::git_checkout_openvmm_repo 0
displayName: report cloned repo directories
- bash: $(FLOWEY_BIN) e 11 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
displayName: set '-Dwarnings' in .cargo/config.toml
- bash: $(FLOWEY_BIN) e 11 flowey_lib_common::download_gh_release 0
displayName: create gh-release-download cache dir
- bash: |-
set -e
$(FLOWEY_BIN) e 11 flowey_lib_common::cache 4
$FLOWEY_BIN v 11 'flowey_lib_common::cache:8:flowey_lib_common/src/cache.rs:236:72' --is-raw-string write-to-env ado floweyvar4
$FLOWEY_BIN v 11 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:237:72' --is-raw-string write-to-env ado floweyvar5
displayName: Pre-processing cache vars
- task: Cache@2
inputs:
key: $(floweyvar5)
path: $(floweyvar4)
cacheHitVar: FLOWEY_CACHE_HITVAR
displayName: 'Restore cache: gh-release-download'
- bash: |-
set -e
$FLOWEY_BIN v 11 'flowey_lib_common::cache:11:flowey_lib_common/src/cache.rs:300:70' --is-raw-string update --env-source FLOWEY_CACHE_HITVAR <<'EOF'
$(FLOWEY_CACHE_HITVAR)
EOF
$(FLOWEY_BIN) e 11 flowey_lib_common::cache 6
displayName: map ADO hitvar to flowey
- bash: $(FLOWEY_BIN) e 11 flowey_lib_common::download_gh_release 1
displayName: download artifacts from github releases
- bash: $(FLOWEY_BIN) e 11 flowey_lib_common::install_dist_pkg 0
displayName: checking if packages need to be installed
- bash: $(FLOWEY_BIN) e 11 flowey_lib_common::install_dist_pkg 1
displayName: installing packages
- bash: |-
set -e
$(FLOWEY_BIN) e 11 flowey_lib_common::download_protoc 0
$(FLOWEY_BIN) e 11 flowey_lib_hvlite::cfg_openvmm_magicpath 0
displayName: unpack protoc
- bash: |-
set -e
$(FLOWEY_BIN) e 11 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
$(FLOWEY_BIN) e 11 flowey_lib_hvlite::init_cross_build 4
displayName: symlink protoc
- bash: |-
set -e
$(FLOWEY_BIN) e 11 flowey_lib_common::run_cargo_build 2
$(FLOWEY_BIN) e 11 flowey_lib_hvlite::run_cargo_build 2
displayName: cargo build xtask
- bash: |-
set -e
$(FLOWEY_BIN) e 11 flowey_lib_hvlite::run_split_debug_info 0
$(FLOWEY_BIN) e 11 flowey_lib_hvlite::run_cargo_build 3
$(FLOWEY_BIN) e 11 flowey_lib_hvlite::build_xtask 1
displayName: split debug symbols
- bash: |-
set -e
$(FLOWEY_BIN) e 11 flowey_lib_hvlite::_jobs::check_clippy 1
$(FLOWEY_BIN) e 11 flowey_lib_hvlite::init_cross_build 0
displayName: determine clippy exclusions
- bash: |-
set -e
$(FLOWEY_BIN) e 11 flowey_lib_common::run_cargo_clippy 0
$(FLOWEY_BIN) e 11 flowey_lib_hvlite::init_cross_build 3
displayName: cargo clippy
- bash: |-
set -e
$(FLOWEY_BIN) e 11 flowey_lib_common::run_cargo_build 1
$(FLOWEY_BIN) e 11 flowey_lib_hvlite::run_cargo_build 0
displayName: cargo build xtask
- bash: |-
set -e
$(FLOWEY_BIN) e 11 flowey_lib_hvlite::run_split_debug_info 2
$(FLOWEY_BIN) e 11 flowey_lib_hvlite::run_cargo_build 1
$(FLOWEY_BIN) e 11 flowey_lib_hvlite::build_xtask 0
displayName: split debug symbols
- bash: $(FLOWEY_BIN) e 11 flowey_lib_hvlite::_jobs::check_clippy 0
displayName: determine clippy exclusions
- bash: $(FLOWEY_BIN) e 11 flowey_lib_common::run_cargo_clippy 1
displayName: cargo clippy
- bash: |-
set -e
$(FLOWEY_BIN) e 11 flowey_lib_common::download_cargo_nextest 0
$(FLOWEY_BIN) e 11 flowey_lib_common::download_cargo_nextest 1
$(FLOWEY_BIN) e 11 flowey_lib_common::download_cargo_nextest 2
$(FLOWEY_BIN) e 11 flowey_lib_common::download_cargo_nextest 3
displayName: create cargo-nextest cache dir
- bash: |-
set -e
$(FLOWEY_BIN) e 11 flowey_lib_common::cache 0
$FLOWEY_BIN v 11 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:236:72' --is-raw-string write-to-env ado floweyvar2
$FLOWEY_BIN v 11 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:237:72' --is-raw-string write-to-env ado floweyvar3
displayName: Pre-processing cache vars
- task: Cache@2
inputs:
key: $(floweyvar3)
path: $(floweyvar2)
cacheHitVar: FLOWEY_CACHE_HITVAR
displayName: 'Restore cache: cargo-nextest'
- bash: |-
set -e
$FLOWEY_BIN v 11 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:300:70' --is-raw-string update --env-source FLOWEY_CACHE_HITVAR <<'EOF'
$(FLOWEY_CACHE_HITVAR)
EOF
$(FLOWEY_BIN) e 11 flowey_lib_common::cache 2
displayName: map ADO hitvar to flowey
- bash: $(FLOWEY_BIN) e 11 flowey_lib_common::download_cargo_nextest 4
displayName: downloading cargo-nextest
- bash: $(FLOWEY_BIN) e 11 flowey_lib_common::install_rust 2
displayName: report $CARGO_HOME
- bash: |-
set -e
$(FLOWEY_BIN) e 11 flowey_lib_common::install_cargo_nextest 0
$(FLOWEY_BIN) e 11 flowey_lib_hvlite::init_cross_build 2
displayName: installing cargo-nextest
- bash: |-
set -e
$(FLOWEY_BIN) e 11 flowey_lib_common::run_cargo_build 0
$(FLOWEY_BIN) e 11 flowey_lib_hvlite::run_cargo_build 4
displayName: cargo build xtask
- bash: |-
set -e
$(FLOWEY_BIN) e 11 flowey_lib_hvlite::run_split_debug_info 1
$(FLOWEY_BIN) e 11 flowey_lib_hvlite::run_cargo_build 5
$(FLOWEY_BIN) e 11 flowey_lib_hvlite::build_xtask 2
displayName: split debug symbols
- bash: |-
set -e
$(FLOWEY_BIN) e 11 flowey_lib_hvlite::build_nextest_unit_tests 0
$(FLOWEY_BIN) e 11 flowey_lib_hvlite::init_cross_build 1
$(FLOWEY_BIN) e 11 flowey_lib_hvlite::run_cargo_nextest_run 0
displayName: determine unit test exclusions
- bash: $(FLOWEY_BIN) e 11 flowey_lib_common::gen_cargo_nextest_run_cmd 0
displayName: generate nextest command
- bash: |-
set -e
$(FLOWEY_BIN) e 11 flowey_lib_common::run_cargo_nextest_run 0
$(FLOWEY_BIN) e 11 flowey_lib_common::run_cargo_nextest_run 1
$(FLOWEY_BIN) e 11 flowey_lib_hvlite::_jobs::build_and_run_nextest_unit_tests 0
$(FLOWEY_BIN) e 11 flowey_lib_common::publish_test_results 1
$(FLOWEY_BIN) e 11 flowey_lib_common::ado_task_publish_test_results 0
$(FLOWEY_BIN) e 11 flowey_lib_common::publish_test_results 0
$FLOWEY_BIN v 11 'flowey_lib_common::ado_task_publish_test_results:0:flowey_lib_common/src/ado_task_publish_test_results.rs:57:45' --is-raw-string --condvar flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env ado floweyvar1
$FLOWEY_BIN v 11 'flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env ado FLOWEY_CONDITION
displayName: run 'unit-tests' nextest tests
- task: PublishTestResults@2
inputs:
testResultsFormat: JUnit
testResultsFiles: $(floweyvar1)
testRunTitle: x64-linux-unit-tests
displayName: 'publish test results: x64-linux-unit-tests (JUnit XML)'
condition: and(eq(variables['FLOWEY_CONDITION'], true), succeeded(), not(canceled()))
- bash: $(FLOWEY_BIN) e 11 flowey_lib_hvlite::_jobs::build_and_run_nextest_unit_tests 1
displayName: report test results to overall pipeline status
- bash: $(FLOWEY_BIN) e 11 flowey_lib_hvlite::_jobs::build_and_run_doc_tests 0
displayName: run doctests for x86_64-unknown-linux-gnu
- bash: $(FLOWEY_BIN) e 11 flowey_lib_common::cache 3
displayName: 'validate cache entry: cargo-nextest'
- bash: $(FLOWEY_BIN) e 11 flowey_lib_common::cache 7
displayName: 'validate cache entry: gh-release-download'
- job: job10
displayName: clippy [x64-windows], unit tests [x64-windows]
pool: HvLite-CI-Win-Pool
dependsOn: []
condition: and(succeeded(), not(canceled()))
variables:
- name: FLOWEY_TEMP_DIR
value: $(Build.StagingDirectory)/.flowey-internal
steps:
- bash: |
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.91.1 -y
. "$HOME/.cargo/env"
echo '##vso[task.prependpath]$(HOME)/.cargo/bin'
condition: eq(variables['Agent.OS'], 'Linux')
displayName: rustup (Linux)
- bash: |
set -x
curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
./rustup-init.exe -y --default-toolchain=1.91.1
echo '##vso[task.prependpath]$(USERPROFILE)\\.cargo\\bin'
condition: eq(variables['Agent.OS'], 'Windows_NT')
displayName: rustup (Windows X64)
- bash: |
set -x
rustup show
displayName: Verify rustup installation
- checkout: self
fetchTags: false
fetchDepth: 1
path: flowey_bootstrap
- bash: CARGO_INCREMENTAL=0 RUSTC_BOOTSTRAP=1 RUSTFLAGS="-Z threads=8" cargo build -p flowey_hvlite --target x86_64-pc-windows-msvc --profile flowey-ci
workingDirectory: ../flowey_bootstrap
displayName: Build flowey
- bash: |
mkdir ./flowey_bootstrap_temp
mv ./ci-flowey/openvmm-pr.yaml ./flowey_bootstrap_temp/pipeline.yaml
mv ./ci-flowey/openvmm-pr.json ./flowey_bootstrap_temp/pipeline.json
mv target/x86_64-pc-windows-msvc/flowey-ci/flowey_hvlite.exe ./flowey_bootstrap_temp/flowey.exe
workingDirectory: ../flowey_bootstrap
displayName: Stage flowey artifact
- task: CopyFiles@2
displayName: Copy flowey artifact
inputs:
SourceFolder: ../flowey_bootstrap/flowey_bootstrap_temp
TargetFolder: $(FLOWEY_TEMP_DIR)/bootstrapped-flowey
- bash: rm -rf ./flowey_bootstrap_temp
workingDirectory: ../flowey_bootstrap
displayName: Cleanup staged flowey artifact
- bash: |
set -e
AgentTempDirNormal="$(FLOWEY_TEMP_DIR)"
AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
echo "##vso[task.setvariable variable=AgentTempDirNormal;]$AgentTempDirNormal"
chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe
FLOWEY_BIN="$AgentTempDirNormal/bootstrapped-flowey/flowey.exe"
echo "##vso[task.setvariable variable=FLOWEY_BIN;]$FLOWEY_BIN"
displayName: Set flowey path
- bash: |-
ESCAPED_AGENT_TEMPDIR=$(
cat <<'EOF' | sed 's/\\/\\\\/g'
$(FLOWEY_TEMP_DIR)
EOF
)
$(FLOWEY_BIN) pipeline ado --runtime $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out ci-flowey/openvmm-pr.yaml ci checkin-gates --config=pr
displayName: πΌπ Self-check YAML
- bash: |
set -e
echo '"debug"' | $FLOWEY_BIN v 10 'FLOWEY_LOG' update
echo "$(FLOWEY_TEMP_DIR)/work" | $FLOWEY_BIN v 10 '_internal_WORKING_DIR' --is-raw-string update
cat <<'EOF' | tr '[:upper:]' '[:lower:]' | $FLOWEY_BIN v 10 'verbose' update
${{ parameters.verbose }}
EOF
displayName: πΌπ« Initialize job
- bash: $(FLOWEY_BIN) e 10 flowey_lib_common::install_rust 0
displayName: install Rust
- bash: |-
set -e
$(FLOWEY_BIN) e 10 flowey_lib_common::install_rust 1
$(FLOWEY_BIN) e 10 flowey_lib_common::cfg_cargo_common_flags 0
displayName: detect active toolchain
- bash: |-
set -e
$(FLOWEY_BIN) e 10 flowey_lib_common::git_checkout 0
$FLOWEY_BIN v 10 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:299:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:300:46 write-to-env ado floweyvar6
$FLOWEY_BIN v 10 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:300:46' write-to-env ado FLOWEY_CONDITION
displayName: check if openvmm needs to be cloned
- checkout: self
path: repo0
fetchTags: false
fetchDepth: 1
persistCredentials: $(floweyvar6)
submodules: recursive
displayName: checkout repo openvmm
condition: and(eq(variables['FLOWEY_CONDITION'], true), succeeded(), not(canceled()))
- bash: |-
set -e
$(FLOWEY_BIN) e 10 flowey_lib_common::git_checkout 2
$(FLOWEY_BIN) e 10 flowey_lib_hvlite::git_checkout_openvmm_repo 0
displayName: report cloned repo directories
- bash: $(FLOWEY_BIN) e 10 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
displayName: set '-Dwarnings' in .cargo/config.toml
- bash: $(FLOWEY_BIN) e 10 flowey_lib_common::download_gh_release 0
displayName: create gh-release-download cache dir
- bash: |-
set -e
$(FLOWEY_BIN) e 10 flowey_lib_common::cache 4
$FLOWEY_BIN v 10 'flowey_lib_common::cache:8:flowey_lib_common/src/cache.rs:236:72' --is-raw-string write-to-env ado floweyvar4
$FLOWEY_BIN v 10 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:237:72' --is-raw-string write-to-env ado floweyvar5
displayName: Pre-processing cache vars
- task: Cache@2
inputs:
key: $(floweyvar5)
path: $(floweyvar4)
cacheHitVar: FLOWEY_CACHE_HITVAR
displayName: 'Restore cache: gh-release-download'
- bash: |-
set -e
$FLOWEY_BIN v 10 'flowey_lib_common::cache:11:flowey_lib_common/src/cache.rs:300:70' --is-raw-string update --env-source FLOWEY_CACHE_HITVAR <<'EOF'
$(FLOWEY_CACHE_HITVAR)
EOF
$(FLOWEY_BIN) e 10 flowey_lib_common::cache 6
displayName: map ADO hitvar to flowey
- bash: $(FLOWEY_BIN) e 10 flowey_lib_common::download_gh_release 1
displayName: download artifacts from github releases
- bash: |-
set -e
$(FLOWEY_BIN) e 10 flowey_lib_common::download_protoc 0
$(FLOWEY_BIN) e 10 flowey_lib_hvlite::cfg_openvmm_magicpath 0
displayName: unpack protoc
- bash: |-
set -e
$(FLOWEY_BIN) e 10 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
$(FLOWEY_BIN) e 10 flowey_lib_hvlite::init_cross_build 0
$(FLOWEY_BIN) e 10 flowey_lib_hvlite::init_cross_build 2
displayName: symlink protoc
- bash: |-
set -e
$(FLOWEY_BIN) e 10 flowey_lib_common::run_cargo_build 0
$(FLOWEY_BIN) e 10 flowey_lib_hvlite::run_cargo_build 0
$(FLOWEY_BIN) e 10 flowey_lib_hvlite::build_xtask 0
displayName: cargo build xtask
- bash: $(FLOWEY_BIN) e 10 flowey_lib_hvlite::_jobs::check_clippy 0
displayName: determine clippy exclusions
- bash: $(FLOWEY_BIN) e 10 flowey_lib_common::run_cargo_clippy 0
displayName: cargo clippy
- bash: |-
set -e
$(FLOWEY_BIN) e 10 flowey_lib_common::download_cargo_nextest 0
$(FLOWEY_BIN) e 10 flowey_lib_common::download_cargo_nextest 1
$(FLOWEY_BIN) e 10 flowey_lib_common::download_cargo_nextest 2
$(FLOWEY_BIN) e 10 flowey_lib_common::download_cargo_nextest 3
displayName: create cargo-nextest cache dir
- bash: |-
set -e
$(FLOWEY_BIN) e 10 flowey_lib_common::cache 0
$FLOWEY_BIN v 10 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:236:72' --is-raw-string write-to-env ado floweyvar2
$FLOWEY_BIN v 10 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:237:72' --is-raw-string write-to-env ado floweyvar3
displayName: Pre-processing cache vars
- task: Cache@2
inputs:
key: $(floweyvar3)
path: $(floweyvar2)
cacheHitVar: FLOWEY_CACHE_HITVAR
displayName: 'Restore cache: cargo-nextest'
- bash: |-
set -e
$FLOWEY_BIN v 10 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:300:70' --is-raw-string update --env-source FLOWEY_CACHE_HITVAR <<'EOF'
$(FLOWEY_CACHE_HITVAR)
EOF
$(FLOWEY_BIN) e 10 flowey_lib_common::cache 2
displayName: map ADO hitvar to flowey
- bash: $(FLOWEY_BIN) e 10 flowey_lib_common::download_cargo_nextest 4
displayName: downloading cargo-nextest
- bash: $(FLOWEY_BIN) e 10 flowey_lib_common::install_rust 2
displayName: report $CARGO_HOME
- bash: |-
set -e
$(FLOWEY_BIN) e 10 flowey_lib_common::install_cargo_nextest 0
$(FLOWEY_BIN) e 10 flowey_lib_hvlite::init_cross_build 3
displayName: installing cargo-nextest
- bash: |-
set -e
$(FLOWEY_BIN) e 10 flowey_lib_common::run_cargo_build 1
$(FLOWEY_BIN) e 10 flowey_lib_hvlite::run_cargo_build 1
$(FLOWEY_BIN) e 10 flowey_lib_hvlite::build_xtask 1
displayName: cargo build xtask
- bash: |-
set -e
$(FLOWEY_BIN) e 10 flowey_lib_hvlite::build_nextest_unit_tests 0
$(FLOWEY_BIN) e 10 flowey_lib_hvlite::init_cross_build 1
$(FLOWEY_BIN) e 10 flowey_lib_hvlite::run_cargo_nextest_run 0
displayName: determine unit test exclusions
- bash: $(FLOWEY_BIN) e 10 flowey_lib_common::gen_cargo_nextest_run_cmd 0
displayName: generate nextest command
- bash: |-
set -e
$(FLOWEY_BIN) e 10 flowey_lib_common::run_cargo_nextest_run 0
$(FLOWEY_BIN) e 10 flowey_lib_common::run_cargo_nextest_run 1
$(FLOWEY_BIN) e 10 flowey_lib_hvlite::_jobs::build_and_run_nextest_unit_tests 0
$(FLOWEY_BIN) e 10 flowey_lib_common::publish_test_results 1
$(FLOWEY_BIN) e 10 flowey_lib_common::ado_task_publish_test_results 0
$(FLOWEY_BIN) e 10 flowey_lib_common::publish_test_results 0
$FLOWEY_BIN v 10 'flowey_lib_common::ado_task_publish_test_results:0:flowey_lib_common/src/ado_task_publish_test_results.rs:57:45' --is-raw-string --condvar flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env ado floweyvar1
$FLOWEY_BIN v 10 'flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env ado FLOWEY_CONDITION
displayName: run 'unit-tests' nextest tests
- task: PublishTestResults@2
inputs:
testResultsFormat: JUnit
testResultsFiles: $(floweyvar1)
testRunTitle: x64-windows-unit-tests
displayName: 'publish test results: x64-windows-unit-tests (JUnit XML)'
condition: and(eq(variables['FLOWEY_CONDITION'], true), succeeded(), not(canceled()))
- bash: $(FLOWEY_BIN) e 10 flowey_lib_hvlite::_jobs::build_and_run_nextest_unit_tests 1
displayName: report test results to overall pipeline status
- bash: $(FLOWEY_BIN) e 10 flowey_lib_hvlite::_jobs::build_and_run_doc_tests 0
displayName: run doctests for x86_64-pc-windows-msvc
- bash: $(FLOWEY_BIN) e 10 flowey_lib_common::cache 3
displayName: 'validate cache entry: cargo-nextest'
- bash: $(FLOWEY_BIN) e 10 flowey_lib_common::cache 7
displayName: 'validate cache entry: gh-release-download'
- job: job9
displayName: build openhcl [x64-linux]
pool: HvLite-CI-Linux-Pool-CentralUS
dependsOn: []
condition: and(succeeded(), not(canceled()))
variables:
- name: FLOWEY_TEMP_DIR
value: $(Build.StagingDirectory)/.flowey-internal
steps:
- bash: |
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.91.1 -y
. "$HOME/.cargo/env"
echo '##vso[task.prependpath]$(HOME)/.cargo/bin'
condition: eq(variables['Agent.OS'], 'Linux')
displayName: rustup (Linux)
- bash: |
set -x
curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
./rustup-init.exe -y --default-toolchain=1.91.1
echo '##vso[task.prependpath]$(USERPROFILE)\\.cargo\\bin'
condition: eq(variables['Agent.OS'], 'Windows_NT')
displayName: rustup (Windows X64)
- bash: |
set -x
rustup show
displayName: Verify rustup installation
- checkout: self
fetchTags: false
fetchDepth: 1
path: flowey_bootstrap
- bash: CARGO_INCREMENTAL=0 RUSTC_BOOTSTRAP=1 RUSTFLAGS="-Z threads=8" cargo build -p flowey_hvlite --target x86_64-unknown-linux-gnu --profile flowey-ci
workingDirectory: ../flowey_bootstrap
displayName: Build flowey
- bash: |
mkdir ./flowey_bootstrap_temp
mv ./ci-flowey/openvmm-pr.yaml ./flowey_bootstrap_temp/pipeline.yaml
mv ./ci-flowey/openvmm-pr.json ./flowey_bootstrap_temp/pipeline.json
mv target/x86_64-unknown-linux-gnu/flowey-ci/flowey_hvlite ./flowey_bootstrap_temp/flowey
workingDirectory: ../flowey_bootstrap
displayName: Stage flowey artifact
- task: CopyFiles@2
displayName: Copy flowey artifact
inputs:
SourceFolder: ../flowey_bootstrap/flowey_bootstrap_temp
TargetFolder: $(FLOWEY_TEMP_DIR)/bootstrapped-flowey
- bash: rm -rf ./flowey_bootstrap_temp
workingDirectory: ../flowey_bootstrap
displayName: Cleanup staged flowey artifact
- bash: |
set -e
AgentTempDirNormal="$(FLOWEY_TEMP_DIR)"
AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
echo "##vso[task.setvariable variable=AgentTempDirNormal;]$AgentTempDirNormal"
chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey
FLOWEY_BIN="$AgentTempDirNormal/bootstrapped-flowey/flowey"
echo "##vso[task.setvariable variable=FLOWEY_BIN;]$FLOWEY_BIN"
displayName: Set flowey path
- bash: |-
ESCAPED_AGENT_TEMPDIR=$(
cat <<'EOF' | sed 's/\\/\\\\/g'
$(FLOWEY_TEMP_DIR)
EOF
)
$(FLOWEY_BIN) pipeline ado --runtime $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out ci-flowey/openvmm-pr.yaml ci checkin-gates --config=pr
displayName: πΌπ Self-check YAML
- bash: |
set -e
echo '"debug"' | $FLOWEY_BIN v 9 'FLOWEY_LOG' update
echo "$(FLOWEY_TEMP_DIR)/work" | $FLOWEY_BIN v 9 '_internal_WORKING_DIR' --is-raw-string update
cat <<'EOF' | tr '[:upper:]' '[:lower:]' | $FLOWEY_BIN v 9 'verbose' update
${{ parameters.verbose }}
EOF
mkdir -p "$(AgentTempDirNormal)/publish_artifacts/x64-linux-musl-pipette"
echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/x64-linux-musl-pipette" | $FLOWEY_BIN v 9 'artifact_publish_from_x64-linux-musl-pipette' --is-raw-string update
mkdir -p "$(AgentTempDirNormal)/publish_artifacts/x64-linux-musl-tmk_vmm"
echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/x64-linux-musl-tmk_vmm" | $FLOWEY_BIN v 9 'artifact_publish_from_x64-linux-musl-tmk_vmm' --is-raw-string update
mkdir -p "$(AgentTempDirNormal)/publish_artifacts/x64-openhcl-igvm"
echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/x64-openhcl-igvm" | $FLOWEY_BIN v 9 'artifact_publish_from_x64-openhcl-igvm' --is-raw-string update
mkdir -p "$(AgentTempDirNormal)/publish_artifacts/x64-openhcl-igvm-extras"
echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/x64-openhcl-igvm-extras" | $FLOWEY_BIN v 9 'artifact_publish_from_x64-openhcl-igvm-extras' --is-raw-string update
displayName: πΌπ« Initialize job
- bash: $(FLOWEY_BIN) e 9 flowey_lib_common::install_dist_pkg 0
displayName: checking if packages need to be installed
- bash: $(FLOWEY_BIN) e 9 flowey_lib_common::install_dist_pkg 1
displayName: installing packages
- bash: $(FLOWEY_BIN) e 9 flowey_lib_common::download_gh_release 0
displayName: create gh-release-download cache dir
- bash: |-
set -e
$(FLOWEY_BIN) e 9 flowey_lib_common::cache 0
$FLOWEY_BIN v 9 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:236:72' --is-raw-string write-to-env ado floweyvar1
$FLOWEY_BIN v 9 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:237:72' --is-raw-string write-to-env ado floweyvar2
displayName: Pre-processing cache vars
- task: Cache@2
inputs:
key: $(floweyvar2)
path: $(floweyvar1)
cacheHitVar: FLOWEY_CACHE_HITVAR
displayName: 'Restore cache: gh-release-download'
- bash: |-
set -e
$FLOWEY_BIN v 9 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:300:70' --is-raw-string update --env-source FLOWEY_CACHE_HITVAR <<'EOF'
$(FLOWEY_CACHE_HITVAR)
EOF
$(FLOWEY_BIN) e 9 flowey_lib_common::cache 2
displayName: map ADO hitvar to flowey
- bash: $(FLOWEY_BIN) e 9 flowey_lib_common::download_gh_release 1
displayName: download artifacts from github releases
- bash: $(FLOWEY_BIN) e 9 flowey_lib_hvlite::download_uefi_mu_msvm 0
displayName: unpack mu_msvm package (x64)
- bash: $(FLOWEY_BIN) e 9 flowey_lib_common::install_rust 0
displayName: install Rust
- bash: |-
set -e
$(FLOWEY_BIN) e 9 flowey_lib_common::install_rust 1
$(FLOWEY_BIN) e 9 flowey_lib_common::cfg_cargo_common_flags 0
displayName: detect active toolchain
- bash: |-
set -e
$(FLOWEY_BIN) e 9 flowey_lib_common::git_checkout 0
$FLOWEY_BIN v 9 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:299:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:300:46 write-to-env ado floweyvar3
$FLOWEY_BIN v 9 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:300:46' write-to-env ado FLOWEY_CONDITION
displayName: check if openvmm needs to be cloned
- checkout: self
path: repo0
fetchTags: false
fetchDepth: 1
persistCredentials: $(floweyvar3)
submodules: recursive
displayName: checkout repo openvmm
condition: and(eq(variables['FLOWEY_CONDITION'], true), succeeded(), not(canceled()))
- bash: |-
set -e
$(FLOWEY_BIN) e 9 flowey_lib_common::git_checkout 2
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::git_checkout_openvmm_repo 0
displayName: report cloned repo directories
- bash: $(FLOWEY_BIN) e 9 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
displayName: set '-Dwarnings' in .cargo/config.toml
- bash: |-
set -e
$(FLOWEY_BIN) e 9 flowey_lib_common::download_protoc 0
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::cfg_openvmm_magicpath 0
displayName: unpack protoc
- bash: |-
set -e
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::init_cross_build 0
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::run_cargo_build 9
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::run_cargo_build 10
displayName: symlink protoc
- bash: |-
set -e
$(FLOWEY_BIN) e 9 flowey_lib_common::run_cargo_build 4
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::run_cargo_build 11
displayName: cargo build sidecar
- bash: |-
set -e
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::run_split_debug_info 7
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::run_cargo_build 12
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_sidecar 0
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::init_cross_build 1
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::run_cargo_build 2
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::run_cargo_build 3
displayName: split debug symbols
- bash: |-
set -e
$(FLOWEY_BIN) e 9 flowey_lib_common::run_cargo_build 1
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::run_cargo_build 4
displayName: cargo build openhcl_boot
- bash: |-
set -e
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::run_split_debug_info 5
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::run_cargo_build 5
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_boot 0
displayName: split debug symbols
- bash: |-
set -e
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::download_openhcl_kernel_package 2
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 30
displayName: unpack kernel package
- bash: $(FLOWEY_BIN) e 9 flowey_lib_hvlite::resolve_openvmm_deps 0
displayName: unpack openvmm-deps archive
- bash: |-
set -e
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::init_openvmm_magicpath_openhcl_sysroot 0
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::init_cross_build 3
displayName: extract X64 sysroot.tar.gz
- bash: |-
set -e
$(FLOWEY_BIN) e 9 flowey_lib_common::run_cargo_build 2
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::run_cargo_build 6
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openvmm_hcl 0
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 26
displayName: cargo build openvmm_hcl
- bash: |-
set -e
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::run_split_debug_info 4
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 27
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 28
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 31
displayName: split debug symbols
- bash: |-
set -e
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_initrd 4
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 32
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 33
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::init_cross_build 2
displayName: building openhcl initrd
- bash: |-
set -e
$(FLOWEY_BIN) e 9 flowey_lib_common::run_cargo_build 0
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::run_cargo_build 0
displayName: cargo build igvmfilegen
- bash: |-
set -e
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::run_split_debug_info 9
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::run_cargo_build 1
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_igvmfilegen 0
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 34
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 35
displayName: split debug symbols
- bash: |-
set -e
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::run_igvmfilegen 4
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 2
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 42
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 38
displayName: building igvm file
- bash: |-
set -e
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::run_split_debug_info 0
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 39
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 40
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 43
displayName: split debug symbols
- bash: $(FLOWEY_BIN) e 9 flowey_lib_hvlite::download_openhcl_kernel_package 0
displayName: unpack kernel package
- bash: |-
set -e
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_initrd 0
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 44
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 45
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 46
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 47
displayName: building openhcl initrd
- bash: |-
set -e
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::run_igvmfilegen 0
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 4
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 54
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 50
displayName: building igvm file
- bash: |-
set -e
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::run_split_debug_info 2
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 51
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 52
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 55
displayName: split debug symbols
- bash: |-
set -e
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_initrd 1
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 56
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 57
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 58
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 59
displayName: building openhcl initrd
- bash: |-
set -e
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::run_igvmfilegen 1
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 6
displayName: building igvm file
- bash: |-
set -e
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::download_openhcl_kernel_package 1
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 18
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 14
displayName: unpack kernel package
- bash: |-
set -e
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::run_split_debug_info 3
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 15
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 16
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 19
displayName: split debug symbols
- bash: |-
set -e
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_initrd 3
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 20
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 21
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 22
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 23
displayName: building openhcl initrd
- bash: |-
set -e
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::run_igvmfilegen 3
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 8
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 6
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 2
displayName: building igvm file
- bash: |-
set -e
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::run_split_debug_info 1
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 3
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 4
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 7
displayName: split debug symbols
- bash: |-
set -e
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_initrd 2
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 8
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 9
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 10
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 11
displayName: building openhcl initrd
- bash: |-
set -e
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::run_igvmfilegen 2
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 0
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::artifact_openhcl_igvm_from_recipe::publish 0
displayName: building igvm file
- bash: |-
set -e
$(FLOWEY_BIN) e 9 flowey_lib_common::copy_to_artifact_dir 1
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 24
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 29
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 25
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 3
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 41
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 37
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 36
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 5
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 53
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 49
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 48
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 7
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 17
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 13
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 12
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 9
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 5
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 1
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 0
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 1
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::artifact_openhcl_igvm_from_recipe_extras::publish 0
displayName: copying OpenHCL igvm files to artifact dir
- bash: |-
set -e
$(FLOWEY_BIN) e 9 flowey_lib_common::copy_to_artifact_dir 0
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::init_cross_build 4
displayName: copying OpenHCL igvm extras to artifact dir
- bash: |-
set -e
$(FLOWEY_BIN) e 9 flowey_lib_common::run_cargo_build 3
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::run_cargo_build 7
displayName: cargo build pipette
- bash: |-
set -e
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::run_split_debug_info 6
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::run_cargo_build 8
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_pipette 0
$(FLOWEY_BIN) e 9 flowey_core::pipeline::artifact::publish 0
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::init_cross_build 5
displayName: split debug symbols
- bash: |-
set -e
$(FLOWEY_BIN) e 9 flowey_lib_common::run_cargo_build 5
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::run_cargo_build 13
displayName: cargo build tmk_vmm
- bash: |-
set -e
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::run_split_debug_info 8
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::run_cargo_build 14
$(FLOWEY_BIN) e 9 flowey_lib_hvlite::build_tmk_vmm 0
$(FLOWEY_BIN) e 9 flowey_core::pipeline::artifact::publish 1
displayName: split debug symbols
- bash: $(FLOWEY_BIN) e 9 flowey_lib_common::cache 3
displayName: 'validate cache entry: gh-release-download'
- publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/x64-linux-musl-pipette
displayName: πΌπ¦ Publish x64-linux-musl-pipette
artifact: x64-linux-musl-pipette
- publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/x64-linux-musl-tmk_vmm
displayName: πΌπ¦ Publish x64-linux-musl-tmk_vmm
artifact: x64-linux-musl-tmk_vmm
- publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/x64-openhcl-igvm
displayName: πΌπ¦ Publish x64-openhcl-igvm
artifact: x64-openhcl-igvm
- publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/x64-openhcl-igvm-extras
displayName: πΌπ¦ Publish x64-openhcl-igvm-extras
artifact: x64-openhcl-igvm-extras
- bash: rm $(AgentTempDirNormal)/bootstrapped-flowey/job9.json
displayName: πΌπ§Ό Redact bootstrap var db
- publish: $(FLOWEY_TEMP_DIR)/bootstrapped-flowey
displayName: πΌπ₯Ύ Publish bootstrapped flowey
artifact: _internal-flowey-bootstrap-x86_64-linux-uid-4
- job: job8
displayName: build openhcl [aarch64-linux]
pool: HvLite-CI-Linux-Pool-CentralUS
dependsOn: []
condition: and(succeeded(), not(canceled()))
variables:
- name: FLOWEY_TEMP_DIR
value: $(Build.StagingDirectory)/.flowey-internal
steps:
- bash: |
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.91.1 -y
. "$HOME/.cargo/env"
echo '##vso[task.prependpath]$(HOME)/.cargo/bin'
condition: eq(variables['Agent.OS'], 'Linux')
displayName: rustup (Linux)
- bash: |
set -x
curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
./rustup-init.exe -y --default-toolchain=1.91.1
echo '##vso[task.prependpath]$(USERPROFILE)\\.cargo\\bin'
condition: eq(variables['Agent.OS'], 'Windows_NT')
displayName: rustup (Windows X64)
- bash: |
set -x
rustup show
displayName: Verify rustup installation
- checkout: self
fetchTags: false
fetchDepth: 1
path: flowey_bootstrap
- bash: CARGO_INCREMENTAL=0 RUSTC_BOOTSTRAP=1 RUSTFLAGS="-Z threads=8" cargo build -p flowey_hvlite --target x86_64-unknown-linux-gnu --profile flowey-ci
workingDirectory: ../flowey_bootstrap
displayName: Build flowey
- bash: |
mkdir ./flowey_bootstrap_temp
mv ./ci-flowey/openvmm-pr.yaml ./flowey_bootstrap_temp/pipeline.yaml
mv ./ci-flowey/openvmm-pr.json ./flowey_bootstrap_temp/pipeline.json
mv target/x86_64-unknown-linux-gnu/flowey-ci/flowey_hvlite ./flowey_bootstrap_temp/flowey
workingDirectory: ../flowey_bootstrap
displayName: Stage flowey artifact
- task: CopyFiles@2
displayName: Copy flowey artifact
inputs:
SourceFolder: ../flowey_bootstrap/flowey_bootstrap_temp
TargetFolder: $(FLOWEY_TEMP_DIR)/bootstrapped-flowey
- bash: rm -rf ./flowey_bootstrap_temp
workingDirectory: ../flowey_bootstrap
displayName: Cleanup staged flowey artifact
- bash: |
set -e
AgentTempDirNormal="$(FLOWEY_TEMP_DIR)"
AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
echo "##vso[task.setvariable variable=AgentTempDirNormal;]$AgentTempDirNormal"
chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey
FLOWEY_BIN="$AgentTempDirNormal/bootstrapped-flowey/flowey"
echo "##vso[task.setvariable variable=FLOWEY_BIN;]$FLOWEY_BIN"
displayName: Set flowey path
- bash: |-
ESCAPED_AGENT_TEMPDIR=$(
cat <<'EOF' | sed 's/\\/\\\\/g'
$(FLOWEY_TEMP_DIR)
EOF
)
$(FLOWEY_BIN) pipeline ado --runtime $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out ci-flowey/openvmm-pr.yaml ci checkin-gates --config=pr
displayName: πΌπ Self-check YAML
- bash: |
set -e
echo '"debug"' | $FLOWEY_BIN v 8 'FLOWEY_LOG' update
echo "$(FLOWEY_TEMP_DIR)/work" | $FLOWEY_BIN v 8 '_internal_WORKING_DIR' --is-raw-string update
cat <<'EOF' | tr '[:upper:]' '[:lower:]' | $FLOWEY_BIN v 8 'verbose' update
${{ parameters.verbose }}
EOF
mkdir -p "$(AgentTempDirNormal)/publish_artifacts/aarch64-linux-musl-pipette"
echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-linux-musl-pipette" | $FLOWEY_BIN v 8 'artifact_publish_from_aarch64-linux-musl-pipette' --is-raw-string update
mkdir -p "$(AgentTempDirNormal)/publish_artifacts/aarch64-linux-musl-tmk_vmm"
echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-linux-musl-tmk_vmm" | $FLOWEY_BIN v 8 'artifact_publish_from_aarch64-linux-musl-tmk_vmm' --is-raw-string update
mkdir -p "$(AgentTempDirNormal)/publish_artifacts/aarch64-openhcl-igvm"
echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-openhcl-igvm" | $FLOWEY_BIN v 8 'artifact_publish_from_aarch64-openhcl-igvm' --is-raw-string update
mkdir -p "$(AgentTempDirNormal)/publish_artifacts/aarch64-openhcl-igvm-extras"
echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-openhcl-igvm-extras" | $FLOWEY_BIN v 8 'artifact_publish_from_aarch64-openhcl-igvm-extras' --is-raw-string update
displayName: πΌπ« Initialize job
- bash: $(FLOWEY_BIN) e 8 flowey_lib_common::install_dist_pkg 0
displayName: checking if packages need to be installed
- bash: $(FLOWEY_BIN) e 8 flowey_lib_common::install_dist_pkg 1
displayName: installing packages
- bash: $(FLOWEY_BIN) e 8 flowey_lib_common::download_gh_release 0
displayName: create gh-release-download cache dir
- bash: |-
set -e
$(FLOWEY_BIN) e 8 flowey_lib_common::cache 0
$FLOWEY_BIN v 8 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:236:72' --is-raw-string write-to-env ado floweyvar1
$FLOWEY_BIN v 8 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:237:72' --is-raw-string write-to-env ado floweyvar2
displayName: Pre-processing cache vars
- task: Cache@2
inputs:
key: $(floweyvar2)
path: $(floweyvar1)
cacheHitVar: FLOWEY_CACHE_HITVAR
displayName: 'Restore cache: gh-release-download'
- bash: |-
set -e
$FLOWEY_BIN v 8 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:300:70' --is-raw-string update --env-source FLOWEY_CACHE_HITVAR <<'EOF'
$(FLOWEY_CACHE_HITVAR)
EOF
$(FLOWEY_BIN) e 8 flowey_lib_common::cache 2
displayName: map ADO hitvar to flowey
- bash: $(FLOWEY_BIN) e 8 flowey_lib_common::download_gh_release 1
displayName: download artifacts from github releases
- bash: $(FLOWEY_BIN) e 8 flowey_lib_hvlite::download_uefi_mu_msvm 0
displayName: unpack mu_msvm package (aarch64)
- bash: $(FLOWEY_BIN) e 8 flowey_lib_common::install_rust 0
displayName: install Rust
- bash: |-
set -e
$(FLOWEY_BIN) e 8 flowey_lib_common::install_rust 1
$(FLOWEY_BIN) e 8 flowey_lib_common::cfg_cargo_common_flags 0
displayName: detect active toolchain
- bash: |-
set -e
$(FLOWEY_BIN) e 8 flowey_lib_common::git_checkout 0
$FLOWEY_BIN v 8 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:299:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:300:46 write-to-env ado floweyvar3
$FLOWEY_BIN v 8 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:300:46' write-to-env ado FLOWEY_CONDITION
displayName: check if openvmm needs to be cloned
- checkout: self
path: repo0
fetchTags: false
fetchDepth: 1
persistCredentials: $(floweyvar3)
submodules: recursive
displayName: checkout repo openvmm
condition: and(eq(variables['FLOWEY_CONDITION'], true), succeeded(), not(canceled()))
- bash: |-
set -e
$(FLOWEY_BIN) e 8 flowey_lib_common::git_checkout 2
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::git_checkout_openvmm_repo 0
displayName: report cloned repo directories
- bash: $(FLOWEY_BIN) e 8 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
displayName: set '-Dwarnings' in .cargo/config.toml
- bash: |-
set -e
$(FLOWEY_BIN) e 8 flowey_lib_common::download_protoc 0
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::cfg_openvmm_magicpath 0
displayName: unpack protoc
- bash: |-
set -e
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::init_cross_build 0
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::run_cargo_build 2
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::run_cargo_build 3
displayName: symlink protoc
- bash: |-
set -e
$(FLOWEY_BIN) e 8 flowey_lib_common::run_cargo_build 1
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::run_cargo_build 4
displayName: cargo build openhcl_boot
- bash: |-
set -e
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::run_split_debug_info 2
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::run_cargo_build 5
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::build_openhcl_boot 0
displayName: split debug symbols
- bash: |-
set -e
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::download_openhcl_kernel_package 1
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 18
displayName: unpack kernel package
- bash: $(FLOWEY_BIN) e 8 flowey_lib_hvlite::resolve_openvmm_deps 0
displayName: unpack openvmm-deps archive
- bash: |-
set -e
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::init_openvmm_magicpath_openhcl_sysroot 0
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::init_cross_build 1
displayName: extract Aarch64 sysroot.tar.gz
- bash: |-
set -e
$(FLOWEY_BIN) e 8 flowey_lib_common::run_cargo_build 2
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::run_cargo_build 6
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::build_openvmm_hcl 0
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 14
displayName: cargo build openvmm_hcl
- bash: |-
set -e
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::run_split_debug_info 1
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 15
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 16
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 19
displayName: split debug symbols
- bash: |-
set -e
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::build_openhcl_initrd 1
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 20
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 21
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::init_cross_build 4
displayName: building openhcl initrd
- bash: |-
set -e
$(FLOWEY_BIN) e 8 flowey_lib_common::run_cargo_build 0
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::run_cargo_build 0
displayName: cargo build igvmfilegen
- bash: |-
set -e
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::run_split_debug_info 5
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::run_cargo_build 1
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::build_igvmfilegen 0
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 22
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 23
displayName: split debug symbols
- bash: |-
set -e
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::run_igvmfilegen 1
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 2
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 6
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 2
displayName: building igvm file
- bash: |-
set -e
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::run_split_debug_info 0
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 3
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 4
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 7
displayName: split debug symbols
- bash: $(FLOWEY_BIN) e 8 flowey_lib_hvlite::download_openhcl_kernel_package 0
displayName: unpack kernel package
- bash: |-
set -e
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::build_openhcl_initrd 0
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 8
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 9
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 10
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 11
displayName: building openhcl initrd
- bash: |-
set -e
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::run_igvmfilegen 0
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 0
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::artifact_openhcl_igvm_from_recipe::publish 0
displayName: building igvm file
- bash: |-
set -e
$(FLOWEY_BIN) e 8 flowey_lib_common::copy_to_artifact_dir 1
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 12
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 17
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 13
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 3
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 5
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 1
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::build_openhcl_igvm_from_recipe 0
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::_jobs::build_and_publish_openhcl_igvm_from_recipe 1
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::artifact_openhcl_igvm_from_recipe_extras::publish 0
displayName: copying OpenHCL igvm files to artifact dir
- bash: |-
set -e
$(FLOWEY_BIN) e 8 flowey_lib_common::copy_to_artifact_dir 0
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::init_cross_build 2
displayName: copying OpenHCL igvm extras to artifact dir
- bash: |-
set -e
$(FLOWEY_BIN) e 8 flowey_lib_common::run_cargo_build 3
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::run_cargo_build 7
displayName: cargo build pipette
- bash: |-
set -e
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::run_split_debug_info 3
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::run_cargo_build 8
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::build_pipette 0
$(FLOWEY_BIN) e 8 flowey_core::pipeline::artifact::publish 0
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::init_cross_build 3
displayName: split debug symbols
- bash: |-
set -e
$(FLOWEY_BIN) e 8 flowey_lib_common::run_cargo_build 4
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::run_cargo_build 9
displayName: cargo build tmk_vmm
- bash: |-
set -e
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::run_split_debug_info 4
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::run_cargo_build 10
$(FLOWEY_BIN) e 8 flowey_lib_hvlite::build_tmk_vmm 0
$(FLOWEY_BIN) e 8 flowey_core::pipeline::artifact::publish 1
displayName: split debug symbols
- bash: $(FLOWEY_BIN) e 8 flowey_lib_common::cache 3
displayName: 'validate cache entry: gh-release-download'
- publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-linux-musl-pipette
displayName: πΌπ¦ Publish aarch64-linux-musl-pipette
artifact: aarch64-linux-musl-pipette
- publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-linux-musl-tmk_vmm
displayName: πΌπ¦ Publish aarch64-linux-musl-tmk_vmm
artifact: aarch64-linux-musl-tmk_vmm
- publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-openhcl-igvm
displayName: πΌπ¦ Publish aarch64-openhcl-igvm
artifact: aarch64-openhcl-igvm
- publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-openhcl-igvm-extras
displayName: πΌπ¦ Publish aarch64-openhcl-igvm-extras
artifact: aarch64-openhcl-igvm-extras
- job: job7
displayName: build artifacts [x64-linux]
pool: HvLite-CI-Linux-Pool-CentralUS
dependsOn: []
condition: and(succeeded(), not(canceled()))
variables:
- name: FLOWEY_TEMP_DIR
value: $(Build.StagingDirectory)/.flowey-internal
steps:
- bash: |
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.91.1 -y
. "$HOME/.cargo/env"
echo '##vso[task.prependpath]$(HOME)/.cargo/bin'
condition: eq(variables['Agent.OS'], 'Linux')
displayName: rustup (Linux)
- bash: |
set -x
curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
./rustup-init.exe -y --default-toolchain=1.91.1
echo '##vso[task.prependpath]$(USERPROFILE)\\.cargo\\bin'
condition: eq(variables['Agent.OS'], 'Windows_NT')
displayName: rustup (Windows X64)
- bash: |
set -x
rustup show
displayName: Verify rustup installation
- checkout: self
fetchTags: false
fetchDepth: 1
path: flowey_bootstrap
- bash: CARGO_INCREMENTAL=0 RUSTC_BOOTSTRAP=1 RUSTFLAGS="-Z threads=8" cargo build -p flowey_hvlite --target x86_64-unknown-linux-gnu --profile flowey-ci
workingDirectory: ../flowey_bootstrap
displayName: Build flowey
- bash: |
mkdir ./flowey_bootstrap_temp
mv ./ci-flowey/openvmm-pr.yaml ./flowey_bootstrap_temp/pipeline.yaml
mv ./ci-flowey/openvmm-pr.json ./flowey_bootstrap_temp/pipeline.json
mv target/x86_64-unknown-linux-gnu/flowey-ci/flowey_hvlite ./flowey_bootstrap_temp/flowey
workingDirectory: ../flowey_bootstrap
displayName: Stage flowey artifact
- task: CopyFiles@2
displayName: Copy flowey artifact
inputs:
SourceFolder: ../flowey_bootstrap/flowey_bootstrap_temp
TargetFolder: $(FLOWEY_TEMP_DIR)/bootstrapped-flowey
- bash: rm -rf ./flowey_bootstrap_temp
workingDirectory: ../flowey_bootstrap
displayName: Cleanup staged flowey artifact
- bash: |
set -e
AgentTempDirNormal="$(FLOWEY_TEMP_DIR)"
AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
echo "##vso[task.setvariable variable=AgentTempDirNormal;]$AgentTempDirNormal"
chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey
FLOWEY_BIN="$AgentTempDirNormal/bootstrapped-flowey/flowey"
echo "##vso[task.setvariable variable=FLOWEY_BIN;]$FLOWEY_BIN"
displayName: Set flowey path
- bash: |-
ESCAPED_AGENT_TEMPDIR=$(
cat <<'EOF' | sed 's/\\/\\\\/g'
$(FLOWEY_TEMP_DIR)
EOF
)
$(FLOWEY_BIN) pipeline ado --runtime $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out ci-flowey/openvmm-pr.yaml ci checkin-gates --config=pr
displayName: πΌπ Self-check YAML
- bash: |
set -e
echo '"debug"' | $FLOWEY_BIN v 7 'FLOWEY_LOG' update
echo "$(FLOWEY_TEMP_DIR)/work" | $FLOWEY_BIN v 7 '_internal_WORKING_DIR' --is-raw-string update
cat <<'EOF' | tr '[:upper:]' '[:lower:]' | $FLOWEY_BIN v 7 'verbose' update
${{ parameters.verbose }}
EOF
mkdir -p "$(AgentTempDirNormal)/publish_artifacts/x64-guest_test_uefi"
echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/x64-guest_test_uefi" | $FLOWEY_BIN v 7 'artifact_publish_from_x64-guest_test_uefi' --is-raw-string update
mkdir -p "$(AgentTempDirNormal)/publish_artifacts/x64-linux-igvmfilegen"
echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/x64-linux-igvmfilegen" | $FLOWEY_BIN v 7 'artifact_publish_from_x64-linux-igvmfilegen' --is-raw-string update
mkdir -p "$(AgentTempDirNormal)/publish_artifacts/x64-linux-ohcldiag-dev"
echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/x64-linux-ohcldiag-dev" | $FLOWEY_BIN v 7 'artifact_publish_from_x64-linux-ohcldiag-dev' --is-raw-string update
mkdir -p "$(AgentTempDirNormal)/publish_artifacts/x64-linux-openvmm"
echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/x64-linux-openvmm" | $FLOWEY_BIN v 7 'artifact_publish_from_x64-linux-openvmm' --is-raw-string update
mkdir -p "$(AgentTempDirNormal)/publish_artifacts/x64-linux-tpm_guest_tests"
echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/x64-linux-tpm_guest_tests" | $FLOWEY_BIN v 7 'artifact_publish_from_x64-linux-tpm_guest_tests' --is-raw-string update
mkdir -p "$(AgentTempDirNormal)/publish_artifacts/x64-linux-vmgs_lib"
echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/x64-linux-vmgs_lib" | $FLOWEY_BIN v 7 'artifact_publish_from_x64-linux-vmgs_lib' --is-raw-string update
mkdir -p "$(AgentTempDirNormal)/publish_artifacts/x64-linux-vmgstool"
echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/x64-linux-vmgstool" | $FLOWEY_BIN v 7 'artifact_publish_from_x64-linux-vmgstool' --is-raw-string update
mkdir -p "$(AgentTempDirNormal)/publish_artifacts/x64-linux-vmm-tests-archive"
echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/x64-linux-vmm-tests-archive" | $FLOWEY_BIN v 7 'artifact_publish_from_x64-linux-vmm-tests-archive' --is-raw-string update
mkdir -p "$(AgentTempDirNormal)/publish_artifacts/x64-tmks"
echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/x64-tmks" | $FLOWEY_BIN v 7 'artifact_publish_from_x64-tmks' --is-raw-string update
displayName: πΌπ« Initialize job
- bash: $(FLOWEY_BIN) e 7 flowey_lib_common::install_rust 0
displayName: install Rust
- bash: |-
set -e
$(FLOWEY_BIN) e 7 flowey_lib_common::install_rust 1
$(FLOWEY_BIN) e 7 flowey_lib_common::cfg_cargo_common_flags 0
displayName: detect active toolchain
- bash: $(FLOWEY_BIN) e 7 flowey_lib_common::install_dist_pkg 0
displayName: checking if packages need to be installed
- bash: $(FLOWEY_BIN) e 7 flowey_lib_common::install_dist_pkg 1
displayName: installing packages
- bash: |-
set -e
$(FLOWEY_BIN) e 7 flowey_lib_common::git_checkout 0
$FLOWEY_BIN v 7 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:299:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:300:46 write-to-env ado floweyvar1
$FLOWEY_BIN v 7 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:300:46' write-to-env ado FLOWEY_CONDITION
displayName: check if openvmm needs to be cloned
- checkout: self
path: repo0
fetchTags: false
fetchDepth: 1
persistCredentials: $(floweyvar1)
submodules: recursive
displayName: checkout repo openvmm
condition: and(eq(variables['FLOWEY_CONDITION'], true), succeeded(), not(canceled()))
- bash: |-
set -e
$(FLOWEY_BIN) e 7 flowey_lib_common::git_checkout 2
$(FLOWEY_BIN) e 7 flowey_lib_hvlite::git_checkout_openvmm_repo 0
displayName: report cloned repo directories
- bash: $(FLOWEY_BIN) e 7 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
displayName: set '-Dwarnings' in .cargo/config.toml
- bash: $(FLOWEY_BIN) e 7 flowey_lib_common::download_gh_release 0
displayName: create gh-release-download cache dir
- bash: |-
set -e
$(FLOWEY_BIN) e 7 flowey_lib_common::cache 4
$FLOWEY_BIN v 7 'flowey_lib_common::cache:8:flowey_lib_common/src/cache.rs:236:72' --is-raw-string write-to-env ado floweyvar4
$FLOWEY_BIN v 7 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:237:72' --is-raw-string write-to-env ado floweyvar5
displayName: Pre-processing cache vars
- task: Cache@2
inputs:
key: $(floweyvar5)
path: $(floweyvar4)
cacheHitVar: FLOWEY_CACHE_HITVAR
displayName: 'Restore cache: gh-release-download'
- bash: |-
set -e
$FLOWEY_BIN v 7 'flowey_lib_common::cache:11:flowey_lib_common/src/cache.rs:300:70' --is-raw-string update --env-source FLOWEY_CACHE_HITVAR <<'EOF'
$(FLOWEY_CACHE_HITVAR)
EOF
$(FLOWEY_BIN) e 7 flowey_lib_common::cache 6
displayName: map ADO hitvar to flowey
- bash: $(FLOWEY_BIN) e 7 flowey_lib_common::download_gh_release 1
displayName: download artifacts from github releases
- bash: |-
set -e
$(FLOWEY_BIN) e 7 flowey_lib_common::download_protoc 0
$(FLOWEY_BIN) e 7 flowey_lib_hvlite::cfg_openvmm_magicpath 0
displayName: unpack protoc
- bash: |-
set -e
$(FLOWEY_BIN) e 7 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
$(FLOWEY_BIN) e 7 flowey_lib_hvlite::init_cross_build 3
displayName: symlink protoc
- bash: |-
set -e
$(FLOWEY_BIN) e 7 flowey_lib_common::run_cargo_build 3
$(FLOWEY_BIN) e 7 flowey_lib_hvlite::run_cargo_build 5
displayName: cargo build openvmm
- bash: |-
set -e
$(FLOWEY_BIN) e 7 flowey_lib_hvlite::run_split_debug_info 1
$(FLOWEY_BIN) e 7 flowey_lib_hvlite::run_cargo_build 6
$(FLOWEY_BIN) e 7 flowey_lib_hvlite::build_openvmm 0
$(FLOWEY_BIN) e 7 flowey_core::pipeline::artifact::publish 0
$(FLOWEY_BIN) e 7 flowey_lib_hvlite::init_cross_build 6
displayName: split debug symbols
- bash: |-
set -e
$(FLOWEY_BIN) e 7 flowey_lib_common::run_cargo_build 7
$(FLOWEY_BIN) e 7 flowey_lib_hvlite::run_cargo_build 14
displayName: cargo build vmgstool
- bash: |-
set -e
$(FLOWEY_BIN) e 7 flowey_lib_hvlite::run_split_debug_info 4
$(FLOWEY_BIN) e 7 flowey_lib_hvlite::run_cargo_build 15
$(FLOWEY_BIN) e 7 flowey_lib_hvlite::build_vmgstool 0
$(FLOWEY_BIN) e 7 flowey_core::pipeline::artifact::publish 1
$(FLOWEY_BIN) e 7 flowey_lib_hvlite::init_cross_build 5
displayName: split debug symbols
- bash: |-
set -e
$(FLOWEY_BIN) e 7 flowey_lib_common::run_cargo_build 6
$(FLOWEY_BIN) e 7 flowey_lib_hvlite::run_cargo_build 13
$(FLOWEY_BIN) e 7 flowey_lib_hvlite::build_and_test_vmgs_lib 0
displayName: cargo build vmgs_lib
- bash: |-
set -e
$(FLOWEY_BIN) e 7 flowey_lib_hvlite::build_and_test_vmgs_lib 1
$(FLOWEY_BIN) e 7 flowey_lib_hvlite::build_and_test_vmgs_lib 2
$(FLOWEY_BIN) e 7 flowey_core::pipeline::artifact::publish 2
$(FLOWEY_BIN) e 7 flowey_lib_hvlite::init_cross_build 7
displayName: test vmgs_lib
- bash: |-
set -e
$(FLOWEY_BIN) e 7 flowey_lib_common::run_cargo_build 1
$(FLOWEY_BIN) e 7 flowey_lib_hvlite::run_cargo_build 1
displayName: cargo build igvmfilegen
- bash: |-
set -e
$(FLOWEY_BIN) e 7 flowey_lib_hvlite::run_split_debug_info 5
$(FLOWEY_BIN) e 7 flowey_lib_hvlite::run_cargo_build 2
$(FLOWEY_BIN) e 7 flowey_lib_hvlite::build_igvmfilegen 0
$(FLOWEY_BIN) e 7 flowey_core::pipeline::artifact::publish 3
$(FLOWEY_BIN) e 7 flowey_lib_hvlite::init_cross_build 2
displayName: split debug symbols
- bash: |-
set -e
$(FLOWEY_BIN) e 7 flowey_lib_common::run_cargo_build 2
$(FLOWEY_BIN) e 7 flowey_lib_hvlite::run_cargo_build 3
displayName: cargo build ohcldiag-dev
- bash: |-
set -e
$(FLOWEY_BIN) e 7 flowey_lib_hvlite::run_split_debug_info 0
$(FLOWEY_BIN) e 7 flowey_lib_hvlite::run_cargo_build 4
$(FLOWEY_BIN) e 7 flowey_lib_hvlite::build_ohcldiag_dev 0
$(FLOWEY_BIN) e 7 flowey_core::pipeline::artifact::publish 4
$(FLOWEY_BIN) e 7 flowey_lib_hvlite::init_cross_build 8
displayName: split debug symbols
- bash: |-
set -e
$(FLOWEY_BIN) e 7 flowey_lib_common::run_cargo_build 0
$(FLOWEY_BIN) e 7 flowey_lib_hvlite::run_cargo_build 0
displayName: cargo build guest_test_uefi
- bash: |-
set -e
$(FLOWEY_BIN) e 7 flowey_lib_hvlite::build_guest_test_uefi 0
$(FLOWEY_BIN) e 7 flowey_core::pipeline::artifact::publish 5
$(FLOWEY_BIN) e 7 flowey_lib_hvlite::init_cross_build 0
$(FLOWEY_BIN) e 7 flowey_lib_hvlite::run_cargo_build 7
$(FLOWEY_BIN) e 7 flowey_lib_hvlite::run_cargo_build 8
displayName: build guest_test_uefi.img
- bash: |-
set -e
$(FLOWEY_BIN) e 7 flowey_lib_common::run_cargo_build 4
$(FLOWEY_BIN) e 7 flowey_lib_hvlite::run_cargo_build 9
displayName: cargo build simple_tmk
- bash: |-
set -e
$(FLOWEY_BIN) e 7 flowey_lib_hvlite::run_split_debug_info 2
$(FLOWEY_BIN) e 7 flowey_lib_hvlite::run_cargo_build 10
$(FLOWEY_BIN) e 7 flowey_lib_hvlite::build_tmks 0
$(FLOWEY_BIN) e 7 flowey_core::pipeline::artifact::publish 6
$(FLOWEY_BIN) e 7 flowey_lib_hvlite::init_cross_build 4
displayName: split debug symbols
- bash: |-
set -e
$(FLOWEY_BIN) e 7 flowey_lib_common::run_cargo_build 5
$(FLOWEY_BIN) e 7 flowey_lib_hvlite::run_cargo_build 11
displayName: cargo build tpm_guest_tests
- bash: |-
set -e
$(FLOWEY_BIN) e 7 flowey_lib_hvlite::run_split_debug_info 3
$(FLOWEY_BIN) e 7 flowey_lib_hvlite::run_cargo_build 12
$(FLOWEY_BIN) e 7 flowey_lib_hvlite::build_tpm_guest_tests 0
$(FLOWEY_BIN) e 7 flowey_core::pipeline::artifact::publish 7
displayName: split debug symbols
- bash: |-
set -e
$(FLOWEY_BIN) e 7 flowey_lib_common::download_cargo_nextest 0
$(FLOWEY_BIN) e 7 flowey_lib_common::download_cargo_nextest 1
$(FLOWEY_BIN) e 7 flowey_lib_common::download_cargo_nextest 2
$(FLOWEY_BIN) e 7 flowey_lib_common::download_cargo_nextest 3
displayName: create cargo-nextest cache dir
- bash: |-
set -e
$(FLOWEY_BIN) e 7 flowey_lib_common::cache 0
$FLOWEY_BIN v 7 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:236:72' --is-raw-string write-to-env ado floweyvar2
$FLOWEY_BIN v 7 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:237:72' --is-raw-string write-to-env ado floweyvar3
displayName: Pre-processing cache vars
- task: Cache@2
inputs:
key: $(floweyvar3)
path: $(floweyvar2)
cacheHitVar: FLOWEY_CACHE_HITVAR
displayName: 'Restore cache: cargo-nextest'
- bash: |-
set -e
$FLOWEY_BIN v 7 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:300:70' --is-raw-string update --env-source FLOWEY_CACHE_HITVAR <<'EOF'
$(FLOWEY_CACHE_HITVAR)
EOF
$(FLOWEY_BIN) e 7 flowey_lib_common::cache 2
displayName: map ADO hitvar to flowey
- bash: $(FLOWEY_BIN) e 7 flowey_lib_common::download_cargo_nextest 4
displayName: downloading cargo-nextest
- bash: $(FLOWEY_BIN) e 7 flowey_lib_common::install_rust 2
displayName: report $CARGO_HOME
- bash: |-
set -e
$(FLOWEY_BIN) e 7 flowey_lib_common::install_cargo_nextest 0
$(FLOWEY_BIN) e 7 flowey_lib_hvlite::init_cross_build 1
displayName: installing cargo-nextest
- bash: |-
set -e
$(FLOWEY_BIN) e 7 flowey_lib_common::run_cargo_nextest_archive 0
$(FLOWEY_BIN) e 7 flowey_lib_hvlite::build_nextest_vmm_tests 0
$(FLOWEY_BIN) e 7 flowey_core::pipeline::artifact::publish 8
displayName: build + archive 'vmm_tests' nextests
- bash: $(FLOWEY_BIN) e 7 flowey_lib_common::cache 3
displayName: 'validate cache entry: cargo-nextest'
- bash: $(FLOWEY_BIN) e 7 flowey_lib_common::cache 7
displayName: 'validate cache entry: gh-release-download'
- publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/x64-guest_test_uefi
displayName: πΌπ¦ Publish x64-guest_test_uefi
artifact: x64-guest_test_uefi
- publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/x64-linux-igvmfilegen
displayName: πΌπ¦ Publish x64-linux-igvmfilegen
artifact: x64-linux-igvmfilegen
- publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/x64-linux-ohcldiag-dev
displayName: πΌπ¦ Publish x64-linux-ohcldiag-dev
artifact: x64-linux-ohcldiag-dev
- publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/x64-linux-openvmm
displayName: πΌπ¦ Publish x64-linux-openvmm
artifact: x64-linux-openvmm
- publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/x64-linux-tpm_guest_tests
displayName: πΌπ¦ Publish x64-linux-tpm_guest_tests
artifact: x64-linux-tpm_guest_tests
- publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/x64-linux-vmgs_lib
displayName: πΌπ¦ Publish x64-linux-vmgs_lib
artifact: x64-linux-vmgs_lib
- publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/x64-linux-vmgstool
displayName: πΌπ¦ Publish x64-linux-vmgstool
artifact: x64-linux-vmgstool
- publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/x64-linux-vmm-tests-archive
displayName: πΌπ¦ Publish x64-linux-vmm-tests-archive
artifact: x64-linux-vmm-tests-archive
- publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/x64-tmks
displayName: πΌπ¦ Publish x64-tmks
artifact: x64-tmks
- job: job6
displayName: build artifacts [aarch64-linux]
pool: HvLite-CI-Linux-Pool-CentralUS
dependsOn: []
condition: and(succeeded(), not(canceled()))
variables:
- name: FLOWEY_TEMP_DIR
value: $(Build.StagingDirectory)/.flowey-internal
steps:
- bash: |
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.91.1 -y
. "$HOME/.cargo/env"
echo '##vso[task.prependpath]$(HOME)/.cargo/bin'
condition: eq(variables['Agent.OS'], 'Linux')
displayName: rustup (Linux)
- bash: |
set -x
curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
./rustup-init.exe -y --default-toolchain=1.91.1
echo '##vso[task.prependpath]$(USERPROFILE)\\.cargo\\bin'
condition: eq(variables['Agent.OS'], 'Windows_NT')
displayName: rustup (Windows X64)
- bash: |
set -x
rustup show
displayName: Verify rustup installation
- checkout: self
fetchTags: false
fetchDepth: 1
path: flowey_bootstrap
- bash: CARGO_INCREMENTAL=0 RUSTC_BOOTSTRAP=1 RUSTFLAGS="-Z threads=8" cargo build -p flowey_hvlite --target x86_64-unknown-linux-gnu --profile flowey-ci
workingDirectory: ../flowey_bootstrap
displayName: Build flowey
- bash: |
mkdir ./flowey_bootstrap_temp
mv ./ci-flowey/openvmm-pr.yaml ./flowey_bootstrap_temp/pipeline.yaml
mv ./ci-flowey/openvmm-pr.json ./flowey_bootstrap_temp/pipeline.json
mv target/x86_64-unknown-linux-gnu/flowey-ci/flowey_hvlite ./flowey_bootstrap_temp/flowey
workingDirectory: ../flowey_bootstrap
displayName: Stage flowey artifact
- task: CopyFiles@2
displayName: Copy flowey artifact
inputs:
SourceFolder: ../flowey_bootstrap/flowey_bootstrap_temp
TargetFolder: $(FLOWEY_TEMP_DIR)/bootstrapped-flowey
- bash: rm -rf ./flowey_bootstrap_temp
workingDirectory: ../flowey_bootstrap
displayName: Cleanup staged flowey artifact
- bash: |
set -e
AgentTempDirNormal="$(FLOWEY_TEMP_DIR)"
AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
echo "##vso[task.setvariable variable=AgentTempDirNormal;]$AgentTempDirNormal"
chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey
FLOWEY_BIN="$AgentTempDirNormal/bootstrapped-flowey/flowey"
echo "##vso[task.setvariable variable=FLOWEY_BIN;]$FLOWEY_BIN"
displayName: Set flowey path
- bash: |-
ESCAPED_AGENT_TEMPDIR=$(
cat <<'EOF' | sed 's/\\/\\\\/g'
$(FLOWEY_TEMP_DIR)
EOF
)
$(FLOWEY_BIN) pipeline ado --runtime $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out ci-flowey/openvmm-pr.yaml ci checkin-gates --config=pr
displayName: πΌπ Self-check YAML
- bash: |
set -e
echo '"debug"' | $FLOWEY_BIN v 6 'FLOWEY_LOG' update
echo "$(FLOWEY_TEMP_DIR)/work" | $FLOWEY_BIN v 6 '_internal_WORKING_DIR' --is-raw-string update
cat <<'EOF' | tr '[:upper:]' '[:lower:]' | $FLOWEY_BIN v 6 'verbose' update
${{ parameters.verbose }}
EOF
mkdir -p "$(AgentTempDirNormal)/publish_artifacts/aarch64-guest_test_uefi"
echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-guest_test_uefi" | $FLOWEY_BIN v 6 'artifact_publish_from_aarch64-guest_test_uefi' --is-raw-string update
mkdir -p "$(AgentTempDirNormal)/publish_artifacts/aarch64-linux-igvmfilegen"
echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-linux-igvmfilegen" | $FLOWEY_BIN v 6 'artifact_publish_from_aarch64-linux-igvmfilegen' --is-raw-string update
mkdir -p "$(AgentTempDirNormal)/publish_artifacts/aarch64-linux-ohcldiag-dev"
echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-linux-ohcldiag-dev" | $FLOWEY_BIN v 6 'artifact_publish_from_aarch64-linux-ohcldiag-dev' --is-raw-string update
mkdir -p "$(AgentTempDirNormal)/publish_artifacts/aarch64-linux-openvmm"
echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-linux-openvmm" | $FLOWEY_BIN v 6 'artifact_publish_from_aarch64-linux-openvmm' --is-raw-string update
mkdir -p "$(AgentTempDirNormal)/publish_artifacts/aarch64-linux-tpm_guest_tests"
echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-linux-tpm_guest_tests" | $FLOWEY_BIN v 6 'artifact_publish_from_aarch64-linux-tpm_guest_tests' --is-raw-string update
mkdir -p "$(AgentTempDirNormal)/publish_artifacts/aarch64-linux-vmgs_lib"
echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-linux-vmgs_lib" | $FLOWEY_BIN v 6 'artifact_publish_from_aarch64-linux-vmgs_lib' --is-raw-string update
mkdir -p "$(AgentTempDirNormal)/publish_artifacts/aarch64-linux-vmgstool"
echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-linux-vmgstool" | $FLOWEY_BIN v 6 'artifact_publish_from_aarch64-linux-vmgstool' --is-raw-string update
mkdir -p "$(AgentTempDirNormal)/publish_artifacts/aarch64-tmks"
echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-tmks" | $FLOWEY_BIN v 6 'artifact_publish_from_aarch64-tmks' --is-raw-string update
displayName: πΌπ« Initialize job
- bash: $(FLOWEY_BIN) e 6 flowey_lib_common::install_rust 0
displayName: install Rust
- bash: |-
set -e
$(FLOWEY_BIN) e 6 flowey_lib_common::install_rust 1
$(FLOWEY_BIN) e 6 flowey_lib_common::cfg_cargo_common_flags 0
displayName: detect active toolchain
- bash: $(FLOWEY_BIN) e 6 flowey_lib_common::install_dist_pkg 0
displayName: checking if packages need to be installed
- bash: $(FLOWEY_BIN) e 6 flowey_lib_common::install_dist_pkg 1
displayName: installing packages
- bash: |-
set -e
$(FLOWEY_BIN) e 6 flowey_lib_common::git_checkout 0
$FLOWEY_BIN v 6 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:299:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:300:46 write-to-env ado floweyvar1
$FLOWEY_BIN v 6 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:300:46' write-to-env ado FLOWEY_CONDITION
displayName: check if openvmm needs to be cloned
- checkout: self
path: repo0
fetchTags: false
fetchDepth: 1
persistCredentials: $(floweyvar1)
submodules: recursive
displayName: checkout repo openvmm
condition: and(eq(variables['FLOWEY_CONDITION'], true), succeeded(), not(canceled()))
- bash: |-
set -e
$(FLOWEY_BIN) e 6 flowey_lib_common::git_checkout 2
$(FLOWEY_BIN) e 6 flowey_lib_hvlite::git_checkout_openvmm_repo 0
displayName: report cloned repo directories
- bash: $(FLOWEY_BIN) e 6 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
displayName: set '-Dwarnings' in .cargo/config.toml
- bash: $(FLOWEY_BIN) e 6 flowey_lib_common::download_gh_release 0
displayName: create gh-release-download cache dir
- bash: |-
set -e
$(FLOWEY_BIN) e 6 flowey_lib_common::cache 0
$FLOWEY_BIN v 6 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:236:72' --is-raw-string write-to-env ado floweyvar2
$FLOWEY_BIN v 6 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:237:72' --is-raw-string write-to-env ado floweyvar3
displayName: Pre-processing cache vars
- task: Cache@2
inputs:
key: $(floweyvar3)
path: $(floweyvar2)
cacheHitVar: FLOWEY_CACHE_HITVAR
displayName: 'Restore cache: gh-release-download'
- bash: |-
set -e
$FLOWEY_BIN v 6 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:300:70' --is-raw-string update --env-source FLOWEY_CACHE_HITVAR <<'EOF'
$(FLOWEY_CACHE_HITVAR)
EOF
$(FLOWEY_BIN) e 6 flowey_lib_common::cache 2
displayName: map ADO hitvar to flowey
- bash: $(FLOWEY_BIN) e 6 flowey_lib_common::download_gh_release 1
displayName: download artifacts from github releases
- bash: |-
set -e
$(FLOWEY_BIN) e 6 flowey_lib_common::download_protoc 0
$(FLOWEY_BIN) e 6 flowey_lib_hvlite::cfg_openvmm_magicpath 0
displayName: unpack protoc
- bash: |-
set -e
$(FLOWEY_BIN) e 6 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
$(FLOWEY_BIN) e 6 flowey_lib_hvlite::init_cross_build 2
displayName: symlink protoc
- bash: |-
set -e
$(FLOWEY_BIN) e 6 flowey_lib_common::run_cargo_build 3
$(FLOWEY_BIN) e 6 flowey_lib_hvlite::run_cargo_build 5
displayName: cargo build openvmm
- bash: |-
set -e
$(FLOWEY_BIN) e 6 flowey_lib_hvlite::run_split_debug_info 1
$(FLOWEY_BIN) e 6 flowey_lib_hvlite::run_cargo_build 6
$(FLOWEY_BIN) e 6 flowey_lib_hvlite::build_openvmm 0
$(FLOWEY_BIN) e 6 flowey_core::pipeline::artifact::publish 0
$(FLOWEY_BIN) e 6 flowey_lib_hvlite::init_cross_build 5
displayName: split debug symbols
- bash: |-
set -e
$(FLOWEY_BIN) e 6 flowey_lib_common::run_cargo_build 7
$(FLOWEY_BIN) e 6 flowey_lib_hvlite::run_cargo_build 14
displayName: cargo build vmgstool
- bash: |-
set -e
$(FLOWEY_BIN) e 6 flowey_lib_hvlite::run_split_debug_info 4
$(FLOWEY_BIN) e 6 flowey_lib_hvlite::run_cargo_build 15
$(FLOWEY_BIN) e 6 flowey_lib_hvlite::build_vmgstool 0
$(FLOWEY_BIN) e 6 flowey_core::pipeline::artifact::publish 1
$(FLOWEY_BIN) e 6 flowey_lib_hvlite::init_cross_build 4
displayName: split debug symbols
- bash: |-
set -e
$(FLOWEY_BIN) e 6 flowey_lib_common::run_cargo_build 6
$(FLOWEY_BIN) e 6 flowey_lib_hvlite::run_cargo_build 13
$(FLOWEY_BIN) e 6 flowey_lib_hvlite::build_and_test_vmgs_lib 0
$(FLOWEY_BIN) e 6 flowey_lib_hvlite::build_and_test_vmgs_lib 1
$(FLOWEY_BIN) e 6 flowey_core::pipeline::artifact::publish 2
$(FLOWEY_BIN) e 6 flowey_lib_hvlite::init_cross_build 6
displayName: cargo build vmgs_lib
- bash: |-
set -e
$(FLOWEY_BIN) e 6 flowey_lib_common::run_cargo_build 1
$(FLOWEY_BIN) e 6 flowey_lib_hvlite::run_cargo_build 1
displayName: cargo build igvmfilegen
- bash: |-
set -e
$(FLOWEY_BIN) e 6 flowey_lib_hvlite::run_split_debug_info 5
$(FLOWEY_BIN) e 6 flowey_lib_hvlite::run_cargo_build 2
$(FLOWEY_BIN) e 6 flowey_lib_hvlite::build_igvmfilegen 0
$(FLOWEY_BIN) e 6 flowey_core::pipeline::artifact::publish 3
$(FLOWEY_BIN) e 6 flowey_lib_hvlite::init_cross_build 1
displayName: split debug symbols
- bash: |-
set -e
$(FLOWEY_BIN) e 6 flowey_lib_common::run_cargo_build 2
$(FLOWEY_BIN) e 6 flowey_lib_hvlite::run_cargo_build 3
displayName: cargo build ohcldiag-dev
- bash: |-
set -e
$(FLOWEY_BIN) e 6 flowey_lib_hvlite::run_split_debug_info 0
$(FLOWEY_BIN) e 6 flowey_lib_hvlite::run_cargo_build 4
$(FLOWEY_BIN) e 6 flowey_lib_hvlite::build_ohcldiag_dev 0
$(FLOWEY_BIN) e 6 flowey_core::pipeline::artifact::publish 4
$(FLOWEY_BIN) e 6 flowey_lib_hvlite::init_cross_build 7
displayName: split debug symbols
- bash: |-
set -e
$(FLOWEY_BIN) e 6 flowey_lib_common::run_cargo_build 0
$(FLOWEY_BIN) e 6 flowey_lib_hvlite::run_cargo_build 0
displayName: cargo build guest_test_uefi
- bash: |-
set -e
$(FLOWEY_BIN) e 6 flowey_lib_hvlite::build_guest_test_uefi 0
$(FLOWEY_BIN) e 6 flowey_core::pipeline::artifact::publish 5
$(FLOWEY_BIN) e 6 flowey_lib_hvlite::init_cross_build 0
$(FLOWEY_BIN) e 6 flowey_lib_hvlite::run_cargo_build 7
$(FLOWEY_BIN) e 6 flowey_lib_hvlite::run_cargo_build 8
displayName: build guest_test_uefi.img
- bash: |-
set -e
$(FLOWEY_BIN) e 6 flowey_lib_common::run_cargo_build 4
$(FLOWEY_BIN) e 6 flowey_lib_hvlite::run_cargo_build 9
displayName: cargo build simple_tmk
- bash: |-
set -e
$(FLOWEY_BIN) e 6 flowey_lib_hvlite::run_split_debug_info 2
$(FLOWEY_BIN) e 6 flowey_lib_hvlite::run_cargo_build 10
$(FLOWEY_BIN) e 6 flowey_lib_hvlite::build_tmks 0
$(FLOWEY_BIN) e 6 flowey_core::pipeline::artifact::publish 6
$(FLOWEY_BIN) e 6 flowey_lib_hvlite::init_cross_build 3
displayName: split debug symbols
- bash: |-
set -e
$(FLOWEY_BIN) e 6 flowey_lib_common::run_cargo_build 5
$(FLOWEY_BIN) e 6 flowey_lib_hvlite::run_cargo_build 11
displayName: cargo build tpm_guest_tests
- bash: |-
set -e
$(FLOWEY_BIN) e 6 flowey_lib_hvlite::run_split_debug_info 3
$(FLOWEY_BIN) e 6 flowey_lib_hvlite::run_cargo_build 12
$(FLOWEY_BIN) e 6 flowey_lib_hvlite::build_tpm_guest_tests 0
$(FLOWEY_BIN) e 6 flowey_core::pipeline::artifact::publish 7
displayName: split debug symbols
- bash: $(FLOWEY_BIN) e 6 flowey_lib_common::cache 3
displayName: 'validate cache entry: gh-release-download'
- publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-guest_test_uefi
displayName: πΌπ¦ Publish aarch64-guest_test_uefi
artifact: aarch64-guest_test_uefi
- publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-linux-igvmfilegen
displayName: πΌπ¦ Publish aarch64-linux-igvmfilegen
artifact: aarch64-linux-igvmfilegen
- publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-linux-ohcldiag-dev
displayName: πΌπ¦ Publish aarch64-linux-ohcldiag-dev
artifact: aarch64-linux-ohcldiag-dev
- publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-linux-openvmm
displayName: πΌπ¦ Publish aarch64-linux-openvmm
artifact: aarch64-linux-openvmm
- publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-linux-tpm_guest_tests
displayName: πΌπ¦ Publish aarch64-linux-tpm_guest_tests
artifact: aarch64-linux-tpm_guest_tests
- publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-linux-vmgs_lib
displayName: πΌπ¦ Publish aarch64-linux-vmgs_lib
artifact: aarch64-linux-vmgs_lib
- publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-linux-vmgstool
displayName: πΌπ¦ Publish aarch64-linux-vmgstool
artifact: aarch64-linux-vmgstool
- publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-tmks
displayName: πΌπ¦ Publish aarch64-tmks
artifact: aarch64-tmks
- job: job5
displayName: build artifacts (for VMM tests) [x64-windows]
pool: HvLite-CI-Win-Pool
dependsOn: []
condition: and(succeeded(), not(canceled()))
variables:
- name: FLOWEY_TEMP_DIR
value: $(Build.StagingDirectory)/.flowey-internal
steps:
- bash: |
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.91.1 -y
. "$HOME/.cargo/env"
echo '##vso[task.prependpath]$(HOME)/.cargo/bin'
condition: eq(variables['Agent.OS'], 'Linux')
displayName: rustup (Linux)
- bash: |
set -x
curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
./rustup-init.exe -y --default-toolchain=1.91.1
echo '##vso[task.prependpath]$(USERPROFILE)\\.cargo\\bin'
condition: eq(variables['Agent.OS'], 'Windows_NT')
displayName: rustup (Windows X64)
- bash: |
set -x
rustup show
displayName: Verify rustup installation
- checkout: self
fetchTags: false
fetchDepth: 1
path: flowey_bootstrap
- bash: CARGO_INCREMENTAL=0 RUSTC_BOOTSTRAP=1 RUSTFLAGS="-Z threads=8" cargo build -p flowey_hvlite --target x86_64-pc-windows-msvc --profile flowey-ci
workingDirectory: ../flowey_bootstrap
displayName: Build flowey
- bash: |
mkdir ./flowey_bootstrap_temp
mv ./ci-flowey/openvmm-pr.yaml ./flowey_bootstrap_temp/pipeline.yaml
mv ./ci-flowey/openvmm-pr.json ./flowey_bootstrap_temp/pipeline.json
mv target/x86_64-pc-windows-msvc/flowey-ci/flowey_hvlite.exe ./flowey_bootstrap_temp/flowey.exe
workingDirectory: ../flowey_bootstrap
displayName: Stage flowey artifact
- task: CopyFiles@2
displayName: Copy flowey artifact
inputs:
SourceFolder: ../flowey_bootstrap/flowey_bootstrap_temp
TargetFolder: $(FLOWEY_TEMP_DIR)/bootstrapped-flowey
- bash: rm -rf ./flowey_bootstrap_temp
workingDirectory: ../flowey_bootstrap
displayName: Cleanup staged flowey artifact
- bash: |
set -e
AgentTempDirNormal="$(FLOWEY_TEMP_DIR)"
AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
echo "##vso[task.setvariable variable=AgentTempDirNormal;]$AgentTempDirNormal"
chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe
FLOWEY_BIN="$AgentTempDirNormal/bootstrapped-flowey/flowey.exe"
echo "##vso[task.setvariable variable=FLOWEY_BIN;]$FLOWEY_BIN"
displayName: Set flowey path
- bash: |-
ESCAPED_AGENT_TEMPDIR=$(
cat <<'EOF' | sed 's/\\/\\\\/g'
$(FLOWEY_TEMP_DIR)
EOF
)
$(FLOWEY_BIN) pipeline ado --runtime $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out ci-flowey/openvmm-pr.yaml ci checkin-gates --config=pr
displayName: πΌπ Self-check YAML
- bash: |
set -e
echo '"debug"' | $FLOWEY_BIN v 5 'FLOWEY_LOG' update
echo "$(FLOWEY_TEMP_DIR)/work" | $FLOWEY_BIN v 5 '_internal_WORKING_DIR' --is-raw-string update
cat <<'EOF' | tr '[:upper:]' '[:lower:]' | $FLOWEY_BIN v 5 'verbose' update
${{ parameters.verbose }}
EOF
mkdir -p "$(AgentTempDirNormal)/publish_artifacts/x64-windows-openvmm"
echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/x64-windows-openvmm" | $FLOWEY_BIN v 5 'artifact_publish_from_x64-windows-openvmm' --is-raw-string update
mkdir -p "$(AgentTempDirNormal)/publish_artifacts/x64-windows-pipette"
echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/x64-windows-pipette" | $FLOWEY_BIN v 5 'artifact_publish_from_x64-windows-pipette' --is-raw-string update
mkdir -p "$(AgentTempDirNormal)/publish_artifacts/x64-windows-prep_steps"
echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/x64-windows-prep_steps" | $FLOWEY_BIN v 5 'artifact_publish_from_x64-windows-prep_steps' --is-raw-string update
mkdir -p "$(AgentTempDirNormal)/publish_artifacts/x64-windows-tmk_vmm"
echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/x64-windows-tmk_vmm" | $FLOWEY_BIN v 5 'artifact_publish_from_x64-windows-tmk_vmm' --is-raw-string update
mkdir -p "$(AgentTempDirNormal)/publish_artifacts/x64-windows-tpm_guest_tests"
echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/x64-windows-tpm_guest_tests" | $FLOWEY_BIN v 5 'artifact_publish_from_x64-windows-tpm_guest_tests' --is-raw-string update
mkdir -p "$(AgentTempDirNormal)/publish_artifacts/x64-windows-vmgstool"
echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/x64-windows-vmgstool" | $FLOWEY_BIN v 5 'artifact_publish_from_x64-windows-vmgstool' --is-raw-string update
mkdir -p "$(AgentTempDirNormal)/publish_artifacts/x64-windows-vmm-tests-archive"
echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/x64-windows-vmm-tests-archive" | $FLOWEY_BIN v 5 'artifact_publish_from_x64-windows-vmm-tests-archive' --is-raw-string update
displayName: πΌπ« Initialize job
- bash: $(FLOWEY_BIN) e 5 flowey_lib_common::install_rust 0
displayName: install Rust
- bash: |-
set -e
$(FLOWEY_BIN) e 5 flowey_lib_common::install_rust 1
$(FLOWEY_BIN) e 5 flowey_lib_common::cfg_cargo_common_flags 0
displayName: detect active toolchain
- bash: |-
set -e
$(FLOWEY_BIN) e 5 flowey_lib_common::git_checkout 0
$FLOWEY_BIN v 5 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:299:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:300:46 write-to-env ado floweyvar1
$FLOWEY_BIN v 5 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:300:46' write-to-env ado FLOWEY_CONDITION
displayName: check if openvmm needs to be cloned
- checkout: self
path: repo0
fetchTags: false
fetchDepth: 1
persistCredentials: $(floweyvar1)
submodules: recursive
displayName: checkout repo openvmm
condition: and(eq(variables['FLOWEY_CONDITION'], true), succeeded(), not(canceled()))
- bash: |-
set -e
$(FLOWEY_BIN) e 5 flowey_lib_common::git_checkout 2
$(FLOWEY_BIN) e 5 flowey_lib_hvlite::git_checkout_openvmm_repo 0
displayName: report cloned repo directories
- bash: $(FLOWEY_BIN) e 5 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
displayName: set '-Dwarnings' in .cargo/config.toml
- bash: $(FLOWEY_BIN) e 5 flowey_lib_common::download_gh_release 0
displayName: create gh-release-download cache dir
- bash: |-
set -e
$(FLOWEY_BIN) e 5 flowey_lib_common::cache 4
$FLOWEY_BIN v 5 'flowey_lib_common::cache:8:flowey_lib_common/src/cache.rs:236:72' --is-raw-string write-to-env ado floweyvar4
$FLOWEY_BIN v 5 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:237:72' --is-raw-string write-to-env ado floweyvar5
displayName: Pre-processing cache vars
- task: Cache@2
inputs:
key: $(floweyvar5)
path: $(floweyvar4)
cacheHitVar: FLOWEY_CACHE_HITVAR
displayName: 'Restore cache: gh-release-download'
- bash: |-
set -e
$FLOWEY_BIN v 5 'flowey_lib_common::cache:11:flowey_lib_common/src/cache.rs:300:70' --is-raw-string update --env-source FLOWEY_CACHE_HITVAR <<'EOF'
$(FLOWEY_CACHE_HITVAR)
EOF
$(FLOWEY_BIN) e 5 flowey_lib_common::cache 6
displayName: map ADO hitvar to flowey
- bash: $(FLOWEY_BIN) e 5 flowey_lib_common::download_gh_release 1
displayName: download artifacts from github releases
- bash: |-
set -e
$(FLOWEY_BIN) e 5 flowey_lib_common::download_protoc 0
$(FLOWEY_BIN) e 5 flowey_lib_hvlite::cfg_openvmm_magicpath 0
displayName: unpack protoc
- bash: |-
set -e
$(FLOWEY_BIN) e 5 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
$(FLOWEY_BIN) e 5 flowey_lib_hvlite::init_cross_build 4
displayName: symlink protoc
- bash: |-
set -e
$(FLOWEY_BIN) e 5 flowey_lib_common::run_cargo_build 0
$(FLOWEY_BIN) e 5 flowey_lib_hvlite::run_cargo_build 0
$(FLOWEY_BIN) e 5 flowey_lib_hvlite::build_openvmm 0
$(FLOWEY_BIN) e 5 flowey_core::pipeline::artifact::publish 0
$(FLOWEY_BIN) e 5 flowey_lib_hvlite::init_cross_build 5
displayName: cargo build openvmm
- bash: |-
set -e
$(FLOWEY_BIN) e 5 flowey_lib_common::run_cargo_build 1
$(FLOWEY_BIN) e 5 flowey_lib_hvlite::run_cargo_build 1
$(FLOWEY_BIN) e 5 flowey_lib_hvlite::build_pipette 0
$(FLOWEY_BIN) e 5 flowey_core::pipeline::artifact::publish 1
$(FLOWEY_BIN) e 5 flowey_lib_hvlite::init_cross_build 1
displayName: cargo build pipette
- bash: |-
set -e
$(FLOWEY_BIN) e 5 flowey_lib_common::run_cargo_build 3
$(FLOWEY_BIN) e 5 flowey_lib_hvlite::run_cargo_build 3
$(FLOWEY_BIN) e 5 flowey_lib_hvlite::build_tmk_vmm 0
$(FLOWEY_BIN) e 5 flowey_core::pipeline::artifact::publish 2
$(FLOWEY_BIN) e 5 flowey_lib_hvlite::init_cross_build 6
displayName: cargo build tmk_vmm
- bash: |-
set -e
$(FLOWEY_BIN) e 5 flowey_lib_common::run_cargo_build 2
$(FLOWEY_BIN) e 5 flowey_lib_hvlite::run_cargo_build 2
$(FLOWEY_BIN) e 5 flowey_lib_hvlite::build_prep_steps 0
$(FLOWEY_BIN) e 5 flowey_core::pipeline::artifact::publish 3
$(FLOWEY_BIN) e 5 flowey_lib_hvlite::init_cross_build 3
displayName: cargo build prep_steps
- bash: |-
set -e
$(FLOWEY_BIN) e 5 flowey_lib_common::run_cargo_build 5
$(FLOWEY_BIN) e 5 flowey_lib_hvlite::run_cargo_build 7
$(FLOWEY_BIN) e 5 flowey_lib_hvlite::build_vmgstool 0
$(FLOWEY_BIN) e 5 flowey_core::pipeline::artifact::publish 4
$(FLOWEY_BIN) e 5 flowey_lib_hvlite::init_cross_build 2
$(FLOWEY_BIN) e 5 flowey_lib_hvlite::run_cargo_build 4
$(FLOWEY_BIN) e 5 flowey_lib_hvlite::run_cargo_build 5
displayName: cargo build vmgstool
- bash: |-
set -e
$(FLOWEY_BIN) e 5 flowey_lib_common::run_cargo_build 4
$(FLOWEY_BIN) e 5 flowey_lib_hvlite::run_cargo_build 6
$(FLOWEY_BIN) e 5 flowey_lib_hvlite::build_tpm_guest_tests 0
$(FLOWEY_BIN) e 5 flowey_core::pipeline::artifact::publish 5
displayName: cargo build tpm_guest_tests
- bash: |-
set -e
$(FLOWEY_BIN) e 5 flowey_lib_common::download_cargo_nextest 0
$(FLOWEY_BIN) e 5 flowey_lib_common::download_cargo_nextest 1
$(FLOWEY_BIN) e 5 flowey_lib_common::download_cargo_nextest 2
$(FLOWEY_BIN) e 5 flowey_lib_common::download_cargo_nextest 3
displayName: create cargo-nextest cache dir
- bash: |-
set -e
$(FLOWEY_BIN) e 5 flowey_lib_common::cache 0
$FLOWEY_BIN v 5 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:236:72' --is-raw-string write-to-env ado floweyvar2
$FLOWEY_BIN v 5 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:237:72' --is-raw-string write-to-env ado floweyvar3
displayName: Pre-processing cache vars
- task: Cache@2
inputs:
key: $(floweyvar3)
path: $(floweyvar2)
cacheHitVar: FLOWEY_CACHE_HITVAR
displayName: 'Restore cache: cargo-nextest'
- bash: |-
set -e
$FLOWEY_BIN v 5 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:300:70' --is-raw-string update --env-source FLOWEY_CACHE_HITVAR <<'EOF'
$(FLOWEY_CACHE_HITVAR)
EOF
$(FLOWEY_BIN) e 5 flowey_lib_common::cache 2
displayName: map ADO hitvar to flowey
- bash: $(FLOWEY_BIN) e 5 flowey_lib_common::download_cargo_nextest 4
displayName: downloading cargo-nextest
- bash: $(FLOWEY_BIN) e 5 flowey_lib_common::install_rust 2
displayName: report $CARGO_HOME
- bash: |-
set -e
$(FLOWEY_BIN) e 5 flowey_lib_common::install_cargo_nextest 0
$(FLOWEY_BIN) e 5 flowey_lib_hvlite::init_cross_build 0
displayName: installing cargo-nextest
- bash: |-
set -e
$(FLOWEY_BIN) e 5 flowey_lib_common::run_cargo_nextest_archive 0
$(FLOWEY_BIN) e 5 flowey_lib_hvlite::build_nextest_vmm_tests 0
$(FLOWEY_BIN) e 5 flowey_core::pipeline::artifact::publish 6
displayName: build + archive 'vmm_tests' nextests
- bash: $(FLOWEY_BIN) e 5 flowey_lib_common::cache 3
displayName: 'validate cache entry: cargo-nextest'
- bash: $(FLOWEY_BIN) e 5 flowey_lib_common::cache 7
displayName: 'validate cache entry: gh-release-download'
- publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/x64-windows-openvmm
displayName: πΌπ¦ Publish x64-windows-openvmm
artifact: x64-windows-openvmm
- publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/x64-windows-pipette
displayName: πΌπ¦ Publish x64-windows-pipette
artifact: x64-windows-pipette
- publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/x64-windows-prep_steps
displayName: πΌπ¦ Publish x64-windows-prep_steps
artifact: x64-windows-prep_steps
- publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/x64-windows-tmk_vmm
displayName: πΌπ¦ Publish x64-windows-tmk_vmm
artifact: x64-windows-tmk_vmm
- publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/x64-windows-tpm_guest_tests
displayName: πΌπ¦ Publish x64-windows-tpm_guest_tests
artifact: x64-windows-tpm_guest_tests
- publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/x64-windows-vmgstool
displayName: πΌπ¦ Publish x64-windows-vmgstool
artifact: x64-windows-vmgstool
- publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/x64-windows-vmm-tests-archive
displayName: πΌπ¦ Publish x64-windows-vmm-tests-archive
artifact: x64-windows-vmm-tests-archive
- bash: rm $(AgentTempDirNormal)/bootstrapped-flowey/job5.json
displayName: πΌπ§Ό Redact bootstrap var db
- publish: $(FLOWEY_TEMP_DIR)/bootstrapped-flowey
displayName: πΌπ₯Ύ Publish bootstrapped flowey
artifact: _internal-flowey-bootstrap-x86_64-windows-uid-8
- job: job15
displayName: run vmm-tests [x64-linux]
pool: HvLite-CI-Linux-Pool-CentralUS
dependsOn:
- job5
- job7
- job9
condition: and(succeeded(), not(canceled()))
variables:
- name: FLOWEY_TEMP_DIR
value: $(Build.StagingDirectory)/.flowey-internal
steps:
- task: DownloadPipelineArtifact@2
displayName: πΌπ₯Ύ Download bootstrapped flowey
inputs:
artifact: _internal-flowey-bootstrap-x86_64-linux-uid-4
path: $(FLOWEY_TEMP_DIR)/bootstrapped-flowey
- task: DownloadPipelineArtifact@2
displayName: πΌπ¦ Download x64-guest_test_uefi
inputs:
artifact: x64-guest_test_uefi
path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-guest_test_uefi
- task: DownloadPipelineArtifact@2
displayName: πΌπ¦ Download x64-linux-musl-pipette
inputs:
artifact: x64-linux-musl-pipette
path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-linux-musl-pipette
- task: DownloadPipelineArtifact@2
displayName: πΌπ¦ Download x64-linux-musl-tmk_vmm
inputs:
artifact: x64-linux-musl-tmk_vmm
path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-linux-musl-tmk_vmm
- task: DownloadPipelineArtifact@2
displayName: πΌπ¦ Download x64-linux-openvmm
inputs:
artifact: x64-linux-openvmm
path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-linux-openvmm
- task: DownloadPipelineArtifact@2
displayName: πΌπ¦ Download x64-linux-vmm-tests-archive
inputs:
artifact: x64-linux-vmm-tests-archive
path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-linux-vmm-tests-archive
- task: DownloadPipelineArtifact@2
displayName: πΌπ¦ Download x64-tmks
inputs:
artifact: x64-tmks
path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-tmks
- task: DownloadPipelineArtifact@2
displayName: πΌπ¦ Download x64-windows-pipette
inputs:
artifact: x64-windows-pipette
path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-pipette
- bash: |
set -e
AgentTempDirNormal="$(FLOWEY_TEMP_DIR)"
AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
echo "##vso[task.setvariable variable=AgentTempDirNormal;]$AgentTempDirNormal"
chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey
FLOWEY_BIN="$AgentTempDirNormal/bootstrapped-flowey/flowey"
echo "##vso[task.setvariable variable=FLOWEY_BIN;]$FLOWEY_BIN"
displayName: Set flowey path
- bash: |
set -e
echo '"debug"' | $FLOWEY_BIN v 15 'FLOWEY_LOG' update
echo "$(FLOWEY_TEMP_DIR)/work" | $FLOWEY_BIN v 15 '_internal_WORKING_DIR' --is-raw-string update
cat <<'EOF' | tr '[:upper:]' '[:lower:]' | $FLOWEY_BIN v 15 'verbose' update
${{ parameters.verbose }}
EOF
echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-guest_test_uefi" | $FLOWEY_BIN v 15 'artifact_use_from_x64-guest_test_uefi' --is-raw-string update
echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-linux-musl-pipette" | $FLOWEY_BIN v 15 'artifact_use_from_x64-linux-musl-pipette' --is-raw-string update
echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-linux-musl-tmk_vmm" | $FLOWEY_BIN v 15 'artifact_use_from_x64-linux-musl-tmk_vmm' --is-raw-string update
echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-linux-openvmm" | $FLOWEY_BIN v 15 'artifact_use_from_x64-linux-openvmm' --is-raw-string update
echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-linux-vmm-tests-archive" | $FLOWEY_BIN v 15 'artifact_use_from_x64-linux-vmm-tests-archive' --is-raw-string update
echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-tmks" | $FLOWEY_BIN v 15 'artifact_use_from_x64-tmks' --is-raw-string update
echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-pipette" | $FLOWEY_BIN v 15 'artifact_use_from_x64-windows-pipette' --is-raw-string update
displayName: πΌπ« Initialize job
- bash: $(FLOWEY_BIN) e 15 flowey_lib_hvlite::test_nextest_vmm_tests_archive 0
displayName: ensure /dev/kvm is accessible
- bash: |-
set -e
$(FLOWEY_BIN) e 15 flowey_lib_common::download_cargo_nextest 0
$(FLOWEY_BIN) e 15 flowey_lib_common::download_cargo_nextest 1
$(FLOWEY_BIN) e 15 flowey_lib_common::download_cargo_nextest 2
$(FLOWEY_BIN) e 15 flowey_lib_common::download_cargo_nextest 3
displayName: create cargo-nextest cache dir
- bash: |-
set -e
$(FLOWEY_BIN) e 15 flowey_lib_common::cache 0
$FLOWEY_BIN v 15 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:236:72' --is-raw-string write-to-env ado floweyvar3
$FLOWEY_BIN v 15 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:237:72' --is-raw-string write-to-env ado floweyvar4
displayName: Pre-processing cache vars
- task: Cache@2
inputs:
key: $(floweyvar4)
path: $(floweyvar3)
cacheHitVar: FLOWEY_CACHE_HITVAR
displayName: 'Restore cache: cargo-nextest'
- bash: |-
set -e
$FLOWEY_BIN v 15 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:300:70' --is-raw-string update --env-source FLOWEY_CACHE_HITVAR <<'EOF'
$(FLOWEY_CACHE_HITVAR)
EOF
$(FLOWEY_BIN) e 15 flowey_lib_common::cache 2
displayName: map ADO hitvar to flowey
- bash: $(FLOWEY_BIN) e 15 flowey_lib_common::download_cargo_nextest 4
displayName: downloading cargo-nextest
- bash: |-
set -e
$(FLOWEY_BIN) e 15 flowey_lib_common::git_checkout 0
$FLOWEY_BIN v 15 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:299:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:300:46 write-to-env ado floweyvar2
$FLOWEY_BIN v 15 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:300:46' write-to-env ado FLOWEY_CONDITION
displayName: check if openvmm needs to be cloned
- checkout: self
path: repo0
fetchTags: false
fetchDepth: 1
persistCredentials: $(floweyvar2)
submodules: recursive
displayName: checkout repo openvmm
condition: and(eq(variables['FLOWEY_CONDITION'], true), succeeded(), not(canceled()))
- bash: |-
set -e
$(FLOWEY_BIN) e 15 flowey_lib_common::git_checkout 2
$(FLOWEY_BIN) e 15 flowey_lib_hvlite::git_checkout_openvmm_repo 0
$(FLOWEY_BIN) e 15 flowey_lib_hvlite::run_cargo_nextest_run 0
$(FLOWEY_BIN) e 15 flowey_core::pipeline::artifact::resolve 3
$(FLOWEY_BIN) e 15 flowey_core::pipeline::artifact::resolve 6
$(FLOWEY_BIN) e 15 flowey_core::pipeline::artifact::resolve 1
$(FLOWEY_BIN) e 15 flowey_core::pipeline::artifact::resolve 0
$(FLOWEY_BIN) e 15 flowey_core::pipeline::artifact::resolve 2
$(FLOWEY_BIN) e 15 flowey_core::pipeline::artifact::resolve 5
displayName: report cloned repo directories
- bash: $(FLOWEY_BIN) e 15 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 0
displayName: creating new test content dir
- bash: $(FLOWEY_BIN) e 15 flowey_lib_common::install_dist_pkg 0
displayName: checking if packages need to be installed
- bash: $(FLOWEY_BIN) e 15 flowey_lib_common::install_dist_pkg 1
displayName: installing packages
- bash: $(FLOWEY_BIN) e 15 flowey_lib_common::download_gh_release 0
displayName: create gh-release-download cache dir
- bash: |-
set -e
$(FLOWEY_BIN) e 15 flowey_lib_common::cache 4
$FLOWEY_BIN v 15 'flowey_lib_common::cache:8:flowey_lib_common/src/cache.rs:236:72' --is-raw-string write-to-env ado floweyvar5
$FLOWEY_BIN v 15 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:237:72' --is-raw-string write-to-env ado floweyvar6
displayName: Pre-processing cache vars
- task: Cache@2
inputs:
key: $(floweyvar6)
path: $(floweyvar5)
cacheHitVar: FLOWEY_CACHE_HITVAR
displayName: 'Restore cache: gh-release-download'
- bash: |-
set -e
$FLOWEY_BIN v 15 'flowey_lib_common::cache:11:flowey_lib_common/src/cache.rs:300:70' --is-raw-string update --env-source FLOWEY_CACHE_HITVAR <<'EOF'
$(FLOWEY_CACHE_HITVAR)
EOF
$(FLOWEY_BIN) e 15 flowey_lib_common::cache 6
displayName: map ADO hitvar to flowey
- bash: $(FLOWEY_BIN) e 15 flowey_lib_common::download_gh_release 1
displayName: download artifacts from github releases
- bash: $(FLOWEY_BIN) e 15 flowey_lib_common::download_azcopy 0
displayName: extract azcopy from archive
- bash: $(FLOWEY_BIN) e 15 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 0
displayName: calculating required VMM tests disk images
- bash: |-
set -e
$(FLOWEY_BIN) e 15 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 1
$(FLOWEY_BIN) e 15 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 2
displayName: downloading VMM test disk images
- bash: $(FLOWEY_BIN) e 15 flowey_lib_hvlite::resolve_openvmm_deps 0
displayName: unpack openvmm-deps archive
- bash: $(FLOWEY_BIN) e 15 flowey_lib_hvlite::download_uefi_mu_msvm 0
displayName: unpack mu_msvm package (x64)
- bash: |-
set -e
$(FLOWEY_BIN) e 15 flowey_lib_hvlite::init_vmm_tests_env 0
$(FLOWEY_BIN) e 15 flowey_lib_hvlite::run_cargo_nextest_run 1
$(FLOWEY_BIN) e 15 flowey_core::pipeline::artifact::resolve 4
$(FLOWEY_BIN) e 15 flowey_lib_hvlite::test_nextest_vmm_tests_archive 1
displayName: setting up vmm_tests env
- bash: $(FLOWEY_BIN) e 15 flowey_lib_common::gen_cargo_nextest_run_cmd 0
displayName: generate nextest command
- bash: $(FLOWEY_BIN) e 15 flowey_lib_hvlite::install_vmm_tests_deps 0
displayName: install vmm tests deps (linux)
- bash: |-
set -e
$(FLOWEY_BIN) e 15 flowey_lib_common::run_cargo_nextest_run 0
$(FLOWEY_BIN) e 15 flowey_lib_common::run_cargo_nextest_run 1
$(FLOWEY_BIN) e 15 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 2
$(FLOWEY_BIN) e 15 flowey_lib_common::publish_test_results 1
$(FLOWEY_BIN) e 15 flowey_lib_common::ado_task_publish_test_results 0
$(FLOWEY_BIN) e 15 flowey_lib_common::publish_test_results 0
$FLOWEY_BIN v 15 'flowey_lib_common::ado_task_publish_test_results:0:flowey_lib_common/src/ado_task_publish_test_results.rs:57:45' --is-raw-string --condvar flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env ado floweyvar1
$FLOWEY_BIN v 15 'flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env ado FLOWEY_CONDITION
displayName: run 'vmm_tests' nextest tests
- task: PublishTestResults@2
inputs:
testResultsFormat: JUnit
testResultsFiles: $(floweyvar1)
testRunTitle: x64-linux-vmm-tests
displayName: 'publish test results: x64-linux-vmm-tests (JUnit XML)'
condition: and(eq(variables['FLOWEY_CONDITION'], true), succeeded(), not(canceled()))
- bash: |-
set -e
$(FLOWEY_BIN) e 15 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 1
$(FLOWEY_BIN) e 15 flowey_lib_common::publish_test_results 2
$(FLOWEY_BIN) e 15 flowey_lib_common::publish_test_results 3
$(FLOWEY_BIN) e 15 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 3
displayName: report test results to overall pipeline status
- bash: $(FLOWEY_BIN) e 15 flowey_lib_common::cache 3
displayName: 'validate cache entry: cargo-nextest'
- bash: $(FLOWEY_BIN) e 15 flowey_lib_common::cache 7
displayName: 'validate cache entry: gh-release-download'
- job: job14
displayName: run vmm-tests [x64-windows-amd]
pool: HvLite-CI-Win-Pool
dependsOn:
- job5
- job7
- job9
condition: and(succeeded(), not(canceled()))
variables:
- name: FLOWEY_TEMP_DIR
value: $(Build.StagingDirectory)/.flowey-internal
steps:
- task: DownloadPipelineArtifact@2
displayName: πΌπ₯Ύ Download bootstrapped flowey
inputs:
artifact: _internal-flowey-bootstrap-x86_64-windows-uid-8
path: $(FLOWEY_TEMP_DIR)/bootstrapped-flowey
- task: DownloadPipelineArtifact@2
displayName: πΌπ¦ Download x64-guest_test_uefi
inputs:
artifact: x64-guest_test_uefi
path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-guest_test_uefi
- task: DownloadPipelineArtifact@2
displayName: πΌπ¦ Download x64-linux-musl-pipette
inputs:
artifact: x64-linux-musl-pipette
path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-linux-musl-pipette
- task: DownloadPipelineArtifact@2
displayName: πΌπ¦ Download x64-linux-musl-tmk_vmm
inputs:
artifact: x64-linux-musl-tmk_vmm
path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-linux-musl-tmk_vmm
- task: DownloadPipelineArtifact@2
displayName: πΌπ¦ Download x64-linux-tpm_guest_tests
inputs:
artifact: x64-linux-tpm_guest_tests
path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-linux-tpm_guest_tests
- task: DownloadPipelineArtifact@2
displayName: πΌπ¦ Download x64-openhcl-igvm
inputs:
artifact: x64-openhcl-igvm
path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-openhcl-igvm
- task: DownloadPipelineArtifact@2
displayName: πΌπ¦ Download x64-tmks
inputs:
artifact: x64-tmks
path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-tmks
- task: DownloadPipelineArtifact@2
displayName: πΌπ¦ Download x64-windows-openvmm
inputs:
artifact: x64-windows-openvmm
path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-openvmm
- task: DownloadPipelineArtifact@2
displayName: πΌπ¦ Download x64-windows-pipette
inputs:
artifact: x64-windows-pipette
path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-pipette
- task: DownloadPipelineArtifact@2
displayName: πΌπ¦ Download x64-windows-prep_steps
inputs:
artifact: x64-windows-prep_steps
path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-prep_steps
- task: DownloadPipelineArtifact@2
displayName: πΌπ¦ Download x64-windows-tmk_vmm
inputs:
artifact: x64-windows-tmk_vmm
path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-tmk_vmm
- task: DownloadPipelineArtifact@2
displayName: πΌπ¦ Download x64-windows-tpm_guest_tests
inputs:
artifact: x64-windows-tpm_guest_tests
path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-tpm_guest_tests
- task: DownloadPipelineArtifact@2
displayName: πΌπ¦ Download x64-windows-vmgstool
inputs:
artifact: x64-windows-vmgstool
path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-vmgstool
- task: DownloadPipelineArtifact@2
displayName: πΌπ¦ Download x64-windows-vmm-tests-archive
inputs:
artifact: x64-windows-vmm-tests-archive
path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-vmm-tests-archive
- bash: |
set -e
AgentTempDirNormal="$(FLOWEY_TEMP_DIR)"
AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
echo "##vso[task.setvariable variable=AgentTempDirNormal;]$AgentTempDirNormal"
chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe
FLOWEY_BIN="$AgentTempDirNormal/bootstrapped-flowey/flowey.exe"
echo "##vso[task.setvariable variable=FLOWEY_BIN;]$FLOWEY_BIN"
displayName: Set flowey path
- bash: |
set -e
echo '"debug"' | $FLOWEY_BIN v 14 'FLOWEY_LOG' update
echo "$(FLOWEY_TEMP_DIR)/work" | $FLOWEY_BIN v 14 '_internal_WORKING_DIR' --is-raw-string update
cat <<'EOF' | tr '[:upper:]' '[:lower:]' | $FLOWEY_BIN v 14 'verbose' update
${{ parameters.verbose }}
EOF
echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-guest_test_uefi" | $FLOWEY_BIN v 14 'artifact_use_from_x64-guest_test_uefi' --is-raw-string update
echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-linux-musl-pipette" | $FLOWEY_BIN v 14 'artifact_use_from_x64-linux-musl-pipette' --is-raw-string update
echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-linux-musl-tmk_vmm" | $FLOWEY_BIN v 14 'artifact_use_from_x64-linux-musl-tmk_vmm' --is-raw-string update
echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-linux-tpm_guest_tests" | $FLOWEY_BIN v 14 'artifact_use_from_x64-linux-tpm_guest_tests' --is-raw-string update
echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-openhcl-igvm" | $FLOWEY_BIN v 14 'artifact_use_from_x64-openhcl-igvm' --is-raw-string update
echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-tmks" | $FLOWEY_BIN v 14 'artifact_use_from_x64-tmks' --is-raw-string update
echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-openvmm" | $FLOWEY_BIN v 14 'artifact_use_from_x64-windows-openvmm' --is-raw-string update
echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-pipette" | $FLOWEY_BIN v 14 'artifact_use_from_x64-windows-pipette' --is-raw-string update
echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-prep_steps" | $FLOWEY_BIN v 14 'artifact_use_from_x64-windows-prep_steps' --is-raw-string update
echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-tmk_vmm" | $FLOWEY_BIN v 14 'artifact_use_from_x64-windows-tmk_vmm' --is-raw-string update
echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-tpm_guest_tests" | $FLOWEY_BIN v 14 'artifact_use_from_x64-windows-tpm_guest_tests' --is-raw-string update
echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-vmgstool" | $FLOWEY_BIN v 14 'artifact_use_from_x64-windows-vmgstool' --is-raw-string update
echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-vmm-tests-archive" | $FLOWEY_BIN v 14 'artifact_use_from_x64-windows-vmm-tests-archive' --is-raw-string update
displayName: πΌπ« Initialize job
- bash: |-
set -e
$(FLOWEY_BIN) e 14 flowey_lib_common::download_cargo_nextest 0
$(FLOWEY_BIN) e 14 flowey_lib_common::download_cargo_nextest 1
$(FLOWEY_BIN) e 14 flowey_lib_common::download_cargo_nextest 2
$(FLOWEY_BIN) e 14 flowey_lib_common::download_cargo_nextest 3
displayName: create cargo-nextest cache dir
- bash: |-
set -e
$(FLOWEY_BIN) e 14 flowey_lib_common::cache 0
$FLOWEY_BIN v 14 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:236:72' --is-raw-string write-to-env ado floweyvar3
$FLOWEY_BIN v 14 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:237:72' --is-raw-string write-to-env ado floweyvar4
displayName: Pre-processing cache vars
- task: Cache@2
inputs:
key: $(floweyvar4)
path: $(floweyvar3)
cacheHitVar: FLOWEY_CACHE_HITVAR
displayName: 'Restore cache: cargo-nextest'
- bash: |-
set -e
$FLOWEY_BIN v 14 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:300:70' --is-raw-string update --env-source FLOWEY_CACHE_HITVAR <<'EOF'
$(FLOWEY_CACHE_HITVAR)
EOF
$(FLOWEY_BIN) e 14 flowey_lib_common::cache 2
displayName: map ADO hitvar to flowey
- bash: $(FLOWEY_BIN) e 14 flowey_lib_common::download_cargo_nextest 4
displayName: downloading cargo-nextest
- bash: |-
set -e
$(FLOWEY_BIN) e 14 flowey_lib_common::git_checkout 0
$FLOWEY_BIN v 14 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:299:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:300:46 write-to-env ado floweyvar2
$FLOWEY_BIN v 14 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:300:46' write-to-env ado FLOWEY_CONDITION
displayName: check if openvmm needs to be cloned
- checkout: self
path: repo0
fetchTags: false
fetchDepth: 1
persistCredentials: $(floweyvar2)
submodules: recursive
displayName: checkout repo openvmm
condition: and(eq(variables['FLOWEY_CONDITION'], true), succeeded(), not(canceled()))
- bash: |-
set -e
$(FLOWEY_BIN) e 14 flowey_lib_common::git_checkout 2
$(FLOWEY_BIN) e 14 flowey_lib_hvlite::git_checkout_openvmm_repo 0
$(FLOWEY_BIN) e 14 flowey_lib_hvlite::run_cargo_nextest_run 0
$(FLOWEY_BIN) e 14 flowey_core::pipeline::artifact::resolve 5
$(FLOWEY_BIN) e 14 flowey_core::pipeline::artifact::resolve 6
$(FLOWEY_BIN) e 14 flowey_core::pipeline::artifact::resolve 1
$(FLOWEY_BIN) e 14 flowey_core::pipeline::artifact::resolve 0
$(FLOWEY_BIN) e 14 flowey_core::pipeline::artifact::resolve 8
$(FLOWEY_BIN) e 14 flowey_core::pipeline::artifact::resolve 2
$(FLOWEY_BIN) e 14 flowey_core::pipeline::artifact::resolve 4
$(FLOWEY_BIN) e 14 flowey_core::pipeline::artifact::resolve 10
$(FLOWEY_BIN) e 14 flowey_core::pipeline::artifact::resolve 9
$(FLOWEY_BIN) e 14 flowey_core::pipeline::artifact::resolve 3
displayName: report cloned repo directories
- bash: $(FLOWEY_BIN) e 14 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 0
displayName: creating new test content dir
- bash: $(FLOWEY_BIN) e 14 flowey_lib_hvlite::artifact_openhcl_igvm_from_recipe::resolve 0
displayName: resolve OpenHCL igvm artifact
- bash: $(FLOWEY_BIN) e 14 flowey_lib_common::download_gh_release 0
displayName: create gh-release-download cache dir
- bash: |-
set -e
$(FLOWEY_BIN) e 14 flowey_lib_common::cache 4
$FLOWEY_BIN v 14 'flowey_lib_common::cache:8:flowey_lib_common/src/cache.rs:236:72' --is-raw-string write-to-env ado floweyvar5
$FLOWEY_BIN v 14 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:237:72' --is-raw-string write-to-env ado floweyvar6
displayName: Pre-processing cache vars
- task: Cache@2
inputs:
key: $(floweyvar6)
path: $(floweyvar5)
cacheHitVar: FLOWEY_CACHE_HITVAR
displayName: 'Restore cache: gh-release-download'
- bash: |-
set -e
$FLOWEY_BIN v 14 'flowey_lib_common::cache:11:flowey_lib_common/src/cache.rs:300:70' --is-raw-string update --env-source FLOWEY_CACHE_HITVAR <<'EOF'
$(FLOWEY_CACHE_HITVAR)
EOF
$(FLOWEY_BIN) e 14 flowey_lib_common::cache 6
displayName: map ADO hitvar to flowey
- bash: $(FLOWEY_BIN) e 14 flowey_lib_common::download_gh_release 1
displayName: download artifacts from github releases
- bash: $(FLOWEY_BIN) e 14 flowey_lib_common::download_azcopy 0
displayName: extract azcopy from archive
- bash: $(FLOWEY_BIN) e 14 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 0
displayName: calculating required VMM tests disk images
- bash: |-
set -e
$(FLOWEY_BIN) e 14 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 1
$(FLOWEY_BIN) e 14 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 2
displayName: downloading VMM test disk images
- bash: $(FLOWEY_BIN) e 14 flowey_lib_hvlite::resolve_openvmm_deps 0
displayName: unpack openvmm-deps archive
- bash: $(FLOWEY_BIN) e 14 flowey_lib_hvlite::download_uefi_mu_msvm 0
displayName: unpack mu_msvm package (x64)
- bash: |-
set -e
$(FLOWEY_BIN) e 14 flowey_lib_hvlite::init_vmm_tests_env 0
$(FLOWEY_BIN) e 14 flowey_lib_hvlite::run_cargo_nextest_run 1
$(FLOWEY_BIN) e 14 flowey_core::pipeline::artifact::resolve 11
$(FLOWEY_BIN) e 14 flowey_lib_hvlite::test_nextest_vmm_tests_archive 0
displayName: setting up vmm_tests env
- bash: $(FLOWEY_BIN) e 14 flowey_lib_common::gen_cargo_nextest_run_cmd 0
displayName: generate nextest command
- bash: $(FLOWEY_BIN) e 14 flowey_lib_hvlite::install_vmm_tests_deps 0
displayName: install vmm tests deps (windows)
- bash: |-
set -e
$(FLOWEY_BIN) e 14 flowey_lib_common::run_cargo_nextest_run 0
$(FLOWEY_BIN) e 14 flowey_lib_common::run_cargo_nextest_run 1
$(FLOWEY_BIN) e 14 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 2
$(FLOWEY_BIN) e 14 flowey_lib_common::publish_test_results 1
$(FLOWEY_BIN) e 14 flowey_lib_common::ado_task_publish_test_results 0
$(FLOWEY_BIN) e 14 flowey_lib_common::publish_test_results 0
$FLOWEY_BIN v 14 'flowey_lib_common::ado_task_publish_test_results:0:flowey_lib_common/src/ado_task_publish_test_results.rs:57:45' --is-raw-string --condvar flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env ado floweyvar1
$FLOWEY_BIN v 14 'flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env ado FLOWEY_CONDITION
displayName: run 'vmm_tests' nextest tests
- task: PublishTestResults@2
inputs:
testResultsFormat: JUnit
testResultsFiles: $(floweyvar1)
testRunTitle: x64-windows-amd-vmm-tests
displayName: 'publish test results: x64-windows-amd-vmm-tests (JUnit XML)'
condition: and(eq(variables['FLOWEY_CONDITION'], true), succeeded(), not(canceled()))
- bash: |-
set -e
$(FLOWEY_BIN) e 14 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 1
$(FLOWEY_BIN) e 14 flowey_lib_common::publish_test_results 2
$(FLOWEY_BIN) e 14 flowey_lib_common::publish_test_results 3
$(FLOWEY_BIN) e 14 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 3
displayName: report test results to overall pipeline status
- bash: $(FLOWEY_BIN) e 14 flowey_lib_common::cache 3
displayName: 'validate cache entry: cargo-nextest'
- bash: $(FLOWEY_BIN) e 14 flowey_lib_common::cache 7
displayName: 'validate cache entry: gh-release-download'
- job: job13
displayName: run vmm-tests [x64-windows-intel]
pool: HvLite-CI-Win-Pool
dependsOn:
- job5
- job7
- job9
condition: and(succeeded(), not(canceled()))
variables:
- name: FLOWEY_TEMP_DIR
value: $(Build.StagingDirectory)/.flowey-internal
steps:
- task: DownloadPipelineArtifact@2
displayName: πΌπ₯Ύ Download bootstrapped flowey
inputs:
artifact: _internal-flowey-bootstrap-x86_64-windows-uid-8
path: $(FLOWEY_TEMP_DIR)/bootstrapped-flowey
- task: DownloadPipelineArtifact@2
displayName: πΌπ¦ Download x64-guest_test_uefi
inputs:
artifact: x64-guest_test_uefi
path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-guest_test_uefi
- task: DownloadPipelineArtifact@2
displayName: πΌπ¦ Download x64-linux-musl-pipette
inputs:
artifact: x64-linux-musl-pipette
path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-linux-musl-pipette
- task: DownloadPipelineArtifact@2
displayName: πΌπ¦ Download x64-linux-musl-tmk_vmm
inputs:
artifact: x64-linux-musl-tmk_vmm
path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-linux-musl-tmk_vmm
- task: DownloadPipelineArtifact@2
displayName: πΌπ¦ Download x64-linux-tpm_guest_tests
inputs:
artifact: x64-linux-tpm_guest_tests
path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-linux-tpm_guest_tests
- task: DownloadPipelineArtifact@2
displayName: πΌπ¦ Download x64-openhcl-igvm
inputs:
artifact: x64-openhcl-igvm
path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-openhcl-igvm
- task: DownloadPipelineArtifact@2
displayName: πΌπ¦ Download x64-tmks
inputs:
artifact: x64-tmks
path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-tmks
- task: DownloadPipelineArtifact@2
displayName: πΌπ¦ Download x64-windows-openvmm
inputs:
artifact: x64-windows-openvmm
path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-openvmm
- task: DownloadPipelineArtifact@2
displayName: πΌπ¦ Download x64-windows-pipette
inputs:
artifact: x64-windows-pipette
path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-pipette
- task: DownloadPipelineArtifact@2
displayName: πΌπ¦ Download x64-windows-prep_steps
inputs:
artifact: x64-windows-prep_steps
path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-prep_steps
- task: DownloadPipelineArtifact@2
displayName: πΌπ¦ Download x64-windows-tmk_vmm
inputs:
artifact: x64-windows-tmk_vmm
path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-tmk_vmm
- task: DownloadPipelineArtifact@2
displayName: πΌπ¦ Download x64-windows-tpm_guest_tests
inputs:
artifact: x64-windows-tpm_guest_tests
path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-tpm_guest_tests
- task: DownloadPipelineArtifact@2
displayName: πΌπ¦ Download x64-windows-vmgstool
inputs:
artifact: x64-windows-vmgstool
path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-vmgstool
- task: DownloadPipelineArtifact@2
displayName: πΌπ¦ Download x64-windows-vmm-tests-archive
inputs:
artifact: x64-windows-vmm-tests-archive
path: $(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-vmm-tests-archive
- bash: |
set -e
AgentTempDirNormal="$(FLOWEY_TEMP_DIR)"
AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
echo "##vso[task.setvariable variable=AgentTempDirNormal;]$AgentTempDirNormal"
chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe
FLOWEY_BIN="$AgentTempDirNormal/bootstrapped-flowey/flowey.exe"
echo "##vso[task.setvariable variable=FLOWEY_BIN;]$FLOWEY_BIN"
displayName: Set flowey path
- bash: |
set -e
echo '"debug"' | $FLOWEY_BIN v 13 'FLOWEY_LOG' update
echo "$(FLOWEY_TEMP_DIR)/work" | $FLOWEY_BIN v 13 '_internal_WORKING_DIR' --is-raw-string update
cat <<'EOF' | tr '[:upper:]' '[:lower:]' | $FLOWEY_BIN v 13 'verbose' update
${{ parameters.verbose }}
EOF
echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-guest_test_uefi" | $FLOWEY_BIN v 13 'artifact_use_from_x64-guest_test_uefi' --is-raw-string update
echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-linux-musl-pipette" | $FLOWEY_BIN v 13 'artifact_use_from_x64-linux-musl-pipette' --is-raw-string update
echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-linux-musl-tmk_vmm" | $FLOWEY_BIN v 13 'artifact_use_from_x64-linux-musl-tmk_vmm' --is-raw-string update
echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-linux-tpm_guest_tests" | $FLOWEY_BIN v 13 'artifact_use_from_x64-linux-tpm_guest_tests' --is-raw-string update
echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-openhcl-igvm" | $FLOWEY_BIN v 13 'artifact_use_from_x64-openhcl-igvm' --is-raw-string update
echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-tmks" | $FLOWEY_BIN v 13 'artifact_use_from_x64-tmks' --is-raw-string update
echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-openvmm" | $FLOWEY_BIN v 13 'artifact_use_from_x64-windows-openvmm' --is-raw-string update
echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-pipette" | $FLOWEY_BIN v 13 'artifact_use_from_x64-windows-pipette' --is-raw-string update
echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-prep_steps" | $FLOWEY_BIN v 13 'artifact_use_from_x64-windows-prep_steps' --is-raw-string update
echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-tmk_vmm" | $FLOWEY_BIN v 13 'artifact_use_from_x64-windows-tmk_vmm' --is-raw-string update
echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-tpm_guest_tests" | $FLOWEY_BIN v 13 'artifact_use_from_x64-windows-tpm_guest_tests' --is-raw-string update
echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-vmgstool" | $FLOWEY_BIN v 13 'artifact_use_from_x64-windows-vmgstool' --is-raw-string update
echo "$(FLOWEY_TEMP_DIR)/used_artifacts/x64-windows-vmm-tests-archive" | $FLOWEY_BIN v 13 'artifact_use_from_x64-windows-vmm-tests-archive' --is-raw-string update
displayName: πΌπ« Initialize job
- bash: |-
set -e
$(FLOWEY_BIN) e 13 flowey_lib_common::download_cargo_nextest 0
$(FLOWEY_BIN) e 13 flowey_lib_common::download_cargo_nextest 1
$(FLOWEY_BIN) e 13 flowey_lib_common::download_cargo_nextest 2
$(FLOWEY_BIN) e 13 flowey_lib_common::download_cargo_nextest 3
displayName: create cargo-nextest cache dir
- bash: |-
set -e
$(FLOWEY_BIN) e 13 flowey_lib_common::cache 0
$FLOWEY_BIN v 13 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:236:72' --is-raw-string write-to-env ado floweyvar3
$FLOWEY_BIN v 13 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:237:72' --is-raw-string write-to-env ado floweyvar4
displayName: Pre-processing cache vars
- task: Cache@2
inputs:
key: $(floweyvar4)
path: $(floweyvar3)
cacheHitVar: FLOWEY_CACHE_HITVAR
displayName: 'Restore cache: cargo-nextest'
- bash: |-
set -e
$FLOWEY_BIN v 13 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:300:70' --is-raw-string update --env-source FLOWEY_CACHE_HITVAR <<'EOF'
$(FLOWEY_CACHE_HITVAR)
EOF
$(FLOWEY_BIN) e 13 flowey_lib_common::cache 2
displayName: map ADO hitvar to flowey
- bash: $(FLOWEY_BIN) e 13 flowey_lib_common::download_cargo_nextest 4
displayName: downloading cargo-nextest
- bash: |-
set -e
$(FLOWEY_BIN) e 13 flowey_lib_common::git_checkout 0
$FLOWEY_BIN v 13 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:299:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:300:46 write-to-env ado floweyvar2
$FLOWEY_BIN v 13 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:300:46' write-to-env ado FLOWEY_CONDITION
displayName: check if openvmm needs to be cloned
- checkout: self
path: repo0
fetchTags: false
fetchDepth: 1
persistCredentials: $(floweyvar2)
submodules: recursive
displayName: checkout repo openvmm
condition: and(eq(variables['FLOWEY_CONDITION'], true), succeeded(), not(canceled()))
- bash: |-
set -e
$(FLOWEY_BIN) e 13 flowey_lib_common::git_checkout 2
$(FLOWEY_BIN) e 13 flowey_lib_hvlite::git_checkout_openvmm_repo 0
$(FLOWEY_BIN) e 13 flowey_lib_hvlite::run_cargo_nextest_run 0
$(FLOWEY_BIN) e 13 flowey_core::pipeline::artifact::resolve 5
$(FLOWEY_BIN) e 13 flowey_core::pipeline::artifact::resolve 6
$(FLOWEY_BIN) e 13 flowey_core::pipeline::artifact::resolve 1
$(FLOWEY_BIN) e 13 flowey_core::pipeline::artifact::resolve 0
$(FLOWEY_BIN) e 13 flowey_core::pipeline::artifact::resolve 8
$(FLOWEY_BIN) e 13 flowey_core::pipeline::artifact::resolve 2
$(FLOWEY_BIN) e 13 flowey_core::pipeline::artifact::resolve 4
$(FLOWEY_BIN) e 13 flowey_core::pipeline::artifact::resolve 10
$(FLOWEY_BIN) e 13 flowey_core::pipeline::artifact::resolve 9
$(FLOWEY_BIN) e 13 flowey_core::pipeline::artifact::resolve 3
displayName: report cloned repo directories
- bash: $(FLOWEY_BIN) e 13 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 0
displayName: creating new test content dir
- bash: $(FLOWEY_BIN) e 13 flowey_lib_hvlite::artifact_openhcl_igvm_from_recipe::resolve 0
displayName: resolve OpenHCL igvm artifact
- bash: $(FLOWEY_BIN) e 13 flowey_lib_common::download_gh_release 0
displayName: create gh-release-download cache dir
- bash: |-
set -e
$(FLOWEY_BIN) e 13 flowey_lib_common::cache 4
$FLOWEY_BIN v 13 'flowey_lib_common::cache:8:flowey_lib_common/src/cache.rs:236:72' --is-raw-string write-to-env ado floweyvar5
$FLOWEY_BIN v 13 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:237:72' --is-raw-string write-to-env ado floweyvar6
displayName: Pre-processing cache vars
- task: Cache@2
inputs:
key: $(floweyvar6)
path: $(floweyvar5)
cacheHitVar: FLOWEY_CACHE_HITVAR
displayName: 'Restore cache: gh-release-download'
- bash: |-
set -e
$FLOWEY_BIN v 13 'flowey_lib_common::cache:11:flowey_lib_common/src/cache.rs:300:70' --is-raw-string update --env-source FLOWEY_CACHE_HITVAR <<'EOF'
$(FLOWEY_CACHE_HITVAR)
EOF
$(FLOWEY_BIN) e 13 flowey_lib_common::cache 6
displayName: map ADO hitvar to flowey
- bash: $(FLOWEY_BIN) e 13 flowey_lib_common::download_gh_release 1
displayName: download artifacts from github releases
- bash: $(FLOWEY_BIN) e 13 flowey_lib_common::download_azcopy 0
displayName: extract azcopy from archive
- bash: $(FLOWEY_BIN) e 13 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 0
displayName: calculating required VMM tests disk images
- bash: |-
set -e
$(FLOWEY_BIN) e 13 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 1
$(FLOWEY_BIN) e 13 flowey_lib_hvlite::download_openvmm_vmm_tests_artifacts 2
displayName: downloading VMM test disk images
- bash: $(FLOWEY_BIN) e 13 flowey_lib_hvlite::resolve_openvmm_deps 0
displayName: unpack openvmm-deps archive
- bash: $(FLOWEY_BIN) e 13 flowey_lib_hvlite::download_uefi_mu_msvm 0
displayName: unpack mu_msvm package (x64)
- bash: |-
set -e
$(FLOWEY_BIN) e 13 flowey_lib_hvlite::init_vmm_tests_env 0
$(FLOWEY_BIN) e 13 flowey_lib_hvlite::run_cargo_nextest_run 1
$(FLOWEY_BIN) e 13 flowey_core::pipeline::artifact::resolve 11
$(FLOWEY_BIN) e 13 flowey_lib_hvlite::test_nextest_vmm_tests_archive 0
displayName: setting up vmm_tests env
- bash: $(FLOWEY_BIN) e 13 flowey_lib_common::gen_cargo_nextest_run_cmd 0
displayName: generate nextest command
- bash: $(FLOWEY_BIN) e 13 flowey_lib_hvlite::install_vmm_tests_deps 0
displayName: install vmm tests deps (windows)
- bash: |-
set -e
$(FLOWEY_BIN) e 13 flowey_lib_common::run_cargo_nextest_run 0
$(FLOWEY_BIN) e 13 flowey_lib_common::run_cargo_nextest_run 1
$(FLOWEY_BIN) e 13 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 2
$(FLOWEY_BIN) e 13 flowey_lib_common::publish_test_results 1
$(FLOWEY_BIN) e 13 flowey_lib_common::ado_task_publish_test_results 0
$(FLOWEY_BIN) e 13 flowey_lib_common::publish_test_results 0
$FLOWEY_BIN v 13 'flowey_lib_common::ado_task_publish_test_results:0:flowey_lib_common/src/ado_task_publish_test_results.rs:57:45' --is-raw-string --condvar flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43 write-to-env ado floweyvar1
$FLOWEY_BIN v 13 'flowey_lib_common::publish_test_results:0:flowey_lib_common/src/publish_test_results.rs:77:43' write-to-env ado FLOWEY_CONDITION
displayName: run 'vmm_tests' nextest tests
- task: PublishTestResults@2
inputs:
testResultsFormat: JUnit
testResultsFiles: $(floweyvar1)
testRunTitle: x64-windows-intel-vmm-tests
displayName: 'publish test results: x64-windows-intel-vmm-tests (JUnit XML)'
condition: and(eq(variables['FLOWEY_CONDITION'], true), succeeded(), not(canceled()))
- bash: |-
set -e
$(FLOWEY_BIN) e 13 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 1
$(FLOWEY_BIN) e 13 flowey_lib_common::publish_test_results 2
$(FLOWEY_BIN) e 13 flowey_lib_common::publish_test_results 3
$(FLOWEY_BIN) e 13 flowey_lib_hvlite::_jobs::consume_and_test_nextest_vmm_tests_archive 3
displayName: report test results to overall pipeline status
- bash: $(FLOWEY_BIN) e 13 flowey_lib_common::cache 3
displayName: 'validate cache entry: cargo-nextest'
- bash: $(FLOWEY_BIN) e 13 flowey_lib_common::cache 7
displayName: 'validate cache entry: gh-release-download'
- job: job4
displayName: build artifacts (not for VMM tests) [x64-windows]
pool: HvLite-CI-Win-Pool
dependsOn: []
condition: and(succeeded(), not(canceled()))
variables:
- name: FLOWEY_TEMP_DIR
value: $(Build.StagingDirectory)/.flowey-internal
steps:
- bash: |
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.91.1 -y
. "$HOME/.cargo/env"
echo '##vso[task.prependpath]$(HOME)/.cargo/bin'
condition: eq(variables['Agent.OS'], 'Linux')
displayName: rustup (Linux)
- bash: |
set -x
curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
./rustup-init.exe -y --default-toolchain=1.91.1
echo '##vso[task.prependpath]$(USERPROFILE)\\.cargo\\bin'
condition: eq(variables['Agent.OS'], 'Windows_NT')
displayName: rustup (Windows X64)
- bash: |
set -x
rustup show
displayName: Verify rustup installation
- checkout: self
fetchTags: false
fetchDepth: 1
path: flowey_bootstrap
- bash: CARGO_INCREMENTAL=0 RUSTC_BOOTSTRAP=1 RUSTFLAGS="-Z threads=8" cargo build -p flowey_hvlite --target x86_64-pc-windows-msvc --profile flowey-ci
workingDirectory: ../flowey_bootstrap
displayName: Build flowey
- bash: |
mkdir ./flowey_bootstrap_temp
mv ./ci-flowey/openvmm-pr.yaml ./flowey_bootstrap_temp/pipeline.yaml
mv ./ci-flowey/openvmm-pr.json ./flowey_bootstrap_temp/pipeline.json
mv target/x86_64-pc-windows-msvc/flowey-ci/flowey_hvlite.exe ./flowey_bootstrap_temp/flowey.exe
workingDirectory: ../flowey_bootstrap
displayName: Stage flowey artifact
- task: CopyFiles@2
displayName: Copy flowey artifact
inputs:
SourceFolder: ../flowey_bootstrap/flowey_bootstrap_temp
TargetFolder: $(FLOWEY_TEMP_DIR)/bootstrapped-flowey
- bash: rm -rf ./flowey_bootstrap_temp
workingDirectory: ../flowey_bootstrap
displayName: Cleanup staged flowey artifact
- bash: |
set -e
AgentTempDirNormal="$(FLOWEY_TEMP_DIR)"
AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
echo "##vso[task.setvariable variable=AgentTempDirNormal;]$AgentTempDirNormal"
chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe
FLOWEY_BIN="$AgentTempDirNormal/bootstrapped-flowey/flowey.exe"
echo "##vso[task.setvariable variable=FLOWEY_BIN;]$FLOWEY_BIN"
displayName: Set flowey path
- bash: |-
ESCAPED_AGENT_TEMPDIR=$(
cat <<'EOF' | sed 's/\\/\\\\/g'
$(FLOWEY_TEMP_DIR)
EOF
)
$(FLOWEY_BIN) pipeline ado --runtime $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out ci-flowey/openvmm-pr.yaml ci checkin-gates --config=pr
displayName: πΌπ Self-check YAML
- bash: |
set -e
echo '"debug"' | $FLOWEY_BIN v 4 'FLOWEY_LOG' update
echo "$(FLOWEY_TEMP_DIR)/work" | $FLOWEY_BIN v 4 '_internal_WORKING_DIR' --is-raw-string update
cat <<'EOF' | tr '[:upper:]' '[:lower:]' | $FLOWEY_BIN v 4 'verbose' update
${{ parameters.verbose }}
EOF
mkdir -p "$(AgentTempDirNormal)/publish_artifacts/x64-windows-hypestv"
echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/x64-windows-hypestv" | $FLOWEY_BIN v 4 'artifact_publish_from_x64-windows-hypestv' --is-raw-string update
mkdir -p "$(AgentTempDirNormal)/publish_artifacts/x64-windows-igvmfilegen"
echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/x64-windows-igvmfilegen" | $FLOWEY_BIN v 4 'artifact_publish_from_x64-windows-igvmfilegen' --is-raw-string update
mkdir -p "$(AgentTempDirNormal)/publish_artifacts/x64-windows-ohcldiag-dev"
echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/x64-windows-ohcldiag-dev" | $FLOWEY_BIN v 4 'artifact_publish_from_x64-windows-ohcldiag-dev' --is-raw-string update
mkdir -p "$(AgentTempDirNormal)/publish_artifacts/x64-windows-vmgs_lib"
echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/x64-windows-vmgs_lib" | $FLOWEY_BIN v 4 'artifact_publish_from_x64-windows-vmgs_lib' --is-raw-string update
displayName: πΌπ« Initialize job
- bash: $(FLOWEY_BIN) e 4 flowey_lib_common::install_rust 0
displayName: install Rust
- bash: |-
set -e
$(FLOWEY_BIN) e 4 flowey_lib_common::install_rust 1
$(FLOWEY_BIN) e 4 flowey_lib_common::cfg_cargo_common_flags 0
displayName: detect active toolchain
- bash: |-
set -e
$(FLOWEY_BIN) e 4 flowey_lib_common::git_checkout 0
$FLOWEY_BIN v 4 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:299:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:300:46 write-to-env ado floweyvar1
$FLOWEY_BIN v 4 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:300:46' write-to-env ado FLOWEY_CONDITION
displayName: check if openvmm needs to be cloned
- checkout: self
path: repo0
fetchTags: false
fetchDepth: 1
persistCredentials: $(floweyvar1)
submodules: recursive
displayName: checkout repo openvmm
condition: and(eq(variables['FLOWEY_CONDITION'], true), succeeded(), not(canceled()))
- bash: |-
set -e
$(FLOWEY_BIN) e 4 flowey_lib_common::git_checkout 2
$(FLOWEY_BIN) e 4 flowey_lib_hvlite::git_checkout_openvmm_repo 0
displayName: report cloned repo directories
- bash: $(FLOWEY_BIN) e 4 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
displayName: set '-Dwarnings' in .cargo/config.toml
- bash: $(FLOWEY_BIN) e 4 flowey_lib_common::download_gh_release 0
displayName: create gh-release-download cache dir
- bash: |-
set -e
$(FLOWEY_BIN) e 4 flowey_lib_common::cache 0
$FLOWEY_BIN v 4 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:236:72' --is-raw-string write-to-env ado floweyvar2
$FLOWEY_BIN v 4 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:237:72' --is-raw-string write-to-env ado floweyvar3
displayName: Pre-processing cache vars
- task: Cache@2
inputs:
key: $(floweyvar3)
path: $(floweyvar2)
cacheHitVar: FLOWEY_CACHE_HITVAR
displayName: 'Restore cache: gh-release-download'
- bash: |-
set -e
$FLOWEY_BIN v 4 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:300:70' --is-raw-string update --env-source FLOWEY_CACHE_HITVAR <<'EOF'
$(FLOWEY_CACHE_HITVAR)
EOF
$(FLOWEY_BIN) e 4 flowey_lib_common::cache 2
displayName: map ADO hitvar to flowey
- bash: $(FLOWEY_BIN) e 4 flowey_lib_common::download_gh_release 1
displayName: download artifacts from github releases
- bash: |-
set -e
$(FLOWEY_BIN) e 4 flowey_lib_common::download_protoc 0
$(FLOWEY_BIN) e 4 flowey_lib_hvlite::cfg_openvmm_magicpath 0
displayName: unpack protoc
- bash: |-
set -e
$(FLOWEY_BIN) e 4 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
$(FLOWEY_BIN) e 4 flowey_lib_hvlite::init_cross_build 1
displayName: symlink protoc
- bash: |-
set -e
$(FLOWEY_BIN) e 4 flowey_lib_common::run_cargo_build 0
$(FLOWEY_BIN) e 4 flowey_lib_hvlite::run_cargo_build 0
$(FLOWEY_BIN) e 4 flowey_lib_hvlite::build_hypestv 0
$(FLOWEY_BIN) e 4 flowey_core::pipeline::artifact::publish 0
$(FLOWEY_BIN) e 4 flowey_lib_hvlite::init_cross_build 0
displayName: cargo build hypestv
- bash: |-
set -e
$(FLOWEY_BIN) e 4 flowey_lib_common::run_cargo_build 3
$(FLOWEY_BIN) e 4 flowey_lib_hvlite::run_cargo_build 3
$(FLOWEY_BIN) e 4 flowey_lib_hvlite::build_and_test_vmgs_lib 0
displayName: cargo build vmgs_lib
- bash: |-
set -e
$(FLOWEY_BIN) e 4 flowey_lib_hvlite::build_and_test_vmgs_lib 1
$(FLOWEY_BIN) e 4 flowey_lib_hvlite::build_and_test_vmgs_lib 2
$(FLOWEY_BIN) e 4 flowey_core::pipeline::artifact::publish 1
$(FLOWEY_BIN) e 4 flowey_lib_hvlite::init_cross_build 2
displayName: test vmgs_lib
- bash: |-
set -e
$(FLOWEY_BIN) e 4 flowey_lib_common::run_cargo_build 1
$(FLOWEY_BIN) e 4 flowey_lib_hvlite::run_cargo_build 1
$(FLOWEY_BIN) e 4 flowey_lib_hvlite::build_igvmfilegen 0
$(FLOWEY_BIN) e 4 flowey_core::pipeline::artifact::publish 2
$(FLOWEY_BIN) e 4 flowey_lib_hvlite::init_cross_build 3
displayName: cargo build igvmfilegen
- bash: |-
set -e
$(FLOWEY_BIN) e 4 flowey_lib_common::run_cargo_build 2
$(FLOWEY_BIN) e 4 flowey_lib_hvlite::run_cargo_build 2
$(FLOWEY_BIN) e 4 flowey_lib_hvlite::build_ohcldiag_dev 0
$(FLOWEY_BIN) e 4 flowey_core::pipeline::artifact::publish 3
displayName: cargo build ohcldiag-dev
- bash: $(FLOWEY_BIN) e 4 flowey_lib_common::cache 3
displayName: 'validate cache entry: gh-release-download'
- publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/x64-windows-hypestv
displayName: πΌπ¦ Publish x64-windows-hypestv
artifact: x64-windows-hypestv
- publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/x64-windows-igvmfilegen
displayName: πΌπ¦ Publish x64-windows-igvmfilegen
artifact: x64-windows-igvmfilegen
- publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/x64-windows-ohcldiag-dev
displayName: πΌπ¦ Publish x64-windows-ohcldiag-dev
artifact: x64-windows-ohcldiag-dev
- publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/x64-windows-vmgs_lib
displayName: πΌπ¦ Publish x64-windows-vmgs_lib
artifact: x64-windows-vmgs_lib
- job: job3
displayName: build artifacts (for VMM tests) [aarch64-windows]
pool: HvLite-CI-Win-Pool
dependsOn: []
condition: and(succeeded(), not(canceled()))
variables:
- name: FLOWEY_TEMP_DIR
value: $(Build.StagingDirectory)/.flowey-internal
steps:
- bash: |
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.91.1 -y
. "$HOME/.cargo/env"
echo '##vso[task.prependpath]$(HOME)/.cargo/bin'
condition: eq(variables['Agent.OS'], 'Linux')
displayName: rustup (Linux)
- bash: |
set -x
curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
./rustup-init.exe -y --default-toolchain=1.91.1
echo '##vso[task.prependpath]$(USERPROFILE)\\.cargo\\bin'
condition: eq(variables['Agent.OS'], 'Windows_NT')
displayName: rustup (Windows X64)
- bash: |
set -x
rustup show
displayName: Verify rustup installation
- checkout: self
fetchTags: false
fetchDepth: 1
path: flowey_bootstrap
- bash: CARGO_INCREMENTAL=0 RUSTC_BOOTSTRAP=1 RUSTFLAGS="-Z threads=8" cargo build -p flowey_hvlite --target x86_64-pc-windows-msvc --profile flowey-ci
workingDirectory: ../flowey_bootstrap
displayName: Build flowey
- bash: |
mkdir ./flowey_bootstrap_temp
mv ./ci-flowey/openvmm-pr.yaml ./flowey_bootstrap_temp/pipeline.yaml
mv ./ci-flowey/openvmm-pr.json ./flowey_bootstrap_temp/pipeline.json
mv target/x86_64-pc-windows-msvc/flowey-ci/flowey_hvlite.exe ./flowey_bootstrap_temp/flowey.exe
workingDirectory: ../flowey_bootstrap
displayName: Stage flowey artifact
- task: CopyFiles@2
displayName: Copy flowey artifact
inputs:
SourceFolder: ../flowey_bootstrap/flowey_bootstrap_temp
TargetFolder: $(FLOWEY_TEMP_DIR)/bootstrapped-flowey
- bash: rm -rf ./flowey_bootstrap_temp
workingDirectory: ../flowey_bootstrap
displayName: Cleanup staged flowey artifact
- bash: |
set -e
AgentTempDirNormal="$(FLOWEY_TEMP_DIR)"
AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
echo "##vso[task.setvariable variable=AgentTempDirNormal;]$AgentTempDirNormal"
chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe
FLOWEY_BIN="$AgentTempDirNormal/bootstrapped-flowey/flowey.exe"
echo "##vso[task.setvariable variable=FLOWEY_BIN;]$FLOWEY_BIN"
displayName: Set flowey path
- bash: |-
ESCAPED_AGENT_TEMPDIR=$(
cat <<'EOF' | sed 's/\\/\\\\/g'
$(FLOWEY_TEMP_DIR)
EOF
)
$(FLOWEY_BIN) pipeline ado --runtime $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out ci-flowey/openvmm-pr.yaml ci checkin-gates --config=pr
displayName: πΌπ Self-check YAML
- bash: |
set -e
echo '"debug"' | $FLOWEY_BIN v 3 'FLOWEY_LOG' update
echo "$(FLOWEY_TEMP_DIR)/work" | $FLOWEY_BIN v 3 '_internal_WORKING_DIR' --is-raw-string update
cat <<'EOF' | tr '[:upper:]' '[:lower:]' | $FLOWEY_BIN v 3 'verbose' update
${{ parameters.verbose }}
EOF
mkdir -p "$(AgentTempDirNormal)/publish_artifacts/aarch64-windows-openvmm"
echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-windows-openvmm" | $FLOWEY_BIN v 3 'artifact_publish_from_aarch64-windows-openvmm' --is-raw-string update
mkdir -p "$(AgentTempDirNormal)/publish_artifacts/aarch64-windows-pipette"
echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-windows-pipette" | $FLOWEY_BIN v 3 'artifact_publish_from_aarch64-windows-pipette' --is-raw-string update
mkdir -p "$(AgentTempDirNormal)/publish_artifacts/aarch64-windows-prep_steps"
echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-windows-prep_steps" | $FLOWEY_BIN v 3 'artifact_publish_from_aarch64-windows-prep_steps' --is-raw-string update
mkdir -p "$(AgentTempDirNormal)/publish_artifacts/aarch64-windows-tmk_vmm"
echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-windows-tmk_vmm" | $FLOWEY_BIN v 3 'artifact_publish_from_aarch64-windows-tmk_vmm' --is-raw-string update
mkdir -p "$(AgentTempDirNormal)/publish_artifacts/aarch64-windows-tpm_guest_tests"
echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-windows-tpm_guest_tests" | $FLOWEY_BIN v 3 'artifact_publish_from_aarch64-windows-tpm_guest_tests' --is-raw-string update
mkdir -p "$(AgentTempDirNormal)/publish_artifacts/aarch64-windows-vmgstool"
echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-windows-vmgstool" | $FLOWEY_BIN v 3 'artifact_publish_from_aarch64-windows-vmgstool' --is-raw-string update
mkdir -p "$(AgentTempDirNormal)/publish_artifacts/aarch64-windows-vmm-tests-archive"
echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-windows-vmm-tests-archive" | $FLOWEY_BIN v 3 'artifact_publish_from_aarch64-windows-vmm-tests-archive' --is-raw-string update
displayName: πΌπ« Initialize job
- bash: $(FLOWEY_BIN) e 3 flowey_lib_common::install_rust 0
displayName: install Rust
- bash: |-
set -e
$(FLOWEY_BIN) e 3 flowey_lib_common::install_rust 1
$(FLOWEY_BIN) e 3 flowey_lib_common::cfg_cargo_common_flags 0
displayName: detect active toolchain
- bash: |-
set -e
$(FLOWEY_BIN) e 3 flowey_lib_common::git_checkout 0
$FLOWEY_BIN v 3 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:299:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:300:46 write-to-env ado floweyvar1
$FLOWEY_BIN v 3 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:300:46' write-to-env ado FLOWEY_CONDITION
displayName: check if openvmm needs to be cloned
- checkout: self
path: repo0
fetchTags: false
fetchDepth: 1
persistCredentials: $(floweyvar1)
submodules: recursive
displayName: checkout repo openvmm
condition: and(eq(variables['FLOWEY_CONDITION'], true), succeeded(), not(canceled()))
- bash: |-
set -e
$(FLOWEY_BIN) e 3 flowey_lib_common::git_checkout 2
$(FLOWEY_BIN) e 3 flowey_lib_hvlite::git_checkout_openvmm_repo 0
displayName: report cloned repo directories
- bash: $(FLOWEY_BIN) e 3 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
displayName: set '-Dwarnings' in .cargo/config.toml
- bash: $(FLOWEY_BIN) e 3 flowey_lib_common::download_gh_release 0
displayName: create gh-release-download cache dir
- bash: |-
set -e
$(FLOWEY_BIN) e 3 flowey_lib_common::cache 4
$FLOWEY_BIN v 3 'flowey_lib_common::cache:8:flowey_lib_common/src/cache.rs:236:72' --is-raw-string write-to-env ado floweyvar4
$FLOWEY_BIN v 3 'flowey_lib_common::cache:9:flowey_lib_common/src/cache.rs:237:72' --is-raw-string write-to-env ado floweyvar5
displayName: Pre-processing cache vars
- task: Cache@2
inputs:
key: $(floweyvar5)
path: $(floweyvar4)
cacheHitVar: FLOWEY_CACHE_HITVAR
displayName: 'Restore cache: gh-release-download'
- bash: |-
set -e
$FLOWEY_BIN v 3 'flowey_lib_common::cache:11:flowey_lib_common/src/cache.rs:300:70' --is-raw-string update --env-source FLOWEY_CACHE_HITVAR <<'EOF'
$(FLOWEY_CACHE_HITVAR)
EOF
$(FLOWEY_BIN) e 3 flowey_lib_common::cache 6
displayName: map ADO hitvar to flowey
- bash: $(FLOWEY_BIN) e 3 flowey_lib_common::download_gh_release 1
displayName: download artifacts from github releases
- bash: |-
set -e
$(FLOWEY_BIN) e 3 flowey_lib_common::download_protoc 0
$(FLOWEY_BIN) e 3 flowey_lib_hvlite::cfg_openvmm_magicpath 0
displayName: unpack protoc
- bash: |-
set -e
$(FLOWEY_BIN) e 3 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
$(FLOWEY_BIN) e 3 flowey_lib_hvlite::init_cross_build 6
displayName: symlink protoc
- bash: |-
set -e
$(FLOWEY_BIN) e 3 flowey_lib_common::run_cargo_build 2
$(FLOWEY_BIN) e 3 flowey_lib_hvlite::run_cargo_build 2
$(FLOWEY_BIN) e 3 flowey_lib_hvlite::build_prep_steps 0
$(FLOWEY_BIN) e 3 flowey_core::pipeline::artifact::publish 4
$(FLOWEY_BIN) e 3 flowey_lib_hvlite::init_cross_build 3
displayName: cargo build prep_steps
- bash: |-
set -e
$(FLOWEY_BIN) e 3 flowey_lib_common::run_cargo_build 5
$(FLOWEY_BIN) e 3 flowey_lib_hvlite::run_cargo_build 7
$(FLOWEY_BIN) e 3 flowey_lib_hvlite::build_vmgstool 0
$(FLOWEY_BIN) e 3 flowey_core::pipeline::artifact::publish 5
$(FLOWEY_BIN) e 3 flowey_lib_hvlite::init_cross_build 2
$(FLOWEY_BIN) e 3 flowey_lib_hvlite::run_cargo_build 4
$(FLOWEY_BIN) e 3 flowey_lib_hvlite::run_cargo_build 5
displayName: cargo build vmgstool
- bash: |-
set -e
$(FLOWEY_BIN) e 3 flowey_lib_common::run_cargo_build 4
$(FLOWEY_BIN) e 3 flowey_lib_hvlite::run_cargo_build 6
$(FLOWEY_BIN) e 3 flowey_lib_hvlite::build_tpm_guest_tests 0
$(FLOWEY_BIN) e 3 flowey_core::pipeline::artifact::publish 6
displayName: cargo build tpm_guest_tests
- bash: |-
set -e
$(FLOWEY_BIN) e 3 flowey_lib_common::download_cargo_nextest 0
$(FLOWEY_BIN) e 3 flowey_lib_common::download_cargo_nextest 1
$(FLOWEY_BIN) e 3 flowey_lib_common::download_cargo_nextest 2
$(FLOWEY_BIN) e 3 flowey_lib_common::download_cargo_nextest 3
displayName: create cargo-nextest cache dir
- bash: |-
set -e
$(FLOWEY_BIN) e 3 flowey_lib_common::cache 0
$FLOWEY_BIN v 3 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:236:72' --is-raw-string write-to-env ado floweyvar2
$FLOWEY_BIN v 3 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:237:72' --is-raw-string write-to-env ado floweyvar3
displayName: Pre-processing cache vars
- task: Cache@2
inputs:
key: $(floweyvar3)
path: $(floweyvar2)
cacheHitVar: FLOWEY_CACHE_HITVAR
displayName: 'Restore cache: cargo-nextest'
- bash: |-
set -e
$FLOWEY_BIN v 3 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:300:70' --is-raw-string update --env-source FLOWEY_CACHE_HITVAR <<'EOF'
$(FLOWEY_CACHE_HITVAR)
EOF
$(FLOWEY_BIN) e 3 flowey_lib_common::cache 2
displayName: map ADO hitvar to flowey
- bash: $(FLOWEY_BIN) e 3 flowey_lib_common::download_cargo_nextest 4
displayName: downloading cargo-nextest
- bash: $(FLOWEY_BIN) e 3 flowey_lib_common::install_rust 2
displayName: report $CARGO_HOME
- bash: |-
set -e
$(FLOWEY_BIN) e 3 flowey_lib_common::install_cargo_nextest 0
$(FLOWEY_BIN) e 3 flowey_lib_hvlite::init_cross_build 0
displayName: installing cargo-nextest
- bash: |-
set -e
$(FLOWEY_BIN) e 3 flowey_lib_common::run_cargo_nextest_archive 0
$(FLOWEY_BIN) e 3 flowey_lib_hvlite::build_nextest_vmm_tests 0
$(FLOWEY_BIN) e 3 flowey_core::pipeline::artifact::publish 0
$(FLOWEY_BIN) e 3 flowey_lib_hvlite::init_cross_build 4
displayName: build + archive 'vmm_tests' nextests
- bash: |-
set -e
$(FLOWEY_BIN) e 3 flowey_lib_common::run_cargo_build 0
$(FLOWEY_BIN) e 3 flowey_lib_hvlite::run_cargo_build 0
$(FLOWEY_BIN) e 3 flowey_lib_hvlite::build_openvmm 0
$(FLOWEY_BIN) e 3 flowey_core::pipeline::artifact::publish 1
$(FLOWEY_BIN) e 3 flowey_lib_hvlite::init_cross_build 5
displayName: cargo build openvmm
- bash: |-
set -e
$(FLOWEY_BIN) e 3 flowey_lib_common::run_cargo_build 1
$(FLOWEY_BIN) e 3 flowey_lib_hvlite::run_cargo_build 1
$(FLOWEY_BIN) e 3 flowey_lib_hvlite::build_pipette 0
$(FLOWEY_BIN) e 3 flowey_core::pipeline::artifact::publish 2
$(FLOWEY_BIN) e 3 flowey_lib_hvlite::init_cross_build 1
displayName: cargo build pipette
- bash: |-
set -e
$(FLOWEY_BIN) e 3 flowey_lib_common::run_cargo_build 3
$(FLOWEY_BIN) e 3 flowey_lib_hvlite::run_cargo_build 3
$(FLOWEY_BIN) e 3 flowey_lib_hvlite::build_tmk_vmm 0
$(FLOWEY_BIN) e 3 flowey_core::pipeline::artifact::publish 3
displayName: cargo build tmk_vmm
- bash: $(FLOWEY_BIN) e 3 flowey_lib_common::cache 3
displayName: 'validate cache entry: cargo-nextest'
- bash: $(FLOWEY_BIN) e 3 flowey_lib_common::cache 7
displayName: 'validate cache entry: gh-release-download'
- publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-windows-openvmm
displayName: πΌπ¦ Publish aarch64-windows-openvmm
artifact: aarch64-windows-openvmm
- publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-windows-pipette
displayName: πΌπ¦ Publish aarch64-windows-pipette
artifact: aarch64-windows-pipette
- publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-windows-prep_steps
displayName: πΌπ¦ Publish aarch64-windows-prep_steps
artifact: aarch64-windows-prep_steps
- publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-windows-tmk_vmm
displayName: πΌπ¦ Publish aarch64-windows-tmk_vmm
artifact: aarch64-windows-tmk_vmm
- publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-windows-tpm_guest_tests
displayName: πΌπ¦ Publish aarch64-windows-tpm_guest_tests
artifact: aarch64-windows-tpm_guest_tests
- publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-windows-vmgstool
displayName: πΌπ¦ Publish aarch64-windows-vmgstool
artifact: aarch64-windows-vmgstool
- publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-windows-vmm-tests-archive
displayName: πΌπ¦ Publish aarch64-windows-vmm-tests-archive
artifact: aarch64-windows-vmm-tests-archive
- job: job2
displayName: build artifacts (not for VMM tests) [aarch64-windows]
pool: HvLite-CI-Win-Pool
dependsOn: []
condition: and(succeeded(), not(canceled()))
variables:
- name: FLOWEY_TEMP_DIR
value: $(Build.StagingDirectory)/.flowey-internal
steps:
- bash: |
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.91.1 -y
. "$HOME/.cargo/env"
echo '##vso[task.prependpath]$(HOME)/.cargo/bin'
condition: eq(variables['Agent.OS'], 'Linux')
displayName: rustup (Linux)
- bash: |
set -x
curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
./rustup-init.exe -y --default-toolchain=1.91.1
echo '##vso[task.prependpath]$(USERPROFILE)\\.cargo\\bin'
condition: eq(variables['Agent.OS'], 'Windows_NT')
displayName: rustup (Windows X64)
- bash: |
set -x
rustup show
displayName: Verify rustup installation
- checkout: self
fetchTags: false
fetchDepth: 1
path: flowey_bootstrap
- bash: CARGO_INCREMENTAL=0 RUSTC_BOOTSTRAP=1 RUSTFLAGS="-Z threads=8" cargo build -p flowey_hvlite --target x86_64-pc-windows-msvc --profile flowey-ci
workingDirectory: ../flowey_bootstrap
displayName: Build flowey
- bash: |
mkdir ./flowey_bootstrap_temp
mv ./ci-flowey/openvmm-pr.yaml ./flowey_bootstrap_temp/pipeline.yaml
mv ./ci-flowey/openvmm-pr.json ./flowey_bootstrap_temp/pipeline.json
mv target/x86_64-pc-windows-msvc/flowey-ci/flowey_hvlite.exe ./flowey_bootstrap_temp/flowey.exe
workingDirectory: ../flowey_bootstrap
displayName: Stage flowey artifact
- task: CopyFiles@2
displayName: Copy flowey artifact
inputs:
SourceFolder: ../flowey_bootstrap/flowey_bootstrap_temp
TargetFolder: $(FLOWEY_TEMP_DIR)/bootstrapped-flowey
- bash: rm -rf ./flowey_bootstrap_temp
workingDirectory: ../flowey_bootstrap
displayName: Cleanup staged flowey artifact
- bash: |
set -e
AgentTempDirNormal="$(FLOWEY_TEMP_DIR)"
AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
echo "##vso[task.setvariable variable=AgentTempDirNormal;]$AgentTempDirNormal"
chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe
FLOWEY_BIN="$AgentTempDirNormal/bootstrapped-flowey/flowey.exe"
echo "##vso[task.setvariable variable=FLOWEY_BIN;]$FLOWEY_BIN"
displayName: Set flowey path
- bash: |-
ESCAPED_AGENT_TEMPDIR=$(
cat <<'EOF' | sed 's/\\/\\\\/g'
$(FLOWEY_TEMP_DIR)
EOF
)
$(FLOWEY_BIN) pipeline ado --runtime $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out ci-flowey/openvmm-pr.yaml ci checkin-gates --config=pr
displayName: πΌπ Self-check YAML
- bash: |
set -e
echo '"debug"' | $FLOWEY_BIN v 2 'FLOWEY_LOG' update
echo "$(FLOWEY_TEMP_DIR)/work" | $FLOWEY_BIN v 2 '_internal_WORKING_DIR' --is-raw-string update
cat <<'EOF' | tr '[:upper:]' '[:lower:]' | $FLOWEY_BIN v 2 'verbose' update
${{ parameters.verbose }}
EOF
mkdir -p "$(AgentTempDirNormal)/publish_artifacts/aarch64-windows-hypestv"
echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-windows-hypestv" | $FLOWEY_BIN v 2 'artifact_publish_from_aarch64-windows-hypestv' --is-raw-string update
mkdir -p "$(AgentTempDirNormal)/publish_artifacts/aarch64-windows-igvmfilegen"
echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-windows-igvmfilegen" | $FLOWEY_BIN v 2 'artifact_publish_from_aarch64-windows-igvmfilegen' --is-raw-string update
mkdir -p "$(AgentTempDirNormal)/publish_artifacts/aarch64-windows-ohcldiag-dev"
echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-windows-ohcldiag-dev" | $FLOWEY_BIN v 2 'artifact_publish_from_aarch64-windows-ohcldiag-dev' --is-raw-string update
mkdir -p "$(AgentTempDirNormal)/publish_artifacts/aarch64-windows-vmgs_lib"
echo "$(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-windows-vmgs_lib" | $FLOWEY_BIN v 2 'artifact_publish_from_aarch64-windows-vmgs_lib' --is-raw-string update
displayName: πΌπ« Initialize job
- bash: $(FLOWEY_BIN) e 2 flowey_lib_common::install_rust 0
displayName: install Rust
- bash: |-
set -e
$(FLOWEY_BIN) e 2 flowey_lib_common::install_rust 1
$(FLOWEY_BIN) e 2 flowey_lib_common::cfg_cargo_common_flags 0
displayName: detect active toolchain
- bash: |-
set -e
$(FLOWEY_BIN) e 2 flowey_lib_common::git_checkout 0
$FLOWEY_BIN v 2 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:299:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:300:46 write-to-env ado floweyvar1
$FLOWEY_BIN v 2 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:300:46' write-to-env ado FLOWEY_CONDITION
displayName: check if openvmm needs to be cloned
- checkout: self
path: repo0
fetchTags: false
fetchDepth: 1
persistCredentials: $(floweyvar1)
submodules: recursive
displayName: checkout repo openvmm
condition: and(eq(variables['FLOWEY_CONDITION'], true), succeeded(), not(canceled()))
- bash: |-
set -e
$(FLOWEY_BIN) e 2 flowey_lib_common::git_checkout 2
$(FLOWEY_BIN) e 2 flowey_lib_hvlite::git_checkout_openvmm_repo 0
displayName: report cloned repo directories
- bash: $(FLOWEY_BIN) e 2 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
displayName: set '-Dwarnings' in .cargo/config.toml
- bash: $(FLOWEY_BIN) e 2 flowey_lib_common::download_gh_release 0
displayName: create gh-release-download cache dir
- bash: |-
set -e
$(FLOWEY_BIN) e 2 flowey_lib_common::cache 0
$FLOWEY_BIN v 2 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:236:72' --is-raw-string write-to-env ado floweyvar2
$FLOWEY_BIN v 2 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:237:72' --is-raw-string write-to-env ado floweyvar3
displayName: Pre-processing cache vars
- task: Cache@2
inputs:
key: $(floweyvar3)
path: $(floweyvar2)
cacheHitVar: FLOWEY_CACHE_HITVAR
displayName: 'Restore cache: gh-release-download'
- bash: |-
set -e
$FLOWEY_BIN v 2 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:300:70' --is-raw-string update --env-source FLOWEY_CACHE_HITVAR <<'EOF'
$(FLOWEY_CACHE_HITVAR)
EOF
$(FLOWEY_BIN) e 2 flowey_lib_common::cache 2
displayName: map ADO hitvar to flowey
- bash: $(FLOWEY_BIN) e 2 flowey_lib_common::download_gh_release 1
displayName: download artifacts from github releases
- bash: |-
set -e
$(FLOWEY_BIN) e 2 flowey_lib_common::download_protoc 0
$(FLOWEY_BIN) e 2 flowey_lib_hvlite::cfg_openvmm_magicpath 0
displayName: unpack protoc
- bash: |-
set -e
$(FLOWEY_BIN) e 2 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
$(FLOWEY_BIN) e 2 flowey_lib_hvlite::init_cross_build 1
displayName: symlink protoc
- bash: |-
set -e
$(FLOWEY_BIN) e 2 flowey_lib_common::run_cargo_build 0
$(FLOWEY_BIN) e 2 flowey_lib_hvlite::run_cargo_build 0
$(FLOWEY_BIN) e 2 flowey_lib_hvlite::build_hypestv 0
$(FLOWEY_BIN) e 2 flowey_core::pipeline::artifact::publish 0
$(FLOWEY_BIN) e 2 flowey_lib_hvlite::init_cross_build 0
displayName: cargo build hypestv
- bash: |-
set -e
$(FLOWEY_BIN) e 2 flowey_lib_common::run_cargo_build 3
$(FLOWEY_BIN) e 2 flowey_lib_hvlite::run_cargo_build 3
$(FLOWEY_BIN) e 2 flowey_lib_hvlite::build_and_test_vmgs_lib 0
$(FLOWEY_BIN) e 2 flowey_lib_hvlite::build_and_test_vmgs_lib 1
$(FLOWEY_BIN) e 2 flowey_core::pipeline::artifact::publish 1
$(FLOWEY_BIN) e 2 flowey_lib_hvlite::init_cross_build 2
displayName: cargo build vmgs_lib
- bash: |-
set -e
$(FLOWEY_BIN) e 2 flowey_lib_common::run_cargo_build 1
$(FLOWEY_BIN) e 2 flowey_lib_hvlite::run_cargo_build 1
$(FLOWEY_BIN) e 2 flowey_lib_hvlite::build_igvmfilegen 0
$(FLOWEY_BIN) e 2 flowey_core::pipeline::artifact::publish 2
$(FLOWEY_BIN) e 2 flowey_lib_hvlite::init_cross_build 3
displayName: cargo build igvmfilegen
- bash: |-
set -e
$(FLOWEY_BIN) e 2 flowey_lib_common::run_cargo_build 2
$(FLOWEY_BIN) e 2 flowey_lib_hvlite::run_cargo_build 2
$(FLOWEY_BIN) e 2 flowey_lib_hvlite::build_ohcldiag_dev 0
$(FLOWEY_BIN) e 2 flowey_core::pipeline::artifact::publish 3
displayName: cargo build ohcldiag-dev
- bash: $(FLOWEY_BIN) e 2 flowey_lib_common::cache 3
displayName: 'validate cache entry: gh-release-download'
- publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-windows-hypestv
displayName: πΌπ¦ Publish aarch64-windows-hypestv
artifact: aarch64-windows-hypestv
- publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-windows-igvmfilegen
displayName: πΌπ¦ Publish aarch64-windows-igvmfilegen
artifact: aarch64-windows-igvmfilegen
- publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-windows-ohcldiag-dev
displayName: πΌπ¦ Publish aarch64-windows-ohcldiag-dev
artifact: aarch64-windows-ohcldiag-dev
- publish: $(FLOWEY_TEMP_DIR)/publish_artifacts/aarch64-windows-vmgs_lib
displayName: πΌπ¦ Publish aarch64-windows-vmgs_lib
artifact: aarch64-windows-vmgs_lib
- job: job1
displayName: xtask fmt (linux)
pool: HvLite-CI-Linux-Pool-CentralUS
dependsOn: []
condition: and(succeeded(), not(canceled()))
variables:
- name: FLOWEY_TEMP_DIR
value: $(Build.StagingDirectory)/.flowey-internal
steps:
- bash: |
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.91.1 -y
. "$HOME/.cargo/env"
echo '##vso[task.prependpath]$(HOME)/.cargo/bin'
condition: eq(variables['Agent.OS'], 'Linux')
displayName: rustup (Linux)
- bash: |
set -x
curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
./rustup-init.exe -y --default-toolchain=1.91.1
echo '##vso[task.prependpath]$(USERPROFILE)\\.cargo\\bin'
condition: eq(variables['Agent.OS'], 'Windows_NT')
displayName: rustup (Windows X64)
- bash: |
set -x
rustup show
displayName: Verify rustup installation
- checkout: self
fetchTags: false
fetchDepth: 1
path: flowey_bootstrap
- bash: CARGO_INCREMENTAL=0 RUSTC_BOOTSTRAP=1 RUSTFLAGS="-Z threads=8" cargo build -p flowey_hvlite --target x86_64-unknown-linux-gnu --profile flowey-ci
workingDirectory: ../flowey_bootstrap
displayName: Build flowey
- bash: |
mkdir ./flowey_bootstrap_temp
mv ./ci-flowey/openvmm-pr.yaml ./flowey_bootstrap_temp/pipeline.yaml
mv ./ci-flowey/openvmm-pr.json ./flowey_bootstrap_temp/pipeline.json
mv target/x86_64-unknown-linux-gnu/flowey-ci/flowey_hvlite ./flowey_bootstrap_temp/flowey
workingDirectory: ../flowey_bootstrap
displayName: Stage flowey artifact
- task: CopyFiles@2
displayName: Copy flowey artifact
inputs:
SourceFolder: ../flowey_bootstrap/flowey_bootstrap_temp
TargetFolder: $(FLOWEY_TEMP_DIR)/bootstrapped-flowey
- bash: rm -rf ./flowey_bootstrap_temp
workingDirectory: ../flowey_bootstrap
displayName: Cleanup staged flowey artifact
- bash: |
set -e
AgentTempDirNormal="$(FLOWEY_TEMP_DIR)"
AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
echo "##vso[task.setvariable variable=AgentTempDirNormal;]$AgentTempDirNormal"
chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey
FLOWEY_BIN="$AgentTempDirNormal/bootstrapped-flowey/flowey"
echo "##vso[task.setvariable variable=FLOWEY_BIN;]$FLOWEY_BIN"
displayName: Set flowey path
- bash: |-
ESCAPED_AGENT_TEMPDIR=$(
cat <<'EOF' | sed 's/\\/\\\\/g'
$(FLOWEY_TEMP_DIR)
EOF
)
$(FLOWEY_BIN) pipeline ado --runtime $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out ci-flowey/openvmm-pr.yaml ci checkin-gates --config=pr
displayName: πΌπ Self-check YAML
- bash: |
set -e
echo '"debug"' | $FLOWEY_BIN v 1 'FLOWEY_LOG' update
echo "$(FLOWEY_TEMP_DIR)/work" | $FLOWEY_BIN v 1 '_internal_WORKING_DIR' --is-raw-string update
cat <<'EOF' | tr '[:upper:]' '[:lower:]' | $FLOWEY_BIN v 1 'verbose' update
${{ parameters.verbose }}
EOF
displayName: πΌπ« Initialize job
- bash: |-
set -e
$(FLOWEY_BIN) e 1 flowey_lib_common::git_checkout 0
$FLOWEY_BIN v 1 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:299:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:300:46 write-to-env ado floweyvar1
$FLOWEY_BIN v 1 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:300:46' write-to-env ado FLOWEY_CONDITION
displayName: check if openvmm needs to be cloned
- checkout: self
path: repo0
fetchTags: false
fetchDepth: 1
persistCredentials: $(floweyvar1)
submodules: recursive
displayName: checkout repo openvmm
condition: and(eq(variables['FLOWEY_CONDITION'], true), succeeded(), not(canceled()))
- bash: |-
set -e
$(FLOWEY_BIN) e 1 flowey_lib_common::git_checkout 2
$(FLOWEY_BIN) e 1 flowey_lib_hvlite::git_checkout_openvmm_repo 0
displayName: report cloned repo directories
- bash: $(FLOWEY_BIN) e 1 flowey_lib_common::install_rust 0
displayName: install Rust
- bash: |-
set -e
$(FLOWEY_BIN) e 1 flowey_lib_common::install_rust 1
$(FLOWEY_BIN) e 1 flowey_lib_common::cfg_cargo_common_flags 0
displayName: detect active toolchain
- bash: $(FLOWEY_BIN) e 1 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
displayName: set '-Dwarnings' in .cargo/config.toml
- bash: $(FLOWEY_BIN) e 1 flowey_lib_common::download_gh_release 0
displayName: create gh-release-download cache dir
- bash: |-
set -e
$(FLOWEY_BIN) e 1 flowey_lib_common::cache 0
$FLOWEY_BIN v 1 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:236:72' --is-raw-string write-to-env ado floweyvar2
$FLOWEY_BIN v 1 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:237:72' --is-raw-string write-to-env ado floweyvar3
displayName: Pre-processing cache vars
- task: Cache@2
inputs:
key: $(floweyvar3)
path: $(floweyvar2)
cacheHitVar: FLOWEY_CACHE_HITVAR
displayName: 'Restore cache: gh-release-download'
- bash: |-
set -e
$FLOWEY_BIN v 1 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:300:70' --is-raw-string update --env-source FLOWEY_CACHE_HITVAR <<'EOF'
$(FLOWEY_CACHE_HITVAR)
EOF
$(FLOWEY_BIN) e 1 flowey_lib_common::cache 2
displayName: map ADO hitvar to flowey
- bash: $(FLOWEY_BIN) e 1 flowey_lib_common::download_gh_release 1
displayName: download artifacts from github releases
- bash: $(FLOWEY_BIN) e 1 flowey_lib_common::install_dist_pkg 0
displayName: checking if packages need to be installed
- bash: $(FLOWEY_BIN) e 1 flowey_lib_common::install_dist_pkg 1
displayName: installing packages
- bash: |-
set -e
$(FLOWEY_BIN) e 1 flowey_lib_common::download_protoc 0
$(FLOWEY_BIN) e 1 flowey_lib_hvlite::cfg_openvmm_magicpath 0
displayName: unpack protoc
- bash: |-
set -e
$(FLOWEY_BIN) e 1 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
$(FLOWEY_BIN) e 1 flowey_lib_hvlite::init_cross_build 0
displayName: symlink protoc
- bash: |-
set -e
$(FLOWEY_BIN) e 1 flowey_lib_common::run_cargo_build 0
$(FLOWEY_BIN) e 1 flowey_lib_hvlite::run_cargo_build 0
displayName: cargo build xtask
- bash: |-
set -e
$(FLOWEY_BIN) e 1 flowey_lib_hvlite::run_split_debug_info 0
$(FLOWEY_BIN) e 1 flowey_lib_hvlite::run_cargo_build 1
$(FLOWEY_BIN) e 1 flowey_lib_hvlite::build_xtask 0
displayName: split debug symbols
- bash: $(FLOWEY_BIN) e 1 flowey_lib_hvlite::_jobs::check_xtask_fmt 0
displayName: run xtask fmt
- bash: $(FLOWEY_BIN) e 1 flowey_lib_common::cache 3
displayName: 'validate cache entry: gh-release-download'
- job: job0
displayName: xtask fmt (windows)
pool: HvLite-CI-Win-Pool
dependsOn:
- job1
condition: and(succeeded(), not(canceled()))
variables:
- name: FLOWEY_TEMP_DIR
value: $(Build.StagingDirectory)/.flowey-internal
steps:
- bash: |
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.91.1 -y
. "$HOME/.cargo/env"
echo '##vso[task.prependpath]$(HOME)/.cargo/bin'
condition: eq(variables['Agent.OS'], 'Linux')
displayName: rustup (Linux)
- bash: |
set -x
curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init
./rustup-init.exe -y --default-toolchain=1.91.1
echo '##vso[task.prependpath]$(USERPROFILE)\\.cargo\\bin'
condition: eq(variables['Agent.OS'], 'Windows_NT')
displayName: rustup (Windows X64)
- bash: |
set -x
rustup show
displayName: Verify rustup installation
- checkout: self
fetchTags: false
fetchDepth: 1
path: flowey_bootstrap
- bash: CARGO_INCREMENTAL=0 RUSTC_BOOTSTRAP=1 RUSTFLAGS="-Z threads=8" cargo build -p flowey_hvlite --target x86_64-pc-windows-msvc --profile flowey-ci
workingDirectory: ../flowey_bootstrap
displayName: Build flowey
- bash: |
mkdir ./flowey_bootstrap_temp
mv ./ci-flowey/openvmm-pr.yaml ./flowey_bootstrap_temp/pipeline.yaml
mv ./ci-flowey/openvmm-pr.json ./flowey_bootstrap_temp/pipeline.json
mv target/x86_64-pc-windows-msvc/flowey-ci/flowey_hvlite.exe ./flowey_bootstrap_temp/flowey.exe
workingDirectory: ../flowey_bootstrap
displayName: Stage flowey artifact
- task: CopyFiles@2
displayName: Copy flowey artifact
inputs:
SourceFolder: ../flowey_bootstrap/flowey_bootstrap_temp
TargetFolder: $(FLOWEY_TEMP_DIR)/bootstrapped-flowey
- bash: rm -rf ./flowey_bootstrap_temp
workingDirectory: ../flowey_bootstrap
displayName: Cleanup staged flowey artifact
- bash: |
set -e
AgentTempDirNormal="$(FLOWEY_TEMP_DIR)"
AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|')
echo "##vso[task.setvariable variable=AgentTempDirNormal;]$AgentTempDirNormal"
chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe
FLOWEY_BIN="$AgentTempDirNormal/bootstrapped-flowey/flowey.exe"
echo "##vso[task.setvariable variable=FLOWEY_BIN;]$FLOWEY_BIN"
displayName: Set flowey path
- bash: |-
ESCAPED_AGENT_TEMPDIR=$(
cat <<'EOF' | sed 's/\\/\\\\/g'
$(FLOWEY_TEMP_DIR)
EOF
)
$(FLOWEY_BIN) pipeline ado --runtime $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out ci-flowey/openvmm-pr.yaml ci checkin-gates --config=pr
displayName: πΌπ Self-check YAML
- bash: |
set -e
echo '"debug"' | $FLOWEY_BIN v 0 'FLOWEY_LOG' update
echo "$(FLOWEY_TEMP_DIR)/work" | $FLOWEY_BIN v 0 '_internal_WORKING_DIR' --is-raw-string update
cat <<'EOF' | tr '[:upper:]' '[:lower:]' | $FLOWEY_BIN v 0 'verbose' update
${{ parameters.verbose }}
EOF
displayName: πΌπ« Initialize job
- bash: |-
set -e
$(FLOWEY_BIN) e 0 flowey_lib_common::git_checkout 0
$FLOWEY_BIN v 0 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:299:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:300:46 write-to-env ado floweyvar1
$FLOWEY_BIN v 0 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:300:46' write-to-env ado FLOWEY_CONDITION
displayName: check if openvmm needs to be cloned
- checkout: self
path: repo0
fetchTags: false
fetchDepth: 1
persistCredentials: $(floweyvar1)
submodules: recursive
displayName: checkout repo openvmm
condition: and(eq(variables['FLOWEY_CONDITION'], true), succeeded(), not(canceled()))
- bash: |-
set -e
$(FLOWEY_BIN) e 0 flowey_lib_common::git_checkout 2
$(FLOWEY_BIN) e 0 flowey_lib_hvlite::git_checkout_openvmm_repo 0
displayName: report cloned repo directories
- bash: $(FLOWEY_BIN) e 0 flowey_lib_common::install_rust 0
displayName: install Rust
- bash: |-
set -e
$(FLOWEY_BIN) e 0 flowey_lib_common::install_rust 1
$(FLOWEY_BIN) e 0 flowey_lib_common::cfg_cargo_common_flags 0
displayName: detect active toolchain
- bash: $(FLOWEY_BIN) e 0 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0
displayName: set '-Dwarnings' in .cargo/config.toml
- bash: $(FLOWEY_BIN) e 0 flowey_lib_common::download_gh_release 0
displayName: create gh-release-download cache dir
- bash: |-
set -e
$(FLOWEY_BIN) e 0 flowey_lib_common::cache 0
$FLOWEY_BIN v 0 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:236:72' --is-raw-string write-to-env ado floweyvar2
$FLOWEY_BIN v 0 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:237:72' --is-raw-string write-to-env ado floweyvar3
displayName: Pre-processing cache vars
- task: Cache@2
inputs:
key: $(floweyvar3)
path: $(floweyvar2)
cacheHitVar: FLOWEY_CACHE_HITVAR
displayName: 'Restore cache: gh-release-download'
- bash: |-
set -e
$FLOWEY_BIN v 0 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:300:70' --is-raw-string update --env-source FLOWEY_CACHE_HITVAR <<'EOF'
$(FLOWEY_CACHE_HITVAR)
EOF
$(FLOWEY_BIN) e 0 flowey_lib_common::cache 2
displayName: map ADO hitvar to flowey
- bash: $(FLOWEY_BIN) e 0 flowey_lib_common::download_gh_release 1
displayName: download artifacts from github releases
- bash: |-
set -e
$(FLOWEY_BIN) e 0 flowey_lib_common::download_protoc 0
$(FLOWEY_BIN) e 0 flowey_lib_hvlite::cfg_openvmm_magicpath 0
displayName: unpack protoc
- bash: |-
set -e
$(FLOWEY_BIN) e 0 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0
$(FLOWEY_BIN) e 0 flowey_lib_hvlite::init_cross_build 0
displayName: symlink protoc
- bash: |-
set -e
$(FLOWEY_BIN) e 0 flowey_lib_common::run_cargo_build 0
$(FLOWEY_BIN) e 0 flowey_lib_hvlite::run_cargo_build 0
$(FLOWEY_BIN) e 0 flowey_lib_hvlite::build_xtask 0
displayName: cargo build xtask
- bash: $(FLOWEY_BIN) e 0 flowey_lib_hvlite::_jobs::check_xtask_fmt 0
displayName: run xtask fmt
- bash: $(FLOWEY_BIN) e 0 flowey_lib_common::cache 3
displayName: 'validate cache entry: gh-release-download'microsoft/openvmm
Publicmirrored fromhttps://github.com/microsoft/openvmmAvailable
ci-flowey/openvmm-pr.yaml
4026lines Β· modepreview