ci: fix runner image (node:20), add Playwright smoke tests
Some checks failed
CI · Test & Deploy / Playwright tests (push) Failing after 3m55s
CI · Test & Deploy / Deploy to VPS (push) Has been skipped

- Change runner to node:20 (has bash) instead of node:20-alpine
- Add tests/smoke.spec.js: 7 tests covering title, welcome screen,
  COMARCA_PATHS count (43), Lluçanès/Moianès presence, and
  filter counts (coastal=12, interior=21, mountain=10)
- Add playwright.config.js
- Fix CI workflow: use 'serve' for static server, proper SSH key setup
This commit is contained in:
Jaume Garriga Maestre
2026-05-14 11:11:39 +02:00
parent 8c9b1ccfce
commit 2f90d41be3
3 changed files with 106 additions and 14 deletions

View File

@@ -6,7 +6,7 @@ on:
jobs:
# ─────────────────────────────────────────────
# JOB 1: Playwright tests
# JOB 1: Playwright smoke tests
# ─────────────────────────────────────────────
test:
name: Playwright tests
@@ -19,21 +19,19 @@ jobs:
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
- name: Install dependencies
run: npm ci --omit=dev
run: npm ci
- name: Install Playwright browsers
- name: Install Playwright + Chromium system deps
run: npx playwright install chromium --with-deps
- name: Start app (static HTTP server)
- name: Start static HTTP server
run: |
npm install --save-dev http-server
npx http-server . -p 9090 &
sleep 2
npx --yes serve . -l 9090 &
sleep 3
- name: Run Playwright tests
- name: Run smoke tests
run: npx playwright test --reporter=list
env:
APP_URL: http://localhost:9090
@@ -52,9 +50,11 @@ jobs:
- name: Setup SSH key
run: |
mkdir -p ~/.ssh
echo "${{ secrets.VPS_SSH_KEY }}" > ~/.ssh/id_ed25519
printf '%s\n' "$VPS_SSH_KEY" > ~/.ssh/id_ed25519
chmod 600 ~/.ssh/id_ed25519
ssh-keyscan -H 80.225.185.50 >> ~/.ssh/known_hosts
env:
VPS_SSH_KEY: ${{ secrets.VPS_SSH_KEY }}
- name: Upload static files
run: |
@@ -63,15 +63,16 @@ jobs:
- name: Upload server files & rebuild
run: |
ssh -i ~/.ssh/id_ed25519 ubuntu@80.225.185.50 "mkdir -p /srv/docker/builds/comarques"
scp -i ~/.ssh/id_ed25519 server.js package.json Dockerfile \
ubuntu@80.225.185.50:/srv/docker/builds/comarques/
ssh -i ~/.ssh/id_ed25519 ubuntu@80.225.185.50 \
"cd /srv/docker/builds/comarques && docker build -t comarques-de-catalunya:latest . \
&& cd /srv/docker/compose && docker compose up -d comarques"
"cd /srv/docker/builds/comarques \
&& docker build -t comarques-de-catalunya:latest . \
&& cd /srv/docker/compose \
&& docker compose up -d comarques"
- name: Health check
run: |
sleep 5
curl -fs https://comarques.jaumegar.work/api/health \
|| (echo "Health check failed after deploy" && exit 1)
|| (echo "Health check failed" && exit 1)