Spaces:
Runtime error
Runtime error
| name: Build and Deploy | |
| on: | |
| push: | |
| branches: [ main ] | |
| pull_request: | |
| branches: [ main ] | |
| jobs: | |
| build-and-test: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '20' | |
| cache: 'npm' | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Lint | |
| run: npm run lint | |
| - name: Test | |
| run: npx vitest run | |
| - name: Build | |
| run: npm run build | |
| env: | |
| NEXT_PUBLIC_SUPABASE_URL: ${{ secrets.NEXT_PUBLIC_SUPABASE_URL }} | |
| NEXT_PUBLIC_SUPABASE_ANON_KEY: ${{ secrets.NEXT_PUBLIC_SUPABASE_ANON_KEY }} | |
| DATABASE_URL: ${{ secrets.DATABASE_URL }} | |
| INNGEST_EVENT_KEY: ${{ secrets.INNGEST_EVENT_KEY }} | |
| INNGEST_SIGNING_KEY: ${{ secrets.INNGEST_SIGNING_KEY }} | |
| BETTER_AUTH_SECRET: ${{ secrets.BETTER_AUTH_SECRET }} | |
| BETTER_AUTH_URL: ${{ secrets.BETTER_AUTH_URL }} | |
| deploy: | |
| needs: build-and-test | |
| if: github.event_name == 'push' && github.ref == 'refs/heads/main' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Validate Deployment Secrets | |
| run: | | |
| if [ -z "${{ secrets.VERCEL_TOKEN }}" ]; then echo "β VERCEL_TOKEN is missing"; exit 1; fi | |
| if [ -z "${{ secrets.VERCEL_ORG_ID }}" ]; then echo "β VERCEL_ORG_ID is missing"; exit 1; fi | |
| if [ -z "${{ secrets.VERCEL_PROJECT_ID }}" ]; then echo "β VERCEL_PROJECT_ID is missing"; exit 1; fi | |
| if [ -z "${{ secrets.RAILWAY_TOKEN }}" ]; then echo "β RAILWAY_TOKEN is missing"; exit 1; fi | |
| if [ -z "${{ secrets.RAILWAY_PROJECT_ID }}" ]; then echo "β RAILWAY_PROJECT_ID is missing"; exit 1; fi | |
| echo "β Deployment secrets validated" | |
| - name: Deploy to Vercel | |
| run: npx vercel deploy --prod --yes --token ${{ secrets.VERCEL_TOKEN }} | |
| env: | |
| VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }} | |
| VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }} | |
| - name: Deploy to Railway | |
| continue-on-error: true | |
| run: npx @railway/cli up --detach --project ${{ secrets.RAILWAY_PROJECT_ID }} --service 176fed9b-b38b-4f4c-a203-4d6093e30046 --environment production | |
| env: | |
| RAILWAY_TOKEN: ${{ secrets.RAILWAY_TOKEN }} | |