Skip to content

Add link to career lessons post #680

Add link to career lessons post

Add link to career lessons post #680

Workflow file for this run

name: CD Pipeline
on:
push:
env:
NODE_VERSION: '18.x'
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Setup Node.js ${{ env.NODE_VERSION }}
uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VERSION }}
- name: Lint & Format checks
run: |
npm ci
npm run lint
npm run format
- name: Build
run: |
npm run build
test:
name: Test
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Cypress run
uses: cypress-io/github-action@v5
with:
build: npm run build
start: npm start
wait-on: http://localhost:3000
deploy-preview:
name: Deploy to preview
needs: [build, test]
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/main'
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Deploy with Node.js ${{ env.NODE_VERSION }}
uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VERSION }}
- name: Deploy to preview environment
run: |
npm i -g vercel
vercel --token "$VERCEL_TOKEN" > preview-deployment-url.txt
cat preview-deployment-url.txt
env:
VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }}
VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }}
VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }}
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: preview-deployment-url
path: preview-deployment-url.txt
check-performance:
name: Check performance
needs: deploy-preview
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/main'
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Download preview deployment URL
uses: actions/download-artifact@v3
with:
name: preview-deployment-url
- name: Run with Node.js ${{ env.NODE_VERSION }}
uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VERSION }}
- name: Check performance with Lighthouse
run: |
deployment_url=`cat preview-deployment-url.txt`
npm i -g @lhci/[email protected]
npm run performance:check -- $deployment_url
env:
LHCI_GITHUB_TOKEN: ${{ secrets.LHCI_GITHUB_TOKEN }}
deploy-prod:
name: Deploy to prod
needs: check-performance
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/main'
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Deploy with Node.js ${{ env.NODE_VERSION }}
uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VERSION }}
- name: Deploy to prod environment
run: |
npm i -g vercel
vercel --token "$VERCEL_TOKEN" --prod
env:
VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }}
VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }}
VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }}