fix(files): R2 empty-list + passkey list method #121
Workflow file for this run
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: | |
| pull_request: | |
| push: | |
| branches: [master, main] | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| env: | |
| TURBO_TELEMETRY_DISABLED: 1 | |
| NEXT_TELEMETRY_DISABLED: 1 | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| services: | |
| postgres: | |
| image: postgres:17-alpine | |
| env: | |
| POSTGRES_USER: postgres | |
| POSTGRES_PASSWORD: postgres | |
| POSTGRES_DB: starter_saas_ci | |
| ports: ["5432:5432"] | |
| options: >- | |
| --health-cmd "pg_isready -U postgres" | |
| --health-interval 10s | |
| --health-timeout 5s | |
| --health-retries 5 | |
| env: | |
| DATABASE_URL: postgresql://postgres:postgres@localhost:5432/starter_saas_ci | |
| BETTER_AUTH_SECRET: ci_secret_ci_secret_ci_secret_ci_ | |
| BETTER_AUTH_URL: http://localhost:3001 | |
| APP_URL: http://localhost:3001 | |
| CORS_ORIGIN: http://localhost:3001 | |
| POLAR_ACCESS_TOKEN: ci-token | |
| POLAR_SUCCESS_URL: http://localhost:3001/success | |
| RESEND_API_KEY: ci-resend | |
| EMAIL_FROM: ci@example.com | |
| R2_ACCOUNT_ID: ci | |
| R2_ACCESS_KEY_ID: ci | |
| R2_SECRET_ACCESS_KEY: ci | |
| R2_BUCKET: ci | |
| R2_ENDPOINT: https://ci.example.com | |
| NEXT_PUBLIC_APP_URL: http://localhost:3001 | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - uses: pnpm/action-setup@v4 | |
| with: | |
| version: 10.30.3 | |
| - uses: actions/setup-node@v5 | |
| with: | |
| node-version: 22 | |
| cache: pnpm | |
| - name: Materialize CI .env | |
| # `@starter-saas/env` calls `dotenv/config` on import, and Next 16 build | |
| # workers don't always inherit the job-level `env:` block. Write the | |
| # repo-root .env from those vars and symlink it into each app so server | |
| # builds see the same vars as local dev. | |
| run: | | |
| cat > .env <<EOF | |
| NODE_ENV=production | |
| DATABASE_URL=${DATABASE_URL} | |
| BETTER_AUTH_SECRET=${BETTER_AUTH_SECRET} | |
| BETTER_AUTH_URL=${BETTER_AUTH_URL} | |
| APP_URL=${APP_URL} | |
| CORS_ORIGIN=${CORS_ORIGIN} | |
| POLAR_ACCESS_TOKEN=${POLAR_ACCESS_TOKEN} | |
| POLAR_SUCCESS_URL=${POLAR_SUCCESS_URL} | |
| POLAR_SERVER=sandbox | |
| RESEND_API_KEY=${RESEND_API_KEY} | |
| EMAIL_FROM=${EMAIL_FROM} | |
| R2_ACCOUNT_ID=${R2_ACCOUNT_ID} | |
| R2_ACCESS_KEY_ID=${R2_ACCESS_KEY_ID} | |
| R2_SECRET_ACCESS_KEY=${R2_SECRET_ACCESS_KEY} | |
| R2_BUCKET=${R2_BUCKET} | |
| R2_ENDPOINT=${R2_ENDPOINT} | |
| NEXT_PUBLIC_APP_URL=${NEXT_PUBLIC_APP_URL} | |
| EOF | |
| - run: pnpm install --frozen-lockfile | |
| - run: pnpm run setup | |
| - run: pnpm db:push --filter @starter-saas/db | |
| continue-on-error: true | |
| - run: pnpm check | |
| - run: pnpm typecheck | |
| - run: pnpm test | |
| - run: pnpm build |