fix: render Unicode box-drawing chars in terminal mockup #29
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] | |
| pull_request: | |
| branches: [main] | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| env: | |
| TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} | |
| TURBO_TEAM: ${{ secrets.TURBO_TEAM }} | |
| # Required by @repo/next-config env validation during build | |
| NEXT_PUBLIC_APP_URL: http://localhost:3000 | |
| NEXT_PUBLIC_WEB_URL: http://localhost:3001 | |
| NEXT_PUBLIC_API_URL: http://localhost:3002 | |
| NEXT_PUBLIC_DOCS_URL: http://localhost:3004 | |
| # Dummy DATABASE_URL for build (Prisma client import requires it, but no actual connection is made) | |
| DATABASE_URL: postgresql://user:pass@localhost:5432/ci | |
| jobs: | |
| check: | |
| name: Lint & Typecheck | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Setup Bun | |
| uses: oven-sh/setup-bun@v2 | |
| with: | |
| bun-version: latest | |
| - name: Install dependencies | |
| run: bun install --frozen-lockfile | |
| - name: Generate Prisma client | |
| run: bunx prisma generate --schema=packages/database/prisma/schema.prisma | |
| - name: Lint (biome) | |
| run: bun run check | |
| - name: Typecheck | |
| run: bun run turbo typecheck --filter=api --filter=app --filter=web | |
| test: | |
| name: Test | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| needs: check | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Setup Bun | |
| uses: oven-sh/setup-bun@v2 | |
| with: | |
| bun-version: latest | |
| - name: Install dependencies | |
| run: bun install --frozen-lockfile | |
| - name: Generate Prisma client | |
| run: cd packages/database && bunx prisma generate | |
| - name: Run tests | |
| run: bun run test | |
| build: | |
| name: Build | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 15 | |
| needs: test | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Setup Bun | |
| uses: oven-sh/setup-bun@v2 | |
| with: | |
| bun-version: latest | |
| - name: Install dependencies | |
| run: bun install --frozen-lockfile | |
| - name: Build all | |
| run: bun run build | |
| e2e: | |
| name: E2E Tests | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 20 | |
| needs: build | |
| if: github.event_name == 'pull_request' | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Setup Bun | |
| uses: oven-sh/setup-bun@v2 | |
| with: | |
| bun-version: latest | |
| - name: Install dependencies | |
| run: bun install --frozen-lockfile | |
| - name: Generate Prisma client | |
| run: cd packages/database && bunx prisma generate | |
| - name: Install Playwright browsers | |
| run: bunx playwright install --with-deps chromium | |
| - name: Run E2E tests | |
| working-directory: apps/app | |
| run: bunx playwright test | |
| env: | |
| NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY: ${{ secrets.E2E_CLERK_PUBLISHABLE_KEY }} | |
| CLERK_SECRET_KEY: ${{ secrets.E2E_CLERK_SECRET_KEY }} | |
| E2E_CLERK_USER_EMAIL: ${{ secrets.E2E_CLERK_USER_EMAIL }} | |
| - name: Upload Playwright report | |
| uses: actions/upload-artifact@v4 | |
| if: ${{ !cancelled() }} | |
| with: | |
| name: playwright-report | |
| path: apps/app/playwright-report/ | |
| retention-days: 7 | |
| docs-check: | |
| name: Docs Check | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 5 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Check docs freshness | |
| run: bash scripts/harness/check-docs-freshness.sh | |
| - name: Check wikilinks | |
| run: bash scripts/harness/check-wikilinks.sh |