64 lines
1.9 KiB
YAML
64 lines
1.9 KiB
YAML
name: Production Readiness
|
|
|
|
on:
|
|
pull_request:
|
|
push:
|
|
branches:
|
|
- main
|
|
- master
|
|
|
|
jobs:
|
|
backend-contracts:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-python@v5
|
|
with:
|
|
python-version: "3.11"
|
|
- name: Install backend dependencies
|
|
run: |
|
|
python -m pip install --upgrade pip
|
|
pip install -r backend/requirements.txt
|
|
pip install pytest
|
|
- name: Run backend contract tests
|
|
run: |
|
|
PYTHONPATH="$PWD" python -m pytest \
|
|
backend/tests/test_auth_tenant_contract.py \
|
|
backend/tests/test_canonical_crm_auth.py \
|
|
backend/tests/test_canonical_crm_tenant_scoping.py \
|
|
backend/tests/test_dream_weaver_gateway_auth.py \
|
|
backend/tests/test_migrations_and_observability.py \
|
|
backend/tests/test_surface_route_tenant_scoping.py
|
|
|
|
webos-typecheck:
|
|
runs-on: ubuntu-latest
|
|
defaults:
|
|
run:
|
|
working-directory: app
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: "20"
|
|
cache: npm
|
|
cache-dependency-path: app/package-lock.json
|
|
- name: Install WebOS dependencies
|
|
run: npm ci
|
|
- name: Typecheck WebOS
|
|
run: npx tsc --noEmit
|
|
|
|
ipad-parse:
|
|
runs-on: macos-15
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Parse active iPad Swift sources
|
|
run: |
|
|
swiftc -frontend -parse \
|
|
iOS/velocity-ipad/velocity/App/ContentView.swift \
|
|
iOS/velocity-ipad/velocity/Features/Clients/ClientsView.swift \
|
|
iOS/velocity-ipad/velocity/Features/Imports/ImportsView.swift \
|
|
iOS/velocity-ipad/velocity/Core/Networking/VelocityAPIClient.swift \
|
|
iOS/velocity-ipad/velocity/Core/State/AppStore.swift \
|
|
iOS/velocity-ipad/velocityTests/VelocitySmokeTests.swift
|
|
|