feat: update database configuration for Aiven support and enhance Git… #2
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
| # ============================================================================== | |
| # Deploy Pipeline - Learnix | |
| # Deploys to Vercel on push to main | |
| # ============================================================================== | |
| name: Deploy | |
| on: | |
| push: | |
| branches: [main] | |
| workflow_dispatch: | |
| concurrency: | |
| group: deploy-${{ github.ref }} | |
| cancel-in-progress: false # Don't cancel deployments | |
| env: | |
| VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }} | |
| jobs: | |
| # ========================== | |
| # Deploy Frontend to Vercel | |
| # ========================== | |
| deploy-frontend: | |
| name: Deploy Frontend | |
| runs-on: ubuntu-latest | |
| environment: | |
| name: production | |
| url: ${{ steps.deploy.outputs.url }} | |
| defaults: | |
| run: | |
| working-directory: frontend | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v6 | |
| - name: Setup Node.js and pnpm | |
| uses: ./.github/actions/setup-node-pnpm | |
| with: | |
| working-directory: frontend | |
| - name: Install Vercel CLI | |
| run: pnpm add -g vercel | |
| - name: Pull Vercel environment | |
| run: vercel pull --yes --environment=production --token=${{ secrets.VERCEL_TOKEN }} | |
| env: | |
| VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID_FRONTEND }} | |
| - name: Build with Vercel | |
| run: vercel build --prod --token=${{ secrets.VERCEL_TOKEN }} | |
| env: | |
| VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID_FRONTEND }} | |
| - name: Deploy to Vercel | |
| id: deploy | |
| run: | | |
| url=$(vercel deploy --prebuilt --prod --token=${{ secrets.VERCEL_TOKEN }}) | |
| echo "url=$url" >> $GITHUB_OUTPUT | |
| env: | |
| VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID_FRONTEND }} | |
| # ========================== | |
| # Deploy Backend to Vercel | |
| # ========================== | |
| deploy-backend: | |
| name: Deploy Backend | |
| runs-on: ubuntu-latest | |
| environment: | |
| name: production-api | |
| url: ${{ steps.deploy.outputs.url }} | |
| defaults: | |
| run: | |
| working-directory: backend | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v6 | |
| - name: Setup Node.js and pnpm | |
| uses: ./.github/actions/setup-node-pnpm | |
| with: | |
| working-directory: backend | |
| - name: Install Vercel CLI | |
| run: pnpm add -g vercel | |
| - name: Pull Vercel environment | |
| run: vercel pull --yes --environment=production --token=${{ secrets.VERCEL_TOKEN }} | |
| env: | |
| VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID_BACKEND }} | |
| - name: Build with Vercel | |
| run: vercel build --prod --token=${{ secrets.VERCEL_TOKEN }} | |
| env: | |
| VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID_BACKEND }} | |
| - name: Deploy to Vercel | |
| id: deploy | |
| run: | | |
| url=$(vercel deploy --prebuilt --prod --token=${{ secrets.VERCEL_TOKEN }}) | |
| echo "url=$url" >> $GITHUB_OUTPUT | |
| env: | |
| VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID_BACKEND }} | |
| # ========================== | |
| # Deployment Summary | |
| # ========================== | |
| deployment-summary: | |
| name: Deployment Summary | |
| runs-on: ubuntu-latest | |
| needs: [deploy-frontend, deploy-backend] | |
| if: always() | |
| steps: | |
| - name: Summary | |
| run: | | |
| echo "## 🚀 Deployment Summary" >> $GITHUB_STEP_SUMMARY | |
| echo "" >> $GITHUB_STEP_SUMMARY | |
| echo "| Service | Status |" >> $GITHUB_STEP_SUMMARY | |
| echo "|---------|--------|" >> $GITHUB_STEP_SUMMARY | |
| echo "| Frontend | ${{ needs.deploy-frontend.result == 'success' && '✅' || '❌' }} |" >> $GITHUB_STEP_SUMMARY | |
| echo "| Backend | ${{ needs.deploy-backend.result == 'success' && '✅' || '❌' }} |" >> $GITHUB_STEP_SUMMARY |