Nightly (E2E · Kafka · chaos) #51
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Nightly (E2E · Kafka · chaos) | |
| # Heavy integration suites kept out of the fast PR path. The e2e setup files | |
| # (tests/e2e/setup/*) auto-provision Redis/Kafka via Docker on the runner. | |
| on: | |
| schedule: | |
| - cron: "0 2 * * *" # daily 02:00 UTC | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| jobs: | |
| e2e-bullmq: | |
| name: E2E — BullMQ / Redis | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: actions/setup-node@v7 | |
| with: | |
| node-version: "22" | |
| cache: "npm" | |
| - run: npm ci | |
| - name: E2E (BullMQ/Redis) | |
| run: npm run test:e2e | |
| env: | |
| REDIS_URL: redis://localhost:6379 | |
| AGENT_IDS: test-agent | |
| - name: Security E2E (firewall · JWT · channel signing) | |
| run: npm run test:e2e:security | |
| env: | |
| REDIS_URL: redis://localhost:6379 | |
| AGENT_IDS: test-agent | |
| e2e-kafka: | |
| name: E2E — Kafka | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: actions/setup-node@v7 | |
| with: | |
| node-version: "22" | |
| cache: "npm" | |
| - run: npm ci | |
| - name: E2E (Kafka) | |
| run: npm run test:e2e:kafka | |
| env: | |
| KAFKA_BROKERS: localhost:9092 | |
| AGENT_IDS: test-agent | |
| chaos: | |
| name: Chaos — broker fault injection (Redis pause/unpause) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: actions/setup-node@v7 | |
| with: | |
| node-version: "22" | |
| cache: "npm" | |
| - run: npm ci | |
| - name: Broker resilience (pause Redis mid-flight, assert zero dropped) | |
| run: npm run test:e2e:chaos | |
| env: | |
| REDIS_URL: redis://localhost:6379 | |
| AGENT_IDS: test-agent | |
| mutation: | |
| name: Mutation testing (domain layer — Stryker) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: actions/setup-node@v7 | |
| with: | |
| node-version: "22" | |
| cache: "npm" | |
| - run: npm ci | |
| - name: Stryker mutation (break < 85% domain score) | |
| run: npm run test:mutation | |
| - name: Upload mutation HTML report | |
| uses: actions/upload-artifact@v7 | |
| if: always() | |
| with: | |
| name: mutation-report | |
| path: reports/mutation/ | |
| bench: | |
| name: Micro-benchmarks (perf baseline) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: actions/setup-node@v7 | |
| with: | |
| node-version: "22" | |
| cache: "npm" | |
| - run: npm ci | |
| - run: npm run bench |