mirror of
https://github.com/danny-avila/LibreChat.git
synced 2026-06-25 17:06:24 +00:00
* ⚡ perf: Migrate data-schemas Build to tsdown with isolatedDeclarations Replace Rollup with tsdown (rolldown + oxc) for @librechat/data-schemas. With the source made isolatedDeclarations-clean, oxc emits .d.ts without tsc, dropping the package build from ~5.8s to ~0.8s (~7x). - Annotate exported model/method factories for isolatedDeclarations (TypeScript's fixMissingTypeAnnotationOnExports codefix plus hand-authored interfaces); type the ~44 mongoose `any`s and add an explicit PromptMethods interface (previously its declaration was silently dropped by the Rollup build). - Repoint package.json exports/main/module/types to tsdown output; drop rollup config. - Config lives in tsdown.config.mjs (native ESM) so CI without a TS-config loader can build it; bundle `dotenv` so the package stays self-contained for its env-loading side effect. - Fix a latent token `metadata` mismatch the accurate types surfaced: widen TokenCreate/UpdateData inputs to accept plain objects, flatten OAuthMetadata at the api boundary. - Update mongoMeili/aclEntry specs to the precise model types; drop redundant terser minification from data-provider's library build. All data-schemas tests pass; api builds clean against the new output. * 🔧 chore: Hash tsdown.config.mjs in data-schemas CI build-cache keys The data-schemas build switched from rollup to tsdown, but the build-data-schemas / build-api cache keys in backend-review, config-review, and playwright-mock still hashed the (now-deleted) rollup.config.js. Hash tsdown.config.mjs instead so a config-only change invalidates the cached dist/api builds. (Found by Codex review.) * 🔧 chore: Replace deprecated tsdown `external` with `deps.neverBundle` tsdown 0.22 deprecated the top-level `external` option in favor of `deps.neverBundle`. Migrate the data-schemas config and set `deps.onlyBundle: false` to silence the (intentional) dotenv bundling hint. Build output and externalization are unchanged — dotenv bundled, all peers external.
72 lines
No EOL
2.2 KiB
YAML
72 lines
No EOL
2.2 KiB
YAML
# name: Playwright Tests
|
|
# on:
|
|
# pull_request:
|
|
# branches:
|
|
# - main
|
|
# - dev
|
|
# - release/*
|
|
# paths:
|
|
# - 'api/**'
|
|
# - 'client/**'
|
|
# - 'packages/**'
|
|
# - 'e2e/**'
|
|
# jobs:
|
|
# tests_e2e:
|
|
# name: Run Playwright tests
|
|
# if: github.event.pull_request.head.repo.full_name == 'danny-avila/LibreChat'
|
|
# timeout-minutes: 60
|
|
# runs-on: ubuntu-latest
|
|
# env:
|
|
# NODE_ENV: CI
|
|
# CI: true
|
|
# SEARCH: false
|
|
# BINGAI_TOKEN: user_provided
|
|
# CHATGPT_TOKEN: user_provided
|
|
# MONGO_URI: ${{ secrets.MONGO_URI }}
|
|
# OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
|
|
# E2E_USER_EMAIL: ${{ secrets.E2E_USER_EMAIL }}
|
|
# E2E_USER_PASSWORD: ${{ secrets.E2E_USER_PASSWORD }}
|
|
# JWT_SECRET: ${{ secrets.JWT_SECRET }}
|
|
# JWT_REFRESH_SECRET: ${{ secrets.JWT_REFRESH_SECRET }}
|
|
# CREDS_KEY: ${{ secrets.CREDS_KEY }}
|
|
# CREDS_IV: ${{ secrets.CREDS_IV }}
|
|
# DOMAIN_CLIENT: ${{ secrets.DOMAIN_CLIENT }}
|
|
# DOMAIN_SERVER: ${{ secrets.DOMAIN_SERVER }}
|
|
# PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 # Skip downloading during npm install
|
|
# PLAYWRIGHT_BROWSERS_PATH: 0 # Places binaries to node_modules/@playwright/test
|
|
# TITLE_CONVO: false
|
|
# steps:
|
|
# - uses: actions/checkout@v4
|
|
# - uses: actions/setup-node@v4
|
|
# with:
|
|
# node-version: 24.16.0
|
|
# cache: 'npm'
|
|
|
|
# - name: Install global dependencies
|
|
# run: npm ci
|
|
|
|
# # - name: Remove sharp dependency
|
|
# # run: rm -rf node_modules/sharp
|
|
|
|
# # - name: Install sharp with linux dependencies
|
|
# # run: cd api && SHARP_IGNORE_GLOBAL_LIBVIPS=1 npm install --arch=x64 --platform=linux --libc=glibc sharp
|
|
|
|
# - name: Build Client
|
|
# run: npm run frontend
|
|
|
|
# - name: Install Playwright
|
|
# run: |
|
|
# npx playwright install-deps
|
|
# npm install -D @playwright/test@latest
|
|
# npx playwright install chromium
|
|
|
|
# - name: Run Playwright tests
|
|
# run: npm run e2e:ci
|
|
|
|
# - name: Upload playwright report
|
|
# uses: actions/upload-artifact@v3
|
|
# if: always()
|
|
# with:
|
|
# name: playwright-report
|
|
# path: e2e/playwright-report/
|
|
# retention-days: 30 |