mirror of
https://github.com/stack-auth/stack.git
synced 2026-06-13 21:01:21 +08:00
114 lines
3.8 KiB
YAML
114 lines
3.8 KiB
YAML
name: Ensure up-to-date codegen
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- dev
|
|
- main
|
|
pull_request:
|
|
branches:
|
|
- dev
|
|
- main
|
|
|
|
jobs:
|
|
check_codegen:
|
|
runs-on: ubuntu-latest
|
|
|
|
strategy:
|
|
matrix:
|
|
node-version: [22.x]
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Setup Node.js ${{ matrix.node-version }}
|
|
uses: actions/setup-node@v3
|
|
with:
|
|
node-version: ${{ matrix.node-version }}
|
|
|
|
- name: Setup pnpm
|
|
uses: pnpm/action-setup@v3
|
|
with:
|
|
version: 9.1.2
|
|
|
|
- name: Install dependencies
|
|
run: pnpm install --frozen-lockfile
|
|
|
|
- name: Create .env.production.local file for apps/backend
|
|
run: cp apps/backend/.env.development apps/backend/.env.production.local
|
|
|
|
- name: Create .env.production.local file for apps/dashboard
|
|
run: cp apps/dashboard/.env.development apps/dashboard/.env.production.local
|
|
|
|
- name: Create .env.production.local file for apps/e2e
|
|
run: cp apps/e2e/.env.development apps/e2e/.env.production.local
|
|
|
|
- name: Create .env.production.local file for examples/cjs-test
|
|
run: cp examples/cjs-test/.env.development examples/cjs-test/.env.production.local
|
|
|
|
- name: Create .env.production.local file for examples/demo
|
|
run: cp examples/demo/.env.development examples/demo/.env.production.local
|
|
|
|
- name: Create .env.production.local file for examples/docs-examples
|
|
run: cp examples/docs-examples/.env.development examples/docs-examples/.env.production.local
|
|
|
|
- name: Create .env.production.local file for examples/e-commerce
|
|
run: cp examples/e-commerce/.env.development examples/e-commerce/.env.production.local
|
|
|
|
- name: Create .env.production.local file for examples/middleware
|
|
run: cp examples/middleware/.env.development examples/middleware/.env.production.local
|
|
|
|
- name: Create .env.production.local file for examples/partial-prerendering
|
|
run: cp examples/partial-prerendering/.env.development examples/partial-prerendering/.env.production.local
|
|
|
|
- name: Create .env.production.local file for examples/supabase
|
|
run: cp examples/supabase/.env.development examples/supabase/.env.production.local
|
|
|
|
- name: Build
|
|
run: pnpm build
|
|
|
|
- name: Store Quetzal API key in packages/stack/.env.local
|
|
run: echo "QUETZAL_API_KEY=${{ secrets.QUETZAL_API_KEY }}" > packages/stack/.env.local
|
|
|
|
- name: Run code gen
|
|
run: pnpm codegen
|
|
|
|
- name: Check for uncommitted changes
|
|
run: |
|
|
if [[ -n $(git status --porcelain) ]]; then
|
|
echo "Error: There are uncommitted changes after build/lint/typecheck."
|
|
echo "Please commit all changes before pushing."
|
|
git status
|
|
exit 1
|
|
fi
|
|
|
|
|
|
check_prisma_migrations:
|
|
runs-on: ubuntu-latest
|
|
|
|
strategy:
|
|
matrix:
|
|
node-version: [22.x]
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Setup Node.js ${{ matrix.node-version }}
|
|
uses: actions/setup-node@v3
|
|
with:
|
|
node-version: ${{ matrix.node-version }}
|
|
|
|
- name: Setup pnpm
|
|
uses: pnpm/action-setup@v3
|
|
with:
|
|
version: 9.1.2
|
|
|
|
- name: Install dependencies
|
|
run: pnpm install --frozen-lockfile
|
|
|
|
- name: Start Postgres shadow DB
|
|
run: docker run -d --name postgres-prisma-diff-shadow -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=PLACEHOLDER-PASSWORD--dfaBC1hm1v -e POSTGRES_DB=postgres -p 5432:5432 postgres:latest
|
|
|
|
- name: Check for differences in Prisma schema and migrations
|
|
run: pnpm run prisma migrate diff --from-migrations ./prisma/migrations --to-schema-datamodel ./prisma/schema.prisma --shadow-database-url postgres://postgres:PLACEHOLDER-PASSWORD--dfaBC1hm1v@localhost:5432/postgres --exit-code
|