Files
gnome-jarvis/packaging/build-runtime-bundle.sh
T
snxraven 28f50d9d68
Rolling release / release (push) Canceled after 2m14s
CI / verify (push) Canceled after 2m19s
Prune non-amd64 prebuilds from Bare bundle
2026-09-11 16:07:18 -04:00

33 lines
1.9 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
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"