Advance M7 workflows and release operations
This commit is contained in:
@@ -2,18 +2,51 @@
|
||||
set -euo pipefail
|
||||
|
||||
repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
||||
source_dir="${repo_root}/build_web_blender6/bin"
|
||||
target_dir="${repo_root}/web/app/public/vendor/blender"
|
||||
source_vendor_dir="${repo_root}/web/app/src/vendor/blender"
|
||||
mkdir -p "${target_dir}"
|
||||
mkdir -p "${source_vendor_dir}"
|
||||
test -s "${source_dir}/web_engine.js" && test -s "${source_dir}/web_engine.wasm"
|
||||
cp "${source_dir}/web_engine.js" "${target_dir}/web_engine.js"
|
||||
cp "${source_dir}/web_engine.wasm" "${target_dir}/web_engine.wasm"
|
||||
cp "${source_dir}/web_engine.js" "${source_vendor_dir}/web_engine.js"
|
||||
cp "${source_dir}/web_engine.wasm" "${source_vendor_dir}/web_engine.wasm"
|
||||
wasm_hash="$(sha256sum "${target_dir}/web_engine.wasm" | cut -d ' ' -f 1)"
|
||||
single_build_dir="${WEB_ENGINE_SINGLE_BUILD_DIR:-${repo_root}/build_web-single}"
|
||||
pthread_build_dir="${WEB_ENGINE_PTHREAD_BUILD_DIR:-${repo_root}/build_web-pthread}"
|
||||
public_root="${WEB_ENGINE_PUBLIC_ROOT:-${repo_root}/web/app/public}"
|
||||
manifest_path="${WEB_ENGINE_MANIFEST_PATH:-${public_root}/engine-manifest.json}"
|
||||
|
||||
if [[ "$(realpath -m "${single_build_dir}")" == "$(realpath -m "${pthread_build_dir}")" ]]; then
|
||||
echo "single and pthread variants must come from independent build directories" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
for build_dir in "${single_build_dir}" "${pthread_build_dir}"; do
|
||||
test -s "${build_dir}/web_engine.js"
|
||||
test -s "${build_dir}/web_engine.wasm"
|
||||
done
|
||||
test -s "${manifest_path}"
|
||||
|
||||
staging_dir="$(mktemp -d "${TMPDIR:-/tmp}/blender-web-engine-install.XXXXXX")"
|
||||
trap 'rm -rf "${staging_dir}"' EXIT
|
||||
for variant in single pthread; do
|
||||
mkdir -p "${staging_dir}/vendor/blender/${variant}"
|
||||
done
|
||||
cp "${single_build_dir}/web_engine.js" "${staging_dir}/vendor/blender/single/web_engine.js"
|
||||
cp "${single_build_dir}/web_engine.wasm" "${staging_dir}/vendor/blender/single/web_engine.wasm"
|
||||
cp "${pthread_build_dir}/web_engine.js" "${staging_dir}/vendor/blender/pthread/web_engine.js"
|
||||
cp "${pthread_build_dir}/web_engine.wasm" "${staging_dir}/vendor/blender/pthread/web_engine.wasm"
|
||||
cp "${manifest_path}" "${staging_dir}/engine-manifest.json"
|
||||
|
||||
node "${repo_root}/tools/web/update-engine-manifest.mjs" \
|
||||
"${repo_root}/web/app/public/engine-manifest.json" \
|
||||
"${wasm_hash}"
|
||||
sha256sum "${target_dir}/web_engine.js" "${target_dir}/web_engine.wasm"
|
||||
"${staging_dir}/engine-manifest.json" \
|
||||
"${staging_dir}/vendor/blender/single" \
|
||||
"${staging_dir}/vendor/blender/pthread"
|
||||
node "${repo_root}/tools/web/check-manifest-assets.mjs" \
|
||||
"${staging_dir}/engine-manifest.json" "${staging_dir}"
|
||||
|
||||
for variant in single pthread; do
|
||||
mkdir -p "${public_root}/vendor/blender/${variant}"
|
||||
install -m 0644 "${staging_dir}/vendor/blender/${variant}/web_engine.js" \
|
||||
"${public_root}/vendor/blender/${variant}/web_engine.js"
|
||||
install -m 0644 "${staging_dir}/vendor/blender/${variant}/web_engine.wasm" \
|
||||
"${public_root}/vendor/blender/${variant}/web_engine.wasm"
|
||||
done
|
||||
install -m 0644 "${staging_dir}/engine-manifest.json" "${manifest_path}"
|
||||
|
||||
sha256sum \
|
||||
"${public_root}/vendor/blender/single/web_engine.js" \
|
||||
"${public_root}/vendor/blender/single/web_engine.wasm" \
|
||||
"${public_root}/vendor/blender/pthread/web_engine.js" \
|
||||
"${public_root}/vendor/blender/pthread/web_engine.wasm"
|
||||
|
||||
Reference in New Issue
Block a user