Some checks failed
Test examples / Test Examples (20) (push) Has been cancelled
Test examples / Test Examples (22) (push) Has been cancelled
Lock Threads / action (push) Has been cancelled
Trigger Release / start (push) Has been cancelled
Stale issue handler / stale (push) Has been cancelled
Update Font Data / create-pull-request (push) Has been cancelled
build-and-deploy / deploy-target (push) Has been cancelled
build-and-deploy / build (push) Has been cancelled
build-and-deploy / stable - aarch64-unknown-linux-musl - node@16 (push) Has been cancelled
build-and-deploy / stable - x86_64-unknown-linux-musl - node@16 (push) Has been cancelled
build-and-deploy / stable - aarch64-unknown-linux-gnu - node@16 (push) Has been cancelled
build-and-deploy / stable - x86_64-unknown-linux-gnu - node@16 (push) Has been cancelled
build-and-deploy / stable - aarch64-pc-windows-msvc - node@16 (push) Has been cancelled
build-and-deploy / stable - x86_64-pc-windows-msvc - node@16 (push) Has been cancelled
build-and-deploy / stable - aarch64-apple-darwin - node@16 (push) Has been cancelled
build-and-deploy / stable - x86_64-apple-darwin - node@16 (push) Has been cancelled
build-and-deploy / build-wasm (nodejs) (push) Has been cancelled
build-and-deploy / build-wasm (web) (push) Has been cancelled
build-and-deploy / Deploy preview tarball (push) Has been cancelled
build-and-deploy / Potentially publish release (push) Has been cancelled
build-and-deploy / publish-turbopack-npm-packages (push) Has been cancelled
build-and-deploy / Deploy examples (push) Has been cancelled
build-and-deploy / thank you, build (push) Has been cancelled
build-and-deploy / Upload Turbopack Bytesize metrics to Datadog (push) Has been cancelled
Rspack Next.js development integration tests / Rspack integration tests (push) Has been cancelled
Rspack Next.js production integration tests / Rspack integration tests (push) Has been cancelled
Turbopack Next.js development integration tests / Next.js integration tests (push) Has been cancelled
Turbopack Next.js production integration tests / Next.js integration tests (push) Has been cancelled
Update Rspack test manifest / Update and upload Rspack development test manifest (push) Has been cancelled
Update Rspack test manifest / Update and upload Rspack production test manifest (push) Has been cancelled
Upload bundler test manifests to areweturboyet.com / Upload test results (push) Has been cancelled
Update React / create-pull-request (push) Has been cancelled
test-e2e-project-reset-cron / reset-test-project (push) Has been cancelled
Notify about the top 15 issues/PRs/feature requests (most reacted) in the last 90 days / run (push) Has been cancelled
114 lines
2.8 KiB
Bash
114 lines
2.8 KiB
Bash
#!/bin/bash
|
|
# Quick sanity check for stats benchmark config
|
|
# Tests that the dev server can start with the new config
|
|
set -e
|
|
|
|
REPO_ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
|
cd "$REPO_ROOT"
|
|
|
|
echo "=== Stats Benchmark Config Test ==="
|
|
|
|
# Check Next.js is built
|
|
if [ ! -d "packages/next/dist" ]; then
|
|
echo "ERROR: Next.js not built. Run 'pnpm build' first."
|
|
exit 1
|
|
fi
|
|
|
|
# Create temp test app
|
|
WORK_DIR=$(mktemp -d)
|
|
trap "rm -rf $WORK_DIR" EXIT
|
|
|
|
echo "Setting up test app in $WORK_DIR..."
|
|
cp -r test/.stats-app/* "$WORK_DIR/"
|
|
cd "$WORK_DIR"
|
|
|
|
# Write the config that stats-config.js would write (with turbopack: {})
|
|
cat > next.config.js << 'EOF'
|
|
module.exports = {
|
|
generateBuildId: () => 'BUILD_ID',
|
|
turbopack: {},
|
|
}
|
|
EOF
|
|
|
|
echo "Config:"
|
|
cat next.config.js
|
|
echo ""
|
|
|
|
# Link local Next.js
|
|
node -e "
|
|
const fs = require('fs');
|
|
const pkg = JSON.parse(fs.readFileSync('package.json'));
|
|
pkg.dependencies.next = 'file:$REPO_ROOT/packages/next';
|
|
fs.writeFileSync('package.json', JSON.stringify(pkg, null, 2));
|
|
"
|
|
echo "Installing dependencies..."
|
|
pnpm install --ignore-scripts 2>/dev/null
|
|
|
|
# Test Turbopack dev (the failing scenario)
|
|
echo ""
|
|
echo "=== Test 1: Turbopack dev (default, no flag) ==="
|
|
PORT=$(python3 -c "import socket; s=socket.socket(); s.bind(('',0)); print(s.getsockname()[1]); s.close()")
|
|
|
|
rm -rf .next
|
|
NEXT_TELEMETRY_DISABLED=1 timeout 30 pnpm next dev --port $PORT > /tmp/turbo.log 2>&1 &
|
|
PID=$!
|
|
sleep 12
|
|
|
|
if kill -0 $PID 2>/dev/null; then
|
|
echo "OK: Turbopack dev server is running"
|
|
kill $PID 2>/dev/null || true
|
|
wait $PID 2>/dev/null || true
|
|
else
|
|
wait $PID 2>/dev/null || CODE=$?
|
|
if [ "$CODE" = "1" ]; then
|
|
echo "FAIL: Turbopack dev crashed (exit 1)"
|
|
echo "Output:"
|
|
cat /tmp/turbo.log
|
|
exit 1
|
|
fi
|
|
echo "OK: Process exited (timeout or normal)"
|
|
fi
|
|
|
|
# Test Webpack dev
|
|
echo ""
|
|
echo "=== Test 2: Webpack dev (--webpack flag) ==="
|
|
PORT=$(python3 -c "import socket; s=socket.socket(); s.bind(('',0)); print(s.getsockname()[1]); s.close()")
|
|
|
|
rm -rf .next
|
|
NEXT_TELEMETRY_DISABLED=1 timeout 30 pnpm next dev --webpack --port $PORT > /tmp/webpack.log 2>&1 &
|
|
PID=$!
|
|
sleep 12
|
|
|
|
if kill -0 $PID 2>/dev/null; then
|
|
echo "OK: Webpack dev server is running"
|
|
kill $PID 2>/dev/null || true
|
|
wait $PID 2>/dev/null || true
|
|
else
|
|
echo "OK: Process exited (timeout or normal)"
|
|
fi
|
|
|
|
# Test Turbopack build
|
|
echo ""
|
|
echo "=== Test 3: Turbopack build ==="
|
|
rm -rf .next
|
|
if NEXT_TELEMETRY_DISABLED=1 pnpm next build 2>&1 | head -20; then
|
|
echo "OK: Turbopack build completed"
|
|
else
|
|
echo "FAIL: Turbopack build failed"
|
|
exit 1
|
|
fi
|
|
|
|
# Test Webpack build
|
|
echo ""
|
|
echo "=== Test 4: Webpack build (--webpack flag) ==="
|
|
rm -rf .next
|
|
if NEXT_TELEMETRY_DISABLED=1 pnpm next build --webpack 2>&1 | head -20; then
|
|
echo "OK: Webpack build completed"
|
|
else
|
|
echo "FAIL: Webpack build failed"
|
|
exit 1
|
|
fi
|
|
|
|
echo ""
|
|
echo "=== All tests passed ==="
|