name: Backend Unit Tests on: pull_request: branches: - main - dev - release/* paths: - 'api/**' - 'packages/api/**' jobs: tests_Backend: name: Run Backend unit tests timeout-minutes: 60 runs-on: ubuntu-latest env: MONGO_URI: ${{ secrets.MONGO_URI }} OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} JWT_SECRET: ${{ secrets.JWT_SECRET }} CREDS_KEY: ${{ secrets.CREDS_KEY }} CREDS_IV: ${{ secrets.CREDS_IV }} BAN_VIOLATIONS: ${{ secrets.BAN_VIOLATIONS }} BAN_DURATION: ${{ secrets.BAN_DURATION }} BAN_INTERVAL: ${{ secrets.BAN_INTERVAL }} NODE_ENV: CI steps: - uses: actions/checkout@v4 - name: Use Node.js 20.x uses: actions/setup-node@v4 with: node-version: 20 cache: 'npm' - name: Install dependencies run: npm ci - name: Install Data Provider Package run: npm run build:data-provider - name: Install Data Schemas Package run: npm run build:data-schemas - name: Install API Package run: npm run build:api - name: Create empty auth.json file run: | mkdir -p api/data echo '{}' > api/data/auth.json - name: Check for Circular dependency in rollup working-directory: ./packages/data-provider run: | output=$(npm run rollup:api) echo "$output" if echo "$output" | grep -q "Circular dependency"; then echo "Error: Circular dependency detected!" exit 1 fi - 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 librechat-data-provider unit tests run: cd packages/data-provider && npm run test:ci - name: Run @librechat/data-schemas unit tests run: cd packages/data-schemas && npm run test:ci - name: Run @librechat/api unit tests run: cd packages/api && npm run test:ci