Al1Abdullah's picture
Algoline - Automated Machine Learning Platform
9fb2e52
Raw
History Blame Contribute Delete
1.72 kB
name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
lint-and-validate:
name: Lint and Validate
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.10"
- name: Cache pip
uses: actions/cache@v4
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('requirements.txt') }}
restore-keys: |
${{ runner.os }}-pip-
- name: Install dependencies
run: pip install -r requirements.txt
- name: Validate imports
run: python -c "from main import app; print('Server module OK')"
- name: Check API routes
run: |
python -c "
from main import app
routes = [r.path for r in app.routes]
assert '/api/upload' in routes, 'Missing /api/upload'
assert '/api/train' in routes, 'Missing /api/train'
assert '/api/tune' in routes, 'Missing /api/tune'
assert '/api/export/pipeline' in routes, 'Missing /api/export/pipeline'
print(f'All {len(routes)} routes validated')
"
docker:
name: Docker Build
runs-on: ubuntu-latest
needs: lint-and-validate
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Build image
run: docker build -t algoline:ci .
- name: Smoke test
run: |
docker run -d --name algoline-test -p 7860:7860 algoline:ci
sleep 10
curl -f http://localhost:7860/ || (docker logs algoline-test && exit 1)
docker stop algoline-test