Skip to content

Publish consolidated BackIntel demo proof of concept #12

Publish consolidated BackIntel demo proof of concept

Publish consolidated BackIntel demo proof of concept #12

name: Analysis code checks
on:
pull_request:
push:
branches: [main]
jobs:
static:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.sha || github.sha }}
- uses: actions/setup-node@v4
with: {node-version: '22'}
- uses: actions/setup-python@v5
with: {python-version: '3.12'}
- name: Install frontend dependencies
run: npm ci --prefix apps/web
- name: Build frontend
run: npm run build --prefix apps/web
- name: Frontend component checks and coverage
run: npm run test:receipt --prefix apps/web
- name: Pinned frontend dead code check
run: npm run deadcode --prefix apps/web
- name: Pinned Python dead code check
run: |
python -m pip install vulture==2.14
python -m vulture runtime/analysis_*.py scripts/analysis_*.py --min-confidence 100
- name: Compile backend
run: python -m compileall -q runtime scripts tests
- uses: actions/upload-artifact@v4
if: always()
with:
name: analysis-component-evidence
path: apps/web/coverage/
offline:
runs-on: ubuntu-latest
services:
postgres:
image: pgvector/pgvector:pg18
env:
POSTGRES_USER: validation
POSTGRES_PASSWORD: local-validation-only
POSTGRES_DB: postgres
ports: ['5432:5432']
options: >-
--health-cmd "pg_isready -U validation -d postgres"
--health-interval 2s --health-retries 20
redis:
image: redis:7.2.5-alpine
ports: ['6379:6379']
options: >-
--health-cmd "redis-cli ping"
--health-interval 2s --health-retries 20
env:
BACKINTEL_VALIDATION_ADMIN_URL: postgresql://validation:local-validation-only@127.0.0.1:5432/postgres
BACKINTEL_VALIDATION_REDIS_URL: redis://127.0.0.1:6379/15
NODE_PATH: ${{ github.workspace }}/apps/web/node_modules
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.sha || github.sha }}
- uses: actions/setup-node@v4
with: {node-version: '22'}
- uses: actions/setup-python@v5
with: {python-version: '3.12'}
- run: python -m pip install -r requirements.testing.txt
- run: npm ci --prefix apps/web
- run: npm run build --prefix apps/web
- name: Install pinned browser
run: |
cd apps/web
npx playwright install --with-deps chromium
- name: Unit, database, budget, and recovery checks
run: python scripts/validation/run_analysis_offline.py --mode unit --output artifacts/AnalysisValidation/ci-unit
- name: Existing runtime and all Python unit regressions
env:
BACKINTEL_UNIT_OUTPUT: artifacts/AnalysisValidation/ci-regression
run: python scripts/validation/check_units.py
- name: Five-domain simulated browser and native-clock checks
env:
BACKINTEL_VALIDATION_POSTGRES_CONTAINER: ${{ job.services.postgres.id }}
run: python scripts/validation/run_analysis_offline.py --mode e2e --broker-recovery --output artifacts/AnalysisValidation/ci-e2e
- uses: actions/upload-artifact@v4
if: always()
with:
name: analysis-offline-evidence
path: artifacts/AnalysisValidation/
validate:
needs: offline
permissions:
contents: read
uses: ./.github/workflows/product-validation.yml