Seed staging database #61
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: Seed staging database | |
| on: | |
| workflow_dispatch: | |
| workflow_run: | |
| workflows: ["Build"] | |
| branches: [staging] | |
| types: [completed] | |
| jobs: | |
| seed: | |
| runs-on: ubuntu-latest | |
| if: ${{ github.event.workflow_run.conclusion == 'success' || github.event_name == 'workflow_dispatch' }} | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v6 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: "20" | |
| - name: Setup pnpm | |
| uses: pnpm/action-setup@v4 | |
| - name: Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| - name: Generate Prisma client | |
| env: | |
| DATABASE_URL: "postgresql://dummy:dummy@localhost:5432/dummy" | |
| run: npx prisma generate | |
| - name: Reset and migrate database | |
| env: | |
| DATABASE_URL: ${{ secrets.STAGING_DATABASE_URL }} | |
| run: npx prisma migrate reset --force | |
| - name: Grant permissions to app user | |
| env: | |
| DATABASE_URL: ${{ secrets.STAGING_DATABASE_URL }} | |
| run: | | |
| psql "$DATABASE_URL" -c " | |
| GRANT USAGE, CREATE ON SCHEMA public TO tea_app; | |
| GRANT ALL ON ALL TABLES IN SCHEMA public TO tea_app; | |
| GRANT ALL ON ALL SEQUENCES IN SCHEMA public TO tea_app; | |
| ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON TABLES TO tea_app; | |
| ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON SEQUENCES TO tea_app; | |
| " | |
| - name: Run seed script | |
| env: | |
| DATABASE_URL: ${{ secrets.STAGING_DATABASE_URL }} | |
| SEED_USER_PASSWORD: ${{ secrets.SEED_USER_PASSWORD }} | |
| run: npx tsx prisma/seed/dev-seed.ts |