mirror of
https://github.com/danny-avila/LibreChat.git
synced 2026-10-21 09:32:24 +00:00
🔧 chore: Update ESLint config, Import Sorting script, Test Sharding, Bump @librechat/agents (#13552)
* 🔧 chore: Update ESLint config, add import sorting script, Test Sharding, Bump `@librechat/agents`
* Change 'no-nested-ternary' rule from 'warn' to 'error' in ESLint config
* Add new scripts for sorting imports in the project
* Update lint-staged configuration to include import sorting
* Modify GitHub Actions workflows to support sharding for unit tests
* chore: remove nested ternary expressions
* refactor: Extract scale multiplier logic into a separate function in CircleRender component
* refactor: Simplify auto-refill rendering logic in Balance component for better readability
* refactor: Improve width style handling in DataTable components for clarity and maintainability
* chore: remove CircleRender component
* delete: Remove CircleRender component as it is no longer needed in the project
* chore: Bump @librechat/agents to version 3.2.31 and update Node.js engine requirement
* Update @librechat/agents dependency from 3.2.2 to 3.2.31 in package-lock.json, api/package.json, and packages/api/package.json
* Change Node.js engine requirement from >=20.0.0 to >=24.0.0 in @librechat/agents
* chore: Add import sorting check to ESLint CI workflow
* Implement a new job in the GitHub Actions workflow to verify import ordering on changed files.
* The job checks for changes in specific file types and reports any import order drift, providing instructions for local fixes.
This commit is contained in:
parent
21607ba3d7
commit
bfb6b224d2
16 changed files with 396 additions and 114 deletions
24
.github/workflows/backend-review.yml
vendored
24
.github/workflows/backend-review.yml
vendored
|
|
@ -215,10 +215,14 @@ jobs:
|
|||
fi
|
||||
|
||||
test-api:
|
||||
name: 'Tests: api'
|
||||
name: 'Tests: api (shard ${{ matrix.shard }}/3)'
|
||||
needs: build
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 15
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
shard: [1, 2, 3]
|
||||
env:
|
||||
MONGO_URI: ${{ secrets.MONGO_URI }}
|
||||
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
|
||||
|
|
@ -278,8 +282,8 @@ jobs:
|
|||
- name: Prepare .env.test file
|
||||
run: cp api/test/.env.test.example api/test/.env.test
|
||||
|
||||
- name: Run unit tests
|
||||
run: cd api && npm run test:ci
|
||||
- name: Run unit tests (shard ${{ matrix.shard }}/3)
|
||||
run: cd api && npm run test:ci -- --shard=${{ matrix.shard }}/3
|
||||
|
||||
test-data-provider:
|
||||
name: 'Tests: data-provider'
|
||||
|
|
@ -364,14 +368,18 @@ jobs:
|
|||
run: cd packages/data-schemas && npm run test:ci
|
||||
|
||||
test-packages-api:
|
||||
name: 'Tests: @librechat/api'
|
||||
name: 'Tests: @librechat/api (shard ${{ matrix.shard }}/4)'
|
||||
needs: build
|
||||
runs-on: ubuntu-latest
|
||||
# Suite typically completes in ~5 min on a warm runner, but tail-latency
|
||||
# cancellations have started showing up: tests are actively passing right
|
||||
# up to the timeout, then the job is killed mid-suite. Bump headroom to
|
||||
# absorb GitHub Actions runner variance.
|
||||
# up to the timeout, then the job is killed mid-suite. Sharding splits the
|
||||
# suite across runners; per-shard headroom still absorbs runner variance.
|
||||
timeout-minutes: 20
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
shard: [1, 2, 3, 4]
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
|
|
@ -414,5 +422,5 @@ jobs:
|
|||
name: build-api
|
||||
path: packages/api/dist
|
||||
|
||||
- name: Run unit tests
|
||||
run: cd packages/api && npm run test:ci
|
||||
- name: Run unit tests (shard ${{ matrix.shard }}/4)
|
||||
run: cd packages/api && npm run test:ci -- --shard=${{ matrix.shard }}/4
|
||||
|
|
|
|||
28
.github/workflows/eslint-ci.yml
vendored
28
.github/workflows/eslint-ci.yml
vendored
|
|
@ -94,3 +94,31 @@ jobs:
|
|||
echo "::error::Or rely on the lint-staged pre-commit hook (do not bypass with --no-verify)."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Verify import ordering on the same set of changed files. The script
|
||||
# only sorts files under known source roots, so unrelated changed files
|
||||
# (configs, etc.) are ignored. Matches the lint-staged pre-commit hook.
|
||||
- name: Check import sorting on changed files
|
||||
run: |
|
||||
BASE_SHA=$(jq --raw-output .pull_request.base.sha "$GITHUB_EVENT_PATH")
|
||||
mapfile -d '' -t CHANGED_FILES < <(
|
||||
git diff -z --name-only --diff-filter=ACMRTUXB "$BASE_SHA" HEAD |
|
||||
grep -zE '^(api|client|packages)/.*\.(js|jsx|ts|tsx)$' || true
|
||||
)
|
||||
|
||||
if [[ ${#CHANGED_FILES[@]} -eq 0 ]]; then
|
||||
echo "No matching files changed. Skipping import-sort check."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "Files to check:"
|
||||
printf '%s\n' "${CHANGED_FILES[@]}"
|
||||
|
||||
# `--check` lists offending files and exits non-zero without writing.
|
||||
if ! node scripts/sort-imports.mts --check "${CHANGED_FILES[@]}"; then
|
||||
echo ""
|
||||
echo "::error::Import order drift detected. Fix locally with:"
|
||||
echo "::error:: npm run sort-imports"
|
||||
echo "::error::Or rely on the lint-staged pre-commit hook (do not bypass with --no-verify)."
|
||||
exit 1
|
||||
fi
|
||||
|
|
|
|||
10
.github/workflows/frontend-review.yml
vendored
10
.github/workflows/frontend-review.yml
vendored
|
|
@ -77,10 +77,14 @@ jobs:
|
|||
retention-days: 2
|
||||
|
||||
test-ubuntu:
|
||||
name: 'Tests: Ubuntu'
|
||||
name: 'Tests: Ubuntu (shard ${{ matrix.shard }}/4)'
|
||||
needs: build
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 15
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
shard: [1, 2, 3, 4]
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
|
|
@ -116,8 +120,8 @@ jobs:
|
|||
name: build-client-package
|
||||
path: packages/client/dist
|
||||
|
||||
- name: Run unit tests
|
||||
run: npm run test:ci --verbose
|
||||
- name: Run unit tests (shard ${{ matrix.shard }}/4)
|
||||
run: npm run test:ci -- --shard=${{ matrix.shard }}/4
|
||||
working-directory: client
|
||||
|
||||
test-windows:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue