All checks were successful
Build & Deploy / 🔍 Prepare (push) Successful in 7s
Build & Deploy / 🧪 QA (push) Successful in 1m53s
Build & Deploy / 🏗️ Build (push) Successful in 7m44s
Build & Deploy / 🚀 Deploy (push) Successful in 33s
Build & Deploy / 🧪 Smoke Test (push) Successful in 59s
Build & Deploy / ⚡ Lighthouse (push) Successful in 3m14s
Build & Deploy / 🔔 Notify (push) Successful in 1s
- Integrated imgproxy for centralized image optimization - Implemented Lighthouse CI in Gitea pipeline with native Chromium - Reached 100/100 SEO score by fixing canonicals, hreflang, and link text - Optimized LCP by forcing Hero component visibility until hydration - Decoupled analytics into an async shell to reduce TTI
52 lines
1.7 KiB
Bash
Executable File
52 lines
1.7 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# audit-local.sh
|
|
# Runs a high-fidelity Lighthouse audit locally using the Docker production stack.
|
|
|
|
set -e
|
|
|
|
echo "🚀 Starting High-Fidelity Local Audit..."
|
|
|
|
# 1. Environment and Infrastructure
|
|
export DOCKER_HOST="unix:///Users/marcmintel/.docker/run/docker.sock"
|
|
export NEXT_PUBLIC_IMGPROXY_URL="http://img.klz.localhost"
|
|
export NEXT_URL="http://klz.localhost"
|
|
|
|
docker network create infra 2>/dev/null || true
|
|
docker volume create klz-cablescom_directus-db-data 2>/dev/null || true
|
|
|
|
# 2. Start infra services (DB, CMS, Gatekeeper)
|
|
echo "📦 Starting infrastructure services..."
|
|
# Using --remove-orphans to ensure a clean state
|
|
docker-compose up -d --remove-orphans klz-db klz-cms klz-gatekeeper
|
|
|
|
# 3. Build and Start klz-app and klz-imgproxy in Production Mode
|
|
echo "🏗️ Building and starting klz-app (Production)..."
|
|
# We bypass the dev override by explicitly using the base compose file
|
|
NEXT_PUBLIC_BASE_URL=$NEXT_URL \
|
|
docker-compose -f docker-compose.yml up -d --build klz-app klz-imgproxy
|
|
|
|
# 4. Wait for application to be ready
|
|
echo "⏳ Waiting for application to be healthy..."
|
|
MAX_RETRIES=30
|
|
RETRY_COUNT=0
|
|
|
|
until $(curl -s -f -o /dev/null "$NEXT_URL/health"); do
|
|
if [ $RETRY_COUNT -eq $MAX_RETRIES ]; then
|
|
echo "❌ Error: App did not become healthy in time."
|
|
exit 1
|
|
fi
|
|
echo " ...waiting for $NEXT_URL/health"
|
|
sleep 2
|
|
RETRY_COUNT=$((RETRY_COUNT+1))
|
|
done
|
|
|
|
echo "✅ App is healthy at $NEXT_URL"
|
|
|
|
# 5. Run Lighthouse Audit
|
|
echo "⚡ Executing Lighthouse CI..."
|
|
NEXT_PUBLIC_BASE_URL=$NEXT_URL PAGESPEED_LIMIT=5 pnpm run pagespeed:test "$NEXT_URL"
|
|
|
|
echo "✨ Audit completed! Summary above."
|
|
echo "💡 You can stop the production app with: docker-compose stop klz-app"
|