chore(ci): add website relay and backend PR validation
This commit is contained in:
parent
2778c65972
commit
d3f48b0a6f
|
|
@ -0,0 +1,50 @@
|
|||
## Purpose
|
||||
<!-- What problem, bug, or feature does this PR address? -->
|
||||
|
||||
## Related Issue
|
||||
<!-- Closes # or Fixes # -->
|
||||
Closes #
|
||||
|
||||
## Changes
|
||||
<!-- High-level bullet points of what code changed -->
|
||||
|
||||
## Architecture Impact
|
||||
<!-- What subsystem or data flow is affected? -->
|
||||
|
||||
## Risk Boundaries
|
||||
<!-- Check all subsystems touched by this PR -->
|
||||
- [ ] Telemetry acquisition (FROZEN 20 Hz pipeline)
|
||||
- [ ] Sensor fusion / lean angle
|
||||
- [ ] GNSS / speed processing
|
||||
- [ ] Ride persistence / state machine
|
||||
- [ ] Database / Drift Schema 7
|
||||
- [ ] Authentication / security rules
|
||||
- [ ] Website (Next.js / Founder Portal / Ops Console)
|
||||
- [ ] Backend / FastAPI API
|
||||
- [ ] Routing / Waze relay
|
||||
- [ ] None
|
||||
|
||||
## Database Impact
|
||||
<!-- Schema version, migration logic, or None. Never change Schema 7 without explicit migration tests. -->
|
||||
None
|
||||
|
||||
## Validation Actually Executed
|
||||
<!-- IMPORTANT: List only exact commands actually executed in this session. NEVER state "all tests pass" unless specifically executed. -->
|
||||
```bash
|
||||
# Example:
|
||||
# flutter analyze
|
||||
# flutter test
|
||||
# flutter build apk --debug
|
||||
# npm --prefix website run build
|
||||
# npm --prefix server/waze_relay test
|
||||
```
|
||||
|
||||
## Manual Testing
|
||||
<!-- What manual, physical device, or browser testing was performed, if any? -->
|
||||
|
||||
## Review Focus
|
||||
<!-- Specific files, security boundaries, or edge cases reviewers should inspect closely. -->
|
||||
|
||||
## Documentation
|
||||
- [ ] Documentation updated
|
||||
- [ ] Documentation not required for this change
|
||||
|
|
@ -0,0 +1,45 @@
|
|||
name: MotorSignal Backend CI
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ master ]
|
||||
pull_request:
|
||||
branches: [ master ]
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
concurrency:
|
||||
group: backend-ci-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
backend-api-tests:
|
||||
name: Backend API tests
|
||||
runs-on: ubuntu-latest
|
||||
defaults:
|
||||
run:
|
||||
working-directory: backend/motorsignal_api
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v6
|
||||
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: '3.12'
|
||||
cache: 'pip'
|
||||
cache-dependency-path: backend/motorsignal_api/requirements.lock
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install -r requirements.lock pytest httpx
|
||||
|
||||
- name: Run Firebase Auth signature and claims tests
|
||||
run: python tests/test_firebase_auth.py
|
||||
|
||||
- name: Run isolated API and Operations unit tests
|
||||
run: |
|
||||
pytest tests/test_ops_support.py tests/test_ops_incidents.py tests/test_legacy_admin_retirement.py -v
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
name: MotorSignal Waze Relay CI
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ master ]
|
||||
pull_request:
|
||||
branches: [ master ]
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
concurrency:
|
||||
group: waze-relay-ci-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
waze-relay-tests:
|
||||
name: Waze relay tests
|
||||
runs-on: ubuntu-latest
|
||||
defaults:
|
||||
run:
|
||||
working-directory: server/waze_relay
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v6
|
||||
|
||||
- name: Set up Node
|
||||
uses: actions/setup-node@v6
|
||||
with:
|
||||
node-version: '22'
|
||||
cache: 'npm'
|
||||
cache-dependency-path: server/waze_relay/package-lock.json
|
||||
|
||||
- name: Install dependencies
|
||||
run: npm ci
|
||||
|
||||
- name: Run relay tests
|
||||
run: npm test
|
||||
|
|
@ -0,0 +1,51 @@
|
|||
name: MotorSignal Website CI
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ master ]
|
||||
pull_request:
|
||||
branches: [ master ]
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
concurrency:
|
||||
group: website-ci-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
website-build-and-tests:
|
||||
name: Website build and regression tests
|
||||
runs-on: ubuntu-latest
|
||||
defaults:
|
||||
run:
|
||||
working-directory: website
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v6
|
||||
|
||||
- name: Set up Node
|
||||
uses: actions/setup-node@v6
|
||||
with:
|
||||
node-version: '22'
|
||||
cache: 'npm'
|
||||
cache-dependency-path: website/package-lock.json
|
||||
|
||||
- name: Install dependencies
|
||||
run: npm ci
|
||||
|
||||
- name: Build Next.js application
|
||||
run: npm run build
|
||||
|
||||
- name: Run Founder Portal tests
|
||||
run: node tests/founder-portal.test.cjs
|
||||
|
||||
- name: Run Operations Console tests
|
||||
run: node tests/ops-experience.test.cjs
|
||||
|
||||
- name: Run Responsive Layout tests
|
||||
run: node tests/responsive-layout.test.cjs
|
||||
|
||||
- name: Run Navigation and Auth tests
|
||||
run: node tests/navigation-auth.cjs
|
||||
Loading…
Reference in New Issue