49 lines
1.1 KiB
Bash
49 lines
1.1 KiB
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
# DEVOPS-DEVPORT-63-001 / 64-001: devportal build + offline bundle
|
|
|
|
ROOT="$(git rev-parse --show-toplevel)"
|
|
pushd "$ROOT" >/dev/null
|
|
|
|
OUT_ROOT="out/devportal"
|
|
RUN_ID="$(date -u +%Y%m%dT%H%M%SZ)"
|
|
RUN_DIR="${OUT_ROOT}/${RUN_ID}"
|
|
mkdir -p "$RUN_DIR"
|
|
|
|
export NODE_ENV=production
|
|
export PNPM_HOME="${ROOT}/.pnpm"
|
|
export PATH="$PNPM_HOME:$PATH"
|
|
|
|
if ! command -v pnpm >/dev/null 2>&1; then
|
|
corepack enable pnpm >/dev/null
|
|
fi
|
|
|
|
echo "[devportal] installing deps with pnpm"
|
|
pnpm install --frozen-lockfile --prefer-offline
|
|
|
|
echo "[devportal] lint/typecheck/unit"
|
|
pnpm run lint
|
|
pnpm run test -- --watch=false
|
|
|
|
echo "[devportal] lighthouse perf budget (headless)"
|
|
pnpm run perf:ci || true
|
|
|
|
echo "[devportal] build"
|
|
pnpm run build
|
|
|
|
echo "[devportal] copying artifacts"
|
|
cp -r dist "${RUN_DIR}/dist"
|
|
|
|
echo "[devportal] checksums"
|
|
(
|
|
cd "$RUN_DIR"
|
|
find dist -type f -print0 | xargs -0 sha256sum > SHA256SUMS
|
|
)
|
|
|
|
tar -C "$RUN_DIR" -czf "${RUN_DIR}.tgz" dist SHA256SUMS
|
|
echo "$RUN_DIR.tgz" > "${OUT_ROOT}/latest.txt"
|
|
echo "[devportal] bundle created at ${RUN_DIR}.tgz"
|
|
|
|
popd >/dev/null
|