mirror of
https://github.com/bckelley/cgm-remote-monitor.git
synced 2026-08-24 03:14:12 -05:00
Add optional concurrent write stress tests to CI workflow
Updates package.json to include `test:stress` scripts and adds an optional `stress-tests` job to the GitHub Actions CI workflow for concurrent write tests. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 605cec52-e52a-4520-8af0-466d9c971344 Replit-Commit-Checkpoint-Type: intermediate_checkpoint Replit-Commit-Event-Id: fde695de-720c-4bfb-b5f1-ea6710172a09 Replit-Helium-Checkpoint-Created: true
This commit is contained in:
@@ -56,6 +56,39 @@ jobs:
|
|||||||
- name: Run integration tests (serial)
|
- name: Run integration tests (serial)
|
||||||
run: npm run test:integration:ci
|
run: npm run test:integration:ci
|
||||||
|
|
||||||
|
stress-tests:
|
||||||
|
name: Stress Tests (Concurrent Writes)
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: unit-tests
|
||||||
|
continue-on-error: true
|
||||||
|
timeout-minutes: 10
|
||||||
|
|
||||||
|
services:
|
||||||
|
mongodb:
|
||||||
|
image: mongo:5.0
|
||||||
|
ports:
|
||||||
|
- 27017:27017
|
||||||
|
options: >-
|
||||||
|
--health-cmd "mongo --eval 'db.runCommand(\"ping\").ok'"
|
||||||
|
--health-interval 10s
|
||||||
|
--health-timeout 5s
|
||||||
|
--health-retries 5
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Setup Node.js
|
||||||
|
uses: actions/setup-node@v4
|
||||||
|
with:
|
||||||
|
node-version: '16'
|
||||||
|
cache: 'npm'
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: npm ci --ignore-scripts
|
||||||
|
|
||||||
|
- name: Run stress tests
|
||||||
|
run: npm run test:stress:ci
|
||||||
|
|
||||||
full-test-suite:
|
full-test-suite:
|
||||||
name: Full Test Suite with Coverage
|
name: Full Test Suite with Coverage
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|||||||
+4
-2
@@ -33,8 +33,10 @@
|
|||||||
"test:fast": "env-cmd -f ./my.test.env mocha --timeout 5000 --require ./tests/hooks.js --exit --reporter min ./tests/*.test.js",
|
"test:fast": "env-cmd -f ./my.test.env mocha --timeout 5000 --require ./tests/hooks.js --exit --reporter min ./tests/*.test.js",
|
||||||
"test:unit": "env-cmd -f ./my.test.env mocha --timeout 5000 --require ./tests/hooks.js --exit --parallel --jobs 2 ./tests/{admintools,ar2,basalprofileplugin,bgnow,boluswizardpreview,bridge,cannulaage,careportal,cob,data.*,ddata,direction,env,errorcodes,expressextensions,hashauth,insulinage,iob,language,levels,loop,maker,mmconnect,mongo-pool-config,pluginbase,plugins,profile,profileeditor,pushover,query,sandbox,security,sensorage,settings,simplealarms,timeago,times,treatmentnotify,units,upbat,utils,verifyauth}.test.js",
|
"test:unit": "env-cmd -f ./my.test.env mocha --timeout 5000 --require ./tests/hooks.js --exit --parallel --jobs 2 ./tests/{admintools,ar2,basalprofileplugin,bgnow,boluswizardpreview,bridge,cannulaage,careportal,cob,data.*,ddata,direction,env,errorcodes,expressextensions,hashauth,insulinage,iob,language,levels,loop,maker,mmconnect,mongo-pool-config,pluginbase,plugins,profile,profileeditor,pushover,query,sandbox,security,sensorage,settings,simplealarms,timeago,times,treatmentnotify,units,upbat,utils,verifyauth}.test.js",
|
||||||
"test:unit:ci": "env-cmd -f ./tests/ci.test.env mocha --timeout 5000 --require ./tests/hooks.js --exit --parallel --jobs 2 ./tests/{admintools,ar2,basalprofileplugin,bgnow,boluswizardpreview,bridge,cannulaage,careportal,cob,data.*,ddata,direction,env,errorcodes,expressextensions,hashauth,insulinage,iob,language,levels,loop,maker,mmconnect,mongo-pool-config,pluginbase,plugins,profile,profileeditor,pushover,query,sandbox,security,sensorage,settings,simplealarms,timeago,times,treatmentnotify,units,upbat,utils,verifyauth}.test.js",
|
"test:unit:ci": "env-cmd -f ./tests/ci.test.env mocha --timeout 5000 --require ./tests/hooks.js --exit --parallel --jobs 2 ./tests/{admintools,ar2,basalprofileplugin,bgnow,boluswizardpreview,bridge,cannulaage,careportal,cob,data.*,ddata,direction,env,errorcodes,expressextensions,hashauth,insulinage,iob,language,levels,loop,maker,mmconnect,mongo-pool-config,pluginbase,plugins,profile,profileeditor,pushover,query,sandbox,security,sensorage,settings,simplealarms,timeago,times,treatmentnotify,units,upbat,utils,verifyauth}.test.js",
|
||||||
"test:integration": "env-cmd -f ./my.test.env mocha --timeout 15000 --require ./tests/hooks.js --exit ./tests/{adminnotifies,api,api3,client.renderer,concurrent,dbsize,fail,flakiness-control,mongo-storage,notifications,notifications-api,openaps,pebble,pump,pushnotify,rawbg,reports,reportstorage,storage,websocket,XX_clean}*.test.js",
|
"test:integration": "env-cmd -f ./my.test.env mocha --timeout 15000 --require ./tests/hooks.js --exit ./tests/{adminnotifies,api,api3,client.renderer,dbsize,fail,flakiness-control,mongo-storage,notifications,notifications-api,openaps,pebble,pump,pushnotify,rawbg,reports,reportstorage,storage,websocket,XX_clean}*.test.js",
|
||||||
"test:integration:ci": "env-cmd -f ./tests/ci.test.env mocha --timeout 15000 --require ./tests/hooks.js --exit ./tests/{adminnotifies,api,api3,client.renderer,concurrent,dbsize,fail,flakiness-control,mongo-storage,notifications,notifications-api,openaps,pebble,pump,pushnotify,rawbg,reports,reportstorage,storage,websocket,XX_clean}*.test.js",
|
"test:integration:ci": "env-cmd -f ./tests/ci.test.env mocha --timeout 15000 --require ./tests/hooks.js --exit ./tests/{adminnotifies,api,api3,client.renderer,dbsize,fail,flakiness-control,mongo-storage,notifications,notifications-api,openaps,pebble,pump,pushnotify,rawbg,reports,reportstorage,storage,websocket,XX_clean}*.test.js",
|
||||||
|
"test:stress": "env-cmd -f ./my.test.env mocha --timeout 60000 --require ./tests/hooks.js --exit ./tests/concurrent*.test.js",
|
||||||
|
"test:stress:ci": "env-cmd -f ./tests/ci.test.env mocha --timeout 60000 --require ./tests/hooks.js --exit ./tests/concurrent*.test.js",
|
||||||
"test:all": "npm run test:unit && npm run test:integration",
|
"test:all": "npm run test:unit && npm run test:integration",
|
||||||
"test:all:ci": "npm run test:unit:ci && npm run test:integration:ci",
|
"test:all:ci": "npm run test:unit:ci && npm run test:integration:ci",
|
||||||
"test:parallel": "env-cmd -f ./my.test.env mocha --timeout 10000 --require ./tests/hooks.js --exit --parallel --jobs 2 ./tests/*.test.js",
|
"test:parallel": "env-cmd -f ./my.test.env mocha --timeout 10000 --require ./tests/hooks.js --exit --parallel --jobs 2 ./tests/*.test.js",
|
||||||
|
|||||||
Reference in New Issue
Block a user