37 lines
2.2 KiB
Bash
Executable File
37 lines
2.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
OUT_DIR="${ROOT_DIR}/dist"
|
|
case "$(uname -m)" in
|
|
x86_64|amd64) PLATFORM="linux-x64" ;;
|
|
aarch64|arm64) PLATFORM="linux-arm64" ;;
|
|
*) echo "Unsupported host architecture: $(uname -m)" >&2; exit 2 ;;
|
|
esac
|
|
BINARY="${ROOT_DIR}/node_modules/bare-runtime-${PLATFORM}/bin/bare"
|
|
[[ -f "${BINARY}" ]] || { echo "Bare platform binary missing; run npm ci first." >&2; exit 1; }
|
|
chmod 755 "${BINARY}"
|
|
python3 "${ROOT_DIR}/packaging/prepare-bare-deps.py" "${ROOT_DIR}/node_modules"
|
|
mkdir -p "${OUT_DIR}"
|
|
BUNDLE_DIR="${OUT_DIR}/jarvis-qvac-bare-${PLATFORM}"
|
|
rm -rf "${BUNDLE_DIR}" "${OUT_DIR}/jarvis-qvac-bare-${PLATFORM}.tar.gz"
|
|
mkdir -p "${BUNDLE_DIR}"
|
|
tar --exclude='.git' --exclude='./.agents' --exclude='./.codex' --exclude='./dist' --exclude='./vendor/agent-harness/node_modules' --exclude='*/__pycache__' --exclude='*.pyc' -cf - -C "${ROOT_DIR}" . | tar -xf - -C "${BUNDLE_DIR}"
|
|
cp -a "${ROOT_DIR}/node_modules" "${BUNDLE_DIR}/"
|
|
# QVAC publishes one package containing native prebuilds for every supported
|
|
# platform. The rolling asset is architecture-specific: retain all Linux x64
|
|
# GPU variants, and remove arm64/mobile/Apple/Windows payloads before packing.
|
|
find "${BUNDLE_DIR}/node_modules" -type d -name prebuilds -prune -print0 | while IFS= read -r -d '' prebuilds; do
|
|
find "${prebuilds}" -mindepth 1 -maxdepth 1 -type d ! -name "${PLATFORM}" -exec rm -rf {} +
|
|
done
|
|
find "${BUNDLE_DIR}/node_modules" -maxdepth 1 -type d -name 'bare-runtime-*' ! -name "bare-runtime-${PLATFORM}" -exec rm -rf {} +
|
|
if [[ -d "${BUNDLE_DIR}/node_modules/@esbuild" ]]; then
|
|
find "${BUNDLE_DIR}/node_modules/@esbuild" -mindepth 1 -maxdepth 1 -type d ! -name 'linux-x64' -exec rm -rf {} +
|
|
fi
|
|
(cd "${BUNDLE_DIR}" && bash packaging/bare-launch.sh packaging/bare-run.js packaging/voice-runtime-smoke.js)
|
|
if [[ "${JARVIS_VERIFY_VOICE_MODELS:-0}" == "1" ]]; then
|
|
(cd "${BUNDLE_DIR}" && bash packaging/bare-launch.sh packaging/bare-run.js packaging/voice-model-smoke.js)
|
|
fi
|
|
tar -C "${OUT_DIR}" -czf "${OUT_DIR}/jarvis-qvac-bare-${PLATFORM}.tar.gz" "jarvis-qvac-bare-${PLATFORM}"
|
|
rm -rf "${BUNDLE_DIR}"
|
|
echo "${OUT_DIR}/jarvis-qvac-bare-${PLATFORM}.tar.gz"
|