102 lines
2.4 KiB
YAML
102 lines
2.4 KiB
YAML
name: Tests
|
|
|
|
on:
|
|
push:
|
|
branches: [main, master, develop]
|
|
pull_request:
|
|
branches: [main, master]
|
|
|
|
jobs:
|
|
test:
|
|
runs-on: ubuntu-latest
|
|
|
|
services:
|
|
postgres:
|
|
image: postgres:15
|
|
env:
|
|
POSTGRES_DB: aegisone
|
|
POSTGRES_USER: aegisone
|
|
POSTGRES_PASSWORD: aegisone_pass
|
|
ports:
|
|
- 5432:5432
|
|
options: >-
|
|
--health-cmd pg_isready
|
|
--health-interval 5s
|
|
--health-timeout 5s
|
|
--health-retries 5
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- uses: actions/setup-python@v5
|
|
with:
|
|
python-version: "3.12"
|
|
|
|
- name: Install dependencies
|
|
working-directory: py_service
|
|
run: |
|
|
pip install -r requirements.txt
|
|
pip install ruff
|
|
|
|
- name: Pre-test lint & static analysis
|
|
working-directory: py_service
|
|
run: |
|
|
ruff check .
|
|
pytest tests/test_routes_defined.py -v --no-header -q
|
|
python -c "from tests.test_00_discover_routes import collect_app_routes; r=collect_app_routes(); print(f'Discovered {len(r)} routes')"
|
|
|
|
- name: Start server
|
|
working-directory: py_service
|
|
run: |
|
|
uvicorn app.main:app --host 0.0.0.0 --port 8000 &
|
|
sleep 3
|
|
curl -sf http://localhost:8000/health || (echo "Server failed to start" && exit 1)
|
|
|
|
- name: Run tests
|
|
working-directory: py_service
|
|
run: |
|
|
pytest -v --tb=short -x
|
|
|
|
- name: Test summary
|
|
if: always()
|
|
run: echo "CI test run complete"
|
|
|
|
test-max-bot:
|
|
runs-on: ubuntu-latest
|
|
|
|
services:
|
|
postgres:
|
|
image: postgres:15
|
|
env:
|
|
POSTGRES_DB: aegisone
|
|
POSTGRES_USER: aegisone
|
|
POSTGRES_PASSWORD: aegisone_pass
|
|
ports:
|
|
- 5432:5432
|
|
options: >-
|
|
--health-cmd pg_isready
|
|
--health-interval 5s
|
|
--health-timeout 5s
|
|
--health-retries 5
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- uses: actions/setup-python@v5
|
|
with:
|
|
python-version: "3.12"
|
|
|
|
- name: Install dependencies
|
|
working-directory: max_bot
|
|
run: |
|
|
pip install -r requirements.txt
|
|
|
|
- name: Run tests
|
|
working-directory: max_bot
|
|
run: |
|
|
pytest tests/ -v --tb=short -x
|
|
|
|
- name: Test summary
|
|
if: always()
|
|
run: echo "max_bot CI test run complete"
|