#!/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