Skip to content
This repository was archived by the owner on Feb 1, 2026. It is now read-only.

feat: Implement /checkout command and document [LEARNED:] markers #48

feat: Implement /checkout command and document [LEARNED:] markers

feat: Implement /checkout command and document [LEARNED:] markers #48

Workflow file for this run

name: Tests
on:
push:
branches: [main, develop]
pull_request:
branches: [main, develop]
jobs:
python-tests:
name: Python Tests (Python ${{ matrix.python-version }})
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
cache: "pip"
- name: Install system dependencies
run: |
sudo apt-get update
sudo apt-get install -y libsqlite3-dev
- name: Install Python dependencies
run: |
python -m pip install --upgrade pip setuptools wheel
pip install -r requirements.txt
pip install pytest pytest-cov pytest-asyncio
- name: Run tests with coverage
run: |
pytest tests/ -v --cov=src --cov-report=xml --cov-report=term
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v3
with:
files: ./coverage.xml
flags: python
name: python-${{ matrix.python-version }}
fail_ci_if_error: false
type-checking:
name: Type Checking (MyPy)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.11"
cache: "pip"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
pip install mypy
- name: Run MyPy type checking
run: |
mypy src/ --strict --no-implicit-reexport --pretty
continue-on-error: true
backend-tests:
name: Backend Tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.11"
cache: "pip"
- name: Install backend dependencies
run: |
python -m pip install --upgrade pip
cd apps/dashboard/backend
pip install -r requirements.txt -r requirements-test.txt
- name: Run backend tests
run: |
cd apps/dashboard/backend
pytest tests/ -v --cov=. --cov-report=term
env:
SESSION_ENCRYPTION_KEY: ${{ secrets.TEST_SESSION_ENCRYPTION_KEY || 'QgL6WE5rriiPpNBid3KZS8XXxMViqgoop57l30nF7n0=' }}
DEV_ACCESS_TOKEN: ${{ secrets.TEST_DEV_ACCESS_TOKEN || 'test-dev-token-for-ci' }}
SESSION_DOMAIN: ""
frontend-tests:
name: Frontend Tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: "18"
cache: "npm"
cache-dependency-path: "apps/dashboard/frontend/package-lock.json"
- name: Install frontend dependencies
run: |
cd apps/dashboard/frontend
npm ci
- name: Run frontend tests
run: |
cd apps/dashboard/frontend
npm run test -- --run
- name: Build frontend
run: |
cd apps/dashboard/frontend
npm run build
shell-linting:
name: Shell Script Linting
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run ShellCheck
uses: ludeeus/action-shellcheck@master
with:
scandir: "./scripts"
severity: error
summary:
name: Test Summary
runs-on: ubuntu-latest
needs: [python-tests, backend-tests, frontend-tests]
if: always()
steps:
- name: Check test results
run: |
if [ "${{ needs.python-tests.result }}" = "failure" ]; then
echo "Python tests failed"
exit 1
fi
if [ "${{ needs.backend-tests.result }}" = "failure" ]; then
echo "Backend tests failed"
exit 1
fi
if [ "${{ needs.frontend-tests.result }}" = "failure" ]; then
echo "Frontend tests failed"
exit 1
fi
echo "All tests passed!"