The Selenium ITs need a headless Chrome and the HTTPS React dev server on :3001. Move the prebuild into scripts/ci-prebuild.sh, which also starts the dev server (HTTPS, port 3001, backend proxy 8001) the way the qqq-orb frontend-material pipeline did, and treat CI=true like QQQ_SELENIUM_HEADLESS (and like CIRCLECI for waitForever) so the tests run headless on any CI. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
28 lines
995 B
Bash
Executable File
28 lines
995 B
Bash
Executable File
#!/usr/bin/env bash
|
|
############################################################################
|
|
## ci-prebuild.sh
|
|
## CI prebuild for the shared ci-workflows maven.yaml (runs before Maven):
|
|
## Jest unit tests, the React build that is packaged into the jar, and the
|
|
## HTTPS dev server on :3001 that the Selenium ITs drive (as the old
|
|
## qqq-orb frontend-material pipeline did). Maven then runs the ITs headless.
|
|
############################################################################
|
|
set -euo pipefail
|
|
|
|
npm ci --legacy-peer-deps
|
|
npm test -- --watchAll=false
|
|
npm run build-and-publish
|
|
|
|
HTTPS=true PORT=3001 REACT_APP_PROXY_LOCALHOST_PORT=8001 \
|
|
nohup setsid npm run start > /tmp/react-dev-server.log 2>&1 < /dev/null &
|
|
|
|
for _ in $(seq 1 150); do
|
|
if curl -ksf -o /dev/null https://localhost:3001/; then
|
|
echo "React dev server is up on https://localhost:3001"
|
|
exit 0
|
|
fi
|
|
sleep 2
|
|
done
|
|
echo "React dev server did not come up on :3001"
|
|
cat /tmp/react-dev-server.log
|
|
exit 1
|