name: CI on: push: branches: [develop] paths-ignore: - ".beans/**" - "*.md" - "LICENSE" - ".gitignore" - ".github/workflows/deploy.yml" pull_request: branches: [develop] paths-ignore: - ".beans/**" - "*.md" - "LICENSE" - ".gitignore" - ".github/workflows/deploy.yml" permissions: contents: read jobs: backend-tests: runs-on: ubuntu-latest services: postgres: image: postgres:16-alpine ports: - 5433:5432 env: POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres POSTGRES_DB: nuzlocke_test options: >- --health-cmd "pg_isready -U postgres" --health-interval 10s --health-timeout 5s --health-retries 5 steps: - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 with: persist-credentials: false - uses: astral-sh/setup-uv@d0cc045d04ccac9d8b7881df0226f9e82c39688e # v6.8.0 with: python-version: "3.14" - name: Install dependencies run: uv pip install --system -e ".[dev]" working-directory: backend - name: Run tests run: pytest -q working-directory: backend env: TEST_DATABASE_URL: postgresql+asyncpg://postgres:postgres@localhost:5433/nuzlocke_test frontend-tests: runs-on: ubuntu-latest steps: - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 with: persist-credentials: false - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 with: node-version: "24" - name: Install dependencies run: npm ci working-directory: frontend - name: Run tests run: npm test working-directory: frontend e2e-tests: runs-on: ubuntu-latest steps: - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 with: persist-credentials: false - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 with: node-version: "24" - name: Install dependencies run: npm ci working-directory: frontend - name: Install Playwright browsers run: npx playwright install --with-deps chromium working-directory: frontend - name: Run e2e tests run: npm run test:e2e working-directory: frontend - name: Upload Playwright report if: failure() uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 with: name: playwright-report path: frontend/playwright-report/