diff --git a/.github/workflows/supabase-ci.yml b/.github/workflows/supabase-ci.yml new file mode 100644 index 0000000000..0974bb41bb --- /dev/null +++ b/.github/workflows/supabase-ci.yml @@ -0,0 +1,29 @@ +name: Validate Supabase Migrations + +on: + pull_request: + branches: + - develop + - main + workflow_dispatch: + +jobs: + validate: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: supabase/setup-cli@v1 + with: + version: latest + + - name: Start Supabase local development environment + run: supabase start + + - name: Validate migrations + run: | + # Check if migrations can be applied without errors + supabase db reset + + # Additional validation can be added here + echo "Migrations validated successfully" diff --git a/.github/workflows/supabase-production.yml b/.github/workflows/supabase-production.yml new file mode 100644 index 0000000000..204fa3e5c5 --- /dev/null +++ b/.github/workflows/supabase-production.yml @@ -0,0 +1,25 @@ +name: Deploy Supabase to Production + +on: + push: + branches: + - main + workflow_dispatch: + +jobs: + deploy: + runs-on: ubuntu-latest + env: + SUPABASE_ACCESS_TOKEN: ${{ secrets.SUPABASE_ACCESS_TOKEN }} + SUPABASE_DB_PASSWORD: ${{ secrets.PRODUCTION_DB_PASSWORD }} + SUPABASE_PROJECT_ID: ${{ secrets.SUPABASE_PRODUCTION_PROJECT_ID }} + steps: + - uses: actions/checkout@v4 + + - uses: supabase/setup-cli@v1 + with: + version: latest + + - run: supabase link --project-ref $SUPABASE_PROJECT_ID + + - run: supabase db push diff --git a/.github/workflows/supabase-staging.yml b/.github/workflows/supabase-staging.yml new file mode 100644 index 0000000000..f42b7af309 --- /dev/null +++ b/.github/workflows/supabase-staging.yml @@ -0,0 +1,25 @@ +name: Deploy Supabase to Staging + +on: + push: + branches: + - develop + workflow_dispatch: + +jobs: + deploy: + runs-on: ubuntu-latest + env: + SUPABASE_ACCESS_TOKEN: ${{ secrets.SUPABASE_ACCESS_TOKEN }} + SUPABASE_DB_PASSWORD: ${{ secrets.STAGING_DB_PASSWORD }} + SUPABASE_PROJECT_ID: ${{ secrets.SUPABASE_STAGING_PROJECT_ID }} + steps: + - uses: actions/checkout@v4 + + - uses: supabase/setup-cli@v1 + with: + version: latest + + - run: supabase link --project-ref $SUPABASE_PROJECT_ID + + - run: supabase db push