WIP! A BB-style forum, on the ATmosphere! We're still working... we'll be back soon when we have something to show off!
node typescript hono htmx atproto
at f7db4a64f2fadd4b6bbb36da469e62f0d7665c62 137 lines 3.2 kB view raw
1name: CI 2 3# Run checks on pull requests to verify code quality before merge. 4# Jobs run in parallel for fast feedback. Any failing check blocks the PR. 5on: 6 pull_request: 7 types: [opened, synchronize, reopened] 8 workflow_call: 9 10jobs: 11 # Lint job: Check code quality with oxlint 12 lint: 13 name: Lint 14 runs-on: ubuntu-latest 15 steps: 16 - name: Checkout code 17 uses: actions/checkout@v4 18 19 - name: Setup pnpm 20 uses: pnpm/action-setup@v4 21 with: 22 version: 9.15.4 23 24 - name: Setup Node.js 25 uses: actions/setup-node@v4 26 with: 27 node-version: '22' 28 cache: 'pnpm' 29 30 - name: Install dependencies 31 run: pnpm install --frozen-lockfile 32 33 - name: Run oxlint 34 run: pnpm exec oxlint . 35 36 # Typecheck job: Verify TypeScript types 37 typecheck: 38 name: Type Check 39 runs-on: ubuntu-latest 40 steps: 41 - name: Checkout code 42 uses: actions/checkout@v4 43 44 - name: Setup pnpm 45 uses: pnpm/action-setup@v4 46 with: 47 version: 9.15.4 48 49 - name: Setup Node.js 50 uses: actions/setup-node@v4 51 with: 52 node-version: '22' 53 cache: 'pnpm' 54 55 - name: Install dependencies 56 run: pnpm install --frozen-lockfile 57 58 - name: Run type check 59 run: pnpm turbo lint 60 61 # Test job: Run unit and integration tests 62 # Requires PostgreSQL service for database tests 63 test: 64 name: Test 65 runs-on: ubuntu-latest 66 67 services: 68 postgres: 69 image: postgres:17 70 env: 71 POSTGRES_USER: atbb 72 POSTGRES_PASSWORD: atbb 73 POSTGRES_DB: atbb 74 options: >- 75 --health-cmd pg_isready 76 --health-interval 10s 77 --health-timeout 5s 78 --health-retries 5 79 ports: 80 - 5432:5432 81 82 steps: 83 - name: Checkout code 84 uses: actions/checkout@v4 85 86 - name: Setup pnpm 87 uses: pnpm/action-setup@v4 88 with: 89 version: 9.15.4 90 91 - name: Setup Node.js 92 uses: actions/setup-node@v4 93 with: 94 node-version: '22' 95 cache: 'pnpm' 96 97 - name: Install dependencies 98 run: pnpm install --frozen-lockfile 99 100 - name: Build packages 101 run: pnpm build 102 103 - name: Run database migrations 104 run: pnpm --filter @atbb/appview db:migrate 105 env: 106 DATABASE_URL: postgresql://atbb:atbb@localhost:5432/atbb 107 108 - name: Run tests 109 run: pnpm test 110 env: 111 DATABASE_URL: postgresql://atbb:atbb@localhost:5432/atbb 112 113 # Build job: Verify TypeScript compilation succeeds 114 # Runs in parallel with other checks to catch build errors early 115 build: 116 name: Build 117 runs-on: ubuntu-latest 118 steps: 119 - name: Checkout code 120 uses: actions/checkout@v4 121 122 - name: Setup pnpm 123 uses: pnpm/action-setup@v4 124 with: 125 version: 9.15.4 126 127 - name: Setup Node.js 128 uses: actions/setup-node@v4 129 with: 130 node-version: '22' 131 cache: 'pnpm' 132 133 - name: Install dependencies 134 run: pnpm install --frozen-lockfile 135 136 - name: Build all packages 137 run: pnpm build