name: Release (Staging)

on:
  push:
    branches:
      - develop
  workflow_dispatch:

jobs:
  apply:
    runs-on: ubuntu-latest
    env:
      SUPABASE_ACCESS_TOKEN: ${{ secrets.SUPABASE_ACCESS_TOKEN }}
      TF_VAR_linked_project: ${{ secrets.STAGING_PROJECT_ID }}
    defaults:
      run:
        working-directory: packages/core/supabase/remotes

    steps:
      - uses: actions/checkout@v4
      - uses: hashicorp/setup-terraform@v3
        with:
          terraform_wrapper: false

      - run: terraform init
      - run: terraform apply -auto-approve -no-color

  migrate:
    needs: apply
    runs-on: ubuntu-latest
    env:
      SUPABASE_ACCESS_TOKEN: ${{ secrets.SUPABASE_ACCESS_TOKEN }}
      DATABASE_URL: ${{ secrets.STAGING_DATABASE_URL }}

    steps:
      - uses: actions/checkout@v4
      - uses: pnpm/action-setup@v4
        with:
          version: 10
      - uses: actions/setup-node@v4
        with:
          node-version: 23
          cache: 'pnpm'

      - name: Install Dependencies
        run: pnpm install --filter "@plyaz/core"

      - name: 🛠️ Validate & Push Migrations (Staging)
        run: pnpm db:migrate
        working-directory: packages/core
