Skip to content

Update dependency @types/eslint to v9 #4647

Update dependency @types/eslint to v9

Update dependency @types/eslint to v9 #4647

Workflow file for this run

name: CI
on:
pull_request:
branches: ["!renovate/**", "**"]
push:
branches: ["renovate/**"]
env:
DATABASE_URL: ${{ secrets.DATABASE_URL }}
DATABASE_URL_POSTGRE: ${{ secrets.DATABASE_URL_POSTGRE }}
NEXTAUTH_SECRET: ${{ secrets.NEXTAUTH_SECRET }}
RECAPTCHA_SECRET: 6LeIxAcTAAAAAGG-vFI1TnRWxMZNFuojJ4WifJWe
NEXT_PUBLIC_CAPTCHA_SITE_KEY: 6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI
NEXTAUTH_URL: http://127.0.0.1:3000
CROSS_SITE_SECRET: ${{ secrets.CROSS_SITE_SECRET }}
BACKEND_URL: https://api.plandeprise.fr
PRISMA_GENERATE: "prisma generate --schema=./src/schema.cockroach.prisma"
jobs:
check:
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Setup pnpm
uses: pnpm/action-setup@v3
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 20
- name: Get pnpm store directory
id: pnpm-cache
run: |
echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_OUTPUT
- name: Setup pnpm cache
uses: actions/cache@v4
with:
path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Install deps (with cache)
run: pnpm install
- name: Build, lint and type-check
run: pnpm turbo lint typecheck --filter=!@plan-prise/db-migration
- name: Format
id: prettier
run: pnpm turbo format --filter=!@plan-prise/db-migration
- name: Show diff
# https://docs.github.com/en/actions/learn-github-actions/expressions#failure
if: ${{ failure() }}
run: |
pnpm format:fix
git diff -- . ':(exclude)package-lock.json' ':(exclude)package.json' > diff.txt
pnpm install -g diff2html-cli
diff2html -i file -s side -F diff.html -- diff.txt
- name: Upload html diff
if: ${{ failure() && steps.prettier.conclusion == 'failure' }}
uses: actions/upload-artifact@v4
with:
name: HTML Diff
path: diff.html
retention-days: 3
build:
runs-on: ubuntu-latest
needs: check
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Setup pnpm
uses: pnpm/action-setup@v3
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 20
- name: Get pnpm store directory
id: pnpm-cache
run: |
echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_OUTPUT
- name: Setup pnpm cache
uses: actions/cache@v4
with:
path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Setup nextjs cache
uses: actions/cache@v4
with:
path: |
~/.npm
${{ github.workspace }}/frontend/.next
# Generate a new cache whenever packages or source files change.
key: ${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json') }}-${{ hashFiles('**/*.js', '**/*.jsx', '**/*.ts', '**/*.tsx') }}
# If source files changed but packages didn't, rebuild from a prior cache.
restore-keys: |
${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json') }}-
- name: Install deps (with cache)
run: pnpm install
- name: Build project
run: pnpm build
tests:
runs-on: ubuntu-latest
needs: build
strategy:
matrix:
test-files:
- auth
- plan
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Setup pnpm
uses: pnpm/action-setup@v3
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 20
- name: Get pnpm store directory
id: pnpm-cache
run: |
echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_OUTPUT
- name: Setup pnpm cache
uses: actions/cache@v4
with:
path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Setup nextjs cache
uses: actions/cache@v4
with:
path: |
~/.npm
${{ github.workspace }}/frontend/.next
# Generate a new cache whenever packages or source files change.
key: ${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json') }}-${{ hashFiles('**/*.js', '**/*.jsx', '**/*.ts', '**/*.tsx') }}
# If source files changed but packages didn't, rebuild from a prior cache.
restore-keys: |
${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json') }}-
- name: Get playwright version from package.json
id: playwright-version
run: echo version=$(cat tests/package.json | jq -r '.dependencies."@playwright/test"') >> "$GITHUB_OUTPUT"
- name: Get cache for playwright
uses: actions/cache@v4
id: playwright-cache
with:
path: |
~/.cache/ms-playwright
key: ${{ runner.os }}-playwright-${{ steps.playwright-version.outputs.version }}
- name: Install deps (with cache)
run: pnpm install
- name: Install playwright dependencies if not cached
run: pnpm --filter @plan-prise/tests exec playwright install --with-deps
if: steps.playwright-cache.outputs.cache-hit != 'true'
- name: Do not install playwright dependencies if not cached
run: pnpm --filter @plan-prise/tests exec playwright install-deps
if: steps.playwright-cache.outputs.cache-hit == 'true'
- name: Run tests
run: pnpm test tests/${{ matrix.test-files }}.test.ts
- name: Upload report
uses: actions/upload-artifact@v3
if: failure()
with:
name: playwright-report
path: tests/test-results
retention-days: 2