Skip to content

fix(concurrent-access.test): remove broken performance assertion and … #46

fix(concurrent-access.test): remove broken performance assertion and …

fix(concurrent-access.test): remove broken performance assertion and … #46

Workflow file for this run

name: Stress Tests
on:
pull_request:
paths:
- "src/**/*.cpp"
- "src/**/*.h"
- "src/**/*.ts"
- "benchmark/**"
- ".github/workflows/stress-tests.yml"
push:
branches: [main]
workflow_dispatch:
inputs:
size:
description: "Database size in MB"
required: false
type: choice
default: "10"
options:
- "10"
- "50"
- "100"
- "200"
jobs:
stress-test:
runs-on: ubuntu-24.04
timeout-minutes: 30
strategy:
matrix:
node-version: [20, 22]
name: Stress Tests (Node ${{ matrix.node-version }})
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0
with:
node-version: ${{ matrix.node-version }}
cache: "npm"
- name: Install dependencies
run: npm ci --ignore-scripts
- name: Build project
run: npm run build
- name: Run stress test validation
run: npm run stress-test:validate
timeout-minutes: 5
- name: Install and build benchmark dependencies
run: |
cd benchmark
npm install
# Rebuild better-sqlite3 native bindings (npm install skips scripts due to .npmrc)
npm rebuild better-sqlite3
cd ..
- name: Run stress tests (CI mode)
run: npx tsx scripts/stress-test.ts --ci --output-file stress-test-results.json
timeout-minutes: 20
- name: Upload stress test results
if: always()
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
with:
name: stress-test-results-node-${{ matrix.node-version }}
path: |
stress-test-results.json
stress-test-results.md
retention-days: 30
- name: Performance regression check
if: github.event_name == 'pull_request'
run: |
# This is a placeholder for future performance regression detection
# Could compare against baseline performance metrics stored in the repo
echo "Performance regression check completed"