Skip to content

tpv-gha-nunja | fs-7.1.7-2 @ 7.1.7_2nd_preview #720

tpv-gha-nunja | fs-7.1.7-2 @ 7.1.7_2nd_preview

tpv-gha-nunja | fs-7.1.7-2 @ 7.1.7_2nd_preview #720

name: CompileWindows
on:
workflow_dispatch:
inputs:
fstuple:
type: string
required: true
run-name: ${{ github.ref_name }} | ${{ fromJSON(inputs.fstuple).base }} @ ${{ fromJSON(inputs.fstuple).ref }}
defaults:
run:
shell: c:/PROGRA~1/Git/usr/bin/bash.exe --noprofile --norc -e -o pipefail {0}
# shell: c:\Program Files\Git\usr\bin\bash.exe --noprofile --norc -e -o pipefail {0}
# shell: C:\msys64\usr\bin\bash.exe --noprofile --norc -e -o pipefail {0}
env:
BASH_ENV: ${{ github.workspace }}\SHELL.env
jobs:
# generate-bin:
# runs-on: windows-2022
# steps:
# - uses: humbletim/firestorm-gha/actions-node-script@tpv-gha-nunja
# if: false
# - uses: actions/cache@v4
# if: false
# - name: SHELL.env
# run: source /d/a/_actions/humbletim/firestorm-gha/tpv-gha-nunja/_gha-inline.sh
#
# - name: postflight tests
# run: |
# set -Euo pipefail
# echo cache_id=$cache_id
# echo "PATH='$PATH'"
# jq --version
# python3 --version
#
# - name: Populate local bin
# uses: ./fsvr-action
# with:
# run: . $gha_fsvr_dir/gha-populate-bin.sh && gha-populate-bin-windows
#
# - name: ~000 Setup tmate session
# uses: mxschmitt/action-tmate@v3
# if: failure() && fromJSON(inputs.fstuple).pause != 'never'
# with:
# limit-access-to-actor: true
windows-build:
# if: true
# needs: generate-bin
runs-on: windows-2022
steps:
- uses: humbletim/firestorm-gha/actions-node-script@tpv-gha-nunja
if: false
- uses: actions/upload-artifact@v4
if: false
- uses: actions/cache@v4
if: false
- name: Output Inputs
run: |
echo '${{ github.event.inputs.fstuple }}'
echo '${{ fromJSON(github.event.inputs.fstuple) }}'
- name: ~Clone
run: |
source /d/a/_actions/humbletim/firestorm-gha/tpv-gha-nunja/_gha-inline.sh
source $BASH_ENV
source $gha_fsvr_dir/util/gha.quiet-clone.bash
quiet-clone github.com ${GITHUB_REPOSITORY} ${GITHUB_REF_NAME} fsvr
echo fsvr_dir=$PWD/fsvr | tee -a $GITHUB_ENV
- name: Generate gha-bootstrap.env
run: |
source $gha_fsvr_dir/gha-bootstrap.sh
get_bootstrap_vars | tee env.d/gha-bootstrap.env || exit 127
- name: Populate local bin
uses: ./fsvr-action
with:
run: . $gha_fsvr_dir/gha-populate-bin.sh && gha-populate-bin-windows
- name: Expand Source Repositories
uses: ./fsvr-action
with:
run: |
source $gha_fsvr_dir/util/gha.cachette.bash
source $gha_fsvr_dir/util/gha.quiet-clone.bash
echo "[sourcing] $nunja_dir/000.bash" >&2
. $nunja_dir/000.bash $hub $repo "$ref"
- name: PATH/ENV preflight tests
run: |
jq --version
test `hostname` == "windows-2022" || exit 2022
test -v nunja_dir || exit 122
test -d "$nunja_dir" || exit 123
test $(echo 'test-$a' | eval "a=b envsubst") == test-b || exit 124
- name: Generate Build Vars
run: |
set -Euo pipefail
echo fsvr_dir=$fsvr_dir
echo gha_fsvr_dir=$gha_fsvr_dir
export root_dir=${root_dir:-repo/viewer}
# some legacy viewer packaging logic reaches from build* to ../indra
test -d $root_dir/indra && ht-ln $root_dir/indra indra
viewer_version=`cat $nunja_dir/viewer_version.txt | tr -d '\r'`
$gha_fsvr_dir/util/generate_build_vars.sh ${viewer_channel:-${viewer_name}-VR-GHA} ${viewer_version} build/ \
| tee env.d/build_vars.env
- name: Generate Report
uses: ./fsvr-action
with:
run: |
repos="$(for id in `ls -1d repo/* fsvr` ; do
url="$(test -s $id/.gha_source && echo "[$id]($(cat $id/.gha_source))" || git -C $id rev-parse --short HEAD)"
echo "| ./$id | $(git -C $id describe --all --always) *$(git -C $id rev-parse --short HEAD)* $url |"
done)"
# tools="$(for id in jq ninja parallel bash ; do
# echo "| $id | $($id --version | head -n 1 || true) |"
# done)"
test -v GITHUB_STEP_SUMMARY || GITHUB_STEP_SUMMARY=/dev/stdout
cat <<EOF | tee $GITHUB_STEP_SUMMARY
| name | value |
| --------- | ----------- |
| viewer_id | $viewer_id |
| viewer_name | $viewer_name |
| viewer_bin | $viewer_bin |
| viewer_channel | $viewer_channel |
| base | $base |
| hub | $hub |
| repo | $repo |
| ref | $ref |
| build_id | $build_id |
| cache_id | $cache_id |
| hostname | `hostname` |
$repos
# $tools
| --------- | ----------- |
EOF
- name: Detect MSVC
uses: ./fsvr-action
with:
run: |
set -Euo pipefail
source $gha_fsvr_dir/util/gha.cachette.bash
declare -a msvcs=(build/msvc.env build/msvc.nunja.env build/msvc_path.env)
gha-cache-restore-fast "$cache_id-msvc-a" "$(echo "${msvcs[@]}" | tr ' ' '\n')" || (
$gha_fsvr_dir/util/generate_msvc_env.sh
ls -l ${msvcs[@]}
gha-cache-save-fast "$cache_id-msvc-a" "$(echo "${msvcs[@]}" | tr ' ' '\n')" || exit 179
)
- name: 010_ensure_build_directories && 020_perform_replacements
run: fsvr_step 010 && fsvr_step 020
- name: 038_provision_openvr
uses: ./fsvr-action
with:
run: |
set -Euo pipefail
source $gha_fsvr_dir/util/gha.cachette.bash
gha-cache-restore-fast $cache_id-openvr-d "cache/openvr-**" || (
source $fsvr_dir/openvr/improvise.bash
provision_openvr "$fsvr_cache_dir" || _die "openvr/improvise failed"
gha-cache-save-fast $cache_id-openvr-d "cache/openvr-**" || exit 196
)
- name: 039_provision_p373r
run: fsvr_step 039
- name: 040_generate_package_infos && 050_generate_packages_info_text
run: fsvr_step 040 && fsvr_step 050
- name: 080_untar_packages
uses: ./fsvr-action
with:
run: |
set -Euo pipefail
source $gha_fsvr_dir/util/gha.cachette.bash
gha-cache-restore-fast $cache_id-build-packages-c build/packages || (
source $gha_fsvr_dir/util/reconstitute-dependencies.bash
manifest=$build_dir/packages-info.json
download_packages $manifest $fsvr_cache_dir || exit 60
verify_downloads $manifest $fsvr_cache_dir || exit 70
untar_packages $manifest $fsvr_cache_dir $packages_dir || exit 80
gha-cache-save-fast $cache_id-build-packages-c build/packages || exit 220
)
- name: 090_ninja_preflight
run: fsvr_step 090
- name: ~004 Setup tmate session
if: fromJSON(inputs.fstuple).pause == '004'
uses: mxschmitt/action-tmate@v3
with:
limit-access-to-actor: true
- name: 0a0_ninja_build SLPlugin.exe
run: fsvr_step 0a0 SLPlugin.exe
- name: 0a0_ninja_build application-bin.exe
run: fsvr_step 0a0 ${viewer_bin}-bin.exe
- name: 0a0_ninja_build llpackage
run: fsvr_step 0a0 llpackage
- name: 0a1 postbuild
run: fsvr_step 0a1
- name: 0b0 installer
run: fsvr_step 0b0
- name: 0b1 upload installer
uses: ./fsvr-action
with:
run: fsvr_step 0b1
- name: 0b2 7z
run: fsvr_step 0b2
- name: 0b3 upload 7z
uses: ./fsvr-action
with:
run: fsvr_step 0b3
# - name: log env on error
# if: failure()
# uses: ./fsvr-action
# with:
# run: |
# ./fsvr/util/_utils.sh upload_artifact debug "$(cat <<EOF
# SHELL.env
# env.d/gha-bootstrap.env
# env.d/build_vars.env
# build/msvc.env
# build/msvc_path.env
# build/msvc.nunja.env
# EOF
# )"
- name: ~Setup tmate session
if: failure() && fromJSON(inputs.fstuple).pause != 'never'
uses: mxschmitt/action-tmate@v3
with:
limit-access-to-actor: true