microsoft/openvmm
Publicmirrored fromhttps://github.com/microsoft/openvmmAvailable
.github/workflows/openvmm-docs-pr.yaml
555lines Β· modecode
| 1 | ############################## |
| 2 | # THIS FILE IS AUTOGENERATED # |
| 3 | # DO NOT MANUALLY EDIT # |
| 4 | ############################## |
| 5 | name: OpenVMM Docs PR |
| 6 | on: |
| 7 | workflow_dispatch: |
| 8 | inputs: |
| 9 | verbose: |
| 10 | description: Run with verbose output |
| 11 | default: false |
| 12 | required: false |
| 13 | type: boolean |
| 14 | pull_request: |
| 15 | branches: |
| 16 | - main |
| 17 | types: |
| 18 | - opened |
| 19 | - synchronize |
| 20 | - reopened |
| 21 | - ready_for_review |
| 22 | concurrency: |
| 23 | group: ${{ github.workflow }}-${{ github.ref }} |
| 24 | cancel-in-progress: true |
| 25 | jobs: |
| 26 | job0: |
| 27 | name: build mdbook guide |
| 28 | runs-on: ubuntu-latest |
| 29 | permissions: |
| 30 | contents: read |
| 31 | id-token: write |
| 32 | if: github.event.pull_request.draft == false |
| 33 | steps: |
| 34 | - run: | |
| 35 | set -x |
| 36 | i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done; |
| 37 | sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y |
| 38 | curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.93.1 -y |
| 39 | . "$HOME/.cargo/env" |
| 40 | echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" |
| 41 | rustup show |
| 42 | if: runner.os == 'Linux' |
| 43 | name: rustup (Linux) |
| 44 | shell: bash |
| 45 | - run: | |
| 46 | set -x |
| 47 | curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init |
| 48 | ./rustup-init.exe -y --default-toolchain=1.93.1 |
| 49 | echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH |
| 50 | if: runner.os == 'Windows' && runner.arch == 'X64' |
| 51 | name: rustup (Windows X64) |
| 52 | shell: bash |
| 53 | - run: | |
| 54 | set -x |
| 55 | curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init |
| 56 | ./rustup-init.exe -y --default-toolchain=1.93.1 |
| 57 | echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH |
| 58 | if: runner.os == 'Windows' && runner.arch == 'ARM64' |
| 59 | name: rustup (Windows ARM64) |
| 60 | shell: bash |
| 61 | - uses: actions/checkout@v4 |
| 62 | with: |
| 63 | path: flowey_bootstrap |
| 64 | - name: Build flowey |
| 65 | run: | |
| 66 | set -x |
| 67 | CARGO_INCREMENTAL=0 cargo build -p flowey_hvlite --target x86_64-unknown-linux-gnu --profile flowey-ci |
| 68 | OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') |
| 69 | mkdir -p "$OutDirNormal" |
| 70 | mv ./.github/workflows/openvmm-docs-pr.yaml "$OutDirNormal/pipeline.yaml" |
| 71 | mv target/x86_64-unknown-linux-gnu/flowey-ci/flowey_hvlite "$OutDirNormal/flowey" |
| 72 | working-directory: flowey_bootstrap |
| 73 | shell: bash |
| 74 | - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH |
| 75 | shell: bash |
| 76 | name: πΌπ¦ Add flowey to PATH |
| 77 | - name: πΌπ Self-check YAML |
| 78 | run: |- |
| 79 | ESCAPED_AGENT_TEMPDIR=$( |
| 80 | cat <<'EOF' | sed 's/\\/\\\\/g' |
| 81 | ${{ runner.temp }} |
| 82 | EOF |
| 83 | ) |
| 84 | flowey pipeline github --runtime $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out .github/workflows/openvmm-docs-pr.yaml ci build-docs --config=pr |
| 85 | shell: bash |
| 86 | - name: πΌπ« Initialize job |
| 87 | run: | |
| 88 | AgentTempDirNormal="${{ runner.temp }}" |
| 89 | AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') |
| 90 | echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV |
| 91 | |
| 92 | chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey |
| 93 | |
| 94 | echo '"debug"' | flowey v 0 'FLOWEY_LOG' update |
| 95 | echo "${{ runner.temp }}/work" | flowey v 0 '_internal_WORKING_DIR' --is-raw-string update |
| 96 | |
| 97 | cat <<'EOF' | flowey v 0 'verbose' update |
| 98 | ${{ inputs.verbose != '' && inputs.verbose || 'false' }} |
| 99 | EOF |
| 100 | mkdir -p "$AgentTempDirNormal/publish_artifacts/guide" |
| 101 | echo "$AgentTempDirNormal/publish_artifacts/guide" | flowey v 0 'artifact_publish_from_guide' --is-raw-string update |
| 102 | shell: bash |
| 103 | - name: create gh-release-download cache dir |
| 104 | run: flowey e 0 flowey_lib_common::download_gh_release 0 |
| 105 | shell: bash |
| 106 | - name: Pre-processing cache vars |
| 107 | run: |- |
| 108 | flowey e 0 flowey_lib_common::cache 0 |
| 109 | flowey v 0 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar2 |
| 110 | flowey v 0 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar3 |
| 111 | shell: bash |
| 112 | - id: flowey_lib_common__cache__1 |
| 113 | uses: actions/cache@v4 |
| 114 | with: |
| 115 | key: ${{ env.floweyvar2 }} |
| 116 | path: ${{ env.floweyvar3 }} |
| 117 | name: 'Restore cache: gh-release-download' |
| 118 | - name: download artifacts from github releases |
| 119 | run: |- |
| 120 | flowey v 0 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__1.outputs.cache-hit <<EOF |
| 121 | ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }} |
| 122 | EOF |
| 123 | flowey e 0 flowey_lib_common::cache 2 |
| 124 | flowey e 0 flowey_lib_common::download_gh_release 1 |
| 125 | shell: bash |
| 126 | - name: checking if packages need to be installed |
| 127 | run: flowey e 0 flowey_lib_common::install_dist_pkg 0 |
| 128 | shell: bash |
| 129 | - name: installing packages |
| 130 | run: flowey e 0 flowey_lib_common::install_dist_pkg 1 |
| 131 | shell: bash |
| 132 | - name: unpack mdbook |
| 133 | run: flowey e 0 flowey_lib_common::download_mdbook 0 |
| 134 | shell: bash |
| 135 | - name: unpack mdbook-admonish |
| 136 | run: flowey e 0 flowey_lib_common::download_mdbook_admonish 0 |
| 137 | shell: bash |
| 138 | - name: unpack mdbook-mermaid |
| 139 | run: flowey e 0 flowey_lib_common::download_mdbook_mermaid 0 |
| 140 | shell: bash |
| 141 | - name: check if openvmm needs to be cloned |
| 142 | run: |- |
| 143 | flowey e 0 flowey_lib_common::git_checkout 0 |
| 144 | flowey v 0 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:469:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:470:46 write-to-env github floweyvar1 |
| 145 | flowey v 0 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:470:46' write-to-env github FLOWEY_CONDITION |
| 146 | shell: bash |
| 147 | - id: flowey_lib_common__git_checkout__1 |
| 148 | uses: actions/checkout@v4 |
| 149 | with: |
| 150 | fetch-depth: '1' |
| 151 | path: repo0 |
| 152 | persist-credentials: ${{ env.floweyvar1 }} |
| 153 | name: checkout repo openvmm |
| 154 | if: ${{ fromJSON(env.FLOWEY_CONDITION) }} |
| 155 | - name: report cloned repo directories |
| 156 | run: |- |
| 157 | flowey v 0 'flowey_lib_common::git_checkout:4:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.workspace <<EOF |
| 158 | ${{ github.workspace }} |
| 159 | EOF |
| 160 | flowey e 0 flowey_lib_common::git_checkout 3 |
| 161 | flowey e 0 flowey_lib_hvlite::git_checkout_openvmm_repo 0 |
| 162 | flowey e 0 flowey_lib_hvlite::build_guide 0 |
| 163 | shell: bash |
| 164 | - name: add default cargo home to path |
| 165 | run: flowey e 0 flowey_lib_common::install_rust 0 |
| 166 | shell: bash |
| 167 | - name: install Rust |
| 168 | run: flowey e 0 flowey_lib_common::install_rust 1 |
| 169 | shell: bash |
| 170 | - name: build OpenVMM guide (mdbook) |
| 171 | run: |- |
| 172 | flowey e 0 flowey_lib_hvlite::build_guide 1 |
| 173 | flowey e 0 flowey_core::pipeline::artifact::publish 0 |
| 174 | shell: bash |
| 175 | - name: 'validate cache entry: gh-release-download' |
| 176 | run: flowey e 0 flowey_lib_common::cache 3 |
| 177 | shell: bash |
| 178 | - name: πΌπ¦ Publish guide |
| 179 | uses: actions/upload-artifact@v4 |
| 180 | with: |
| 181 | name: guide |
| 182 | path: ${{ runner.temp }}/publish_artifacts/guide/ |
| 183 | include-hidden-files: true |
| 184 | job1: |
| 185 | name: build and check docs [x64-windows] |
| 186 | runs-on: windows-latest |
| 187 | permissions: |
| 188 | contents: read |
| 189 | id-token: write |
| 190 | if: github.event.pull_request.draft == false |
| 191 | steps: |
| 192 | - run: | |
| 193 | set -x |
| 194 | i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done; |
| 195 | sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y |
| 196 | curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.93.1 -y |
| 197 | . "$HOME/.cargo/env" |
| 198 | echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" |
| 199 | rustup show |
| 200 | if: runner.os == 'Linux' |
| 201 | name: rustup (Linux) |
| 202 | shell: bash |
| 203 | - run: | |
| 204 | set -x |
| 205 | curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init |
| 206 | ./rustup-init.exe -y --default-toolchain=1.93.1 |
| 207 | echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH |
| 208 | if: runner.os == 'Windows' && runner.arch == 'X64' |
| 209 | name: rustup (Windows X64) |
| 210 | shell: bash |
| 211 | - run: | |
| 212 | set -x |
| 213 | curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init |
| 214 | ./rustup-init.exe -y --default-toolchain=1.93.1 |
| 215 | echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH |
| 216 | if: runner.os == 'Windows' && runner.arch == 'ARM64' |
| 217 | name: rustup (Windows ARM64) |
| 218 | shell: bash |
| 219 | - uses: actions/checkout@v4 |
| 220 | with: |
| 221 | path: flowey_bootstrap |
| 222 | - name: Build flowey |
| 223 | run: | |
| 224 | set -x |
| 225 | CARGO_INCREMENTAL=0 cargo build -p flowey_hvlite --target x86_64-pc-windows-msvc --profile flowey-ci |
| 226 | OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') |
| 227 | mkdir -p "$OutDirNormal" |
| 228 | mv ./.github/workflows/openvmm-docs-pr.yaml "$OutDirNormal/pipeline.yaml" |
| 229 | mv target/x86_64-pc-windows-msvc/flowey-ci/flowey_hvlite.exe "$OutDirNormal/flowey.exe" |
| 230 | working-directory: flowey_bootstrap |
| 231 | shell: bash |
| 232 | - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH |
| 233 | shell: bash |
| 234 | name: πΌπ¦ Add flowey to PATH |
| 235 | - name: πΌπ Self-check YAML |
| 236 | run: |- |
| 237 | ESCAPED_AGENT_TEMPDIR=$( |
| 238 | cat <<'EOF' | sed 's/\\/\\\\/g' |
| 239 | ${{ runner.temp }} |
| 240 | EOF |
| 241 | ) |
| 242 | flowey.exe pipeline github --runtime $ESCAPED_AGENT_TEMPDIR\\bootstrapped-flowey\\pipeline.yaml --out .github/workflows/openvmm-docs-pr.yaml ci build-docs --config=pr |
| 243 | shell: bash |
| 244 | - name: πΌπ« Initialize job |
| 245 | run: | |
| 246 | AgentTempDirNormal="${{ runner.temp }}" |
| 247 | AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') |
| 248 | echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV |
| 249 | |
| 250 | chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey.exe |
| 251 | |
| 252 | echo '"debug"' | flowey.exe v 1 'FLOWEY_LOG' update |
| 253 | echo "${{ runner.temp }}/work" | flowey.exe v 1 '_internal_WORKING_DIR' --is-raw-string update |
| 254 | |
| 255 | cat <<'EOF' | flowey.exe v 1 'verbose' update |
| 256 | ${{ inputs.verbose != '' && inputs.verbose || 'false' }} |
| 257 | EOF |
| 258 | mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-windows-rustdoc" |
| 259 | echo "${{ runner.temp }}\\publish_artifacts\\x64-windows-rustdoc" | flowey.exe v 1 'artifact_publish_from_x64-windows-rustdoc' --is-raw-string update |
| 260 | shell: bash |
| 261 | - name: check if openvmm needs to be cloned |
| 262 | run: |- |
| 263 | flowey.exe e 1 flowey_lib_common::git_checkout 0 |
| 264 | flowey.exe v 1 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:469:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:470:46 write-to-env github floweyvar1 |
| 265 | flowey.exe v 1 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:470:46' write-to-env github FLOWEY_CONDITION |
| 266 | shell: bash |
| 267 | - id: flowey_lib_common__git_checkout__1 |
| 268 | uses: actions/checkout@v4 |
| 269 | with: |
| 270 | fetch-depth: '1' |
| 271 | path: repo0 |
| 272 | persist-credentials: ${{ env.floweyvar1 }} |
| 273 | name: checkout repo openvmm |
| 274 | if: ${{ fromJSON(env.FLOWEY_CONDITION) }} |
| 275 | - name: report cloned repo directories |
| 276 | run: |- |
| 277 | flowey.exe v 1 'flowey_lib_common::git_checkout:4:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.workspace <<EOF |
| 278 | ${{ github.workspace }} |
| 279 | EOF |
| 280 | flowey.exe e 1 flowey_lib_common::git_checkout 3 |
| 281 | flowey.exe e 1 flowey_lib_hvlite::git_checkout_openvmm_repo 0 |
| 282 | shell: bash |
| 283 | - name: set '-Dwarnings' in .cargo/config.toml |
| 284 | run: flowey.exe e 1 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0 |
| 285 | shell: bash |
| 286 | - name: create gh-release-download cache dir |
| 287 | run: flowey.exe e 1 flowey_lib_common::download_gh_release 0 |
| 288 | shell: bash |
| 289 | - name: Pre-processing cache vars |
| 290 | run: |- |
| 291 | flowey.exe e 1 flowey_lib_common::cache 0 |
| 292 | flowey.exe v 1 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar2 |
| 293 | flowey.exe v 1 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar3 |
| 294 | shell: bash |
| 295 | - id: flowey_lib_common__cache__1 |
| 296 | uses: actions/cache@v4 |
| 297 | with: |
| 298 | key: ${{ env.floweyvar2 }} |
| 299 | path: ${{ env.floweyvar3 }} |
| 300 | name: 'Restore cache: gh-release-download' |
| 301 | - name: download artifacts from github releases |
| 302 | run: |- |
| 303 | flowey.exe v 1 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__1.outputs.cache-hit <<EOF |
| 304 | ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }} |
| 305 | EOF |
| 306 | flowey.exe e 1 flowey_lib_common::cache 2 |
| 307 | flowey.exe e 1 flowey_lib_common::download_gh_release 1 |
| 308 | shell: bash |
| 309 | - name: unpack protoc |
| 310 | run: |- |
| 311 | flowey.exe e 1 flowey_lib_common::resolve_protoc 0 |
| 312 | flowey.exe e 1 flowey_lib_hvlite::cfg_openvmm_magicpath 0 |
| 313 | shell: bash |
| 314 | - name: symlink protoc |
| 315 | run: flowey.exe e 1 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0 |
| 316 | shell: bash |
| 317 | - name: add default cargo home to path |
| 318 | run: flowey.exe e 1 flowey_lib_common::install_rust 0 |
| 319 | shell: bash |
| 320 | - name: install Rust |
| 321 | run: flowey.exe e 1 flowey_lib_common::install_rust 1 |
| 322 | shell: bash |
| 323 | - name: detect active toolchain |
| 324 | run: |- |
| 325 | flowey.exe e 1 flowey_lib_common::install_rust 2 |
| 326 | flowey.exe e 1 flowey_lib_common::cfg_cargo_common_flags 0 |
| 327 | flowey.exe e 1 flowey_lib_common::run_cargo_doc 0 |
| 328 | shell: bash |
| 329 | - name: document repo for target x86_64-pc-windows-msvc |
| 330 | run: |- |
| 331 | flowey.exe e 1 flowey_lib_hvlite::build_rustdoc 0 |
| 332 | flowey.exe e 1 flowey_core::pipeline::artifact::publish 0 |
| 333 | shell: bash |
| 334 | - name: 'validate cache entry: gh-release-download' |
| 335 | run: flowey.exe e 1 flowey_lib_common::cache 3 |
| 336 | shell: bash |
| 337 | - name: πΌπ¦ Publish x64-windows-rustdoc |
| 338 | uses: actions/upload-artifact@v4 |
| 339 | with: |
| 340 | name: x64-windows-rustdoc |
| 341 | path: ${{ runner.temp }}/publish_artifacts/x64-windows-rustdoc/ |
| 342 | include-hidden-files: true |
| 343 | job2: |
| 344 | name: build and check docs [x64-linux] |
| 345 | runs-on: ubuntu-latest |
| 346 | permissions: |
| 347 | contents: read |
| 348 | id-token: write |
| 349 | if: github.event.pull_request.draft == false |
| 350 | steps: |
| 351 | - run: | |
| 352 | set -x |
| 353 | i=0; while [ $i -lt 5 ] && ! sudo apt-get update; do let "i=i+1"; sleep 1; done; |
| 354 | sudo apt-get -o DPkg::Lock::Timeout=60 install gcc -y |
| 355 | curl --fail --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=1.93.1 -y |
| 356 | . "$HOME/.cargo/env" |
| 357 | echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" |
| 358 | rustup show |
| 359 | if: runner.os == 'Linux' |
| 360 | name: rustup (Linux) |
| 361 | shell: bash |
| 362 | - run: | |
| 363 | set -x |
| 364 | curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/x86_64 --output rustup-init |
| 365 | ./rustup-init.exe -y --default-toolchain=1.93.1 |
| 366 | echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH |
| 367 | if: runner.os == 'Windows' && runner.arch == 'X64' |
| 368 | name: rustup (Windows X64) |
| 369 | shell: bash |
| 370 | - run: | |
| 371 | set -x |
| 372 | curl --fail -sSfLo rustup-init.exe https://win.rustup.rs/aarch64 --output rustup-init |
| 373 | ./rustup-init.exe -y --default-toolchain=1.93.1 |
| 374 | echo "$USERPROFILE\\.cargo\\bin" >> $GITHUB_PATH |
| 375 | if: runner.os == 'Windows' && runner.arch == 'ARM64' |
| 376 | name: rustup (Windows ARM64) |
| 377 | shell: bash |
| 378 | - uses: actions/checkout@v4 |
| 379 | with: |
| 380 | path: flowey_bootstrap |
| 381 | - name: Build flowey |
| 382 | run: | |
| 383 | set -x |
| 384 | CARGO_INCREMENTAL=0 cargo build -p flowey_hvlite --target x86_64-unknown-linux-gnu --profile flowey-ci |
| 385 | OutDirNormal=$(echo "${{ runner.temp }}/bootstrapped-flowey" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') |
| 386 | mkdir -p "$OutDirNormal" |
| 387 | mv ./.github/workflows/openvmm-docs-pr.yaml "$OutDirNormal/pipeline.yaml" |
| 388 | mv target/x86_64-unknown-linux-gnu/flowey-ci/flowey_hvlite "$OutDirNormal/flowey" |
| 389 | working-directory: flowey_bootstrap |
| 390 | shell: bash |
| 391 | - run: echo "${{ runner.temp }}/bootstrapped-flowey" >> $GITHUB_PATH |
| 392 | shell: bash |
| 393 | name: πΌπ¦ Add flowey to PATH |
| 394 | - name: πΌπ Self-check YAML |
| 395 | run: |- |
| 396 | ESCAPED_AGENT_TEMPDIR=$( |
| 397 | cat <<'EOF' | sed 's/\\/\\\\/g' |
| 398 | ${{ runner.temp }} |
| 399 | EOF |
| 400 | ) |
| 401 | flowey pipeline github --runtime $ESCAPED_AGENT_TEMPDIR/bootstrapped-flowey/pipeline.yaml --out .github/workflows/openvmm-docs-pr.yaml ci build-docs --config=pr |
| 402 | shell: bash |
| 403 | - name: πΌπ« Initialize job |
| 404 | run: | |
| 405 | AgentTempDirNormal="${{ runner.temp }}" |
| 406 | AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') |
| 407 | echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV |
| 408 | |
| 409 | chmod +x $AgentTempDirNormal/bootstrapped-flowey/flowey |
| 410 | |
| 411 | echo '"debug"' | flowey v 2 'FLOWEY_LOG' update |
| 412 | echo "${{ runner.temp }}/work" | flowey v 2 '_internal_WORKING_DIR' --is-raw-string update |
| 413 | |
| 414 | cat <<'EOF' | flowey v 2 'verbose' update |
| 415 | ${{ inputs.verbose != '' && inputs.verbose || 'false' }} |
| 416 | EOF |
| 417 | mkdir -p "$AgentTempDirNormal/publish_artifacts/x64-linux-rustdoc" |
| 418 | echo "$AgentTempDirNormal/publish_artifacts/x64-linux-rustdoc" | flowey v 2 'artifact_publish_from_x64-linux-rustdoc' --is-raw-string update |
| 419 | shell: bash |
| 420 | - name: check if openvmm needs to be cloned |
| 421 | run: |- |
| 422 | flowey e 2 flowey_lib_common::git_checkout 0 |
| 423 | flowey v 2 'flowey_lib_common::git_checkout:0:flowey_lib_common/src/git_checkout.rs:469:80' --is-raw-string --condvar flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:470:46 write-to-env github floweyvar1 |
| 424 | flowey v 2 'flowey_lib_common::git_checkout:1:flowey_lib_common/src/git_checkout.rs:470:46' write-to-env github FLOWEY_CONDITION |
| 425 | shell: bash |
| 426 | - id: flowey_lib_common__git_checkout__1 |
| 427 | uses: actions/checkout@v4 |
| 428 | with: |
| 429 | fetch-depth: '1' |
| 430 | path: repo0 |
| 431 | persist-credentials: ${{ env.floweyvar1 }} |
| 432 | name: checkout repo openvmm |
| 433 | if: ${{ fromJSON(env.FLOWEY_CONDITION) }} |
| 434 | - name: report cloned repo directories |
| 435 | run: |- |
| 436 | flowey v 2 'flowey_lib_common::git_checkout:4:flowey_core/src/node/github_context.rs:55:41' --is-raw-string update --env-source github.workspace <<EOF |
| 437 | ${{ github.workspace }} |
| 438 | EOF |
| 439 | flowey e 2 flowey_lib_common::git_checkout 3 |
| 440 | flowey e 2 flowey_lib_hvlite::git_checkout_openvmm_repo 0 |
| 441 | shell: bash |
| 442 | - name: set '-Dwarnings' in .cargo/config.toml |
| 443 | run: flowey e 2 flowey_lib_hvlite::init_openvmm_cargo_config_deny_warnings 0 |
| 444 | shell: bash |
| 445 | - name: create gh-release-download cache dir |
| 446 | run: flowey e 2 flowey_lib_common::download_gh_release 0 |
| 447 | shell: bash |
| 448 | - name: Pre-processing cache vars |
| 449 | run: |- |
| 450 | flowey e 2 flowey_lib_common::cache 0 |
| 451 | flowey v 2 'flowey_lib_common::cache:2:flowey_lib_common/src/cache.rs:407:72' --is-raw-string write-to-env github floweyvar2 |
| 452 | flowey v 2 'flowey_lib_common::cache:1:flowey_lib_common/src/cache.rs:406:72' --is-raw-string write-to-env github floweyvar3 |
| 453 | shell: bash |
| 454 | - id: flowey_lib_common__cache__1 |
| 455 | uses: actions/cache@v4 |
| 456 | with: |
| 457 | key: ${{ env.floweyvar2 }} |
| 458 | path: ${{ env.floweyvar3 }} |
| 459 | name: 'Restore cache: gh-release-download' |
| 460 | - name: download artifacts from github releases |
| 461 | run: |- |
| 462 | flowey v 2 'flowey_lib_common::cache:4:flowey_lib_common/src/cache.rs:462:70' --is-raw-string update --env-source steps.flowey_lib_common__cache__1.outputs.cache-hit <<EOF |
| 463 | ${{ steps.flowey_lib_common__cache__1.outputs.cache-hit }} |
| 464 | EOF |
| 465 | flowey e 2 flowey_lib_common::cache 2 |
| 466 | flowey e 2 flowey_lib_common::download_gh_release 1 |
| 467 | shell: bash |
| 468 | - name: checking if packages need to be installed |
| 469 | run: flowey e 2 flowey_lib_common::install_dist_pkg 0 |
| 470 | shell: bash |
| 471 | - name: installing packages |
| 472 | run: flowey e 2 flowey_lib_common::install_dist_pkg 1 |
| 473 | shell: bash |
| 474 | - name: unpack protoc |
| 475 | run: |- |
| 476 | flowey e 2 flowey_lib_common::resolve_protoc 0 |
| 477 | flowey e 2 flowey_lib_hvlite::cfg_openvmm_magicpath 0 |
| 478 | shell: bash |
| 479 | - name: symlink protoc |
| 480 | run: flowey e 2 flowey_lib_hvlite::init_openvmm_magicpath_protoc 0 |
| 481 | shell: bash |
| 482 | - name: add default cargo home to path |
| 483 | run: flowey e 2 flowey_lib_common::install_rust 0 |
| 484 | shell: bash |
| 485 | - name: install Rust |
| 486 | run: flowey e 2 flowey_lib_common::install_rust 1 |
| 487 | shell: bash |
| 488 | - name: detect active toolchain |
| 489 | run: |- |
| 490 | flowey e 2 flowey_lib_common::install_rust 2 |
| 491 | flowey e 2 flowey_lib_common::cfg_cargo_common_flags 0 |
| 492 | flowey e 2 flowey_lib_common::run_cargo_doc 0 |
| 493 | shell: bash |
| 494 | - name: document repo for target x86_64-unknown-linux-gnu |
| 495 | run: |- |
| 496 | flowey e 2 flowey_lib_hvlite::build_rustdoc 0 |
| 497 | flowey e 2 flowey_core::pipeline::artifact::publish 0 |
| 498 | shell: bash |
| 499 | - name: 'validate cache entry: gh-release-download' |
| 500 | run: flowey e 2 flowey_lib_common::cache 3 |
| 501 | shell: bash |
| 502 | - name: πΌπ¦ Publish x64-linux-rustdoc |
| 503 | uses: actions/upload-artifact@v4 |
| 504 | with: |
| 505 | name: x64-linux-rustdoc |
| 506 | path: ${{ runner.temp }}/publish_artifacts/x64-linux-rustdoc/ |
| 507 | include-hidden-files: true |
| 508 | - name: πΌπ§Ό Redact bootstrap var db |
| 509 | run: rm $AgentTempDirNormal/bootstrapped-flowey/job2.json |
| 510 | shell: bash |
| 511 | - name: πΌπ₯Ύ Publish bootstrapped flowey |
| 512 | uses: actions/upload-artifact@v4 |
| 513 | with: |
| 514 | name: _internal-flowey-bootstrap-x86_64-linux-uid-1 |
| 515 | path: ${{ runner.temp }}/bootstrapped-flowey |
| 516 | job3: |
| 517 | name: openvmm build docs gates |
| 518 | runs-on: ubuntu-latest |
| 519 | permissions: |
| 520 | contents: read |
| 521 | id-token: write |
| 522 | needs: |
| 523 | - job0 |
| 524 | - job1 |
| 525 | - job2 |
| 526 | if: always() && github.event.pull_request.draft == false |
| 527 | env: |
| 528 | ANY_JOBS_FAILED: ${{ contains(needs.*.result, 'cancelled') || contains(needs.*.result, 'failure') }} |
| 529 | steps: |
| 530 | - name: πΌπ¦ Download artifacts |
| 531 | uses: actions/download-artifact@v4 |
| 532 | with: |
| 533 | pattern: _internal-flowey-bootstrap-x86_64-linux-uid-1 |
| 534 | path: ${{ runner.temp }}/used_artifacts/ |
| 535 | - run: echo "${{ runner.temp }}/used_artifacts/_internal-flowey-bootstrap-x86_64-linux-uid-1" >> $GITHUB_PATH |
| 536 | shell: bash |
| 537 | name: πΌπ¦ Add flowey to PATH |
| 538 | - name: πΌπ« Initialize job |
| 539 | run: | |
| 540 | AgentTempDirNormal="${{ runner.temp }}" |
| 541 | AgentTempDirNormal=$(echo "$AgentTempDirNormal" | sed -e 's|\\|\/|g' -e 's|^\([A-Za-z]\)\:/\(.*\)|/\L\1\E/\2|') |
| 542 | echo "AgentTempDirNormal=$AgentTempDirNormal" >> $GITHUB_ENV |
| 543 | |
| 544 | chmod +x $AgentTempDirNormal/used_artifacts/_internal-flowey-bootstrap-x86_64-linux-uid-1/flowey |
| 545 | |
| 546 | echo '"debug"' | flowey v 3 'FLOWEY_LOG' update |
| 547 | echo "${{ runner.temp }}/work" | flowey v 3 '_internal_WORKING_DIR' --is-raw-string update |
| 548 | |
| 549 | cat <<'EOF' | flowey v 3 'verbose' update |
| 550 | ${{ inputs.verbose != '' && inputs.verbose || 'false' }} |
| 551 | EOF |
| 552 | shell: bash |
| 553 | - name: Check if any jobs failed |
| 554 | run: flowey e 3 flowey_lib_hvlite::_jobs::all_good_job 0 |
| 555 | shell: bash |
| 556 | |