Update dependency eslint to v8.57.1 #4639
This file contains 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: 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 |