fix: increase workflow timeout to 330 minutes (5.5 hours)

Accurate calculation for ~25,000 READMEs with 5000/hour rate limit:
- Requests needed: ~25,000 (1 per README + metadata)
- Cycles needed: 25,000 / 4,500 ≈ 5.5 cycles
- Time per cycle: ~44 min work + ~16 min wait = 60 min total
- Total time: 5.5 × 60 = 330 minutes (5.5 hours)

Previous timeouts were insufficient:
- 170 minutes: completed 2.9 cycles (~13,500 requests)
- 270 minutes: would complete 4.5 cycles (~20,000 requests)
- 330 minutes: allows full completion with buffer

Changes:
- Job timeout: 180m → 330m (5.5 hours)
- Script timeout: 170m → 320m
- Within GitHub Actions free tier limit (360 minutes/6 hours)

Alternative: Use 'sample' mode for faster builds if full index
is not immediately needed.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
valknarness
2025-10-28 00:27:57 +01:00
parent 326186f4a8
commit 9c166fe56f

View File

@@ -22,7 +22,7 @@ permissions:
jobs:
build-database:
runs-on: ubuntu-latest
timeout-minutes: 180 # 3 hours max
timeout-minutes: 330 # 5.5 hours max (allows 5-6 rate limit cycles)
steps:
- name: Checkout repository
@@ -60,8 +60,8 @@ jobs:
INDEX_MODE="${{ github.event.inputs.index_mode || 'full' }}"
echo "Index mode: $INDEX_MODE"
# Build the index in non-interactive mode (170m timeout, job timeout is 180m)
timeout 170m node -e "
# Build the index in non-interactive mode (320m timeout, job timeout is 330m)
timeout 320m node -e "
const db = require('./lib/database');
const dbOps = require('./lib/db-operations');
const indexer = require('./lib/indexer');
@@ -96,7 +96,7 @@ jobs:
" || {
EXIT_CODE=$?
if [ $EXIT_CODE -eq 124 ]; then
echo "❌ Index building timed out after 170 minutes"
echo "❌ Index building timed out after 320 minutes"
echo "This may indicate rate limiting issues or too many lists to index"
fi
exit $EXIT_CODE