Skip to content

Update vitest monorepo to v1 (major) #2837

Update vitest monorepo to v1 (major)

Update vitest monorepo to v1 (major) #2837

Workflow file for this run

name: 🚀 CI/CD
env:
VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }}
VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }}
on:
push:
branches:
- main
pull_request:
branches:
- main
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
lint:
name: ⬣ ESLint
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4
- name: Setup worker
uses: ./.github/actions/setup
- name: Lint
run: pnpm run lint
test:
name: 🧪 Tests
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4
- name: Setup worker
uses: ./.github/actions/setup
- name: Testing
run: pnpm run test:coverage
typecheck:
name: ʦ TypeScript
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4
- name: Setup worker
uses: ./.github/actions/setup
- name: Type check
run: pnpm run typecheck
build:
name: 🏗️ Build
if: github.event_name == 'pull_request'
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4
- name: Setup worker
uses: ./.github/actions/setup
- name: Install Vercel CLI
run: pnpm install --global vercel@latest
- name: Pull Vercel Environment Information
run: vercel pull --yes --environment=production --token=${{ secrets.VERCEL_TOKEN }}
- name: Build Project Artifacts
run: vercel build --prod --token=${{ secrets.VERCEL_TOKEN }}
deploy:
name: 🚀 Deploy to Vercel
if: github.event_name != 'pull_request'
needs: [lint, typecheck, test]
runs-on: ubuntu-latest
permissions:
deployments: write
steps:
- name: Checkout repo
uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4
- name: Setup worker
uses: ./.github/actions/setup
- name: Install Vercel CLI
run: pnpm install --global vercel@latest
- name: Pull Vercel Environment Information
run: vercel pull --yes --environment=production --token=${{ secrets.VERCEL_TOKEN }}
- name: Build Project Artifacts
run: vercel build --prod --token=${{ secrets.VERCEL_TOKEN }}
- name: Delete deployment
uses: strumwolf/delete-deployment-environment@v3
with:
token: ${{ secrets.GITHUB_TOKEN }}
environment: Production
onlyRemoveDeployments: true
- name: Create GitHub deployment
uses: chrnorm/deployment-action@v2
id: deployment
with:
token: '${{ github.token }}'
environment-url: https://larsschieffer.de
environment: Production
- name: Deploy Project Artifacts to Vercel
run: vercel deploy --prebuilt --prod --token=${{ secrets.VERCEL_TOKEN }}
- name: Update deployment status (success)
if: success()
uses: chrnorm/deployment-status@v2
with:
token: '${{ github.token }}'
environment-url: https://larsschieffer.de
state: 'success'
deployment-id: ${{ steps.deployment.outputs.deployment_id }}
- name: Update deployment status (failure)
if: failure()
uses: chrnorm/deployment-status@v2
with:
token: '${{ github.token }}'
environment-url: https://larsschieffer.de
state: 'failure'
deployment-id: ${{ steps.deployment.outputs.deployment_id }}
is-db-migration-required:
name: 🧪 Check for database migration
runs-on: ubuntu-latest
if: github.event_name != 'pull_request'
outputs:
is-required: ${{ steps.filter.outputs.database }}
steps:
- name: Checkout repo
uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4
- uses: dorny/paths-filter@v2
id: filter
with:
filters: |
database:
- './prisma/**'
db-migration:
name: 📀 Run database migration
runs-on: ubuntu-latest
needs: [is-db-migration-required, deploy]
if: github.event_name != 'pull_request' && needs.is-db-migration-required.outputs.is-required == 'true'
steps:
- name: Checkout repo
uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4
- name: Setup worker
uses: ./.github/actions/setup
- name: Run database migrations
run: pnpm prisma migrate deploy
env:
POSTGRES_PRISMA_URL: ${{ secrets.POSTGRES_PRISMA_URL }}