diff --git a/.dockerignore b/.dockerignore index c197e60..2eff91b 100644 --- a/.dockerignore +++ b/.dockerignore @@ -13,3 +13,4 @@ coverage .idea .turbo .tanstack +apps/native diff --git a/.github/workflows/eas-build.yml b/.github/workflows/eas-build.yml new file mode 100644 index 0000000..677eb00 --- /dev/null +++ b/.github/workflows/eas-build.yml @@ -0,0 +1,51 @@ +name: EAS Build + +on: + workflow_dispatch: + inputs: + platform: + description: Platform to build + type: choice + options: + - all + - ios + - android + default: all + profile: + description: Build profile + type: choice + options: + - production + - development + default: production + push: + branches: [main] + paths: + - apps/native/** + - packages/api/** + +jobs: + build: + name: EAS Build + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-node@v4 + with: + node-version: 22 + + - uses: oven-sh/setup-bun@v2 + + - name: Setup EAS + uses: expo/expo-github-action@v8 + with: + eas-version: latest + token: ${{ secrets.EXPO_TOKEN }} + + - name: Install dependencies + run: bun install --frozen-lockfile + + - name: Build + working-directory: apps/native + run: eas build --platform ${{ inputs.platform || 'all' }} --profile ${{ inputs.profile || 'production' }} --non-interactive --no-wait diff --git a/.github/workflows/eas-submit.yml b/.github/workflows/eas-submit.yml new file mode 100644 index 0000000..4a18388 --- /dev/null +++ b/.github/workflows/eas-submit.yml @@ -0,0 +1,39 @@ +name: EAS Submit + +on: + workflow_dispatch: + inputs: + platform: + description: Platform to submit + type: choice + options: + - all + - ios + - android + default: all + +jobs: + submit: + name: EAS Submit + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-node@v4 + with: + node-version: 22 + + - uses: oven-sh/setup-bun@v2 + + - name: Setup EAS + uses: expo/expo-github-action@v8 + with: + eas-version: latest + token: ${{ secrets.EXPO_TOKEN }} + + - name: Install dependencies + run: bun install --frozen-lockfile + + - name: Submit + working-directory: apps/native + run: eas submit --platform ${{ inputs.platform || 'all' }} --latest --non-interactive diff --git a/.github/workflows/eas-update.yml b/.github/workflows/eas-update.yml new file mode 100644 index 0000000..a532769 --- /dev/null +++ b/.github/workflows/eas-update.yml @@ -0,0 +1,33 @@ +name: EAS Update + +on: + pull_request: + paths: + - apps/native/** + - packages/api/** + +jobs: + update: + name: EAS Update + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-node@v4 + with: + node-version: 22 + + - uses: oven-sh/setup-bun@v2 + + - name: Setup EAS + uses: expo/expo-github-action@v8 + with: + eas-version: latest + token: ${{ secrets.EXPO_TOKEN }} + + - name: Install dependencies + run: bun install --frozen-lockfile + + - name: Publish update + working-directory: apps/native + run: eas update --branch ${{ github.head_ref }} --message "${{ github.event.pull_request.title }}" --non-interactive diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index bd95614..fa4b71d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -18,6 +18,10 @@ jobs: - name: Install dependencies run: bun install --frozen-lockfile + - name: Generate Expo types + run: bunx expo customize tsconfig.json + working-directory: ./apps/native + - name: Lint run: bunx turbo run lint diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 17a9ff2..4470bfb 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -2,7 +2,8 @@ "recommendations": [ "biomejs.biome", "bradlc.vscode-tailwindcss", - "vitest.explorer", - "vercel.turbo-vsc" + "expo.vscode-expo-tools", + "vercel.turbo-vsc", + "vitest.explorer" ] } diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..75bf3db --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,120 @@ +# CLAUDE.md + +## Commands + +```bash +# Root commands (via Turborepo) +bun run dev # Start API server + Vite dev server +bun run build # Production build (both apps) +bun run lint # Biome lint check +bun run format # Biome format (auto-fix) +bun run check-types # TypeScript type check +bun run test # Run tests + +# Database commands (run from packages/db/) +cd packages/db && bun run db:push # Push schema changes to SQLite database +cd packages/db && bun run db:generate # Generate Drizzle migration files +cd packages/db && bun run db:migrate # Run Drizzle migrations +cd packages/db && bun run db:studio # Open Drizzle Studio (visual DB browser) +``` + +**Use Bun, not Node.js** — `bun `, `bun test`, `bun install`, `bun run