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 atb-46-modlog-endpoint 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