Skip to content

Refactor CI/CD workflow to enhance Vercel deployment process and envi… #14

Refactor CI/CD workflow to enhance Vercel deployment process and envi…

Refactor CI/CD workflow to enhance Vercel deployment process and envi… #14

Workflow file for this run

name: CI/CD Workflow --> Deploy and Run E2E Tests
on:
pull_request:
push:
branches:
- main
release:
types: [created]
jobs:
deploy:
name: Deploy to Vercel
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v3
- name: Install Vercel CLI
run: npm install --global vercel@latest
- name: Pull Vercel Environment Information
run: |
if [[ "${{ github.event_name }}" == "release" ]]; then
vercel pull --yes --environment=production --token=${{ secrets.VERCEL_TOKEN }}
else
vercel pull --yes --environment=preview --token=${{ secrets.VERCEL_TOKEN }}
fi
- name: Build Project Artifacts
run: |
if [[ "${{ github.event_name }}" == "release" ]]; then
vercel build --prod --token=${{ secrets.VERCEL_TOKEN }}
else
vercel build --token=${{ secrets.VERCEL_TOKEN }}
fi
- name: Deploy to Vercel
id: deploy
run: |
if [[ "${{ github.event_name }}" == "release" ]]; then
DEPLOY_URL=$(vercel deploy --prebuilt --prod --token=${{ secrets.VERCEL_TOKEN }} | tail -1)
else
DEPLOY_URL=$(vercel deploy --prebuilt --token=${{ secrets.VERCEL_TOKEN }} | tail -1)
fi
echo "DEPLOYMENT_URL=${DEPLOY_URL}" >> $GITHUB_ENV
echo "Deployed to: $DEPLOY_URL"
env:
VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }}
e2e:
name: Run E2E Tests
runs-on: ubuntu-latest
needs: deploy
steps:
- name: Checkout Code
uses: actions/checkout@v3
- name: Install pnpm
run: npm install -g pnpm
- name: Install Dependencies
run: pnpm install
- name: Install Playwright
run: pnpm playwright install
- name: Run Playwright Tests
run: pnpm playwright test
env:
BASE_URL: ${{ env.DEPLOYMENT_URL }}
# notify:
# name: Send Slack Notification
# runs-on: ubuntu-latest
# needs: [deploy, e2e]
# if: failure()
# steps:
# - name: Notify Slack
# uses: slackapi/[email protected]
# with:
# payload: |
# {
# "text": "Workflow failed for branch: ${{ github.ref_name }}. Please check the logs for details."
# }
# env:
# SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }}