Skip to content

feat: Strict Dashboard Pipeline & Learner Mastery System #2

feat: Strict Dashboard Pipeline & Learner Mastery System

feat: Strict Dashboard Pipeline & Learner Mastery System #2

Workflow file for this run

name: CI/CD Pipeline
on:
push:
branches: [main, develop]
pull_request:
branches: [main, develop]
jobs:
validate:
name: Lint and Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: "20"
cache: "npm"
- run: npm install
- run: npm run lint
- run: npm test
deploy-db:
name: Sync Database Schema
needs: validate
if: github.event_name == 'push'
runs-on: ubuntu-latest
environment:
name: ${{ github.ref == 'refs/heads/main' && 'production' || 'staging' }}
steps:
- uses: actions/checkout@v4
- uses: supabase/setup-cli@v1
with:
version: latest
- name: Link project
run: supabase link --project-ref ${{ vars.SUPABASE_PROJECT_REF }} -p ${{ secrets.SUPABASE_DB_PASSWORD }}
env:
SUPABASE_ACCESS_TOKEN: ${{ secrets.SUPABASE_ACCESS_TOKEN }}
- name: Push Database Schema
run: supabase db push
env:
SUPABASE_ACCESS_TOKEN: ${{ secrets.SUPABASE_ACCESS_TOKEN }}
- name: Log Deployment
run: echo "Database schema successfully synced to ${{ github.ref == 'refs/heads/main' && 'Production' || 'Staging' }} environment."