Skip to content

Deck 9.2.2 arcgis 4.34.2 #8

Deck 9.2.2 arcgis 4.34.2

Deck 9.2.2 arcgis 4.34.2 #8

name: Client E2E Tests
on:
push:
branches: [develop]
paths:
- "client/**"
- ".github/workflows/client-e2e-tests.yml"
pull_request:
paths:
- "client/**"
- ".github/workflows/client-e2e-tests.yml"
workflow_dispatch:
defaults:
run:
shell: bash
working-directory: client
jobs:
e2e-tests:
name: Playwright E2E Tests
runs-on: ubuntu-24.04
timeout-minutes: 30
services:
postgres:
image: postgres:16
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: amazonia360_test
ports:
- 5432:5432
options: >-
--health-cmd "pg_isready -U postgres"
--health-interval 10s
--health-timeout 5s
--health-retries 5
env:
DATABASE_URL: postgresql://postgres:postgres@localhost:5432/amazonia360_test
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Install uv
uses: astral-sh/setup-uv@v5
- name: Install API dependencies
working-directory: api
run: uv sync --frozen
- name: Create minimal grid data
run: |
mkdir -p /tmp/grid-tiles
echo '{"datasets":[],"h3_grid_info":[]}' > /tmp/grid-tiles/meta.json
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version-file: "client/.nvmrc"
- name: Setup pnpm
uses: pnpm/action-setup@v4
- name: Cache pnpm store
uses: actions/cache@v4
with:
path: ~/.pnpm-store
key: ${{ runner.os }}-pnpm-${{ hashFiles('client/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-
- name: Cache Next.js build
uses: actions/cache@v4
with:
path: client/.next/cache
key: ${{ runner.os }}-nextjs-${{ hashFiles('client/pnpm-lock.yaml') }}-${{ hashFiles('client/src/**/*.ts', 'client/src/**/*.tsx') }}
restore-keys: |
${{ runner.os }}-nextjs-${{ hashFiles('client/pnpm-lock.yaml') }}-
- name: Install client dependencies
run: pnpm install --frozen-lockfile
- name: Install Playwright browsers
run: pnpm exec playwright install chromium --with-deps
- name: Run E2E tests
run: pnpm test:e2e
- name: Upload Playwright report
uses: actions/upload-artifact@v4
if: always()
with:
name: playwright-report
path: client/e2e/playwright-report/
retention-days: 14
- name: Upload test results
uses: actions/upload-artifact@v4
if: failure()
with:
name: playwright-test-results
path: client/e2e/test-results/
retention-days: 7