Skip to content

feat(data): backend-first remoteCreate/remoteUpdate/remoteDestroy on … #1738

feat(data): backend-first remoteCreate/remoteUpdate/remoteDestroy on …

feat(data): backend-first remoteCreate/remoteUpdate/remoteDestroy on … #1738

Workflow file for this run

name: Tests
on:
pull_request:
branches: [dev]
push:
branches: [dev]
concurrency:
group: tests-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
test:
name: ${{ matrix.suite }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
# Bucket A-F audit (#10903) closed via #10907/#10921/#10910/#10919/#10920.
# Bucket G (#10924) substrate fixes landed via #10940 (TestLifecycleHelper
# primitive + daemon-spec migration) + open trackers for residual flakes
# (#10941/#10936/#10937/#10946 — all unit-skip-guarded via NEO_TEST_SKIP_CI).
suite: [integration-unified, unit]
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: '24'
cache: 'npm'
# Pre-create .neo-ai-data so the `prepare` lifecycle's downloadKnowledgeBase
# short-circuits via its existing-dir guard. Integration tests use a tmpfs
# Chroma per `ai/deploy/docker-compose.test.yml`; unit tests are mocked.
# Neither suite needs the canonical KB artifact in CI.
- name: Skip Knowledge Base download in prepare lifecycle
run: mkdir -p .neo-ai-data
- name: Install dependencies
run: npm ci
# Required for the unit-test runner per bootstrapWorktree.mjs precedent.
# Harmless for the integration suite.
- name: Bundle parse5
run: npm run bundle-parse5
- name: Run ${{ matrix.suite }} tests
run: npm run test-${{ matrix.suite }}
env:
NEO_INTEGRATION_STACK_TIMEOUT_MS: '240000'
# Keep the unit residual skip guards active without gating integration specs.
NEO_TEST_SKIP_CI: ${{ matrix.suite == 'unit' && 'true' || '' }}
- name: Upload test artifacts on failure
if: failure()
uses: actions/upload-artifact@v4
with:
name: test-results-${{ matrix.suite }}-${{ github.run_id }}
path: test/playwright/test-results/
retention-days: 14