reusable build steps #20
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
| name: Build and Deploy to Vercel | ||
| on: | ||
| release: | ||
| types: [published] | ||
| jobs: | ||
| call-build-steps: | ||
| uses: ./build-reusable.yml | ||
| deploy: | ||
| name: Deploy Application to Vercel | ||
| runs-on: ubuntu-latest | ||
| needs: build | ||
| environment: production | ||
| steps: | ||
| - name: Checkout Code | ||
| uses: actions/checkout@v4 | ||
| # Download build artifacts from previous job | ||
| - name: Download build artifacts | ||
| uses: actions/download-artifact@v4 | ||
| with: | ||
| name: build-output | ||
| - name: Setup Node.js | ||
| uses: actions/setup-node@v4 | ||
| with: | ||
| node-version: "20" | ||
| - name: Install pnpm | ||
| uses: pnpm/action-setup@v2 | ||
| with: | ||
| version: 8 | ||
| run_install: false | ||
| # Create the .env file in the deploy job | ||
| - name: Set up environment variables | ||
| run: | | ||
| # Create .env file | ||
| touch .env | ||
| # Add Convex specific variables | ||
| echo "NEXT_PUBLIC_CONVEX_URL=${{ secrets.NEXT_PUBLIC_CONVEX_URL }}" >> .env | ||
| echo "CONVEX_DEPLOYMENT=${{ secrets.CONVEX_DEPLOYMENT }}" >> .env | ||
| # Add other public and private environment variables | ||
| echo "CLERK_SECRET_KEY=${{ secrets.CLERK_SECRET_KEY }}" >> .env | ||
| echo "NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=${{ secrets.NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY }}" >> .env | ||
| # Liveblocks secret key: | ||
| echo "LIVE_BLOCK_SECRET_API_KEY=${{secrets.LIVE_BLOCK_SECRET_API_KEY}}" >> .env | ||
| # Install Vercel CLI | ||
| - name: Install Vercel CLI | ||
| run: npm install --global vercel@latest | ||
| # Deploy to Vercel (using env vars directly) | ||
| - name: Deploy to Vercel Production | ||
| run: vercel --token ${{ secrets.VERCEL_TOKEN }} --prod --confirm | ||
| env: | ||
| VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }} | ||
| VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }} | ||
| NEXT_PUBLIC_CONVEX_URL: ${{ secrets.NEXT_PUBLIC_CONVEX_URL }} | ||
| CONVEX_DEPLOYMENT: ${{ secrets.CONVEX_DEPLOYMENT }} | ||
| CLERK_SECRET_KEY: ${{ secrets.CLERK_SECRET_KEY }} | ||
| NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY: ${{ secrets.NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY }} | ||