Rimuove la cartella output/ e monta dist/ in lettura/scrittura così l'APK viene scritto direttamente in dist/biteplan.apk
47 lines
1.5 KiB
Bash
Executable File
47 lines
1.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
PROJECT_ROOT="$(dirname "$SCRIPT_DIR")"
|
|
DIST_DIR="$PROJECT_ROOT/dist"
|
|
|
|
FROM_HEAD=false
|
|
for arg in "$@"; do
|
|
[[ "$arg" == "--head" ]] && FROM_HEAD=true
|
|
done
|
|
|
|
# ── Build Vite ────────────────────────────────────────────────────────────────
|
|
if $FROM_HEAD; then
|
|
COMMIT_SHA=$(git -C "$PROJECT_ROOT" rev-parse --short HEAD)
|
|
echo "==> Build Vite da HEAD ($COMMIT_SHA)..."
|
|
TMPDIR=$(mktemp -d)
|
|
trap 'rm -rf "$TMPDIR"' EXIT
|
|
git -C "$PROJECT_ROOT" archive HEAD | tar -x -C "$TMPDIR"
|
|
cd "$TMPDIR"
|
|
npm ci --silent
|
|
npm run build --silent
|
|
DIST_DIR="$TMPDIR/dist"
|
|
cd "$PROJECT_ROOT"
|
|
else
|
|
echo "==> Build Vite dalla working directory..."
|
|
cd "$PROJECT_ROOT"
|
|
npm ci --silent
|
|
npm run build --silent
|
|
fi
|
|
|
|
# ── Build immagine Docker ─────────────────────────────────────────────────────
|
|
echo "==> Build immagine Docker..."
|
|
docker build \
|
|
-f "$SCRIPT_DIR/Dockerfile" \
|
|
-t biteplan-builder \
|
|
"$PROJECT_ROOT"
|
|
|
|
# ── Generazione APK (dist/ montato come volume) ───────────────────────────────
|
|
echo "==> Generazione APK..."
|
|
docker run --rm \
|
|
-v "$DIST_DIR:/app/dist" \
|
|
biteplan-builder
|
|
|
|
echo ""
|
|
echo "APK pronto in: $DIST_DIR/biteplan.apk"
|