feat(mobile): unified toast system — no more inline red error text #55
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| branches: [main, 'feat/**', 'fix/**'] | |
| pull_request: | |
| concurrency: | |
| group: ci-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| lint-type: | |
| name: Lint + Type-check | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: pnpm/action-setup@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| cache: pnpm | |
| - run: pnpm install --frozen-lockfile | |
| - name: Generate Prisma client | |
| run: pnpm --filter @wash-and-go/api prisma:generate | |
| - name: Type-check | |
| run: pnpm -r type-check | |
| - name: Unit tests (no DB) | |
| run: >- | |
| pnpm | |
| --filter @wash-and-go/domain | |
| --filter @wash-and-go/api-client | |
| --filter @wash-and-go/customer-mobile | |
| --filter @wash-and-go/admin-dashboard | |
| --filter @wash-and-go/laundry-portal | |
| --filter @wash-and-go/rider-mobile | |
| test | |
| api-test: | |
| name: API tests | |
| runs-on: ubuntu-latest | |
| services: | |
| postgres: | |
| image: postgres:16-alpine | |
| env: | |
| POSTGRES_DB: wash_and_go_test | |
| POSTGRES_USER: dev | |
| POSTGRES_PASSWORD: dev | |
| ports: | |
| - 5432:5432 | |
| options: >- | |
| --health-cmd "pg_isready -U dev -d wash_and_go_test" | |
| --health-interval 5s | |
| --health-timeout 3s | |
| --health-retries 10 | |
| redis: | |
| image: redis:7-alpine | |
| ports: | |
| - 6379:6379 | |
| env: | |
| DATABASE_URL: postgresql://dev:dev@localhost:5432/wash_and_go_test | |
| REDIS_URL: redis://localhost:6379 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: pnpm/action-setup@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| cache: pnpm | |
| - run: pnpm install --frozen-lockfile | |
| - name: Generate Prisma client | |
| run: pnpm --filter @wash-and-go/api prisma:generate | |
| - name: Apply migrations | |
| run: pnpm --filter @wash-and-go/api exec prisma migrate deploy | |
| - name: Test | |
| run: pnpm --filter @wash-and-go/api test | |
| build: | |
| name: Build all | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: pnpm/action-setup@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| cache: pnpm | |
| - run: pnpm install --frozen-lockfile | |
| - name: Generate Prisma client | |
| run: pnpm --filter @wash-and-go/api prisma:generate | |
| - name: Build | |
| run: pnpm -r build | |
| docker-api: | |
| name: Docker build (API image) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| # Validates the deploy image builds (catches the .npmrc/phantom-dep class of | |
| # regressions before Railway does at deploy). Build only — no push. | |
| - name: Build API image | |
| run: docker build -f apps/api/Dockerfile -t washgo-api:ci . | |
| # NOTE: browser e2e smokes (e2e/) run locally at frontend checkpoints, not in CI — | |
| # they need all app dev servers + a browser and flake on Expo-web hydration, so | |
| # gating merges on them would be noisy. Revisit with retries + a dedicated job. |