Files
git.stella-ops.org/scripts/devportal/build-devportal.sh
StellaOps Bot e6119cbe91
Some checks failed
AOC Guard CI / aoc-guard (push) Has been cancelled
AOC Guard CI / aoc-verify (push) Has been cancelled
Docs CI / lint-and-preview (push) Has been cancelled
up
2025-11-24 09:07:40 +02:00

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