up
This commit is contained in:
48
scripts/devportal/build-devportal.sh
Normal file
48
scripts/devportal/build-devportal.sh
Normal file
@@ -0,0 +1,48 @@
|
||||
#!/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
|
||||
Reference in New Issue
Block a user